VHDL-1076.1 Parser/Pretty-Printer in SWI_Prolog

This distribution contains a VHDL-1076.1 parser and pretty-printer in SWI-Prolog (and an experimental Graphical User Interface written in Java). It evolved from the VHDL-87 Parser in Quintus Prolog written by Peter B. Reintjes.

The distribution includes a number of HTML files with embedded Prolog source code, a small filter program Make.java, a data directory with seven sample VHDL-87 files, and a test_data directory with six VHDL-93 files and six VHDL-AMS files (from the Validation Suite due to Tom Kazmierski from University of Southampton, U.K.). The VHDL formatter produces a readable text file from the parse tree representing a VHDL design. The current version of the system can be run in both UNIX environment and in Windows95/NT environment as long as SWI-Prolog and JDK 1.1 are available.

To generate and test the parser, set the environment variable PATH to enable access to executables such as javac, java, plwin, plcon, etc.

To compile and test the parser: % javac Make.java; java Make

To delete only generated prolog files: % java Make clean

To delete all generated files (incl. parser/classes): % java Make clean_all

To get all the options: % java Make help

To browse the parser design document: % netscape START.html

To extract the tutorial example: % java Make tutorial.html

This tutorial will take you step by step through the process of writing and executing simple queries about the VHDL designs read in by the parser.

To read an arbitrary VHDL file (e.g. mine.vhdl):

        UNIX % vhdl97_parser
       MS-DOS> plcon -x vhdl97_parser
        ?- vhdl_read(mine).
        ?- listing(design_unit).

A preliminary version of the Design Browser with a Graphical User Interface written in Java (Gui.java) that uses a search engine written in Prolog (search_engine.pro) has also been included in the distribution.

To compile and run the Browser using JDK 1.1, type "javac Gui.java" followed by "java Gui" at the UNIX-shell prompt or the MS-DOS prompt. The system certainly runs slow on SPARC-20/64MB/Solaris2.6 system, but seems a little better on Pentium-166/32MB/Window95 system. The underlying Prolog is relatively fast in both the cases.

T. K. Prasad


Last modified: Fri April 17 15:36:21 EDT 1998