Mastering Memory Abstraction in Formal Verification | Step-by-Step Guide | Part 7 — Transcript
Full transcript
- 0:00in the intricate world of formal
- 0:02edification abstractions are not just
- 0:04helpful they are essential they are the
- 0:07silent Heroes that transform a complex
- 0:09design into something far more
- 0:12manageable imagine a maze with multiple
- 0:14entry points you want to see if you
- 0:17constructed your maze correctly you're
- 0:19letting 20 rats enter the maze from all
- 0:22possible ports you let them run around
- 0:25the maze to see if eventually all the
- 0:28rats are coming out or not
- 0:30how easy is it going to
- 0:32be with 20 rats and tracking all
- 0:35possible paths it's going to be really
- 0:38difficult what if you could solve the
- 0:40puzzle with just one imaginary rat who
- 0:44can arbitrarily enter the maze from any
- 0:46entrance and still check the correctness
- 0:48of all paths in the Maze that's
- 0:52abstraction for you memories are also
- 0:55similar to this maze you can write into
- 0:58n address locations and read from all of
- 1:00them if you let all possibilities in
- 1:03your formal runs the complexity is going
- 1:05to
- 1:07explode imagine taking a vast memory
- 1:10system and Distilling it down to its
- 1:12Essence where tracking a single location
- 1:15or just a few of them unravels the
- 1:18complexity of the whole that is a power
- 1:21of
- 1:21abstraction and that's exactly what I'm
- 1:24here to help you with I'm your Gade on
- 1:26this journey through the nuances of
- 1:27formal verification so if you a blsa
- 1:30engineer looking to sharpen your skills
- 1:32and navigate the complexity of formal
- 1:34verification you are in the right place
- 1:36join me on my YouTube channel formal
- 1:38intelligence and let's tackle formal
- 1:40verification together one step at a time
- 1:44hit that subscribe button and let's get
- 1:46started on this journey to
- 1:49Mastery with this video we will complete
- 1:53all basic and intermediate techniques
- 1:55for formal complexity reduction if you
- 1:57have watched all the videos so far you
- 1:59are in a real good position to start
- 2:01implementing these techniques in your
- 2:02formal venes I encourage you to try them
- 2:05out and discuss any issues that you
- 2:07might come
- 2:09across memory abstraction is a way of
- 2:13tracking only one or a few locations in
- 2:15the memory irrespective of the number of
- 2:18locations in the original memory we will
- 2:21discuss a case where we'll track only
- 2:22one location and not three or four
- 2:25locations which is also another
- 2:27possibility for
- 2:28abstraction one simp way to do this is
- 2:31to create a file with the abstracted
- 2:33memory model and use it in your formal
- 2:35runs and ignore the RTL memory
- 2:38altoe so are there any problems with
- 2:41these kind of
- 2:43abstractions yes so if you don't model
- 2:46the locations other than the ones which
- 2:47you are tracking you will see false
- 2:50failures in your property if the
- 2:52property relies on data from untracked
- 2:56locations that's
- 2:58one so is there any other issue there is
- 3:02another issue with timing so if your
- 3:05memory has a specific read or write
- 3:07latency let's say one clock or two
- 3:09clocks then your abstraction should also
- 3:11make sure that you maintain that latency
- 3:13in your
- 3:15model let's look at an example here's a
- 3:18memory with n locations with multi-bit
- 3:21data input address and single bit read
- 3:24and write control signals and this is
- 3:27the data out from this let's see can
- 3:29abstract this memory and track just one
- 3:32out of these n
- 3:35locations this is how you can abstract
- 3:37it the code is as shown here the
- 3:41strategy is to Define an internal signal
- 3:44called track M that can store only one
- 3:46data trag will have the size of data in
- 3:50the width of the data in just for just
- 3:52one
- 3:53data the first red arrow right here
- 3:56shows how the data is stored the data
- 4:00data in is stored in the tracker track M
- 4:03when the address is equal to symbolic
- 4:05address for a
- 4:06right and this section shows the read
- 4:09operation in this read if the address is
- 4:11equal to symbolic address then the data
- 4:14out will be the tracked data track
- 4:18M but what happens to all the other
- 4:21cases all the other reads where address
- 4:23is not equal to symbolic address in this
- 4:25abstraction we don't care about them but
- 4:27do we tie them to zero no no we just
- 4:30want to let it take any value so the key
- 4:33thing about abstraction is that you
- 4:34abstract only what's essential so you
- 4:37just want you want to introduce as
- 4:39minimum over constraints as possible
- 4:41inal and the strategy is you constraint
- 4:44something you let everything else take
- 4:45any value if you see a failure then you
- 4:49add constraints on the other free
- 4:51running signals that's usually how we do
- 4:53things
- 4:56informal Q time can you think of some
- 5:00answers for these
- 5:04questions you can pause the video and
- 5:06see if you can answer
- 5:11them will the abstraction work if the
- 5:13memory read Laten is 2 CL the current
- 5:17code which I show which I shown in the
- 5:18previous
- 5:20slide this will not work because there
- 5:23is just one latency so if you send a
- 5:25read and in the next clock cycle you're
- 5:27getting going to get the data what but
- 5:30if there is a memory in article which
- 5:32just saying that you need to get the
- 5:34data only after two clock Cycles you
- 5:36need to modify this to ensure that the
- 5:38timing is so
- 5:39B and will the abstraction check for all
- 5:42addresses or will it check just the
- 5:45address
- 5:46two which is U symbolic address here so
- 5:51the thing with symbolic address is that
- 5:53it's free to choose any value as long as
- 5:56you very add some over constraints on
- 5:59that that so in this case it is going to
- 6:02take all the values 1 to n but in a
- 6:05single formal run it will take only
- 6:08single value so it doesn't mean that
- 6:09it's not going to cover other cases so
- 6:12it is going to cover other other
- 6:13addresses as well in fact all the
- 6:16addresses so the answer is
- 6:19yes thanks for watching make sure you
- 6:22subscribe to our Channel and never miss
- 6:23an update stay tuned for our next video
- 6:26where we will cover another font formal
- 6:28verification topic until then bye take
- 6:31care
About this transcript
This page contains the full transcript of Mastering Memory Abstraction in Formal Verification | Step-by-Step Guide | Part 7 by Formal Intelligence, generated from the public captions YouTube serves with the video. The transcript has 1,034 words across 157 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.