In the DMA bench, three virtual interfaces travel from the top module to the drivers and monitors, the env tells the output agent to stay passive, and dma_rand_test picks up a job description if someone left one for it. None of those components holds a hard-wired handle or value; they all read config_db. This topic teaches it the way senior interviews probe it: exact key matching, who wins when two settings collide, and what config costs at scale.
Write set and get calls that match on the first try, and read the failure when they do not.
State the precedence rules correctly: setter depth during build, last set otherwise, never path specificity.
Design config objects instead of loose knobs, and keep config lookups out of hot paths.
Explain auto-config and why skipping super.build_phase breaks it, and configure sequences per path.
Lesson | What you learn |
|---|---|
The four arguments, how the lookup key is built, exact type matching, and checked gets. | |
Glob patterns, why | |
The one home for precedence: 1000 minus setter depth during build, last set otherwise, with the lookup diagram and the debug tools. | |
One typed object instead of many knobs: | |
What a lookup costs, gets in hot paths, global | |
| |
A sequence's full name, |