RISCV_picorv32_fpga/rtl/DE0-NANO/guidelines.md

29 lines
853 B
Markdown

Verilog Guidelines:
===================
These are some guidlines extracted from: Verilog Nonblocking Assignments With Delays,
Myths & Mysteries
http://www.sunburst-design.com/papers/CummingsSNUG2002Boston_NBAwithDelays.pdf
* 1 When modeling sequential logic, use nonblocking assignments.
* 2 When modeling latches, use nonblocking assignments.
* 3 When modeling combinational logic with an always block, use blocking
assignments.
* 4 When modeling both sequential and combinational logic within the same always
block, use nonblocking assignments.
* 5 Do not mix blocking and nonblocking assignments in the same always block.
* 6 Do not make assignments to the same variable from more than one always block.
* 7 Use $strobe to display values that have been assigned using nonblocking
assignments.
* 8 Do not make assignments using #0 delays.