
Image by francok35 on Pixabay · Pixabay License
Icarus Verilog
Sign in to saveVerilog simulation and synthesis tool
Source code
1. What is ICARUS Verilog? 2. Building/Installing Icarus Verilog From Source Compile Time Prerequisites Compilation (Optional) Testing Installation 3. How Icarus Verilog Works Preprocessing Parse Elaboration Optimization Code Generation Attributes 4. Running iverilog Examples 5. Unsupported Constructs 6. Nonstandard Constructs or Behaviors Builtin system functions Preprocessing Library Modules Width in %t Time Formats vpiScope iterator on vpiScope objects Time 0 Race Resolution Nets with Types 7. Credits For instructions on how to run Icarus Verilog, see the iverilog man page. If you are starting from the source, the build process is designed to be as simple as practical. Someone basically familiar with the target system and C/C++ compilation should be able to build the source distribution with little effort. Some actual programming skills are not required, but helpful in case of problems. You need the following software to compile Icarus Verilog from source on a UNIX-like system: GNU Make The Makefiles use some GNU extensions, so a basic POSIX make will not work. Linux systems typically come with a satisfactory make. BSD based systems (i.e., NetBSD, FreeBSD) typically have GNU make as the gmake program. ISO C++ Compiler The ivl and ivlpp programs are written in C++ and make use of templates and some of the standard C++ library. egcs and recent gcc compilers with the associated libstdc++ are known to work. MSVC++ 5 and 6 are known to definitely not work. bison and flex OSX note: bison 2.3 shipped with MacOS including Catalina generates broken code, but bison 3+ works. We recommend using the Fink project version of bison and flex (finkproject.org), brew version works fine too. gperf 3.0 or later The lexical analyzer doesn't recognize keywords directly, but instead matches symbols and looks them up in a hash table in order to get the proper lexical code. The gperf program generates the lookup table. A version problem with this program is the most common cause of difficulty. See the Icarus Verilog FAQ. readline 4.2 or later On Linux systems, this usually means the readline-devel rpm. In any case, it is the development headers of readline that are needed. termcap The readline library, in turn, uses termcap. If you are building from git, you will also need software to generate the configure scripts. autoconf 2.53 or later This generates configure scripts from configure.ac. The 2.53 or later versions are known to work, autoconf 2.13 is reported to not work. If you are building from git, you have to run the command below before compiling the source. This will generate the "configure" file, which is automatically done when building from tarball. Normally, this command automatically figures out everything it needs to know. It generally works pretty well. There are a few flags to the configure script that modify its behaviour: The commands printed by this run might help you in running Icarus Verilog on your own Verilog sources before the package is installed by root. The generated Makefiles also include the uninstall target. This should remove all the files that make install creates. This tool includes a parser which reads in Verilog (plus extensions) and generates an internal netlist. The netlist is passed to various processing steps that transform the design to more optimal/practical forms, then is passed to a code generator for final output. The processing steps and the code generator are selected by command line switches. There is a separate program, ivlpp , that does the preprocessing. This program implements the include and define directives producing output that is equivalent but without the directives. The output is a single file with line number directives, so that the actual compiler only sees a single input file. See ivlpp/ivlpp.txt for details. One can see a human-readable version of the final pform by using the -P flag to the ivl subcommand. This will cause ivl to dump the pform into the file named . (Note that
Excerpt from the source-code README · 15,115 chars · not written by Vinony
Wikidata facts
- Instance of
- free software
- Official website
- iverilog.icarus.com
- Image
- GTKWave simple verilog example.png
Show 5 more facts
- copyright license
- GNU General Public License, version 2.0 or later
- operating system
- Linux
- source code repository URL
- github.com/steveicarus/iverilog
- programmed in
- Q2407
- software version identifier
- 13.0
via Wikidata · CC0