Use this page when a term or a suffix in a lesson is unfamiliar. Each definition is one line; the link goes to the lesson that explains it properly.
Term | Meaning | Learn it in |
|---|---|---|
Two's complement | The signed number format where the top bit has weight −2ⁿ⁻¹; the same adder works for signed and unsigned. | |
Sign extension | Widening a signed value by copying its top bit; zero extension copies 0 and is for unsigned values. | |
Overflow (V) and carry (C) | Carry is the unsigned out-of-range answer; overflow is the signed one. They are independent, most visibly for subtraction. | |
Fixed point (Qm.n) | An integer read with an implied binary point: m integer bits and n fraction bits. | |
Saturation | Clamping a result to the largest or smallest representable value instead of letting it wrap. | |
Levels of logic | The number of gates on the longest path between two registers; it sets the minimum clock period. |
Term | Meaning | Learn it in |
|---|---|---|
Blocking (=) and nonblocking (<=) | Blocking assigns now, in order; nonblocking schedules the update for the end of the time step. Use = in always_comb, <= in always_ff. | |
always_comb / always_ff | SystemVerilog process kinds that state intent: combinational logic, or flops clocked by an edge. Tools check that the code matches. | |
Unsized literal | A number without a width, such as 10 or 'd10. It is at least 32 bits wide and can widen a whole expression. | |
Arithmetic shift (>>>) | Shift right that copies the sign bit, only for signed operands. It rounds toward minus infinity, unlike /. | |
Inferred latch | Storage created when a combinational block does not assign an output on every path. | |
parameter / localparam | A parameter is overridable per instance; a localparam is derived and cannot be overridden. | |
Generate block | A for or if construct that elaborates hardware copies at compile time; name it (gen_x) for stable hierarchy paths. | |
Interface / modport | A bundle of signals passed as one port; a modport gives each side its own directions. |
Term | Meaning | Learn it in |
|---|---|---|
Clock enable | A mux in front of D that makes the flop reload its own value; the clock itself is untouched. | |
Throughput / latency | Results per cycle versus cycles from an input to its result. Pipelining raises the first and costs the second. | |
Valid/ready handshake | A transfer happens on a clock edge where valid and ready are both high; valid must not wait for ready. | |
Skid buffer | A small buffer that accepts the word arriving while ready drops, so the ready path can be registered. | |
Stall / bubble / flush | Hold a stage, insert an empty slot, or discard wrong-path work. | |
Forwarding (bypass) | Feeding a result straight to a waiting stage before it is written back. | |
Retiming | Moving registers across logic to balance stage delays without changing cycle behaviour at the ports. | |
LFSR | A shift register with XOR feedback; it generates pseudo-random sequences (PRBS) cheaply. |
Term | Meaning | Learn it in |
|---|---|---|
Moore / Mealy | Moore outputs depend only on the state; Mealy outputs also depend on the inputs and can react in the same cycle. | |
One-hot / binary encoding | One flop per state versus the fewest flops; one-hot usually decodes faster. | |
Illegal state | An encoding that is not a defined state; a default case item should recover from it. | |
Controller / datapath | The split between the FSM that decides and the registers and arithmetic that compute. |
Term | Meaning | Learn it in |
|---|---|---|
Setup / hold | Data must be stable for a setup time before the capturing edge and a hold time after it. | |
Slack | Required time minus arrival time; negative slack is a violation. | |
Skew / jitter / uncertainty | Difference in clock arrival between flops; cycle-to-cycle edge variation; the margin STA subtracts for both. | |
Corner | A process, voltage and temperature combination; signoff checks setup and hold at several. | |
SDC | Synopsys Design Constraints: the Tcl commands that tell STA about clocks, I/O delays and exceptions. | |
Multicycle / false path | Exceptions: a path allowed more than one cycle, or a path STA must not time at all. | |
ICG | Integrated clock-gating cell: a latch plus AND that gates a clock without glitches. | |
OCV / AOCV | On-chip variation: derates that make launch and capture paths slower or faster than nominal. |
Term | Meaning | Learn it in |
|---|---|---|
Async assert, sync deassert | Reset enters immediately and leaves on a clock edge through a reset synchronizer. | |
Recovery / removal | The setup and hold checks for a reset's release relative to the clock. | |
Metastability | A flop that samples a changing input can take extra time to settle to 0 or 1. | |
MTBF | Mean time between synchronizer failures; set by settling time, τ, toggle rate and clock rate. | |
2FF synchronizer | Two flops in the destination domain that give a single bit time to settle. | |
Gray code | A count where one bit changes per step, so a crossing sees either the old or the new value. | |
Async FIFO | A dual-clock FIFO with Gray pointers; the standard way to move multi-bit data across domains. | |
Toggle synchronizer | Turns an event into a level change that survives a slow destination clock. | |
RDC | Reset domain crossing: a path from logic reset by one reset to logic reset by another. |
Term | Meaning | Learn it in |
|---|---|---|
Read-first / write-first | What a RAM returns when one address is read and written in the same cycle: old or new data. | |
AXI-Lite | A simple AXI subset: five channels, one transfer per transaction, no bursts. | |
AXI-Stream (TLAST, TKEEP) | A valid/ready data stream; TLAST marks a packet's end and TKEEP its valid bytes. | |
CSR / W1C | Control and status register; write-1-to-clear is the usual access type for status bits. | |
Byte strobes | Per-byte write enables (WSTRB) for partial writes. | |
SECDED | An ECC code that corrects single-bit and detects double-bit errors. |
Term | Meaning | Learn it in |
|---|---|---|
Self-checking testbench | A bench that compares against a reference and prints PASS or FAIL itself. | |
Mutation (planted bug) | A deliberately broken design run to prove the bench can fail. | |
Immediate / concurrent assertion | A check at one point in procedural code, or a property evaluated on clock edges over time. | |
assume / assert / cover | Constrain the environment, check the design, prove a scenario is reachable. | |
Vacuous pass | A property that passes only because its trigger never happened; covers catch it. | |
Lint / waiver | Static rule checks on RTL; a waiver records a reviewed exception. | |
Scan / ATPG | Turning flops into a shift chain so test patterns can set and observe every one; ATPG generates the patterns. | |
LEC | Logical equivalence checking: proves two netlists (or RTL and netlist) compute the same functions. | |
ECO | Engineering change order: a late, minimal change to a netlist instead of a full re-run. | |
Isolation / retention | Clamping a powered-down domain's outputs; keeping chosen state through power-off. |
The course's code follows one set of naming habits. Knowing them makes any listing quicker to read.
Pattern | Meaning | Example |
|---|---|---|
| Register output (the flop's Q) |
|
| Next value computed by combinational logic, loaded at the next edge |
|
| Active-low signal |
|
| A value after a synchronizer, safe to use in the destination domain |
|
| Instance name prefix |
|
| Named generate block |
|
| Sized hex and binary literals; an unsized literal is at least 32 bits |
|
| Signedness is part of the declaration; without |
|
| Vectors run from the most significant bit down to 0 |
|
The timescale directive, 1ns/1ps | Every bench uses 1 ns time units with 1 ps precision |
|
Edges. "At the rising edge" means posedge clk. A value written with <= at an edge appears just after that edge, so in a waveform it is visible from that edge onward.
X and Z. X is unknown (uninitialised or conflicting); Z is undriven. A check written with !== treats X as a mismatch, != does not.
Cycles vs time. Latency and throughput in this course are counted in clock cycles; convert with the clock period only when a lesson gives one.