Skip to content
VLSI Mentor

DDR · Module 33

Interview Review Checklist

The last gate, and the only one whose subject is the reviewer. Not interview questions — Module 30 owns those. Nine ways an answer that sounds correct fails the seven checklists before it, starting with whether you recognised, recalled or derived it.

Seven gates have reviewed a design, its code, its registers, its testbench, its numbers, its bring-up and its investigations. This one reviews the person doing the reviewing.

This is not a set of interview questions. Module 30 owns those — ten chapters of questions, worked answers, and the reasoning behind them, from 30.1 through 30.10. This chapter owns something Module 30 cannot own about itself: the eight ways an answer that sounds correct fails the checklists in the seven chapters before this one.

Does what I know support what I am about to say?

The question is unpleasant on purpose, and it has a mechanical form. DERIVED: every gate in this module has demanded that a claim carry its provenance — a denominator, an operating point, an evidence grade, a specification clause, an eliminating experiment. An answer given out loud carries none of them unless the speaker supplies them, and the speaker is the only person in the room who can.

CURRICULUM-DERIVED from 30.8, whose sentence this chapter takes as its premise with one word changed: “a proposal offered before a measurement is a guess with engineering vocabulary.” DERIVED: so is an answer.

And this gate is the only one in the module where the weak build is not somebody else's. The nine paired builds below model an answering process rather than a design, and in every one the weak build is the way almost everyone answers almost everything — fluently, confidently, and without the provenance that would make the answer checkable.

1. How To Use This Chapter

Each of the nine review items answers the same eight questions.

FacetWhat it settles
Under reviewthe claim you are about to make
Invariant at riskwhat the listener will believe that they should not
Where it livesthe sentence, before you say it
Evidence to demandof yourself — the number, the boundary, the cost
What escapesa confident answer that is wrong in a way nobody in the room can detect
How DV proves itone follow-up question, and whether the answer survives it
Telemetrywhat you said, and what you knew
Misleading evidencefluency

The eighth facet is one word, and it is this chapter's whole subject. DERIVED: fluency is produced by familiarity, and familiarity is produced by having heard something rather than by having derived itso the most fluent answers in an engineer's repertoire are systematically the ones with the weakest provenance.

CURRICULUM-DERIVED from 30.1 onward, which is why Module 30's structure matters here: that module's ten chapters each take a question that “looks like recall and is not” and show the reasoning underneath. DERIVED: this chapter's items are the checks that tell you which of the two you just did.

And the sixth facet — one follow-up question — is the whole method. DERIVED: every item below is testable by a single why or at what, and an answer that does not survive one follow-up was recall. Nine items, nine follow-ups.

2. The One-Sentence Model

An answer is sound when every claim in it is marked as recognised, recalled or derived, when every number in it can be rebuilt from something else you know, when you can name what the answer omits, when every it depends names the variable, the direction and the magnitude, when every recommendation names what it costs, when every claim names where it stops being true, when I do not know is followed by what you would measure, when you can ask the seven preceding gates' questions of your own answer, and when you can name which of the twelve varieties would catch your own assertion — and “that is correct” is bit 0.

3. What This Chapter Owns

GroundOwner
The interview questions, their answers, and the reasoning underneathModule 30, all ten chapters
The obligation-first answer structure; the evidence-type map30.9 §2, 30.9 §4
The five-quantity ladder and diagnosis by ratio30.8
The decision-sequence form of a debug answer; the four perturbations30.10 §3
The placement rule, and how to say it varies without sounding evasive30.7 §2
The twelve varieties of a green assertion proving nothing30.9 §6, 33.4 §15
The four evidence grades and category drift18.4 §1, 32.1 §15
Auditing your own answer against the seven gates before this onethis chapter

The boundary with Module 30 is the one that matters and it is not subtle. DERIVED: Module 30 answers questions. This chapter asks what your answer was made of. A reader who has worked all ten of Module 30's chapters has the answers; this chapter's nine items are what remains after the answers are known, and every one of them is a check on the speaker rather than on the subject.

One item deserves its boundary stated separately, because 30.7 already owns most of it. 30.7 §2 owns the placement rule and, explicitly, “how to say it varies without sounding evasive.” DERIVED: §9 below does not re-derive that. It supplies the three-part structure an it depends must have to be an answer rather than a hedge — the variable, the direction, and the magnitude — and 30.7's contribution is the hardest case, a boundary whose variation is genuine.

4. Teaching-Model Boundary And Source Discipline

Every SystemVerilog block below models an answering process, and that needs justifying rather than assuming.

DERIVED: a claim's provenance is data — a class, a source, a reconstruction rule, a boundary — and a process that tracks it can be written down and checked. The point of writing it as RTL is that the checks turn out to be the same checks the seven preceding gates used: an exhaustive classification, an independence test, a range assertion, a positive control. CURRICULUM-DERIVED from 30.9 §4's evidence-type map, which is exactly such a structure for a system: this chapter applies it to a speaker.

Claim classWhat it means hereExample below
Structurala documented rule of this track, or an arithmetic identitythe twelve varieties; the four grades; burst arithmetic
Curriculum-derivedfollows from a cited chapterevery pass criterion
Derivedcomputed in this chapter from the models belowevery count in §16
Illustrativea chosen answer or number that makes a mechanism visiblethe twelve claims in §6, the numbers in §7

The twelve claims used as examples throughout are ILLUSTRATIVE and chosen to span the grades, not to be a canonical list. DERIVED: three are identities, three are device figures, three are platform-dependent, and three are things engineers repeat without a source — a spread picked so the classification has something to do.

And one discipline is unusual enough to state. DERIVED: this chapter makes no claim about what an interviewer wants, what a good candidate looks like, or how hiring works. Every item is a check on whether a claim is supported. CURRICULUM-DERIVED from 30.10 §1, which owns “what is actually being graded”so the question of what an interview measures belongs there, and this chapter takes no position on it.

No external source was consulted and no network tool was used.

5. Why the Last Gate Points Inward

Seven gates, and every one of them found the same class of defect: a record that is true and licenses more than it supports.

GateThe weak artifact wasAnd it
33.1a documentnamed a mechanism that did not exist
33.2a line of codedid what it said and not what was meant
33.3a register valuewas measured on one board
33.4a reportpublished a pass rate and no antecedent counts
33.5a numberdivided correctly by the wrong denominator
33.6a logrecorded a fact and omitted its limit
33.7a conclusionwas consistent with the evidence and not implied by it
this gatea sentenceis fluent

DERIVED: in all eight rows the defect is the same and the artifact gets smaller. A document, a line, a value, a report, a number, a log, a conclusion, a sentence. And the smaller the artifact, the less of its provenance it can carryso a spoken sentence is the least self-documenting artifact an engineer produces, and it is the one on which most decisions actually turn.

That is the argument for this gate existing, and it has a measurable form. DERIVED: each of the seven preceding gates demanded an artifact that would not fit in a sentence — a provenance census, a two-column map, a five-level bandwidth table, an assumption ledger, a hypothesis set. A spoken answer cannot carry any of them, so the speaker must carry them, and the nine items below are what carrying them looks like.

And the module's own numbers make the point better than the argument does. DERIVED across this module's eight chapters: of the seventy review items, forty are answered without running anything — and twenty-eight of those forty are answered by noticing that something is absent, a denominator, a column, a class, a reason, a refutation. CURRICULUM-DERIVED from 33.7 §5: this gate cannot work by looking for contradictions, because there are none; it works by counting what is missing. Applied to your own answer, the count is the only check available.

6. Review Item 1 — Is Each Claim Recognised, Recalled, or Derived?

FacetContent
Under reviewevery claim in the answer you are about to give
Invariant at riskthe listener's confidence matches your evidence
Where it livesthe sentence, before it leaves your mouth
Evidence to demandper claim: which of the three, and what the next question would find
What escapesa recognised claim delivered with a derived claim's confidence
How DV proves itone why, and whether the answer continues
Telemetrywhat you said, beside what you could have shown
Misleading evidenceall three feel identical from the inside

The three-way split is the whole item, and it is not a spectrum.

ClassWhat it meansWhat one why produces
Recognisedyou have heard it and it sounds rightnothing — the answer stops
Recalledyou know it and can state ita restatement, or a source
Derivedyou can rebuild it from something else you knowthe rebuild

DERIVED: the three are indistinguishable from the inside, and that is the item's entire difficulty. All three produce a fluent sentence, all three feel like knowing, and only the third survives a follow-up. CURRICULUM-DERIVED from Module 30's repeated observation across ten chapters — 30.7 §1's formulation is the clearest: a question “looks like recall and is not.” DERIVED: a question that looks like recall can be answered by recognition, and the answer will be right often enough to feel reliable.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST ANSWERING PROCESS: every claim carries its class, and the
// class is established by whether a reconstruction exists.
package knowledge_provenance_pkg;
  typedef enum int { K_RECOGNISED, K_RECALLED, K_DERIVED } kclass_e;

  typedef struct {
    string   claim;
    kclass_e kclass;
    string   rebuild_from;   // empty unless K_DERIVED
    string   source;         // empty unless K_RECALLED or K_DERIVED
  } claim_t;

  // ILLUSTRATIVE, twelve claims spanning the three classes.
  claim_t CLAIMS[] = '{
    '{"BL8 on a 64-bit bus moves 64 bytes", K_DERIVED,
      "8 beats x 8 bytes", "12.x burst arithmetic"},
    '{"a row must stay open tRAS before precharge", K_RECALLED,
      "", "14.x tRAS"},
    '{"tRCD is the activate-to-column delay", K_RECALLED, "", "14.x tRCD"},
    '{"peak BW = rate x width", K_DERIVED, "MT/s x bytes", "23.2"},
    '{"a conflict costs tRP + tRCD and a miss costs tRCD", K_DERIVED,
      "the row-state transition", "23.3"},
    '{"refresh costs a few percent of bandwidth", K_RECALLED,
      "", "15.x refresh"},
    '{"open-page wins above a 50% hit rate", K_RECOGNISED, "", ""},
    '{"DDR5 is faster because of bank groups", K_RECOGNISED, "", ""},
    '{"training runs once at boot", K_RECOGNISED, "", ""},
    '{"the count needs clog2(N+1) bits", K_DERIVED,
      "N+1 distinct values", "33.2 section 6"},
    '{"a done flag can mean five things", K_RECALLED, "", "28.4 section 2"},
    '{"costs compose multiplicatively", K_DERIVED,
      "efficiency factors multiply", "23.2"}
  };
endpackage

