NAME

Welcome to Verilator. This is the Verilator package's README file.

This document describes how to initially install Verilator. For more general information please see http://verilator.org.

DESCRIPTION

Verilator is a simulator which "Verilates" synthesizable (generally not behavioral) Verilog code into "Verilated" C++ or SystemC code.

Verilator is invoked with parameters similar to GCC or Synopsys's VCS. It reads the specified Verilog code, lints it, and optionally adds coverage code. For C++ format, it outputs .cpp and .h files. For SystemC format, it outputs .cpp and .h files using the standard SystemC headers.

The resulting files are then compiled with C++. The user writes a little C++ wrapper file, which instantiates the top level module. This is compiled in C++, and linked with the Verilated files.

The resulting executable will perform the actual simulation.

SUPPORTED SYSTEMS

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 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 all the options above, plus MSVC++ 2008 and newer.

INSTALLATION

The following are detailed installation instructions. Alternatively, for a quick summary please see http://www.veripool.org/projects/verilator/wiki/Installing.

USAGE DOCUMENTATION

Detailed documentation and the man page can be seen by running:

    bin/verilator --help

or reading verilator.pdf in the same directory as this README.

or see https://www.veripool.org/ftp/verilator_doc.pdf (which is the most recent version and thus may differ in some respects from the version you installed).

PACKAGE DIRECTORY STRUCTURE

The directories in the package directory are as follows:

    Changes                     => Version history
    bin/verilator               => Compiler Wrapper invoked to Verilate code
    docs/                       => Additional documentation
    examples/hello_world_c      => Example simple Verilog->C++ conversion
    examples/hello_world_sc     => Example simple Verilog->SystemC conversion
    examples/tracing_c          => Example Verilog->C++ with tracing
    examples/tracing_sc         => Example Verilog->SystemC with tracing
    include/                    => Files that should be in your -I compiler path
    include/verilated*.cpp      => Global routines to link into your simulator
    include/verilated*.h        => Global headers
    include/verilated.mk        => Common Makefile
    include/verilated.v         => Stub defines for linting
    src/                        => Translator source code
    test_regress                => Internal tests
    verilator.pdf               => Primary documentation
    verilator.txt               => Primary documentation (text)

For files created after Verilation, see the manual.

DISTRIBUTION

This package is Copyright 2003-2019 by Wilson Snyder. (Report bugs to http://www.veripool.org/.)

Verilator is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0. (See the documentation for more details.)

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.