HDL Smoke Verification¶
This page documents the lightweight HDL smoke flow used for Block 5 FPGA examples.
The goal is to keep local verification and GitHub Actions aligned: the same shell runner is used by the Makefile and by CI workflows.
Entry point¶
bash tools/run_block5_hdl_smoke.sh
The runner performs the following steps:
- Generate deterministic FIR IQ 4-tap vectors.
- Generate deterministic NCO mixer IQ vectors.
- Regenerate the shared Block 11 BPSK package.
- Generate deterministic BPSK mapper, upsampler, TX FIR, RX recovery and framed-loopback vectors.
- Check that the generated vector files are present and non-empty.
- Compile and run
iq_passthroughwith Icarus Verilog. - Compile and run
fir_iq_4tapwith Icarus Verilog. - Compile and run
nco_mixer_iqwith Icarus Verilog. - Compile and run
bpsk_symbol_mapperwith Icarus Verilog. - Compile and run
bpsk_upsampler_8xwith Icarus Verilog. - Compile and run
bpsk_rrc_tx_firwith Icarus Verilog. - Compile and run
bpsk_rx_bit_recoverywith Icarus Verilog. - Compile and run
bpsk_framed_loopbackwith Icarus Verilog. - Compile and run
bpsk_zynq_ber_topwith Icarus Verilog. - Compile and run
bpsk_zynq_ber_axi_litewith Icarus Verilog. - Compile and run
axis_iq_passthroughwith Icarus Verilog.
Local usage¶
Run only the HDL smoke suite:
make hdl
Run the broader local smoke target:
make smoke
Clean generated HDL artifacts:
make clean
CI usage¶
The same runner is used by these workflows:
.github/workflows/block5_hdl.yml.github/workflows/hdl-canonical-ci.yml.github/workflows/full_course_smoke.yml
Keeping one runner avoids drift between local commands and CI commands. When a new Block 5 HDL testbench is added, update tools/run_block5_hdl_smoke.sh first, then keep workflow files thin.
Scope¶
This smoke suite is intentionally small. It checks that representative HDL modules compile, run, and consume deterministic vectors. It is not a replacement for full timing closure, board-level validation, or vendor-tool synthesis.
Expected artifacts¶
Typical generated files include:
blocks/block_05_fpga_hdl_flow/tb/*_vectors.txtblocks/block_05_fpga_hdl_flow/rtl/*.memblocks/block_05_fpga_hdl_flow/tb/*.outblocks/block_05_fpga_hdl_flow/tb/*.vcd- waveform files emitted by the testbenches
These files are build artifacts and should not be edited manually.