mirror of
https://github.com/verilator/verilator.git
synced 2025-01-06 06:37:45 +00:00
Commentary
This commit is contained in:
parent
99cd2818a1
commit
3b3a7f7354
42
readme.pod
42
readme.pod
@ -24,14 +24,14 @@ more details.
|
|||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
Verilator converts synthesizable (not behavioral) Verilog code into C++ or
|
Verilator converts synthesizable (generally not behavioral) Verilog code
|
||||||
SystemC code. It is not a complete simulator, just a translator.
|
into C++ or SystemC code. It is not a complete simulator, just a
|
||||||
|
translator.
|
||||||
|
|
||||||
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
|
||||||
reads the specified Verilog code, lints it, and optionally adds coverage
|
reads the specified Verilog code, lints it, and optionally adds coverage
|
||||||
code. For C++ format, it outputs .cpp and .h files. For SystemC format,
|
code. For C++ format, it outputs .cpp and .h files. For SystemC format,
|
||||||
it outputs .sp files for the SystemPerl preprocessor available at
|
it outputs .cpp and .h files using the standard SystemC headers.
|
||||||
http://www.veripool.org.
|
|
||||||
|
|
||||||
The resulting files are then compiled with C++. The user writes a little
|
The resulting files are then compiled with C++. The user writes a little
|
||||||
C++ wrapper file, which instantiates the top level module. This is
|
C++ wrapper file, which instantiates the top level module. This is
|
||||||
@ -41,14 +41,11 @@ The resulting executable will perform the actual simulation.
|
|||||||
|
|
||||||
=head1 SUPPORTED SYSTEMS
|
=head1 SUPPORTED SYSTEMS
|
||||||
|
|
||||||
Verilator is developed and has primary testing on:
|
Verilator is developed and has primary testing on Ubuntu. Versions have
|
||||||
|
also built on Redhat Linux, Macs OS-X, HPUX and Solaris. It should run
|
||||||
SuSE 11.1 AMD64 i686-linux-2.6.27, GCC 4.3.2
|
with minor porting on any Linix-ish platform. Verilator also works on
|
||||||
|
Windows under Cygwin, and Windows under MinGW (gcc -mno-cygwin). Verilated
|
||||||
Versions have also built on Redhat Linux, Macs OS-X, HPUX and Solaris. It
|
output (not Verilator itself) compiles under MSVC++ 2008 and newer.
|
||||||
should run with minor porting on any Linix-ish platform. Verilator also
|
|
||||||
works on Windows under Cygwin, and Windows under MinGW (gcc -mno-cygwin).
|
|
||||||
Verilated output (not Verilator itself) compiles under MSVC++ 2008.
|
|
||||||
|
|
||||||
=head1 INSTALLATION
|
=head1 INSTALLATION
|
||||||
|
|
||||||
@ -71,11 +68,11 @@ Download the latest package from that site, and decompress.
|
|||||||
=item
|
=item
|
||||||
|
|
||||||
If you will be using SystemC (vs straight C++ output), download SystemC
|
If you will be using SystemC (vs straight C++ output), download SystemC
|
||||||
2.0.1 from L<http://www.systemc.org>. Follow their installation
|
from L<http://www.systemc.org>. Follow their installation instructions.
|
||||||
instructions. You will need to set SYSTEMC_INCLUDE to point to the
|
You will need to set SYSTEMC_INCLUDE to point to the include directory with
|
||||||
include directory with systemc.h in it, and SYSTEMC_LIBDIR to points
|
systemc.h in it, and SYSTEMC_LIBDIR to points to the directory with
|
||||||
to the directory with libsystemc.a in it. (Older installations may
|
libsystemc.a in it. (Older installations may set SYSTEMC and SYSTEMC_ARCH
|
||||||
set SYSTEMC and SYSTEMC_ARCH instead.)
|
instead.)
|
||||||
|
|
||||||
=item
|
=item
|
||||||
|
|
||||||
@ -107,7 +104,7 @@ executable, so try to have them correct before configuring.
|
|||||||
|
|
||||||
Our personal favorite is to always run Verilator from the kit directory.
|
Our personal favorite is to always run Verilator from the kit directory.
|
||||||
This allows the easiest experimentation and upgrading. It's also how most
|
This allows the easiest experimentation and upgrading. It's also how most
|
||||||
EDA tools operate; to run any of them you point to the tarball.
|
EDA tools operate; to run you point to the tarball, no install is needed.
|
||||||
|
|
||||||
export VERILATOR_ROOT=`pwd` # if your shell is bash
|
export VERILATOR_ROOT=`pwd` # if your shell is bash
|
||||||
setenv VERILATOR_ROOT `pwd` # if your shell is csh
|
setenv VERILATOR_ROOT `pwd` # if your shell is csh
|
||||||
@ -156,11 +153,10 @@ PATH.
|
|||||||
|
|
||||||
Type C<make> to compile Verilator.
|
Type C<make> to compile Verilator.
|
||||||
|
|
||||||
Type C<make test_c> to check the compilation.
|
Type C<make test> to check the compilation.
|
||||||
|
|
||||||
Type C<make test> for a more complete test. You may get a error about the
|
Configure with C<--enable-longtests> for more complete developer tests.
|
||||||
Bit::Vector Perl package. You will need to install it and SystemPerl if
|
Additional packages may be required for these tests.
|
||||||
you want all tests to pass.
|
|
||||||
|
|
||||||
You may get a error about a typedef conflict for uint32_t. Edit
|
You may get a error about a typedef conflict for uint32_t. Edit
|
||||||
verilated.h to change the typedef to work, probably to @samp{typedef
|
verilated.h to change the typedef to work, probably to @samp{typedef
|
||||||
@ -195,7 +191,7 @@ The directories in the kit after de-taring are as follows:
|
|||||||
bin/verilator => Compiler Wrapper invoked to Verilate code
|
bin/verilator => Compiler Wrapper invoked to Verilate code
|
||||||
include/ => Files that should be in your -I compiler path
|
include/ => Files that should be in your -I compiler path
|
||||||
include/verilated*.cpp => Global routines to link into your simulator
|
include/verilated*.cpp => Global routines to link into your simulator
|
||||||
include/verilated.h => Global headers
|
include/verilated*.h => Global headers
|
||||||
include/verilated.v => Stub defines for linting
|
include/verilated.v => Stub defines for linting
|
||||||
include/verilated.mk => Common makefile
|
include/verilated.mk => Common makefile
|
||||||
src/ => Translator source code
|
src/ => Translator source code
|
||||||
|
Loading…
Reference in New Issue
Block a user