module knowledge_provenance (
    input  logic       clk,
    input  logic       rst_n,
    input  logic       audit,
    input  logic       ask_why,
    input  logic [3:0] claim_id,
    output logic       survives_why,
    output logic [3:0] derived_count,
    output logic [3:0] recalled_count,
    output logic [3:0] recognised_count,
    output logic [3:0] survives_one_why,
    output logic       answer_sound
);
  import knowledge_provenance_pkg::*;

  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      survives_why <= 1'b0; derived_count <= '0; recalled_count <= '0;
      recognised_count <= '0; survives_one_why <= '0; answer_sound <= 1'b0;
    end else begin
      // The follow-up test, mechanised: a claim survives one `why` iff
      // it has a rebuild or a source. Recognition has neither.
      if (ask_why)
        survives_why <= (CLAIMS[claim_id].kclass != K_RECOGNISED);

      if (audit) begin
        automatic int d = 0, r = 0, g = 0, s = 0;
        foreach (CLAIMS[i]) begin
          case (CLAIMS[i].kclass)
            K_DERIVED:    begin d++; s++; end
            K_RECALLED:   begin r++; s++; end
            default:      g++;
          endcase
        end
        derived_count    <= 4'(d);
        recalled_count   <= 4'(r);
        recognised_count <= 4'(g);
        survives_one_why <= 4'(s);
        // An answer is sound when nothing in it is RECOGNISED, or when
        // the recognised parts are LABELLED -- which is section 12's item.
        answer_sound     <= (g == 0);
      end
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: confidence instead of class.
//
//   // the only field tracked is how sure it feels
//   typedef struct { string claim; int confidence_pct; } claim_t;
//   ...
//   answer_sound <= (min_confidence >= 80);      // <-- the defect
//
// CONTRACT VIOLATED: nothing anybody states as a rule. Confidence is
// what an engineer actually has access to, which is the problem.
//
// WHY IT SURVIVES: confidence correlates with correctness well enough
// to be useful most of the time. The three recognised claims above are
// all things a working DDR engineer would state at high confidence,
// and two of the three are wrong.
//
// TRACE (ILLUSTRATIVE, the twelve claims above, each given a
// self-reported confidence):
//   derived    5 claims, confidence 90-95%
//   recalled   4 claims, confidence 85-95%
//   recognised 3 claims, confidence 85-90%   <-- indistinguishable
//
//   robust: derived 5, recalled 4, RECOGNISED 3, survives_one_why 9,
//           answer_sound 0 -- and it NAMES the three.
//   weak:   min_confidence 85 >= 80 -> answer_sound 1, all twelve.
//
//   and what the three recognised claims are worth:
//     "open-page wins above a 50% hit rate"
//        -- 33.5 section 12 measured close-page winning by 22.5% AT a 62%
//           hit rate. The crossover is not at a hit rate at all.
//     "DDR5 is faster because of bank groups"
//        -- bank groups are DDR4's; 34.x is the module that takes this
//           one apart. The claim conflates two generations.
//     "training runs once at boot"
//        -- 19.5 section 4 owns the one-time versus continuous split, and
//           33.3 section 10 is a whole review item about the continuous side.
//
//   gap: three claims at 85-90% self-reported confidence, two of them
//   flatly wrong and one wrong in a way that inverts a design decision.
//   Confidence did not separate them from the nine that survive a `why`.

The three recognised claims are the finding, and their self-reported confidence is the same as the derived ones'. That is the item. DERIVED: confidence is a measure of familiarity, and familiarity is exactly what recognition suppliesso the internal signal an engineer actually has is the one that cannot make this distinction.

And the repair is not more caution. It is a different question. DERIVED: how sure am I has no answer that distinguishes the three; could I rebuild this has a yes-or-no answer and takes two seconds. CURRICULUM-DERIVED from Module 30's construction across ten chapters: each chapter takes a question and shows the rebuild, which is precisely the artifact that converts a recalled claim into a derived one.

The pass criterion has a concession in it, and the concession is what makes the item usable. DERIVED: an answer containing recognised claims is not forbidden — nobody can derive everything — and §12's item is the one that handles them. What is forbidden is delivering a recognised claim in the same register as a derived one, because the listener cannot tell and the speaker can.

7. Review Item 2 — Can You Rebuild the Number?

FacetContent
Under reviewevery number in the answer
Invariant at riskthe number is right at the configuration being discussed
Where it livesthe figure you quoted
Evidence to demandthe inputs it is computed from, and the arithmetic
What escapesa number that was right at the frequency you learned it
How DV proves itchange one input and ask for the number again
Telemetrythe number, with its inputs
Misleading evidencethe number is exactly right, and stating it precisely sounds like knowledge

CURRICULUM-DERIVED from 33.3 §6's calculated-versus-measured line and 33.5 §14's operating-point provenance. This item is those two applied to a speaker: a quoted number is either reconstructible from inputs you also know, or it is a remembered constant whose configuration you have dropped.

DERIVED: the test is a single follow-up — and at 3200? — and it separates the two classes completely.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: numbers are computed from inputs, so changing an
// input changes the answer.
module number_reconstruction #(
    parameter int BUS_BYTES = 8       // STRUCTURAL: 64-bit bus
)(
    input  logic        clk,
    input  logic        rst_n,
    input  logic        ask,
    input  logic [2:0]  which,
    // the inputs a speaker must also know
    input  logic [15:0] mt_per_s_x100,   // ILLUSTRATIVE: MT/s / 100
    input  logic [15:0] burst_len,
    input  logic [15:0] trcd_cyc,
    input  logic [15:0] trp_cyc,
    input  logic [15:0] hit_pct,
    output logic        answer_valid,
    output logic [31:0] answer,
    output logic        reconstructible
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      answer_valid <= 1'b0; answer <= '0; reconstructible <= 1'b0;
    end else if (ask) begin
      answer_valid    <= 1'b1;
      reconstructible <= 1'b1;
      case (which)
        // STRUCTURAL identities, each rebuilt rather than stored.
        3'd0: answer <= 32'(burst_len) * 32'(BUS_BYTES);           // bytes/burst
        3'd1: answer <= 32'(mt_per_s_x100) * 32'(BUS_BYTES) / 32'd100; // MB/s
        3'd2: answer <= 32'(trcd_cyc) + 32'(trp_cyc);              // conflict cost
        3'd3: answer <= 32'(trcd_cyc);                             // miss cost
        // a weighted mean: the row-work cost per access, which is what
        // 23.3's comparison actually turns on.
        3'd4: answer <= ((32'(hit_pct) * 32'(trcd_cyc))
                       + ((32'd100 - 32'(hit_pct))
                          * (32'(trcd_cyc) + 32'(trp_cyc)))) / 32'd100;
        default: begin answer <= '0; reconstructible <= 1'b0; end
      endcase
    end else begin
      answer_valid <= 1'b0;
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: a lookup table of remembered
// numbers.
//
//   localparam int REMEMBERED [0:4] = '{64, 12800, 28, 14, 18};
//   ...
//   answer <= REMEMBERED[which];          // <-- the defect
//
// CONTRACT VIOLATED: 33.3 section 6's calculated/measured line, applied to
// a speaker. Every remembered number is a MEASURED quantity of one
// configuration, quoted as a calculated one.
//
// WHY IT SURVIVES: every value in the table is correct -- at
// DDR4-1600, 64-bit, tRCD 14, tRP 14, 71% hits. They were learned on a
// real system and they are exactly right there. And precision sounds
// like knowledge: "28 cycles" is more convincing than "tRP plus tRCD".
//
// TRACE (ILLUSTRATIVE, the follow-up is "and at DDR5-6400, tRCD 24,
// tRP 24, 45% hits?"):
//   which=0  bytes per burst, BL8, 64-bit
//     robust: 8 * 8 = 64.   weak: 64.        AGREE
//   which=1  peak MB/s
//     robust: 6400 * 8 = 51200.  weak: 12800.   WRONG by 4x
//   which=2  conflict cost
//     robust: 24 + 24 = 48.      weak: 28.      WRONG by 1.7x
//   which=3  miss cost
//     robust: 24.                weak: 14.      WRONG by 1.7x
//   which=4  row-work per access
//     robust: (45*24 + 55*48)/100 = (1080 + 2640)/100 = 37.2 -> 37
//     weak:   18.                                WRONG by 2.1x
//
//   robust: 5 of 5 reconstructible, 5 of 5 correct at the new config
//   weak:   1 of 5 correct -- and the one it gets right is the one
//           that does not depend on any of the changed inputs
//
//   gap: 4 of 5 numbers wrong by factors of 1.7x to 4x, all quoted at
//   full confidence, and the single agreement is the identity that has
//   no configuration in it.

One of five agrees, and it is the identity with no configuration in it. That is the diagnostic. DERIVED: bytes-per-burst is right in both builds because it depends on nothing that changedso the claims that survive a configuration change are exactly the ones that were derived, and the agreement pattern identifies them without any outside knowledge.

And the misleading evidence here is precision, which is worth naming because it inverts an instinct. DERIVED: “28 cycles” sounds more knowledgeable than “tRP plus tRCD”, and only the second is an answer. CURRICULUM-DERIVED from 18.4 §1's grades: 28 is grade A — documented for a named configuration — and quoting it as a general figure is category drift performed out loud. The expression is grade B: a documented mechanism, and it holds at every bin.

The pass criterion is therefore a preference about form, not about accuracy. DERIVED: state the expression and then evaluate it. “A conflict costs tRP plus tRCD, so about 48 cycles at DDR5-6400” carries the rebuild and the number; “28 cycles” carries neither. And the first form survives every follow-up the second one fails.

8. Review Item 3 — Can You Name What the Answer Omits?

FacetContent
Under reviewthe answer's scope
Invariant at riskthe listener knows the answer is partial
Where it livesthe sentence that was not said
Evidence to demandone named omission, with why it was left out
What escapesa partial answer received as a complete one
How DV proves itask what else matters here and see whether anything arrives
Telemetrythe omission, stated
Misleading evidencea complete-sounding answer, because nothing signals incompleteness

DERIVED: every answer to a real question is partial, so naming an omission costs nothing in accuracy and buys the listener the answer's scope. The item is not about humility — it is about the same thing 33.6 §14 was about: a claim with a stated limit.

