Ten senior register-layer questions with weak and strong answers and follow-ups, each linked to the lesson that shows the mechanism.
On this page
The interviewer has your CV open at built a UVM register model and adapter for a DMA subsystem. The first question is easy: what is the difference between the desired and the mirrored value? The second is the same question one level down: so when exactly does the mirror change in your bench? Then: when your bit-bash failed, how did you know it was the mirror and not the DUT? Three questions in, the interviewer knows whether you used RAL or read about it.
This lesson collects the register-layer questions senior DV interviews ask most, each with a weak answer, a strong answer and the usual follow-ups. Every strong answer leans on something this course ran, and links to the lesson that shows the mechanism.
The idea: interviewers probe mechanism, then evidence
A senior RAL question has three layers, like an onion. The first asks for a definition, which everyone has. The second asks for the mechanism: which call moves which value, which component does it, and when. The third asks for evidence: a failure you saw, the log line that told you, and the fix. Strong answers volunteer the second layer and offer the third before it is asked: name the object that does the work, say when it happens, and give the case where it breaks.
The picture: the follow-up chain for a mirror mismatch
Flowchart: from a mirror mismatch, check whether the field is volatile, whether the expected value is one access stale, whether another master wrote it, whether a DUT rule is unmodelled, and only then call it a DUT bug.
The chain interviewers walk down after 'the mirror check failed'. Each branch is one lesson in this topic; a strong candidate names the check that rules each branch in or out.
Notice where "the DUT is wrong" sits: last. Every RegModel error met while building this course's register layer came from the model or the prediction setup, and the one DUT rule the model lacks (LEN ignored while BUSY) is kept as an expected failure in dma_ral_busy_len_test.
Values and prediction
Access methods and their traps
Backdoor, built-in sequences and structure
What breaks in an interview answer
Reciting the API. "write, read, set, get, update, mirror" proves nothing. Say which value each one moves and when.
"The predictor fixes it." The predictor applies field policies; it cannot know DUT rules (LEN ignored while BUSY) or masters it cannot see.
Silencing instead of modelling.volatile, UVM_NO_CHECK and NO_REG_TESTS are legitimate only with a reason you can state. "It kept failing" is not one.
No evidence. One real log line ("read 4, mirrored 9") is worth more than a paragraph of theory.
Check yourselfAn interviewer asks: "Your mirror(UVM_CHECK) on LEN fails with read 4, mirrored 9. Walk me through it." Give the first three questions you ask yourself, in order.
Is LEN volatile? No (and if it were, it would not be compared at all). Is the expected value one access stale? Check whether the 9 was written just before and whether prediction had finished; with auto prediction on, it had. Did something else write LEN, or does the DUT have a rule that blocks the write? Here the DUT ignores LEN writes while BUSY, which the model does not know: the mismatch is the model's gap, shown by the bench's busy-LEN test.
Check yourself"Why not just turn auto prediction on everywhere and drop the predictor?"
Because auto prediction sees only accesses made through the register model. Any other writer (firmware, a second bus, a raw sequence, the DUT itself) leaves the mirror stale and the next check fails or, worse, a check passes against a stale value. The explicit predictor watches the bus, so it sees everything on it. Auto prediction is a timing aid for specific tests, added on top.
Next: this is the end of the register topic. Go back to the topic map for any lesson you skimmed, or continue with the course's advanced topics.