Chapter IX: TOOLS

icon

Silicon Compiler

icon


Electric has a silicon compiler called QUISC (the Queen's University Interactive Silicon Compiler). It is a powerful tool that can do placement and routing of standard cells from a structural VHDL description. The VHDL is compiled into a netlist which is then used to drive placement and routing. Also, since Electric is able to generate VHDL from a schematic, the silicon compiler can hide the VHDL and produce layout from schematics.

Be warned that the silicon compiler is an experimental system that has not been thoroughly tested. Although it works on the current test cases, it should be used with care in complex situations.

The VHDL description is normally placed in the "vhdl" view of a facet. It can be created and edited entirely inside of Electric, or it can be read from disk by using the Read Text Facet command of the Facets menu. More information on text editing can be found in the "Text Windows" section of Chapter 4. Automatic generation of VHDL from layout is done with the Make VHDL command of the View menu.

Once the VHDL is created, it is compiled into a netlist and read into the silicon compiler. The netlist is normally placed in the "netlist-quisc-format" view of a facet. If the netlist is too cumbersome to retain in memory, it may be kept on disk by unchecking the Netlist Stored in Facet subcommand of the VHDL Compiler command of the Tools menu. The VHDL Stored in Facet subcommand controls the placement of VHDL text in a similar way.

When generating a schematic or VHDL description, it is important to know what primitives are available in the standard cell library. Electric comes with a CMOS cell library in the MOSIS Submicron ("mocmossub") technology. This library is not correct, and exists only to illustrate the Silicon Compiler. These component declarations are available:

component and2 port(a1, a2 : in bit; y : out bit); end component;
component and3 port(a1, a2, a3 : in bit; y : out bit); end component;
component and4 port(a1, a2, a3, a4 : in bit; y : out bit); end component;
component inverter port(a : in bit; y : out bit); end component;
component nand2 port(a1, a2 : in bit; y : out bit); end component;
component nand3 port(a1, a2, a3 : in bit; y : out bit); end component;
component nand4 port(a1, a2, a3, a4 : in bit; y : out bit); end component;
component nor2 port(a1, a2 : in bit; y : out bit); end component;
component nor3 port(a1, a2, a3 : in bit; y : out bit); end component;
component nor4 port(a1, a2, a3, a4 : in bit; y : out bit); end component;
component or2 port(a1, a2 : in bit; y : out bit); end component;
component or3 port(a1, a2, a3 : in bit; y : out bit); end component;
component or4 port(a1, a2, a3, a4 : in bit; y : out bit); end component;
component rdff port(d, ck, cb, reset : in bit; q, qb : out bit); end component;
component xor2 port(a1, a2 : in bit; y : out bit); end component;

To use the silicon compiler, simply run the subcommands in the Silicon Compiler command of the Tools menu. The commands are organized in the menu so that, when run sequentially downward, they perform the compilation process. The steps are as follows:

The last subcommand in the Silicon Compiler command is Issue Special Instructions, which does not normally need to be used. However, since the silicon compiler system is so extensive, advanced users may wish to use it. After issuing this command, any sequence of silicon compiler instructions may be typed. Use "quit" to return to Electric.


Prev Previous     Contents Table of Contents     Next Next