Skip to question
asic.fyi
DesignVerificationSystemVerilogFirmwareArchitectureInterviews
asic.fyi/Interview questions/Verify a RAL-programmed grid checker

Hardware interview practice

Verify a RAL-programmed grid checker

MediumUVM ComponentsSystemVerilog

Write the functional oracle and core bus/interrupt assertions for a memory-mapped 9-by-9 grid checker. A full Universal Verification Methodology Register Abstraction Layer (UVM RAL) environment is a follow-up discussion.

Try it in the question bankReason first. Then compare.

Keep this exact question selected while you check your answer and review the full solution.

Practice this question →
Reviewed example

Work through one case

Input
program grid cell(0,0)=12 through RAL, then accept START
Expected output
symbol violation at row0,column0; all result registers update atomically and done_irq pulses once

Symbol values 10..15 have highest same-cell precedence, so row/column/region checks cannot replace this first error.

What to cover

Requirements

  1. Scan row-major, ignore zero, reject symbols 10 through 15, and apply same-cell precedence symbol, row, column, then region.
  2. Model one pending read: an accepted read responds one cycle later and holds data under backpressure; writes produce no read response.
  3. An idle START clears old status and errors, then completion updates all result registers atomically and pulses done_irq once; busy cell or START writes are rejected while status reads remain legal.
  4. Reset cancels checking and stalled reads, clears cells and result registers, suppresses interrupts, and is covered during programming, checking, and response stall.
  5. Explain separately how a RAL predictor would own mirror updates for accepted frontdoor traffic; it is not part of the code requested here.
Continue practicing

Related questions

Memory SystemsVerify a RAM-based duplicate-ID detector→Memory SystemsVerify a channel-capacity optimizer→
asic.fyi · Learn silicon end to end.info@asic.fyi