Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 4fa7f576b968402be95c5f91d6d9f08f > files > 48

dgc-0.98-3.fc13.x86_64.rpm


This is "Digital Gate Compiler" (DGC).

A system for the creation of digital circuits.


Overview
--------

Digital circuits can be used to build some kind of hardware.
Often a hardware is an application specific integrated circuit 
or a programmable logic array. In this both cases hardware is
created from a 'netlist'. Such a netlist contains information 
about the connection of some basic building blocks (gates).

DGC is a system for the creation of netlist files by using an 
abstract spezification of digital systems. 
The following types of specification are supported:
- PLA (Sum of product expression) 
- BEX (Boolean expression)
- NEX (Numeric expression)
- KISS (State machine description)
- BMS (Burst mode specification, Subset of state machine description)
- DGD (Script language to build hierarchical designs)

For the conversion from an abstract description to a netlist,
DGC needs to know what kind of basic building blocks are available.
Such a file is called a gate library.

|  EXAMPLE: 
|  After installing DGC, binaries are installed at:
|    <installation-path>/bin
|  Additional example files are stored at:
|    <installation-path>/share/dgc
|  Example files are called "example.<ext>". To test your installation
|  you could simply call 
|    <installation-path>/bin/dgc example.pla


Input Files
-----------

This is a list of currently supported input formats:

PLA (.pla, .pl)
  This is a sum of product representation of several
  boolean functions. This format is used in the well known
  espresso tool (University of California).
  http://www-cad.eecs.berkeley.edu/Software/software.html
  
BEX (.bex, boolean expression)
  This is a more readable format for boolean functions.
  See example.bex for a description.

NEX (.nex, numeric expression)
  Extracts boolean functions from mathematical expressions.
  See example.nex for a description.
  
KISS (.kiss)
  A description of a finite state machine. This file format
  is used by the tools KISS, NOVA and others. Some of these
  tooles can be found in the SIS package
  http://www-cad.eecs.berkeley.edu/Software/software.html
  The file example.kiss can be found in 
  <installation-path>/share/dgc

BMS (.bms, burst mode spezification)
  Also a file format for the description of finite state machines.
  It is a spezial restricted format to describe asynchronous
  state machines. A description of the format is included
  in the MINIMALIST package (Columbia University)
  http://www.cs.columbia.edu/async/
  
DGD (.dgd, digital gate design)
  This is a small script language to import and use all supported 
  file formats. See the file 
    <installation-path>/share/dgc/d_latch.dgd
  for an example.
  

Gate Library Files
------------------

GENLIB (.genlib)
  The GENLIB library format is also part of the sis package.
  A description can be found in the 'sis/genlib' subdirectory of sis.
  The download location for 'sis' is:
  http://www-cad.eecs.berkeley.edu/Software/software.html

Synopsys Library Source (.lib)
  DGC supports a subset of the Synopsys Gate Library source code language.
  It does NOT support synopsys compiled libraries. 
  
Binary DGC Library (.dgl)
  The internal compiled library format. This format is generated by 
  the library compiler 'dglc'.


Output Files
------------

EDIF (.edif)
  The elecronic design interchange format (http://www.edif.org/).
  This is the most used and known format to store a netlist.
  
VHDL-netlist (.vhdl)
  VHDL can be used to store a netlist. This format has been added
  to support simulation of the result with a digital VHDL simulator.
  
XNF (.xnf)
  There is an experimental Xilinx netlist export filter. 
  (ftp://ftp.xilinx.com/pub/documentation/xactstep6/00_index.htm)


|  EXAMPLE: 
|  These output files are generated by the tool 'dgc' in
|    <installation-path>/bin
|  The output format is specified by one of the output options.
|  To generate an EDIF netlist, use the following statement:
|    dgc example.pl -oe netlist.edif
  
  
Tools
-----

dgc [Compiler]
  The main tool of the package. It creates a netlist from the
  specified input file. 
  Input files: All above (automatic detection)
  Supported library formats: All above
  Supported output formats: All above

|  EXAMPLE: 
|  The example file
|    <installation-path>/share/dgc/example.kiss
|  is a simple finite state machine. Calling 'dgc' with
|    dgc -lib min.genlib -rsl example.kiss -ov netlist.vhdl
|  Creates a VHDL netlist with a low active reset signal for
|  the state machine. 'dgc' uses only gates from the file
|  'min.genlib'.
  
dglc [Library Compiler]
  Converts one or more library files into the internal binary format.
  Input files: All supported library formats (automatic detection).
  
simfsm
  A program to generate support files for fsm simulation. Its main
  purpose is to generate stimuli data for finite state machines.
  At the moment, only VHDL is supported.
  
bms2kiss
  Convert a BMS description into the corresponding KISS description.  
  Input file: BMS
  Output file: KISS
  
dgsop [Sum of Product Minimizer]
  The dgc package contains many functions for 2-level minimization.
  This tool gives access to some of these functions. The idea
  of this tool is to provide a clone of the program 'espresso'.
  Input file: PLA, BEX, NEX
  Output file: PLA, stdout
  
|  EXAMPLE: 
|  The example file
|    <installation-path>/share/dgc/example.nex
|  describes the product of two 3-bit values. The command
|    dgsop example.nex
|  reads the file, buildes all boolean functions and does a
|  minimization of these functions.
|  Using 
|    dgsop -nop example.nex
|  would convert 'example.nex' to a PLA format and write the result 
|  to stdout.


Technical Background
--------------------

Most algorithms for digital minimization and synthesis
are taken from:
  Giovanni DeMicheli
  Synthesis and Optimization of Digital Circuits, 1994
  McGraw-Hill Book Company, Inc.
  ISBN 0-07-113271-6
  
For some additional proofs and descriptions, the following
book might be useful:
  Robert K. Brayton, Gary D. Hachtel, Curtis T. McMullen and 
  Alberto L. Sangiovanni-Vincentelli
  Logic Minimization Algorithms for VLSI Synthesis, 1994
  Kluwer Academic Publishers Group
  ISBN 0-8983-164-9

More general algorithms such as shortest path or the
greedy altorithm are described in:
  Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest
  Introduction to Algorithms, 1993
  ISBN 0-262-03141-8



Oliver Kraus
olikraus@yahoo.com