Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
    • Low-Power RTL Hub
    • DFT and Scan Hub
    • Physical Awareness Hub
    • Waveform Debug Hub
    • STA and ECO Hub
    • RTL-to-Implementation Closure
    • DFT-Ready RTL
    • Capstone: Resilient Streaming Peripheral
      • Stage 1: Specification
      • Stage 2: CSR and Control
      • Stage 3: Buffered Streams
      • Stage 4: CDC and Reset
      • Stage 5: Arithmetic and Reliability
      • Stage 6: Verification
      • Stage 7: Constraints and Implementation
      • Stage 8: Signoff Review
    • Principal Design Review
    • Senior RTL Interview Questions & Model Answers
  • Glossary and Notation
Loading lesson

‹Senior & Interview
  1. Topics
  2. RTL Design
  3. Senior & Interview
  4. Capstone: Resilient Streaming Peripheral

Part 9 · Senior · Senior

Capstone: Resilient Streaming Peripheral

An end-to-end RTL project combining CSRs, AXI-Lite/APB control, FIFOs, AXI-Stream, CDC, interrupts, ECC/parity, assertions, constraints, and signoff evidence.

  • 8topics
  • 8lessons

Topics in this section

  1. 1Stage 1: Specification1 lesson
  2. 2Stage 2: CSR and Control1 lesson
  3. 3Stage 3: Buffered Streams1 lesson
  4. 4Stage 4: CDC and Reset1 lesson
  5. 5Stage 5: Arithmetic and Reliability1 lesson
  6. 6Stage 6: Verification1 lesson
  7. 7Stage 7: Constraints and Implementation1 lesson
  8. 8Stage 8: Signoff Review1 lesson
On this page

    The capstone is a configurable streaming peripheral. Software programs it through a control bus; input and output data use valid/ready streams; optional processing runs in a second clock domain; FIFOs absorb backpressure; errors produce sticky status and interrupts.

    Control bus, CSRs, FIFO, CDC, arithmetic datapath and output stream capstone.
    The project joins the major RTL course contracts in one reviewable subsystem.

    Lessons in this topic

    8 lessons, about 37 min

    1. 1Stage 1: SpecificationYou can write a one-page interface specification for a streaming peripheral, with ids that later tests, assertions and reports can point back to.8 min
    2. 2Stage 2: CSR and ControlYou can turn a bus write into a one-cycle internal command, keep configuration stable during an operation, and say what the response does and does not report.7 min
    3. 3Stage 3: Buffered StreamsYou can store payload and packet metadata in the same FIFO entry, hold valid and data through a stall, and state what a graceful abort does with an open packet.4 min
    4. 4Stage 4: CDC and ResetYou can choose a crossing method for each signal, release each reset in its own clock domain, and recover from a one-sided reset without losing track of accepted work.4 min
    5. 5Stage 5: Arithmetic and ReliabilityYou can keep data, correction status and poison state aligned through the pipeline, and state what SECDED and parity-only protection each guarantee.4 min
    6. 6Stage 6: VerificationYou can key a scoreboard by epoch, operation, tag and beat, write the conservation equation, and list the mutations that must fail.5 min
    7. 7Stage 7: Constraints and ImplementationYou can list the implementation checks a streaming block needs, audit constraint coverage before reading slack, and bind reports to the design and tools that produced them.2 min
    8. 8Stage 8: Signoff ReviewYou can run a signoff review that traces each requirement to a test, report and owner, and decide approve, conditional approve or reject with named actions.3 min

    Tip

    The capstone is intentionally architecture-first. Each stage has a reviewable artifact before code expands, mirroring a real block delivery.

    A filled reference configuration now anchors the stages: CP-1 is a one-input/one-output Q1.15 gain transform, not a frame accumulator. Keep this baseline reproducible before adding APB, selectable arithmetic or a framed MAC. The specification, traces and checker sketch below are supplied teaching artifacts; the complete peripheral, drivers, integration harness and measured signoff reports remain learner deliverables.

    Check yourself What makes this a capstone rather than one large coding exercise?

    It requires consistent contracts and evidence across software, protocol, FIFO, CDC, arithmetic, verification, timing, low-power/DFT, and signoff boundaries.

    Revision sheet

    The whole topic on one page, taken from each lesson's Remember box. Read it before an interview, or print it.

    Stage 1: Specification

    • Freeze clock domains, buffer policy, latency and numeric format before stage 2.

    • Each later artefact cites a requirement id, so a changed decision shows its cost.

    • The numeric reference is written down: round to nearest even, then clamp to 16 bits.

    Rule of thumb: if a decision is not in the spec with an id, nobody can say what to verify.

    Stage 2: CSR and Control

    • A command is an event: the CSR turns one accepted write into one internal pulse.

    • The response reports acceptance, not completion. Status and the interrupt report completion later.

    • A configuration snapshot is taken at START; a write while busy is rejected.

    Rule of thumb: the bus adapter never reaches into datapath state; it hands over pulses, a snapshot and status events.

    Stage 3: Buffered Streams

    • Payload, last, keep, tag and error flags travel together in one entry.

    • A transfer happens only on the edge where valid and ready are both high; counters count only those.

    • Graceful abort finishes the open packet, blocks new ones and drains accepted work.

    Rule of thumb: never update last or a tag from request levels; it must ride with its data.

    Stage 4: CDC and Reset

    • Streams cross through asynchronous FIFOs; start, config and done records cross by acknowledged handshake.

    • A one-sided reset closes admission, flushes both FIFO ends and starts a new recovery epoch.

    • Verify several clock ratios, phases and one-sided resets, not one lucky ratio.

    Rule of thumb: hold a snapshot stable and cross it with a handshake; never cross a multi-bit value bit by bit.

    Stage 5: Arithmetic and Reliability

    • A correctable error is fixed before use and sets ce on that beat; an uncorrectable one sets ue and poison and forces the data to zero.

    • A poisoned beat is still delivered, so it counts as delivered, not discarded.

    • Parity detects but cannot correct, and SECDED assumes at most two bit errors.

    Rule of thumb: the real decoder and reporting path must be exercised, so inject faults without changing the normal encoder.

    Stage 6: Verification

    • The key is (recovery_epoch, operation, packet_tag, beat_index), never the tag alone.

    • Per epoch: accepted = delivered + explicitly discarded + in flight.

    • A testbench is credible when each named mutation fails for the intended reason.

    Rule of thumb: do not reuse the implementation code as the reference, or both sides share the same bug.

    Stage 7: Constraints and Implementation

    • Reports use the exact parameter set and clock modes tested in stage 6.

    • A manifest binds the design, parameters, constraints, libraries, tools and extraction scripts.

    • Audit unconstrained paths and missing generated clocks before reading WNS.

    Rule of thumb: a clean report is only as good as the constraints behind it.

    Stage 8: Signoff Review

    • Every claim points to a specification row, a test or assertion, an implementation report and an owner.

    • Every waiver has an owner, rationale, evidence, expiry and impact.

    • Conditional approval fits only when the remaining work is bounded, owned and cannot invalidate accepted evidence.

    Rule of thumb: present the capstone as a release argument; code is one part of it.

    Practise it

    • Practice question: Design a memory-mapped register interface with read and write support

    • Practice question: Synchronous FIFO design that blocks on full and empty

    • Code lab: AXI stream handshake

    • Practice question: Debugging metastability from asynchronous reset deassertion

    • Code lab: CDC handshake

    • Interview: run a mock interview on this topic

    PreviousNext: Stage 1: Specification

    Up next

    Up nextStage 1: Specification

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Low-Power RTL Hub
    • DFT and Scan Hub
    • Physical Awareness Hub