CURRICULUM-DERIVED from 28.7 §3's formulation, which this chapter applies to speech: “a gate is a statement with a stated limit.” DERIVED: so is a good answer, and an answer that states no limit is claiming a scope it does not have.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: an answer carries its omissions, and a claimed scope
// is compared against what was covered.
module omission_awareness #(
    parameter int NDIM = 8
)(
    input  logic       clk,
    input  logic       rst_n,
    input  logic       answer,
    input  logic [NDIM-1:0] dims_relevant,   // what the question touches
    input  logic [NDIM-1:0] dims_covered,    // what the answer addressed
    input  logic [NDIM-1:0] dims_named,      // what the answer said it omits
    output logic [NDIM-1:0] omitted,
    output logic [NDIM-1:0] unnamed_omissions,
    output logic [3:0] omitted_count,
    output logic [3:0] unnamed_count,
    output logic       scope_honest
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      omitted <= '0; unnamed_omissions <= '0;
      omitted_count <= '0; unnamed_count <= '0; scope_honest <= 1'b0;
    end else if (answer) begin
      automatic logic [NDIM-1:0] om = dims_relevant & ~dims_covered;
      automatic logic [NDIM-1:0] un = om & ~dims_named;
      omitted           <= om;
      unnamed_omissions <= un;
      omitted_count     <= 4'($countones(om));
      unnamed_count     <= 4'($countones(un));
      // Honesty is not completeness. An answer may omit anything as
      // long as it says so -- which is exactly 33.7 section 10's rule about
      // eliminated versus never examined.
      scope_honest      <= ($countones(un) == 0);
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: cover what you know.
//
//   scope_honest <= ($countones(dims_covered) != 0);   // <-- the defect
//   // and `dims_named` does not exist
//
// CONTRACT VIOLATED: nothing. The answer is correct about everything it
// addresses.
//
// WHY IT SURVIVES: an answer that addresses four of eight relevant
// dimensions, correctly and in detail, is a good answer. Nothing in it
// is wrong. And adding "I have not addressed refresh or thermals" reads
// as weakness to a speaker and as scope to a listener -- so the
// incentive runs the wrong way.
//
// TRACE (ILLUSTRATIVE, the question is "how would you improve this
// controller's memory bandwidth?"; eight relevant dimensions:
// 0 scheduling  1 page policy  2 address mapping  3 burst size
// 4 refresh  5 turnaround  6 requester mix  7 thermals):
//   an answer covering scheduling, page policy, address mapping and
//   burst size -- the four a controller engineer owns:
//   robust: omitted = {refresh, turnaround, requester mix, thermals}
//           dims_named = {} -> unnamed_count 4, scope_honest 0
//           With one sentence -- "I have not covered refresh,
//           turnaround, the requester mix or thermals; the first two
//           are device-bounded and the last two are outside the
//           controller" -- unnamed_count 0, scope_honest 1.
//   weak:   four dimensions covered, answer complete.
//
//   and the cost of the omission, measured against this module:
//     requester mix   -- 33.5 section 9 found the requester owns 1116 of
//                        4096 cycles, larger than any controller lever
//     turnaround      -- 33.5 section 9's rejected proposal: ceiling 180
//                        cycles against a 700-cycle gap
//   gap: 4 unnamed omissions, and one of them contains the largest
//   available lever. The answer is not wrong; its scope is claimed
//   rather than stated, and the claimed scope excludes the answer.

The unnamed omission containing the largest lever is the finding, and it is predictable rather than unlucky. DERIVED: an engineer covers the dimensions they own, and Module 32's result is that the deciding quantities sit outside the memoryso the dimensions most likely to be omitted are systematically the ones with the most leverage.

And the incentive genuinely runs the wrong way, which the item has to acknowledge to be useful. DERIVED: naming an omission sounds like a gap to the speaker and reads as scope to the listener, and only the second reading is about the answer. CURRICULUM-DERIVED from 30.7 §2, which owns the closest case — how to say it varies without sounding evasive: the resolution there is the same as here, which is to say what varies and why, so that the statement carries information rather than hedging.

The pass criterion is one sentence, and its position matters. DERIVED: named at the end, an omission reads as a retraction; named at the start, it reads as a frame. “I will take the controller levers; refresh and the requester mix are the two bigger ones and they are not mine” is a scope statement that makes the rest of the answer stronger, and it is the same information.

9. Review Item 4 — Does Every It Depends Name the Variable, the Direction, and the Magnitude?

FacetContent
Under reviewevery conditional answer
Invariant at riskit depends transfers information rather than deferring
Where it livesthe two words, and whatever follows them
Evidence to demandthe variable, which way the answer moves, and by roughly how much
What escapesa hedge received as a non-answer, or worse, as an answer
How DV proves itask depends on what and count the parts that arrive
Telemetrythree fields per conditional
Misleading evidenceit is true — the answer really does depend

CURRICULUM-DERIVED from 30.7 §2, which owns the hard case and its resolution: the placement rule, the three-zone reading of the controller/PHY boundary, and how to say it varies without sounding evasive. This item supplies the general three-part structure, and 30.7 supplies the hardest instance of it.

DERIVED: it depends with no parts is indistinguishable from not knowing; with all three parts it is strictly more informative than any single answer would have been.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: a conditional answer is three fields, and fewer than
// three is not an answer.
module it_depends_structure #(
    parameter int NCOND = 6
)(
    input  logic       clk,
    input  logic       rst_n,
    input  logic       state_conditional,
    input  logic       names_variable,
    input  logic       names_direction,
    input  logic [7:0] magnitude_x10,     // 0 = not given
    output logic       conditional_complete,
    output logic [3:0] complete_count,
    output logic [3:0] hedge_count,
    output logic [3:0] partial_count
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      conditional_complete <= 1'b0; complete_count <= '0;
      hedge_count <= '0; partial_count <= '0;
    end else if (state_conditional) begin
      automatic bit all3 = names_variable && names_direction
                        && (magnitude_x10 != 8'd0);
      conditional_complete <= all3;
      if (all3)
        complete_count <= complete_count + 1'b1;
      else if (!names_variable)
        // No variable: this is a hedge, and it is the only case that
        // carries no information at all.
        hedge_count <= hedge_count + 1'b1;
      else
        partial_count <= partial_count + 1'b1;
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: the variable is enough.
//
//   conditional_complete <= names_variable;      // <-- the defect
//
// CONTRACT VIOLATED: nothing stated. Naming the variable is already
// better than a bare hedge, and most engineers stop there.
//
// WHY IT SURVIVES: "it depends on the access pattern" is true,
// specific, and sounds like an answer. It is one part of three.
//
// TRACE (ILLUSTRATIVE, six conditional answers):
//   1 "depends on the access pattern"
//       variable yes, direction no, magnitude no  -> PARTIAL
//   2 "depends on the row-hit rate -- below about 50% close-page wins,
//      and the gap is around 20% of row-work cycles"
//       all three  -> COMPLETE.  (And 33.5 section 12 is the qualification:
//       the crossover is in row-work CYCLES, not at a hit rate.)
//   3 "it varies by implementation"
//       variable no  -> HEDGE
//   4 "depends on whether the PHY or the controller owns gate
//      placement; if the controller computes it, a board change breaks
//      it, and 33.3 section 6 measured that as working on exactly one board"
//       all three  -> COMPLETE
//   5 "depends on the workload"
//       variable named but at a uselessly coarse grain, no direction,
//       no magnitude -> PARTIAL
//   6 "depends on the requester mix -- more deadline-bearing requesters
//      moves the binding constraint from bandwidth to latency, and
//      33.5 section 8 measured two workloads at identical occupancy with
//      opposite bounds"
//       all three  -> COMPLETE
//
//   robust: complete 3, partial 2, HEDGE 1
//   weak:   5 of 6 "complete" -- it counts answers 1 and 5 as complete
//           because both name a variable.
//
//   gap: two answers that name a variable and say nothing about how the
//   answer moves, counted as informative. And answer 5 is the more
//   damaging of the two, because "the workload" is a variable name so
//   coarse that naming it eliminates nothing -- which is 33.7 section 7's
//   finding about experiments that perturb a shared condition.

Answer 5 is the finding: “depends on the workload” names a variable so coarse that naming it eliminates nothing. DERIVED: it is structurally the same defect as 33.7 §7's experiment that perturbs a condition the whole hypothesis set depends ona variable that everything depends on partitions nothing. The variable must be one the listener could go and measure.

And the three-part form is strictly more informative than a committed answer, which is the item's argument for why it is not a hedge. DERIVED: “close-page” answers one configuration; “below about 50% hits close-page wins, and the gap is around 20% of row-work cycles” answers all of them — and it carries the qualification that 33.5 §12 supplies. CURRICULUM-DERIVED from 23.5, which owns the crossover and its closed form: the closed form is the three-part answer, and quoting it is the difference between a hedge and a model.

10. Review Item 5 — Can You Name What the Recommendation Costs?

FacetContent
Under reviewevery recommendation in the answer
Invariant at riskthe listener can weigh the recommendation
Where it livesthe sentence after the recommendation
Evidence to demandone named cost, in a currency the listener holds
What escapesa recommendation adopted without its trade
How DV proves itask what does that cost and see whether a currency arrives
Telemetrythe cost, beside the benefit
Misleading evidencethe recommendation is correct, and it does help

CURRICULUM-DERIVED from 23.4, which owns what reordering gains in throughput and costs in latency, and from 23.5, which owns why neither fixed page policy wins across workloads. DERIVED: this track has established that every controller lever is a trade, so a recommendation with no named cost is incomplete by the track's own results.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: a recommendation carries a cost in a named currency.
package recommendation_cost_pkg;
  typedef enum int { CUR_LATENCY, CUR_BANDWIDTH, CUR_POWER, CUR_AREA,
                     CUR_BOOT_TIME, CUR_COMPLEXITY, CUR_NONE } cur_e;

  typedef struct {
    string rec;
    cur_e  cost_currency;
    int    cost_x10;        // magnitude, x10, in that currency's units
    string owner;           // who pays
  } rec_t;

  // ILLUSTRATIVE, six recommendations this track has the numbers for.
  rec_t RECS[] = '{
    '{"reorder to favour row hits",  CUR_LATENCY,    250, "tail requesters"},
    '{"switch to close-page",        CUR_BANDWIDTH,  120, "hit-heavy streams"},
    '{"widen the burst",             CUR_BANDWIDTH,  500, "scatter traffic"},
    '{"raise the refresh rate",      CUR_BANDWIDTH,   40, "everyone"},
    '{"widen the training sweep",    CUR_BOOT_TIME,  330, "boot"},
    '{"add a second channel",        CUR_AREA,       100, "the floorplan"}
  };
endpackage

module recommendation_cost (
    input  logic       clk,
    input  logic       rst_n,
    input  logic       audit,
    output logic [3:0] with_cost,
    output logic [3:0] without_cost,
    output logic [3:0] with_owner,
    output logic       recommendations_weighable
);
  import recommendation_cost_pkg::*;

  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      with_cost <= '0; without_cost <= '0; with_owner <= '0;
      recommendations_weighable <= 1'b0;
    end else if (audit) begin
      automatic int c = 0, n = 0, o = 0;
      foreach (RECS[i]) begin
        if ((RECS[i].cost_currency != CUR_NONE) && (RECS[i].cost_x10 != 0)) begin
          c++;
          // The owner is the field that makes a cost weighable. A cost
          // nobody is named as paying is a cost nobody objects to --
          // 33.5 section 9's `owner_cycles` finding, in a sentence.
          if (RECS[i].owner != "") o++;
        end else begin
          n++;
        end
      end
      with_cost    <= 4'(c);
      without_cost <= 4'(n);
      with_owner   <= 4'(o);
      recommendations_weighable <= (n == 0) && (o == c);
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: the benefit alone.
//
//   typedef struct { string rec; int benefit_pct; } rec_t;
//   recommendations_weighable <= 1'b1;        // <-- the defect
//
// CONTRACT VIOLATED: 23.4's gain/cost pairing and 23.5's result that
// neither fixed policy wins across workloads.
//
// WHY IT SURVIVES: the benefits are real and measured. Reordering does
// improve throughput. Close-page does help conflict-heavy streams.
// Every recommendation in the list works.
//
// TRACE (ILLUSTRATIVE, the six recommendations above):
//   robust: with_cost 6, with_owner 6, without_cost 0,
//           recommendations_weighable 1
//     -- and two of the six become obviously wrong once the cost is
//        stated:
//        "widen the burst" costs 50% of payload efficiency on scatter
//          traffic -- 33.5 section 6's BC4 trace in reverse
//        "widen the training sweep" costs 33% more boot time --
//          33.4 section 18's M14, which every gate in this module passed
//   weak:   six benefits, no costs, all weighable
//
//   gap: six recommendations with no cost and no payer. Two of the six
//   are net-negative for the traffic they were proposed for, and
//   neither is wrong about its benefit.

Two of six become obviously wrong once the cost is stated, and neither was wrong about its benefit. DERIVED: widening the burst on scatter traffic buys command efficiency and spends payload efficiency33.5 §6's trace, run in the other direction — and widening the training sweep is exactly 33.4 §18's M14, the mutation every gate in this module passed.

The owner field is the part that makes a cost weighable, and it is the part usually missing even when a cost is given. DERIVED: “it costs some latency” is a cost nobody objects to; “it costs about 25% on the tail requesters” names a payer who can. CURRICULUM-DERIVED from 33.5 §9's owner_cycles: the same finding, in a sentence — an unowned quantity is one nobody defends.

11. Review Item 6 — Where Does the Claim Stop Being True?

FacetContent
Under reviewevery general claim
Invariant at riskthe claim's scope is stated rather than implied as universal
Where it livesthe clause after the claim
Evidence to demandthe configuration, load or generation at which it fails
What escapesa true claim applied where it is false
How DV proves itask when is that not true and see whether a boundary arrives
Telemetrythe claim with its validity region
Misleading evidencethe claim is true, and true in every case the speaker has met

CURRICULUM-DERIVED from 18.4 §1's four evidence grades and 32.1 §15's variety 11, whose failure mode is category driftand from 31.1 §14's variety 10, parameter-conditional soundness. DERIVED: a claim that is sound at one configuration and unsound at another is variety 10 stated out loud, and the boundary is the missing field.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: every claim carries a validity region and the
// mechanism that bounds it.
module claim_boundary #(
    parameter int NCLAIM = 6
)(
    input  logic       clk,
    input  logic       rst_n,
    input  logic       audit,
    input  logic [5:0] has_boundary,     // per claim
    input  logic [5:0] boundary_is_mechanism,  // vs "I have not seen it fail"
    output logic [3:0] bounded_count,
    output logic [3:0] mechanism_count,
    output logic [3:0] unbounded_count,
    output logic       claims_scoped
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      bounded_count <= '0; mechanism_count <= '0;
      unbounded_count <= '0; claims_scoped <= 1'b0;
    end else if (audit) begin
      bounded_count   <= 4'($countones(has_boundary));
      // A boundary given as a MECHANISM is a claim about why; one given
      // as experience is a claim about the speaker's history, which is
      // 33.6 section 7's "the order has always worked" in a sentence.
      mechanism_count <= 4'($countones(has_boundary & boundary_is_mechanism));
      unbounded_count <= 4'(NCLAIM - $countones(has_boundary));
      claims_scoped   <= (has_boundary == 6'b111111)
                      && (boundary_is_mechanism == 6'b111111);
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: state the claim.
//
//   claims_scoped <= 1'b1;        // <-- the defect
//
// CONTRACT VIOLATED: 18.4 section 1's grades. Every claim below is grade A
// or C -- true for a named configuration or recovered by measurement --
// and stating it unbounded consumes it as grade B.
//
// TRACE (ILLUSTRATIVE, six general claims, with their real boundaries):
//   1 "open-page is the right default"
//       boundary: fails below the row-work crossover -- 23.5 owns the
//       closed form, and 33.5 section 12 measured close-page winning at a
//       62% hit rate.  MECHANISM: conflict costs tRP + tRCD.
//   2 "refresh costs a few percent"
//       boundary: fails at high temperature, where the refresh rate
//       doubles -- 15.x owns the mechanism.  MECHANISM: retention.
//   3 "more banks means more parallelism"
//       boundary: fails once tFAW binds -- 14.8 owns the rolling
//       activate window.  MECHANISM: four activates per window.
//   4 "wider bursts are more efficient"
//       boundary: fails on scatter traffic -- 12.4 owns the payload
//       measure.  MECHANISM: discarded bytes.
//   5 "the controller is the bottleneck"
//       boundary: fails when the requester mix is the variable --
//       Module 32's spine.  MECHANISM: 33.5 section 9's owner_cycles.
//   6 "training establishes margin"
//       boundary: false as stated -- training establishes that a
//       setting was COMMITTED.  MECHANISM: 28.1 section 5's one-tap window.
//
//   robust: bounded 6, mechanism 6, unbounded 0, claims_scoped 1
//   weak:   six claims, all unbounded, all "scoped"
//
//   gap: six claims, each true inside a region and stated as universal.
//   And claim 6 is the one to notice: it is not a claim with a boundary,
//   it is a claim that is FALSE as stated -- 33.6 section 14 found it as one
//   of three unlicensed margin assumptions in a bring-up plan.

Claim 6 is the finding, and it is a different defect from the other five. DERIVED: “training establishes margin” has no region in which it is true — training establishes that a setting was committed. CURRICULUM-DERIVED from 28.1 §5 via 28.7 §3: a committed setting at the centre of a one-tap window passes every digital check. So asking for a boundary distinguishes a claim that is regionally true from one that is simply wrong, and the first five produce a region while the sixth produces a correction.

And the mechanism field is what separates a boundary from an anecdote. DERIVED: “it fails above 85 degrees” with no mechanism is a report of one measurement; with “because retention falls and the refresh rate doubles” it is a prediction that transfers to a part nobody has tested. CURRICULUM-DERIVED from 33.6 §7's finding about “the order has always worked”: an experience-shaped boundary has an unenumerated scope, exactly as an experience-shaped order does.

12. Review Item 7 — Is I Do Not Know Followed by What You Would Measure?

FacetContent
Under reviewthe moment you reach the edge of what you know
Invariant at riskreaching the edge produces information rather than a stop
Where it livesthe sentence after I do not know
Evidence to demandthe observation you would make, and what each outcome would mean
What escapesa guess delivered in the same register as an answer
How DV proves itwhether anything follows the admission
Telemetrythe admission, plus the experiment
Misleading evidencea plausible guess, which is the most common thing that follows

This is the item 33.7 §13 prepared, and the parallel is exact. DERIVED: an unfalsifiable conclusion closes an investigation with no route back in; a bare I do not know closes a question the same way. And a guess is worse than either, because it closes the question with a wrong answer in it.

DERIVED: the three possible continuations are a guess, a stop, and an experiment — and only the third leaves the question in a better state than it started.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: reaching the edge produces a named experiment with
// interpreted outcomes.
module unknown_protocol (
    input  logic       clk,
    input  logic       rst_n,
    input  logic       reach_edge,
    input  logic       admits,
    input  logic       names_experiment,
    input  logic       interprets_outcomes,   // what each result would mean
    input  logic       names_bound,           // what you DO know around it
    output logic [2:0] continuation,          // 0 guess 1 stop 2 experiment
    output logic [3:0] edges_reached,
    output logic [3:0] edges_productive,
    output logic [3:0] edges_guessed
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      continuation <= '0; edges_reached <= '0;
      edges_productive <= '0; edges_guessed <= '0;
    end else if (reach_edge) begin
      edges_reached <= edges_reached + 1'b1;
      if (!admits) begin
        continuation  <= 3'd0;
        edges_guessed <= edges_guessed + 1'b1;
      end else if (names_experiment && interprets_outcomes) begin
        continuation     <= 3'd2;
        edges_productive <= edges_productive + 1'b1;
      end else begin
        continuation <= 3'd1;
      end
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: fill the gap.
//
//   // there is no `admits` path at all; every edge produces an answer
//   continuation <= 3'd0;
//
// CONTRACT VIOLATED: nothing stated. And note the incentive: in most
// rooms, a plausible answer is rewarded over an admission.
//
// WHY IT SURVIVES: the guesses are usually reasonable, because they are
// produced by the same intuition that produces the correct answers.
// They are right often enough that the strategy has a positive record.
//
// TRACE (ILLUSTRATIVE, four questions reaching the speaker's edge):
//   Q1 "what is tRFC on this part?"
//     robust: admits; experiment = "read it from the datasheet's speed
//       bin table"; outcomes: any value, and the bound I do know is
//       that it scales with density.  -> PRODUCTIVE
//     weak:   "about 350 nanoseconds" -- a figure for a different
//       density, stated with no bin.  33.5 section 14's defect, spoken.
//   Q2 "does this controller reorder across bank groups?"
//     robust: admits; experiment = "read the scheduler's legality mask
//       and check whether bank group is in it"; outcomes: in the mask
//       means no reorder, absent means it may.  -> PRODUCTIVE
//     weak:   "it should" -- a guess about a design choice.
//   Q3 "why did the training bitmap come back all zeros?"
//     robust: admits that the bitmap does not say; experiment =
//       33.7 section 6's discriminator with the highest yield; outcomes
//       eliminate two of six causes.  -> PRODUCTIVE
//     weak:   "marginal read margin" -- one of six, and 33.7 section 6's
//       trace has the planted cause elsewhere.
//   Q4 "will this pass at the top bin?"
//     robust: admits; experiment = "measure the window width at the
//       top bin"; outcomes: a width above the drift budget passes.
//       -> PRODUCTIVE, and it is 33.6 section 14's missing bring-up stage.
//     weak:   "it should be fine" -- unfalsifiable, which is
//       33.7 section 13's defect.
//
//   robust: edges_reached 4, productive 4, guessed 0
//   weak:   edges_reached 4, guessed 4
//
//   gap: four guesses, three of which reproduce a defect this module
//   already documented -- an operating point dropped, a cause named
//   from a set of six, and an unfalsifiable prediction.

Three of four guesses reproduce a defect this module already documented, which is the item's most useful result. DERIVED: Q1 drops an operating point (33.5 §14), Q3 names one cause from a set of six (33.7 §6), and Q4 is unfalsifiable (33.7 §13). The guesses are not random — they fail in exactly the ways the seven preceding gates catalogued, because a guess is an answer with its provenance removed.

And the productive continuation is cheap: an observation and what each outcome would mean. DERIVED: “I do not know; I would read the legality mask, and if bank group is in it there is no reordering across groups” is more informative than any guess and shorter than most. CURRICULUM-DERIVED from 28.5 §9's signature → hypotheses → experiment structure: the third element is the continuation, and a speaker who has internalised that structure produces it automatically.

The names_bound field is the item's optional fourth part and it is the one that makes an admission feel like competence. DERIVED: “I do not know tRFC for this density, but I know it scales with density and that it is the parameter that makes refresh expensive at capacity” bounds the gapthe listener learns the shape of what is unknown, which is itself information.

13. Review Item 8 — How Many of the Seven Gates' Questions Can You Ask of Your Own Answer?

FacetContent
Under reviewthe answer, against the seven preceding gates
Invariant at riskthe answer would survive the review you would give somebody else
Where it livesthe gap between the reviewer you are and the answerer you are
Evidence to demandper gate, the one question it asks, applied to your own sentence
What escapesa reviewer who catches in others what they produce themselves
How DV proves ithand your own answer to the checklists and count
Telemetryseven answers, one per gate
Misleading evidenceyou know the checklists, and knowing them feels like applying them

DERIVED: this is the module's composition item, and it is the reason the eight chapters are one module rather than eight. Each preceding gate reduces to a single question, and all seven can be asked of one spoken sentence.

GateIts one question, asked of your answer
33.1what mechanism does this claim assume exists?
33.2would this be true of every input, or of the one you pictured?
33.3which quantity in it was measured, and on what?
33.4what evidence would a listener need, and could they obtain it?
33.5what does that number divide by?
33.6what does this claim license the next claim to assume?
33.7how many causes are consistent with what you just described?
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: the seven questions, applied and scored.
module self_gate_audit (
    input  logic       clk,
    input  logic       rst_n,
    input  logic       audit,
    input  logic [6:0] gate_asked,     // did you ask it?
    input  logic [6:0] gate_passed,    // did the answer survive?
    output logic [3:0] asked_count,
    output logic [3:0] passed_count,
    output logic [3:0] unasked_count,
    output logic [2:0] first_unasked,
    output logic       answer_reviewed
);
  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      asked_count <= '0; passed_count <= '0; unasked_count <= '0;
      first_unasked <= 3'd7; answer_reviewed <= 1'b0;
    end else if (audit) begin
      automatic int firstu = 7;
      for (int g = 0; g < 7; g++)
        if (!gate_asked[g] && (firstu == 7)) firstu = g;
      asked_count   <= 4'($countones(gate_asked));
      // A gate can only be passed if it was asked. Counting a pass on
      // an unasked gate is the defect, and it is the same shape as
      // 33.7 section 10's omission recorded as an elimination.
      passed_count  <= 4'($countones(gate_asked & gate_passed));
      unasked_count <= 4'(7 - $countones(gate_asked));
      first_unasked <= 3'(firstu);
      answer_reviewed <= (gate_asked == 7'b1111111);
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: knowing the checklists.
//
//   answer_reviewed <= 1'b1;      // I have read all eight chapters
//
// CONTRACT VIOLATED: nothing. And the failure is not ignorance -- the
// speaker knows every question in the table above.
//
// WHY IT SURVIVES: knowing a checklist and applying it to yourself are
// different acts, and the first feels like the second. 33.7 section 19 found
// five of eight debug items answerable without domain knowledge, and
// they still go unasked -- because asking requires stopping.
//
// TRACE (ILLUSTRATIVE, one answer: "the row-hit rate is 71%, so
// open-page is the right policy here"):
//   robust, seven questions asked:
//     33.1  what mechanism?  -- a page policy in the scheduler. ASKED, PASS
//     33.2  every input?     -- pictured a streaming workload only. FAIL
//     33.3  measured on what? -- 71% came from one trace. FAIL
//     33.4  obtainable?      -- the listener cannot check 71%. FAIL
//     33.5  divide by what?  -- hits over (hits+miss+conflict); and
//           33.5 section 12 says the comparison needs row-work CYCLES. FAIL
//     33.6  licenses what?   -- it licenses nothing about margin or
//           bandwidth, and the sentence implies both. FAIL
//     33.7  how many causes? -- not a cause question. ASKED, PASS
//     asked 7, passed 2, unasked 0 -> the sentence is revised before
//     it is spoken: "on this trace the hit rate is 71%; whether
//     open-page wins depends on row-work cycles, and at this conflict
//     rate it is close."
//   weak: asked 0, and the original sentence is spoken.
//
//   gap: five of seven gates fail on a sentence that is arithmetically
//   correct and would pass unchallenged in most rooms. And the revision
//   is one sentence longer.

Five of seven gates fail on a sentence that is arithmetically correct. That is the module's composition result. DERIVED: “the row-hit rate is 71%, so open-page is the right policy here” contains a true measurement and an unlicensed inference — and the inference is the one 33.5 §12 measured as wrong at a higher hit rate.

And the revision costs one sentence, which is the item's practical claim. DERIVED: naming the trace, naming the currency, and saying it is close converts five failures into a defensible answerso the cost of passing this gate is length, not knowledge.

The failure mode is not ignorance and the item has to say so. DERIVED: the speaker in the weak build knows all seven questions. CURRICULUM-DERIVED from 33.7 §19, which found five of eight debug items answerable with no domain knowledge and still unasked: the barrier is stopping, not knowing — and an answer given in conversation has no natural place to stop.

14. Review Item 9 — Which of the Twelve Varieties Would Catch Your Own Assertion?

FacetContent
Under reviewany property or check you propose out loud
Invariant at riskthe property you would write survives the taxonomy you would apply
Where it livesthe property you just described in words
Evidence to demandthe variety it is exposed to, and the cover that would reveal it
What escapesa verification proposal with a named defect its proposer teaches
How DV proves itrun 30.9 §7's three questions against your own sentence
Telemetrythe variety, named
Misleading evidencethe property is correct, and correct is what a property is supposed to be

CURRICULUM-DERIVED from 30.9 §6's eight-variety table, extended to eleven by 30.10 §12, 31.1 §14 and 32.1 §15, and to twelve by 33.4 §15. And from 30.9 §7's three questions, which take under a minute per property.

DERIVED: the taxonomy is a review procedure and this item is the observation that its author is the least likely person to apply it to themselves — because a property you just wrote is one you just reasoned about, and having reasoned about it feels like having checked it.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ROBUST PROCESS: a proposed property is classified against the twelve
// before it is offered.
package self_variety_pkg;
  typedef enum int {
    V1_NARROW_TIME, V2_NO_KEY_SIGNAL, V3_INEXPRESSIBLE,
    V4_SHARED_MODEL, V5_NO_RANGE, V6_VACUOUS,
    V7_NOT_INDEPENDENT, V8_NO_CONSERVATISM, V9_RESET_GUARD,
    V10_PARAM_CONDITIONAL, V11_EVIDENCE_GRADE, V12_NO_MAGNITUDE,
    V_NONE
  } variety_e;
endpackage

module self_variety_audit (
    input  logic       clk,
    input  logic       rst_n,
    input  logic       propose,
    // 30.9 section 7's three questions, as inputs
    input  logic       names_a_signal,
    input  logic       signal_is_shared_constant,
    input  logic       antecedent_reachable_known,
    input  logic       covers_a_window,
    input  logic       forbids_only,
    input  logic       obligation_comparative,
    input  logic       value_is_derived,
    input  logic       has_unbounded_parameter,
    output logic [3:0] variety_found,
    output logic       property_offerable,
    output logic [3:0] proposals_clean,
    output logic [3:0] proposals_flagged
);
  import self_variety_pkg::*;

  always_ff @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
      variety_found <= 4'(V_NONE); property_offerable <= 1'b0;
      proposals_clean <= '0; proposals_flagged <= '0;
    end else if (propose) begin
      automatic variety_e v = V_NONE;
      // The three questions, in 30.9 section 7's order, and the first match
      // wins -- because a property with two exposures has the cheaper
      // one fixed first.
      if (!names_a_signal)                  v = V2_NO_KEY_SIGNAL;
      else if (signal_is_shared_constant)   v = V4_SHARED_MODEL;
      else if (!antecedent_reachable_known) v = V6_VACUOUS;
      else if (!covers_a_window)            v = V1_NARROW_TIME;
      else if (forbids_only)                v = V8_NO_CONSERVATISM;
      else if (obligation_comparative)      v = V3_INEXPRESSIBLE;
      else if (value_is_derived)            v = V5_NO_RANGE;
      else if (has_unbounded_parameter)     v = V12_NO_MAGNITUDE;

      variety_found      <= 4'(v);
      property_offerable <= (v == V_NONE);
      if (v == V_NONE) proposals_clean   <= proposals_clean + 1'b1;
      else             proposals_flagged <= proposals_flagged + 1'b1;
    end
  end
endmodule
Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// INTENTIONALLY DEFECTIVE. WEAK PROCESS: correctness is the criterion.
//
//   property_offerable <= property_is_correct;     // <-- the defect
//
// CONTRACT VIOLATED: 30.9 section 6 -- eight reasons a green assertion
// proves nothing, none of which is incorrectness.
//
// WHY IT SURVIVES: every property offered is correct. That is the
// point of the taxonomy and the reason it needed twelve entries.
//
// TRACE (ILLUSTRATIVE, four properties proposed out loud in one
// conversation):
//   P1 "assert that a column command never arrives before act + tRCD"
//     names a signal, not shared, antecedent reachable, one cycle only
//     -> V1_NARROW_TIME. 30.4 section 8 owns the instance.
//   P2 "assert that the grant is one-hot"
//     names a signal -- but not `legal_mask`, so it is about the
//     grant's SHAPE -> V2_NO_KEY_SIGNAL. 30.5 section 11's defect exactly.
//   P3 "assert the scheduler picks the widest eligible run"
//     obligation is comparative -> V3_INEXPRESSIBLE. Needs a model,
//     per 30.6 section 11.
//   P4 "assert that utilisation stays under 100%"
//     value is derived and the property IS the range -> clean on
//     variety 5, but the parameter setting `WIN` is unbounded
//     -> V12_NO_MAGNITUDE. 33.4 section 15's variety.
//
//   robust: proposals_flagged 4, proposals_clean 0 -- and each is
//     named, with the chapter that owns the instance
//   weak:   all four correct, all four offerable
//
//   gap: four properties, four distinct varieties, zero incorrectness.
//   And P2 is the one to notice: it is the most natural property to
//   propose for an arbiter and it is variety 2, which 30.9 section 7 costs
//   at SECONDS to check -- "which signal, if corrupted, would make this
//   fail?" The answer is the grant, and the grant's legality is not
//   the grant's shape.

Four properties, four distinct varieties, zero incorrectness. That is the item. DERIVED: the taxonomy has twelve entries because none of them is the property is wrong, and a speaker whose criterion is correctness will offer all four.

P2 is the one worth internalising, because it is the most natural property anyone proposes for an arbiter. DERIVED: “the grant is one-hot” is about the grant's shape, and the obligation is about its legality. CURRICULUM-DERIVED from 30.5 §11, where it is the recorded defect: every property was about the grant's shape, none mentioned legal_mask, so none saw the grant leave the legal set. And 30.9 §7 costs that check at seconds — one question, which signal, if corrupted, would make this fail?

The first-match ordering in the robust build is deliberate and is the item's practical content. DERIVED: a property with two exposures has the cheaper one fixed first, and 30.9 §7's three questions already run in cost order — signal, then reachability, then what it does not constrain. So the audit is not twelve checks; it is three questions whose branches name the variety.

15. The Seven Gates Turned Inward

Nine items, and they are not nine independent habits. Sorted by what the speaker failed to carry, they collapse into four.

#What was not carriedItemsThe one-line self-test
1Provenance — where the claim came from§6, §7, §11could I rebuild this, and where does it stop?
2Scope — what the claim does not cover§8, §9what did I leave out, and what does it depend on?
3Cost — what following the claim would spend§10who pays, and in what currency?
4Review — the checks I would apply to somebody else§13, §14, §12would my own answer pass my own gate?

DERIVED: group 1 is the largest and group 4 is the one that catches the other three. §13 asks the seven gates' questions and §14 asks the taxonomy's — and both of them would have flagged every item in groups 1 to 3.

And group 4's three items have one structure, which is this chapter's sharpest finding. DERIVED: §12, §13 and §14 all fail because the speaker knows the check and does not stop to run it. The unknown_protocol speaker knows that a guess is worse than an experiment. The self_gate_audit speaker knows all seven questions. The self_variety_audit speaker teaches the taxonomy. CURRICULUM-DERIVED from 33.7 §19's result that five of eight debug items need no domain knowledge and still go unasked: the binding constraint across this module's last two chapters is not knowledge, it is the absence of a stopping point.

So the module's final practical output is a stopping point, and it is three questions long.

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
   BEFORE THE SENTENCE LEAVES:

   1  Could I rebuild this?            -- section 6, section 7
        no  -> say "I have heard" or "as I recall", and mean it
   2  Where does it stop being true?   -- section 11, section 9
        nowhere I can name -> it is grade A being spent as grade B
   3  What does it cost, and who pays? -- section 10, section 8
        no answer -> it is a benefit, not a recommendation

DERIVED: three questions, and they take about five seconds. CURRICULUM-DERIVED from 30.9 §7, whose three-question procedure for a property is the direct model for this: under a minute per property there, about five seconds per sentence here, and in both cases the value is that the procedure is short enough to actually run.

16. Quantitative Reasoning

ItemQuantityRobustWeakGapProvenance
§6claims surviving one why9 of 12claimed 123 recognised at 85–90% confidenceDERIVED, ILLUSTRATIVE claims
§7numbers correct at a new configuration5 of 51 of 54 wrong by 1.7× to 4×DERIVED, STRUCTURAL identities
§8unnamed omissions0 after one sentence4one contains the largest leverDERIVED from 33.5 §9
§9complete conditionals of six3, with 2 partial and 1 hedgeclaimed 52 name a variable and no directionDERIVED
§10recommendations with a named cost and payer6 of 60 of 62 of 6 net-negative once statedDERIVED from 23.4, 23.5
§11claims with a mechanism-backed boundary6 of 60 of 61 of the 6 is false as statedDERIVED from 28.1 §5
§12edges producing an experiment4 of 40 of 43 guesses reproduce documented defectsDERIVED
§13gates passed on one sentence2 of 7 asked0 asked5 failures on correct arithmeticDERIVED
§14properties offerable of four044 varieties, 0 incorrectnessDERIVED from 30.9 §6

Sort the nine by what was wrong with the weak answer and this gate's result is the module's cleanest.

ItemThe weak answer wasAnd it
§6fluentcontained three claims that do not survive one why
§7precisequoted four numbers from a configuration it had dropped
§8correct on four dimensionsclaimed a scope covering eight
§9truesaid it depends and stopped
§10a real benefitomitted a cost that inverts two of six
§11true in every case metstated a region as universal
§12plausiblereplaced an experiment with a guess
§13arithmetically rightdrew an inference nothing licensed
§14a correct propertywas exposed to a named variety

DERIVED: every weak answer is fluent, and not one of them is incorrect in the sense a listener could catch. That is the same result as 33.7 §16's — every record true, every inference unlicensed — with the artifact reduced from a document to a sentence.

And two numbers are worth isolating as the module's closing measurements.

§7's one-of-five is the sharpest single figure in this chapter. DERIVED: when the configuration changed, four of five remembered numbers were wrong by factors of 1.7× to 4×, and the one that survived was the identity with no configuration in it. CURRICULUM-DERIVED from 18.4 §1's grades: the surviving claim is grade B — a documented mechanism — and the four that failed were grade A quoted as grade B.

§14's zero-of-four is the module's closing joke at its own expense, and it is meant literally. DERIVED: four properties proposed by a speaker who knows the twelve varieties, and all four are exposed to one. CURRICULUM-DERIVED from 30.9 §6: the taxonomy has twelve entries precisely because correctness is not one of them, and a proposer whose criterion is correctness is using the wrong criterion while knowing the right one.

17. What the Assertions Prove

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
  // ---- Section 6: knowledge provenance. The obligation is that a claim's
  // delivered confidence matches its class, and the check is the
  // follow-up test.
  property p_recognised_does_not_survive_why;
    @(posedge clk) disable iff (!rst_n)
      (ask_why && (CLAIMS[claim_id].kclass == K_RECOGNISED)) |=> !survives_why;
  endproperty
  assert property (p_recognised_does_not_survive_why)
    else $error("a recognised claim was recorded as surviving a follow-up");

  property p_sound_answer_has_no_recognition;
    @(posedge clk) disable iff (!rst_n)
      answer_sound |-> (recognised_count == '0);
  endproperty
  assert property (p_sound_answer_has_no_recognition)
    else $error("an answer was called sound with a recognised claim in it");

  property p_classes_partition_the_claims;
    @(posedge clk) disable iff (!rst_n)
      audit |=> ((derived_count + recalled_count + recognised_count) == 4'd12);
  endproperty
  assert property (p_classes_partition_the_claims)
    else $error("the claim classes do not partition the answer");

  // ---- Section 7: the rebuild. The property that a number must MOVE when
  // its inputs move -- 33.3 section 6's calculated/measured line, as a check
  // on a speaker.
  property p_number_tracks_its_inputs;
    @(posedge clk) disable iff (!rst_n)
      (ask && (which == 3'd1)) |=> (answer == ($past(mt_per_s_x100)
                                               * BUS_BYTES) / 32'd100);
  endproperty
  assert property (p_number_tracks_its_inputs)
    else $error("a quoted number did not change when its inputs did");

  property p_reconstructible_means_answered;
    @(posedge clk) disable iff (!rst_n)
      (answer_valid && reconstructible) |-> (which <= 3'd4);
  endproperty
  assert property (p_reconstructible_means_answered)
    else $error("a number was called reconstructible with no rebuild rule");

  // ---- Section 8: omissions.
  property p_scope_honest_means_named;
    @(posedge clk) disable iff (!rst_n)
      scope_honest |-> (unnamed_count == '0);
  endproperty
  assert property (p_scope_honest_means_named)
    else $error("a scope was called honest with unnamed omissions");

  property p_omitted_is_relevant_minus_covered;
    @(posedge clk) disable iff (!rst_n)
      answer |=> ((omitted & $past(dims_covered)) == '0);
  endproperty
  assert property (p_omitted_is_relevant_minus_covered)
    else $error("a covered dimension was counted as omitted");

  // ---- Section 9: the conditional. Three parts, and the property names all
  // three because naming one is the defect.
  property p_conditional_needs_three_parts;
    @(posedge clk) disable iff (!rst_n)
      conditional_complete |-> ($past(names_variable) && $past(names_direction)
                                && ($past(magnitude_x10) != 8'd0));
  endproperty
  assert property (p_conditional_needs_three_parts)
    else $error("a conditional was called complete with fewer than three parts");

  property p_hedge_is_classified;
    @(posedge clk) disable iff (!rst_n)
      (state_conditional && !names_variable) |=> (hedge_count != '0);
  endproperty
  assert property (p_hedge_is_classified)
    else $error("a conditional naming no variable was not classified as a hedge");

  // ---- Section 10: the cost. And the OWNER, which is 33.5 section 9's finding.
  property p_weighable_needs_cost_and_owner;
    @(posedge clk) disable iff (!rst_n)
      recommendations_weighable |-> ((without_cost == '0)
                                     && (with_owner == with_cost));
  endproperty
  assert property (p_weighable_needs_cost_and_owner)
    else $error("a recommendation set was called weighable with an unowned cost");

  // ---- Section 11: the boundary. Two-sided, because a claim bounded by
  // experience is not bounded -- 33.6 section 7's "always worked".
  property p_scoped_needs_mechanism;
    @(posedge clk) disable iff (!rst_n)
      claims_scoped |-> (mechanism_count == bounded_count);
  endproperty
  assert property (p_scoped_needs_mechanism)
    else $error("a claim's boundary is experience rather than a mechanism");

  property p_unbounded_is_counted;
    @(posedge clk) disable iff (!rst_n)
      audit |=> ((bounded_count + unbounded_count) == 4'd6);
  endproperty
  assert property (p_unbounded_is_counted)
    else $error("the boundary audit does not account for every claim");

  // ---- Section 12: reaching the edge. The productive continuation requires
  // BOTH an experiment and its interpretation.
  property p_productive_needs_interpreted_outcomes;
    @(posedge clk) disable iff (!rst_n)
      (reach_edge && (continuation == 3'd2))
        |-> (admits && names_experiment && interprets_outcomes);
  endproperty
  assert property (p_productive_needs_interpreted_outcomes)
    else $error("an edge was called productive without interpreted outcomes");

  property p_no_admission_is_a_guess;
    @(posedge clk) disable iff (!rst_n)
      (reach_edge && !admits) |=> (edges_guessed != '0);
  endproperty
  assert property (p_no_admission_is_a_guess)
    else $error("an unadmitted edge was not classified as a guess");

  // ---- Section 13: the seven gates. A pass requires the question to have
  // been ASKED -- 33.7 section 10's elimination-versus-omission rule, applied
  // to a self-review.
  property p_pass_requires_asking;
    @(posedge clk) disable iff (!rst_n)
      audit |=> (passed_count <= asked_count);
  endproperty
  assert property (p_pass_requires_asking)
    else $error("a gate was recorded as passed without being asked");

  property p_reviewed_means_all_seven;
    @(posedge clk) disable iff (!rst_n)
      answer_reviewed |-> (asked_count == 4'd7);
  endproperty
  assert property (p_reviewed_means_all_seven)
    else $error("an answer was called reviewed with a gate unasked");

  // ---- Section 14: the taxonomy, self-applied.
  property p_offerable_means_no_variety;
    @(posedge clk) disable iff (!rst_n)
      property_offerable |-> (variety_found == 4'(V_NONE));
  endproperty
  assert property (p_offerable_means_no_variety)
    else $error("a property was offerable with a variety found");

  property p_no_key_signal_is_first;
    @(posedge clk) disable iff (!rst_n)
      (propose && !names_a_signal) |=> (variety_found == 4'(V2_NO_KEY_SIGNAL));
  endproperty
  assert property (p_no_key_signal_is_first)
    else $error("the cheapest check did not run first");

  // And the two-sided companion: a process that flags everything
  // satisfies every property above -- 30.3 section 9's variety 8, one last
  // time and on this chapter's own instrument.
  property p_clean_property_is_offerable;
    @(posedge clk) disable iff (!rst_n)
      (propose && names_a_signal && !signal_is_shared_constant
       && antecedent_reachable_known && covers_a_window && !forbids_only
       && !obligation_comparative && !value_is_derived
       && !has_unbounded_parameter) |=> property_offerable;
  endproperty
  assert property (p_clean_property_is_offerable)
    else $error("a property with no exposure was refused");

  // ---- COVERS.
  // Section 6: a RECOGNISED claim actually reached by a follow-up. An answer
  // audited but never questioned never reaches it.
  cover property (@(posedge clk) disable iff (!rst_n)
                  ask_why && !survives_why);
  // Section 7: a configuration CHANGE. The dimension is the configuration,
  // and asking the same question twice never reaches it -- 31.2 section 14.
  cover property (@(posedge clk) disable iff (!rst_n)
                  ask && (mt_per_s_x100 != $past(mt_per_s_x100)));
  // Section 8: an answer with omissions NAMED, so p_scope_honest is not
  // satisfied by answers that omit nothing.
  cover property (@(posedge clk) disable iff (!rst_n)
                  answer && (omitted_count != '0) && (unnamed_count == '0));
  // Section 9: a bare HEDGE -- the case the item exists for.
  cover property (@(posedge clk) disable iff (!rst_n)
                  state_conditional && !names_variable);
  // And a COMPLETE conditional, so the property is not satisfied by a
  // speaker who never states one.
  cover property (@(posedge clk) disable iff (!rst_n) conditional_complete);
  // Section 10: a recommendation whose cost is named but UNOWNED -- the
  // half-fix, which is more common than no cost at all.
  cover property (@(posedge clk) disable iff (!rst_n)
                  audit && (with_cost != '0) && (with_owner != with_cost));
  // Section 11: a boundary given as EXPERIENCE rather than mechanism.
  cover property (@(posedge clk) disable iff (!rst_n)
                  audit && (bounded_count != mechanism_count));
  // Section 12: an edge reached and ADMITTED. A speaker who never admits
  // one makes p_productive_needs_interpreted_outcomes vacuous.
  cover property (@(posedge clk) disable iff (!rst_n) reach_edge && admits);
  // Section 13: a gate UNASKED. The dimension is the speaker's stopping
  // point, not their knowledge -- section 15's finding.
  cover property (@(posedge clk) disable iff (!rst_n)
                  audit && (unasked_count != '0));
  // Section 14: each of the four varieties this chapter's trace reaches,
  // so the first-match ordering is exercised rather than assumed.
  cover property (@(posedge clk) disable iff (!rst_n)
                  propose && (variety_found == 4'(V2_NO_KEY_SIGNAL)));
  cover property (@(posedge clk) disable iff (!rst_n)
                  propose && (variety_found == 4'(V3_INEXPRESSIBLE)));
  cover property (@(posedge clk) disable iff (!rst_n)
                  propose && (variety_found == 4'(V12_NO_MAGNITUDE)));

Reviewed against the twelve varieties, and two are worth recording because they close the module's arc.

Variety 8 governs p_clean_property_is_offerable, and this is the eighth consecutive chapter in which it forced a two-sided pair. DERIVED: every one of this chapter's items has a do-nothing solution that reads as rigour — an answer that claims nothing survives §6, a speaker who states no conditional survives §9, a process that flags every property survives §14. CURRICULUM-DERIVED from 30.3 §9: a design that is slower than required violates nothing, and a speaker who says nothing is wrong about nothing.

Variety 6 governs five of this chapter's covers, and the antecedents are the speaker's own behaviour. ask_why, state_conditional, reach_edge && admits, conditional_complete, audit. DERIVED: in a speaker who never asks why of themselves, never states a conditional, and never admits an edge, every property here is green and vacuouswhich is the module's pattern for the fifth time, and the last occurrence is the one where the project that never audits is a person.

18. Mutation Testing

Baseline first: all nineteen assertions pass and all thirteen covers are non-zero.

#MutationKilled bySurvived?
M1§6: survives_why <= 1'b1 alwaysp_recognised_does_not_survive_why, by one coverkilled
M2§6: answer_sound <= (recognised_count <= 3)p_sound_answer_has_no_recognitionkilled
M3§6: one claim's class changed to K_RECALLEDp_classes_partition_the_claimskilled*
M4§7: answer <= REMEMBERED[which]p_number_tracks_its_inputs, by one coverkilled
M5§7: reconstructible <= 1'b1 for which == 5p_reconstructible_means_answeredkilled
M6§8: scope_honest <= (omitted_count == 0)p_scope_honest_means_namedkilled*
M7§8: omitted <= dims_relevantp_omitted_is_relevant_minus_coveredkilled
M8§9: conditional_complete <= names_variablep_conditional_needs_three_partskilled
M9§9: drop the hedge branchp_hedge_is_classified, by one coverkilled
M10§10: with_owner <= with_cost unconditionallyp_weighable_needs_cost_and_owner, by one coverkilled
M11§11: mechanism_count <= bounded_countp_scoped_needs_mechanism, by one coverkilled
M12§12: continuation <= 3'd2 on any admissionp_productive_needs_interpreted_outcomeskilled
M13§12: drop the guess branchp_no_admission_is_a_guesskilled
M14§13: passed_count from gate_passed alonep_pass_requires_askingkilled
M15§13: answer_reviewed <= (asked_count >= 4)p_reviewed_means_all_sevenkilled
M16§14: reorder the checks, magnitude firstp_no_key_signal_is_firstkilled
M17§14: property_offerable <= 1'b0 alwaysp_clean_property_is_offerablekilled
M18§6: CLAIMS reduced to the five derived onesnothingSURVIVES
M19§11: NCLAIM and the audit reduced to one claimnothingSURVIVES
M20§13: the seven gates reduced to the two that passnothingSURVIVES

DERIVED: seventeen of twenty killed, three survived, and all three are variety 12 — the fifth consecutive gate at which that is the result, and the last.

M18, M19 and M20 each shrink a scope and keep every mechanism intact. A twelve-claim audit reduced to its five derived claims; a six-claim boundary audit reduced to one; a seven-gate self-review reduced to the two gates the answer passes. DERIVED: all three make the instrument report a clean result on every input, and none touches a mechanism.

M20 is the one to name, because it is this chapter's subject performed on this chapter's instrument. Reducing the seven gates to the two that pass satisfies every property in §13 and reports answer_reviewed. DERIVED: that is §13's weak build reached by a different route — and it is exactly what a speaker does when they apply the gates they are comfortable with. CURRICULUM-DERIVED from 33.4 §15: the fix is a scope requirement — ask all seven or record which you skipped — and a scope requirement is a document, as the variety predicts.

The two conditional kills are worth one line each, for the same reason 33.6 §18's were. M3 is caught only because the partition property counts twelve; on a claim set whose size is not asserted it would pass. M6 is caught only when an answer has named omissions — the cover on (omitted_count != 0) && (unnamed_count == 0) is what guarantees the regression contains one. DERIVED: both are the same lesson — a mutation invisible on the robust artifact is evidence that the robust artifact lacks the condition that exposes it.

And six mutations are killed only by a cover — M1, M4, M9, M10, M11 and M6. M4's is the one that matters: a lookup table is indistinguishable from a rebuild until an input changes, so the cover on mt_per_s_x100 != $past(mt_per_s_x100) is the whole test. CURRICULUM-DERIVED from 31.2 §14's coverage-dimension rule: the dimension is the configuration, and asking the same question a thousand times never reaches it — which is also why the follow-up “and at 3200?” is the single highest-yield question in this chapter.

19. Baseline Defects Found Before Mutation

Each of the nine weak processes run against the robust property set, before any mutation.

ItemWeak process caught byAt what cost
§6p_sound_answer_has_no_recognitionone why per claim
§7p_number_tracks_its_inputsone changed input
§8p_scope_honest_means_namednothing — the field is absent
§9p_conditional_needs_three_partsnothing — count the parts
§10p_weighable_needs_cost_and_ownernothing — the field is absent
§11p_scoped_needs_mechanismnothing — the field is absent
§12p_no_admission_is_a_guessnothing — nothing followed the edge
§13p_pass_requires_askingnothing — no gate was asked
§14p_offerable_means_no_varietythree questions, under a minute

DERIVED: six of nine are found by noticing that nothing was said, and the remaining three cost one question each. That is the cheapest detection profile of the eight gates, and it is also the least acted onCURRICULUM-DERIVED from §15's finding: the binding constraint is a stopping point, not knowledge.

Three of the nine need a specific question rather than an absence, and naming them is the section's output.

ItemThe questionWhat it costs
§6why?one follow-up per claim
§7and at 3200?one changed input
§14which signal, if corrupted, would make this fail?seconds (30.9 §7)

DERIVED: all three are questions a listener asks, and all three are questions a speaker can ask first. CURRICULUM-DERIVED from 30.9 §7, whose first question is the cheapest and highest-yield of its three: the pattern holds here — why is the cheapest of these three and it separates recognition from everything else.

And this gate has no stimulus row, which is the one structural difference from the seven before it. DERIVED: every preceding gate had items requiring a system to be put into a state it would not reach on its own — an inert board, a narrow part, a warm reset, an asymmetric device, an inexact frequency bin. Here the stimulus is a question, and the speaker can supply it. That is the only gate in this module whose hardest item costs nothing but attention.

20. The Module, Composed

Eight gates, seventy review items, and the module's own numbers are worth stating once, because several of them only appear when the eight chapters are read together.

GateItemsIts subjectCheap items
33.18a document
33.29a line of code5 of 9, in source text
33.39a measured value2 of 9
33.49an environment and its report5 of 9, in artifacts
33.59a number7 of 9, in a report
33.69a plan and a log5 of 9, absences
33.78a conclusion5 of 8, absences
this gate9a sentence6 of 9, absences

DERIVED: forty of the seventy items are found without running anything, and in twenty-eight of those forty the finding is that something is absent — a denominator, a column, a class, a reason, a refutation, a boundary, a cost. And all twenty-eight are in the last five gates: 33.1 through 33.3's twelve cheap items are all readings — a port list, a width expression, a reset branch — because a design's defects are in what it says and a process's defects are in what it does not. CURRICULUM-DERIVED from 33.7 §5's formulation, which turns out to describe the second half of the module rather than one gate: these reviews do not work by looking for contradictions; they work by counting what is missing.

Three module-level results appear only across the eight chapters, and each is stated here once.

First: the artifact shrinks and the defect does not change. DERIVED: a document, a line, a value, a report, a number, a log, a conclusion, a sentence — and in all eight the weak artifact is true and licenses more than it supports. 33.3 §16 found three of nine weak builds reporting better numbers than the correct design; 33.4 §17 found seven of nine; 33.5 §16 found four of nine inverted; 33.6 §16 found nine of nine factually accurate; 33.7 §16 found eight of eight containing no false statement. The trend is monotone: the smaller the artifact, the more of the weak versions are simply true.

Second: variety 12 was found at five consecutive gates and never once at the first three. CURRICULUM-DERIVED from 33.4 §15, where it was opened on the evidence of 33.3 §18's three surviving mutations. DERIVED: 33.4, 33.5, 33.6, 33.7 and this chapter each ended with mutation survivors that were quantities or scopes rather than mechanisms — and in each case the fix was a document. The chain is unchanged across all five: a mechanism is checked by a property, a quantity by a bound, a bound's width by an objective, and an objective by a requirement nothing inside engineering establishes.

Third: five once-written documents pay for most of the module. DERIVED: a consequence map over the configuration space, a survival class per observable, a signature vocabulary, an assumes set per stage, and a signature → causes table. CURRICULUM-DERIVED from 28.7 §4's six compound actions, 28.1 §2's eleven bitmap signatures, 28.7 §3's establishes table, and 28.5 §9's signature mapping: four of the five have a seed already in this curriculum, and one of them needed a row this module discovered.

And the last observation is about the module's own shape rather than its contents. DERIVED: the eight gates can be run in any order except that 33.6 reviews a plan that must be reviewed before it runs and this gate reviews a sentence that must be reviewed before it is spoken. Six of the eight are retrospective and two are not — and the two that are not are the two whose findings become unavailable once the thing they review has happened.

21. Common Wrong Answers

  1. “I am confident about that.” §6: the three recognised claims had the same self-reported confidence as the five derived ones. DERIVED: confidence measures familiarity, and familiarity is what recognition supplies — so the internal signal cannot make the distinction.

  2. “If I can state it clearly, I know it.” All three classes produce a fluent sentence. CURRICULUM-DERIVED from 30.7 §1: a question “looks like recall and is not”and recognition answers it correctly often enough to feel reliable.

  3. “A conflict costs 28 cycles.” At the bin you learned it. §7: four of five remembered numbers were wrong by 1.7× to 4× at a new configuration, and the survivor was the identity with no configuration in it.

  4. “Being precise is better than being vague.” “28 cycles” sounds more knowledgeable than “tRP plus tRCD” and only the second is an answer. CURRICULUM-DERIVED from 18.4 §1: 28 is grade A and the expression is grade B.

  5. “My answer covered the important dimensions.” §8: four of eight, and one of the four omitted contained the largest available lever. CURRICULUM-DERIVED from Module 32: an engineer covers what they own, and the deciding quantities sit outside the memory.

  6. “Listing what I did not cover makes me look unprepared.” It reads as scope to the listener. DERIVED: named at the start it is a frame; named at the end it is a retraction — and it is the same information.

  7. “It depends on the workload.” §9: a variable so coarse that naming it eliminates nothing — structurally the same defect as 33.7 §7's experiment that perturbs a condition the whole set depends on.

  8. “Saying it depends is honest.” Only with three parts. DERIVED: it depends with no parts is indistinguishable from not knowing; with the variable, the direction and the magnitude it is strictly more informative than any committed answer.

  9. “Reordering improves throughput.” And costs latency on the tail. CURRICULUM-DERIVED from 23.4, which owns the gain and the cost as a pair: §10 found two of six recommendations net-negative for the traffic they were proposed for, and neither was wrong about its benefit.

  10. “The cost is some latency.” A cost with no payer is a cost nobody objects to. DERIVED: “about 25% on the tail requesters” names somebody who can33.5 §9's owner_cycles, in a sentence.

  11. “Open-page is the right default.” Below the row-work crossover it is not. §11: six general claims, each true inside a region and stated as universal — and 33.5 §12 measured close-page winning at a 62% hit rate.

  12. “I have never seen that fail.” An experience-shaped boundary has an unenumerated scope. CURRICULUM-DERIVED from 33.6 §7's “the order has always worked”: a mechanism-shaped boundary transfers to a part nobody has tested; an anecdote does not.

  13. “Training establishes margin.” False as stated — training establishes that a setting was committed. CURRICULUM-DERIVED from 28.1 §5 via 28.7 §3, and 33.6 §14 found it as one of three unlicensed margin assumptions in a bring-up plan.

  14. “A plausible guess is better than nothing.” §12: three of four guesses reproduced a defect this module already documented — a dropped operating point, one cause named from a set of six, and an unfalsifiable prediction. A guess is an answer with its provenance removed.

  15. I do not know ends the conversation.” Only without a continuation. DERIVED: “I do not know; I would read the legality mask, and if bank group is in it there is no reordering across groups” is more informative than any guess and shorter than most.

  16. “I know the checklists.” §13: the weak speaker knows all seven questions and asks none. CURRICULUM-DERIVED from 33.7 §19: five of eight debug items need no domain knowledge and still go unasked — the barrier is stopping.

  17. “The row-hit rate is 71%, so open-page is right here.” §13: five of seven gates fail on that sentence, and its arithmetic is correct. DERIVED: the revision that passes is one sentence longer.

  18. “My property is correct, so it is worth proposing.” §14: four properties, four distinct varieties, zero incorrectness. CURRICULUM-DERIVED from 30.9 §6: the taxonomy has twelve entries precisely because incorrectness is not one of them.

  19. “Assert the grant is one-hot.” That is about the grant's shape and the obligation is about its legality — variety 2, and CURRICULUM-DERIVED from 30.5 §11, where it is the recorded defect. 30.9 §7 costs the check at seconds.

  20. “I teach the taxonomy, so I do not need to apply it to myself.” §14's whole point. DERIVED: a property you just wrote is one you just reasoned about, and having reasoned about it feels like having checked it.

  21. “This chapter is about interview technique.” It takes no position on what an interview measures30.10 §1 owns that. DERIVED: every item here is a check on whether a claim is supported, and the checks apply identically in a design review, a ticket, and a corridor.

  22. “Three survivors means the property set needs work.” M18, M19 and M20 shrink a scope and keep every mechanism. CURRICULUM-DERIVED from 33.4 §15's variety 12 — the fifth and last consecutive gate at which the survivors are quantities and scopes, and at which the fix is a document.

22. Self-Check

  1. You state a figure and someone asks why. Name the three classes your claim could be in, and say which one produces nothing.
  2. Your self-reported confidence in a claim is 90%. What does that number measure, and which of the three classes can it distinguish?
  3. You said “a conflict costs 28 cycles.” Give the follow-up that tests it, and say which form of the same claim survives.
  4. Your answer covered four of eight relevant dimensions, correctly. What is the finding, and where in the answer does the fix belong?
  5. You said “it depends on the workload.” Name the three parts a conditional needs, and say why this one eliminates nothing.
  6. You recommended reordering to favour row hits. Name the cost, the currency, and the payer.
  7. You said “open-page is the right default.” Give the boundary, the mechanism behind it, and the chapter that measured a counterexample.
  8. You said “training establishes margin.” This is not a claim with a boundary. What is it, and what does training establish instead?
  9. You reach the edge of what you know. Name the three possible continuations, and say which one leaves the question better than it started.
  10. Apply the seven preceding gates' questions to “the row-hit rate is 71%, so open-page is the right policy here.” How many fail, and what is the one-sentence revision?
  11. You propose “assert that the grant is one-hot.” Name the variety, the signal it fails to name, and the chapter where it is the recorded defect.
  12. Three mutations survived this chapter's property set. Group them, and state the five-gate result about what a bound can and cannot catch.

23. The Residual Risk

What this gate cannot catch, stated plainly — and the first limit is the one that applies to a self-audit and to nothing else in the module.

It cannot be run by the person it is auditing, reliably. DERIVED: every item depends on the speaker noticing something about their own claim, and §6 established that the three knowledge classes are indistinguishable from the inside. The mitigation is that three of the nine items reduce to questions a listener askswhy, and at 3200, what does that costso a speaker who has internalised the items has mostly internalised a set of questions to expect.

It cannot tell you that your claim set is complete. §6's twelve claims and §11's six are illustrative. DERIVED: a thirteenth claim, unexamined, is never classified, never bounded, and never audited — and M18 and M19 are the mechanical demonstration: shrinking the set makes every instrument report clean. CURRICULUM-DERIVED from 27.1's completeness argument.

It cannot supply the scope §13 needs. M20 reduced the seven gates to the two that pass. DERIVED: the fix is a requirement to ask all seven or record which were skipped, and that requirement is a document nothing here enforces — the fifth and last instance of variety 12's stated limit in this module.

It cannot make recognition into derivation. §6's concession is real: nobody derives everything, and an answer containing recognised claims is not forbidden. DERIVED: the item only requires that they be delivered in a different register, so the escape it cannot close is a speaker who labels honestly and is simply wrong about a labelled claim. CURRICULUM-DERIVED from 18.4 §1: a grade D claim correctly labelled grade D can still be false, and labelling is not verification.

And it cannot review the seven gates themselves. Every item here asks whether an answer survives 33.1 through 33.7. DERIVED: a defect in a claim that none of the seven gates asks about passes all nine itemsso this chapter's reach is exactly the union of the seven before it, and its residual risk is the union of theirs.

The honest summary: this gate's nine items decide whether what you know supports what you are about to say. It cannot decide whether your claim set was complete, whether your labels were right, or whether the seven gates asked the right questions.

24. Where This Goes

The module closes here, and it closes on an inversion worth stating.

33.1 opened by asking what mechanism enforces each invariant. Eight chapters later the question is what mechanism enforces each sentence, and the answer is that none doesDERIVED: a spoken claim has no validator, no lint, no regression and no coverage report. It has a listener, and whatever the speaker chose to carry.

So the module's last result is the one it has been assembling since 33.2 §15. DERIVED: across seventy review items, forty are found without running anything, and twenty-eight of those forty are found by noticing an absence. The reviews that matter most are the ones that cost the least, and they go unrun because nothing forces themCURRICULUM-DERIVED from §15's finding: the binding constraint is a stopping point.

What comes next in this track is not another checklist. Module 34 takes six claims that working DDR engineers repeat and takes each one apart — and two of its six appear in this chapter as examples rather than as subjects: “DDR5 is faster because of bank groups” and “training runs once at boot”, both sitting in §6's table as recognised claims, stated at 85–90% confidence and wrong. DERIVED: this gate can tell you a claim is recognised rather than derived. It cannot tell you which recognised claims are false, and that is a different chapter's work.

One sentence closes the module, and it is the one every gate has been a restatement of.

CURRICULUM-DERIVED from 28.4 §2, whose rule turned out to generalise across all eight gates rather than one: “A FAILURE SIGNATURE IS EVIDENCE, NOT A VERDICT.” DERIVED: so is a passing gate. So is a clean lint run, a green regression, a trained PHY, a 96% coverage figure, a completed bring-up, a closed ticket, and a confident answer. Each of the eight is evidence about something narrower than what it is usually taken to prove, and the eight gates are the eight places where the gap between the two is worth measuring.

Continue learning

Standards & specifications

Governing standard
JEDEC JESD79 (DDR SDRAM)(opens JEDEC Solid State Technology Association in a new tab)

Defines the DDR SDRAM device itself — signals, command encoding, mode registers, timing parameters and the initialisation sequence — one document per generation. Memory-controller microarchitecture, address-mapping policy, PHY training algorithms and board-level design are not specified by it.

This page also covers RTL structure, verification approach and debugging technique. Those are engineering practice built on the standard, not requirements the standard itself imposes.

Where this fits

Part of the DDR curriculum.