Part 3 answers: How do I write down what the design must do before I code it?
Code written before the behavior is pinned down just encodes guesses. This part turns a loose idea for mini_controller, the course's running example and a 4-bit event counter, into a testable spec, a block diagram and a golden model.
The spec and the golden model you write here are what every later part checks the design against, so an ambiguity found now does not become a bug found later.
What | Detail |
|---|---|
Time | About 1.5 hours. |
You will build | A testable spec, a block diagram and a golden model for mini_controller. |
You are done when | Every behavior in your spec has a number you could check, and the golden model passes its own checks. |
Write a spec whose behaviors are measurable enough for a testbench to check.
Draw a microarchitecture block diagram from a written spec.
Write a golden model from the spec that is independent of the RTL.
# | Lesson | What it covers | Level |
|---|---|---|---|
3.1 | Turn a vague sentence into six measurable questions. | F | |
3.2 | Split the datapath from the control and trace the design cycle by cycle. | F | |
3.3 | A small Python model that computes the right answer independently of the RTL. | F |
Lessons are in learning order: each one sets up the problem the next one solves. The glossary and the command cheat sheet are open to you throughout; if something fails, go to the troubleshooting table.