blob: 4b0a4c73eaace91b42f8994f4154685f22e38fac [file] [log] [blame] [edit]
A collection of larger designs to run post-synthesis simulations for testing
yosys. Type 'make -j8 full' to run all tests and use max. 8 parallel threads.
Currently included designs:
---------------------------
openmsp430:
http://opencores.org/project,openmsp430
aes_5cycle_2stage:
http://opencores.org/project,aes-encryption
softusb_navre:
http://opencores.org/project,navre
amber23:
http://opencores.org/project,amber
lm32:
https://github.com/m-labs/lm32/
verilog-pong:
https://github.com/yzheng624/verilog-pong
elliptic_curve_group:
http://opencores.org/project,ecg
reed_solomon_decoder:
http://opencores.org/project,reed_solomon_decoder
bch_verilog:
https://github.com/russdill/bch_verilog
Adding new designs to this collection:
--------------------------------------
Designs must come with a useful testbench. Synthesis and testing should not
consume extraordinarily much CPU time compared to the existing test cases. Test
cases that expose existing yosys bugs are welcome. Test cases that fail because
of missing yosys features or glitches in simulation with icarus verilog will
not be included.
Each design has its own top level directory with the following layout:
<design_name>/rtl/
directory with the RTL verilog files
<design_name>/sim/
directory with the test bench and auxilary files
<design_name>/sim/settings.sh
a simple shell snippet that set the following variables:
TOP="..."
name of the top entity in the design
RTL="..."
list of RTL files in the rtl/ directory (without path)
SIM="..."
list of addition testbench verilog files in
the sim/ directory (without path)
<design_name>/sim/build.sh (optional)
script for re-generating additional testbench files (such as
firmware ROM images). this script, by convention, is called
from within the sim/ directory
The testbench top entity must be named 'testbench'. The rtl/ and sim/
directory are both in the include path for simulation and synthesis.
Have a look at the 'softusb_navre' design for a simple example.
The DESIGNS variable in the Makefile has a list off all designs used for the
test. All new design there, or set the variable to individual designs for
testing purposes.