update GUIDELINES.md
This commit is contained in:
parent
82ff659a44
commit
d9f4a40c6d
|
@ -10,14 +10,15 @@ See also [Dan Gisselquist][1]'s rules for FPGA development.
|
||||||
synthesizes it incorrectly.
|
synthesizes it incorrectly.
|
||||||
* Do not use parameters that are calculated from other parameters (yosys
|
* Do not use parameters that are calculated from other parameters (yosys
|
||||||
will not parse them correctly). Use macros instead.
|
will not parse them correctly). Use macros instead.
|
||||||
* Simulate *every* module, even the trivial ones using Verilator. Do not
|
* Simulate *every* module, even the trivial ones using Verilator.
|
||||||
write tests in Verilog. Put test code in the same directory as the
|
Simulation must be simulatable with open-source software (Verilator is
|
||||||
Verilog module, unless the Verilog module is external.
|
preferred, but Icarus Verilog and similar are fine). Put test code in the same
|
||||||
|
directory as the Verilog module, unless the Verilog module is external.
|
||||||
* Synthesize and verify large modules independently on hardware using
|
* Synthesize and verify large modules independently on hardware using
|
||||||
the LiteX SoC generator. Put the generator source code (along with
|
the LiteX SoC generator. Put the generator source code (along with
|
||||||
the hardware test driver) in the repository.
|
the hardware test driver) in the repository.
|
||||||
* Write *only* synthesizable verilog (except for test shims, like commands
|
* Write *only* synthesizable verilog (except for direct test-bench code), even
|
||||||
to dump a trace), even for modules that will not be synthesized.
|
for modules that will not be synthesized.
|
||||||
* Dump traces using `.fst` format.
|
* Dump traces using `.fst` format.
|
||||||
* Use only one clock.
|
* Use only one clock.
|
||||||
* Only transition on the *positive edge* of the *system clock*.
|
* Only transition on the *positive edge* of the *system clock*.
|
||||||
|
|
Loading…
Reference in New Issue