Home / README
Name Modified Size InfoDownloads / Week
Parent folder
README_FIRST.TXT 2009-08-23 2.5 kB
Compiler Manual.pdf 2009-08-22 632.3 kB
Verilog Parser Rights.pdf 2009-08-21 64.7 kB
Totals: 3 Items   699.5 kB 0
README FIRST - VERILOG COMPILER - AUG 22 2009

The Verilog Compiler was part of a suite of programs developed for
Pittsburgh Simulation in the 2002 to 2005 timeframe for a hardware simulation
accelerator called the V400. It has been released to the public domamin by the
CEO in part because the company no longer exists.

The verilog compiler can stand alone and be useful
by itself. If nothing else it is useful to see how JavaCC, the Purdue Java Tree Builder,
and a graph package may be used to compile a complex language like verilog.

The "Compiler Manual.pdf" file provides an overview of the many features of the compiler
and other programs in the suite. Ignore everything except the verilog compiler
as they were very specific to the V400 hardware. The manual refers to an example
called CKT_TOP which is half a dozen .v modules. This example circuit and the cell
library it used was owned by a client and I am not sure it can be publicly released yet.

The compiler uses a cell library which consists of a collection of .v files, little modules,
describing each cell in the verilog language. The compiler needs a cell_lib.txt file
which maps the cell name to pin names. The other fields may all be 0000 because they are not
used by the compiler. So in fact, it may be necessary to fake up a cell_lib.txt file
to compile anything since in the initial release we are unable to provide the clients
cell library or test example.

Source code and building the compiler:

The compiler was originally written using JDK1.4 so it uses some old ways of looping and
doing enumerations. The source forge released version has been built ok in Netbeans 6.5
with JDK 1.6. There are two external libraries/jar files that are used. The gnu getopt for parsing
command line arguments and the Generic Graph Package from RPI that was written in 1998.
http://www.cs.rpi.edu/research/groups/pb/jgb/index.html

The verilogx/src/syntaxtree and visitor directories contain source code generated by the
Purdue Java Tree Builder from the grammer verilog1.jj in the src directory. 
http://compilers.cs.ucla.edu/jtb/jtb-2003/

You will have to read the documentation for the JTB to understand how crucial it is to
the verilog compiler and how the visitor pattern works.

The beauty of this approch is that semantic actions are not mixed into the grammar
as they are in yacc.y files for the YACC parser generator. 

Charlie Havener
http://www.cdhconsult.com

Source: README_FIRST.TXT, updated 2009-08-23