Electric Specifications

The Electric VLSI Design System is a highly flexible and powerful system that can handle many different types of circuit design (MOS, Bipolar, schematics, printed circuitry, hardware description languages, etc.) It handles geometry at any angle (not just Manhattan) and can even handle curves.

Layout is done by placing and wiring electrical components. Although this is standard practice for schematics, it is unusual for chip layout. However, because of this style of design, Electric understands chip layout at a more sophisticated level, and can aid in design to an unprecedented degree.

The user interface is quite sophisticated and runs on all popular workstations (Windows, Macintosh, and UNIX). It also provides interpretive languages for advanced users.

The most interesting feature of the system is its global enforcement of connectivity which provides top-down design capability and ease of post-design modifications.


Electric's Analysis and Synthesis Tools

Electric has many analysis tools, including design-rule checking, simulation, and network comparison. Electric has many synthesis tools, including routing, compaction, silicon compilation, PLA generation, and compensation.

Design-Rule Checking

The incremental design-rule checker watches all changes made to the layout and displays error messages when violations are detected. It checks for spacing errors, notch errors, and minimum size violations.

A hierarchical design-rule checker does a thorough check of the circuit.

Electric can also read the output of Assura or Calibre and display the results.

Electrical-Rule Checking

The electrical-rule checker has two parts:

Simulation

Electric comes with a built-in 12-state switch-level simulator, called ALS. An optional IRSIM simulation engine is available separately from Static Free Software. The simulator displays waveforms in a separate window and lets users cross-probe from either the waveform or the circuit window.

Simulation Interface

Electric is able to produce input decks for a number of popular simulators, including:

Users of Electric must obtain these simulators on their own.

Generation

The CMOS PLA generator works from a library of PLA elements, thus allowing customized arrays.

The Pad Frame generator places pad cells around a chip core and wires them together.

The ROM generator produces layout from a ROM personality file.

Compaction

The compactor adjusts geometry to its minimal spacing in the X and Y axes.

Logical Effort

Logical Effort is a system for marking digital schematic gates with fanout information that will produce optimally fast circuits.

Placement

Six experimental placement tools are available that use parallelism to speed the task.

Routing

The maze router runs single wires between points.

The cell stitching router make explicit connections where cells abut or overlap.

The mimic router watches user activity. When it sees a wire being created or deleted, it repeats the activity in similar situations throughout the circuit.

The river router runs multiple parallel wires in a channel between cells.

The sea-of-gates router makes arbitrary connections in the circuit.

Six experimental routers are available that use parallelism to speed the task.

VHDL

The VHDL system can generate VHDL from a layout, and can compile VHDL to netlists of various format. These netlists can then be simulated with the built-in simulator, turned into layout with the silicon compiler, or saved to disk for use by external simulators.

Silicon Compiler

The Silicon Compiler places and routes standard cells from a structural netlist (which can be obtained from VHDL which can be obtained from a schematic drawing).

Network Consistency Checking (LVS)

The network consistency checker compares a layout with its equivalent schematic. It can also compare two different versions of a layout or two different versions of a schematic. An experimental version of NCC, called the Port Interchange Experiment, is also available.

Project Management

This built-in system allows users to share a library of circuitry. Users can check out cells for editing and check them back in when done. Other users are prevented from changing checked-out cells, and can have their circuits updated when changes are checked in.

In addition, users are prevented from making changes to checked-out cells that would affect other cells that are not checked-out. Also, warnings are issued when multiple users check-out cells that are hierarchically related which may cause interference in their editing.

A second project management system, based on CVS, writes each cell to a separate disk file so CVS tools can manage the circuitry.


Electric's Technologies

A Technology is an environment of design. Circuits can be built from any technology, and can even mix components from different technologies (to the extent that it is sensible).

Each technology is a collection of components and connecting wires. All relevant information is encapsulated in the technology, including design rules, simulation behavior, etc.

A build-in editor allows interactive creation of new technologies and modification of existing ones.

Electric has the following technologies:

nMOSGeneric N-channel MOS
CMOSComplementary MOS, many different versions:
MOSIS Rules (6-metal, double-poly, scmos/submicron/deep)
Generic
Round (from Cal Tech)
BipolarGeneric Integrated Injector Logic
BiCMOSHybrid of Bioplar and CMOS
TFTThin-film
Digital FiltersGeneric arcitectural technology
Printed CircuitsHandles up to 8-layer boards
SchematicsComponents for both analog and digital design
FPGACustom FPGA design from architectural
specification language
ArtworkElements for graphic design

Electric's External Interfaces

Electric reads and writes libraries of circuitry in its own binary format. For portability between computers, it is also able to read and write a textual format of its database. However, for maximum compatibility with other EDA systems, Electric supports a number of popular interchange and manufacturing formats:

FormatDirectionDescription
CIFInput and OutputCaltech Intermediate Format
GDS IIInput and OutputCalma GDS interchange format
EDIFInput and Output Electronic Design Interchange Format
SUEInputSchematic User Environment (a schematics editor)
DXFInput and OutputAutoCAD mechanical format
VHDLInput and OutputHardware description language
VerilogOutputHardware description language
CDLOutputCadence's circuit description language
EAGLEOutputSchematic capture interface
PADSOutputSchematic capture interface
ECADOutputSchematic capture interface
AppliconInputApplicon/860 (an old CAD format)
BookshelfInputBookshelf (placement interchange format)
GerberInput and OutputGerber Scientific plotter format
HPGLOutputPlotting language
PostScriptOutputPlotting language
SVGOutputScalable Vector Graphics (for browsers)

Electric's Foreign Language Capability

The older, "C" version of Electric is fully internationalized, which means that it can be translated into other languages. The only translation that exists is French, and it is packaged with the source-code download.

Translated User Manual

The Electric User's Manual has been translated into Russian. This is an older version of the manual (6,06) and can be downloaded here.

Static Free Software's Translated Front Page

To help spread the word about Electric, front-pages have been created in different languages. Each front page describes Electric briefly and then points the user to the main Static Free Software page, noting that the rest of the website is in English.

For those interested in doing a translation, please translate this page.

I already have translations in the following languages (thanks to all contributors):


Electric Recoded in Java

After over 20 years as a C program, the Electric development team recoded the system in Java (this happened in 2003). Versions 8.00 and up are Java (the last C release was version 7.00).

Electric in Java is more stable in many ways, has a better user interface, and in many cases is faster than Electric in C. Some parts were just recoded, but other parts were completely rewritten. For example, the redisplay code was completely redone, and now runs nearly 10 times faster for whole-chip display. The NCC is entirely new also, and runs much faster. The Logical Effort code is also rewritten, and is much more powerful.

There are a few special cases of things that existed in "C" Electric and were not translated into Java. These items are either unimportant or obsolete: