The rubric decides offers, so answering without knowing it is like coding without knowing the test bench. Four dimensions, Assumption, Mechanism, Trade-off and Evidence, each scored 0 to 4 with fixed anchors: 0 means absent, 1 means vague or wrong, 2 means right but generic, 3 means specific and mostly correct, 4 means specific, correct, and anticipating failure modes and checks. The total is 16, and the suggested bands are 13 or more for a strong hire, 9 to 12 for a mid-level hire, and below 9 not proceeding. Those thresholds are a suggestion, not a rule, and different panels calibrate differently, but the shape is stable: 3s require specifics, and 4s require failure modes.
Interviewers probe because most first answers sit at 2: right but generic. The five standard probes each target one dimension. What frequencies and sizes are you assuming asks for the Assumption part you skipped. Walk me through the third cycle asks for Mechanism at signal level. What is the alternative, and what does it cost asks for Trade-off. How would you prove that asks for Evidence. What breaks it asks whether your 3 deserves a 4. Expect all five on a design question; a question that ends after the first answer was either a 4 or a 1.
Two drawings carry half of every answer, so learn to produce both in under five minutes. The block diagram shows masters on the left, the fabric in the middle, slaves on the right, with clocks and resets as labelled arrows, not decoration: every crossing gets its mechanism named beside it (asynchronous FIFO, request and acknowledge handshake, two-flop synchroniser). The address map shows regions as a vertical bar with bases, sizes and alignment notes, holes marked as holes with their error response, and the decode bits written beside each window. On NanoSoC the map drawing is four rows: ROM selected by address bits 31 down to 14 equal zero, SRAM0 and SRAM1 by bits 31 down to 16, the APB window by the same width, everything else the default slave. Writing the decode bits beside the drawing turns a picture into a mechanism.
State assumptions and numbers as you draw: write the three periods in the corner first (5.208 ns, 10.417 ns, 41.667 ns), because every latency and bandwidth claim in the session will divide by one of them. Then write the four totals you memorised: 93.75 ns per word read, 361.4 MB/s sustained per fabric link, 53.948 us of hardware reset, 12.581 ms to boot. An interviewer who sees the periods in the corner stops asking where your numbers come from.
# Score tally: the habit is scoring yourself before the interviewer does.
scores = {"assumption": 3, "mechanism": 3, "tradeoff": 2, "evidence": 3}
anchors = {0: "absent", 1: "vague or wrong", 2: "right but generic",
3: "specific, mostly correct", 4: "anticipates failures + checks"}
for dim, s in scores.items():
assert 0 <= s <= 4, dim
print(f"{dim:10s} {s} ({anchors[s]})")
total = sum(scores.values())
assert total == 11, total
band = "strong hire" if total >= 13 else ("mid-level hire" if total >= 9 else "below bar")
assert band == "mid-level hire", band
# The 2 on trade-off is the cheapest point: one costed alternative lifts it to 3.
lifted = total - scores["tradeoff"] + 3
assert lifted == 12, lifted
print(f"total {total}/16 -> {band}; costing one alternative -> {lifted}/16")
print("PASS: 11/16 mid-level; trade-off is the cheapest point")Every dimension is addressed visibly: assumptions listed, mechanism walked, an alternative costed, a check named.
The block diagram labels every crossing with its mechanism and every clock with its frequency.
The address map marks holes with their error response (DECERR on the fabric holes, SLVERR inside the APB window) and writes decode bits beside each window.
Rehearse the two drawings on paper with a timer: block diagram in three minutes, address map in two, periods and four totals in the corner without looking. Then answer one question from each rapid-fire lesson and score yourself with the tally above before reading the model answer. If your self-score and the model diverge by more than two points, the divergence is the lesson: find which part you keep skipping.
One costed alternative: name a second option with its price in the same units. That lifts Trade-off from 2 (right but generic) to 3 (specific) and moves the total from 11 to 12.