About PLS:
The project is developed based on icarus iverilog. Special thanks to Stephen Williams ([email protected]).
PLS is a Verilog simulator, compiles verilog into a much faster optimized model, which executes about 20-100x faster than interpreted Verilog simulators such as icarus iverilog vvp.
Some performance metrics from authors.
Put Dockerfile
and tb.sv
in the same folder.
# clone repos to the same folder:
git clone -b v11-branch [email protected]:steveicarus/iverilog.git
git clone [email protected]:pytec8800/pint_iverilog.git
# build Docker container named 'iverilog_bench'
docker build -t iverilog_bench .
Run this to get an interactive console for further experiments:
docker run -i -v $(pwd):/project -u $(id -u):$(id -g) -t iverilog_bench
Another way is to run needed commands directly:
# simulate in iverilog-v11
docker run -i -v $(pwd):/project -u $(id -u):$(id -g) -t iverilog_bench iverilog-v11 tb.sv -g2012 && vvp-v11 -v a.out
# simulate in iverilog-pls
docker run -i -v $(pwd):/project -u $(id -u):$(id -g) -t iverilog_bench iverilog-pls tb.sv -g2012 && ./a.out
Or just
My results for quite a synthetic testbench:
- iverilog-v11: ~2h
- iverilog-pls: ~3s