forked from github/verilator
Commentary
This commit is contained in:
parent
a331397954
commit
5932eae32a
28
README.adoc
28
README.adoc
@ -22,7 +22,7 @@ endif::[]
|
|||||||
|
|
||||||
[cols="a,a",indent=0,frame="none"]
|
[cols="a,a",indent=0,frame="none"]
|
||||||
|===
|
|===
|
||||||
^.^| *Welcome to Verilator, the fastest free Verilog HDL simulator.*
|
^.^| *Welcome to Verilator, the fastest Verilog HDL simulator.*
|
||||||
+++ <br/> +++ • Accepts synthesizable Verilog or SystemVerilog
|
+++ <br/> +++ • Accepts synthesizable Verilog or SystemVerilog
|
||||||
+++ <br/> +++ • Performs lint code-quality checks
|
+++ <br/> +++ • Performs lint code-quality checks
|
||||||
+++ <br/> +++ • Compiles into multithreaded {cpp}, or SystemC
|
+++ <br/> +++ • Compiles into multithreaded {cpp}, or SystemC
|
||||||
@ -56,7 +56,7 @@ endif::[]
|
|||||||
== What Verilator Does
|
== What Verilator Does
|
||||||
|
|
||||||
Verilator is invoked with parameters similar to GCC or Synopsys's VCS. It
|
Verilator is invoked with parameters similar to GCC or Synopsys's VCS. It
|
||||||
"Verilates" the specified synthesizable Verilog or SystemVerilog code by
|
"Verilates" the specified Verilog or SystemVerilog code by
|
||||||
reading it, performing lint checks, and optionally inserting assertion
|
reading it, performing lint checks, and optionally inserting assertion
|
||||||
checks and coverage-analysis points. It outputs single- or multi-threaded
|
checks and coverage-analysis points. It outputs single- or multi-threaded
|
||||||
.cpp and .h files, the "Verilated" code.
|
.cpp and .h files, the "Verilated" code.
|
||||||
@ -72,30 +72,30 @@ Verilator may not be the best choice if you are expecting a full featured
|
|||||||
replacement for NC-Verilog, VCS or another commercial Verilog simulator, or
|
replacement for NC-Verilog, VCS or another commercial Verilog simulator, or
|
||||||
if you are looking for a behavioral Verilog simulator e.g. for a quick
|
if you are looking for a behavioral Verilog simulator e.g. for a quick
|
||||||
class project (we recommend http://iverilog.icarus.com[Icarus Verilog] for
|
class project (we recommend http://iverilog.icarus.com[Icarus Verilog] for
|
||||||
this.) However, if you are looking for a path to migrate synthesizable
|
this.) However, if you are looking for a path to migrate SystemVerilog to
|
||||||
Verilog to {cpp} or SystemC, and your team is comfortable writing just a
|
{cpp} or SystemC, and your team is comfortable writing just a
|
||||||
touch of {cpp} code, Verilator is the tool for you.
|
touch of {cpp} code, Verilator is the tool for you.
|
||||||
|
|
||||||
== Performance
|
== Performance
|
||||||
|
|
||||||
Verilator does not simply convert Verilog HDL to {cpp} or SystemC. Rather
|
Verilator does not simply convert Verilog HDL to {cpp} or SystemC. Rather,
|
||||||
than only translate, Verilator compiles your code into a much faster
|
Verilator compiles your code into a much faster optimized and optionally
|
||||||
optimized and optionally thread-partitioned model, which is in turn wrapped
|
thread-partitioned model, which is in turn wrapped inside a
|
||||||
inside a {cpp}/SystemC/{cpp}-under-Python module. The results are a compiled Verilog
|
{cpp}/SystemC/{cpp}-under-Python module. The results are a compiled
|
||||||
model that executes even on a single-thread over 10x faster than standalone
|
Verilog model that executes even on a single-thread over 10x faster than
|
||||||
SystemC, and on a single thread is about 100 times faster than interpreted
|
standalone SystemC, and on a single thread is about 100 times faster than
|
||||||
Verilog simulators such as http://iverilog.icarus.com[Icarus
|
interpreted Verilog simulators such as http://iverilog.icarus.com[Icarus
|
||||||
Verilog]. Another 2-10x speedup might be gained from multithreading
|
Verilog]. Another 2-10x speedup might be gained from multithreading
|
||||||
(yielding 200-1000x total over interpreted simulators).
|
(yielding 200-1000x total over interpreted simulators).
|
||||||
|
|
||||||
Verilator has typically similar or better performance versus the commercial
|
Verilator has typically similar or better performance versus the commercial
|
||||||
Verilog simulators (Carbon Design Systems Carbonator, Modelsim, Cadence
|
Verilog simulators (Carbon Design Systems Carbonator, Modelsim, Cadence
|
||||||
Incisive/NC-Verilog, Synopsys VCS, VTOC, and Pragmatic CVer/CVC). But,
|
Incisive/NC-Verilog, Synopsys VCS, VTOC, and Pragmatic CVer/CVC). But,
|
||||||
Verilator is free, so you can spend on computes rather than licenses. Thus
|
Verilator is open-sourced, so you can spend on computes rather than
|
||||||
Verilator gives you more cycles/dollar than anything else available.
|
licenses. Thus Verilator gives you the best cycles/dollar.
|
||||||
|
|
||||||
For more information on how Verilator stacks up to some of the other
|
For more information on how Verilator stacks up to some of the other
|
||||||
commercial and free Verilog simulators, see the
|
closed-sourced and open-sourced Verilog simulators, see the
|
||||||
https://www.veripool.org/verilog_sim_benchmarks.html[Verilog Simulator
|
https://www.veripool.org/verilog_sim_benchmarks.html[Verilog Simulator
|
||||||
Benchmarks]. (If you benchmark Verilator, please see the notes in the
|
Benchmarks]. (If you benchmark Verilator, please see the notes in the
|
||||||
https://verilator.org/verilator_doc.pdf[Verilator manual (PDF)], and also
|
https://verilator.org/verilator_doc.pdf[Verilator manual (PDF)], and also
|
||||||
|
Loading…
Reference in New Issue
Block a user