Mixed-Signal Multi-Level Simulation of VLSI Circuits (XSIM)

Xsim | Publication | Brochure || DOUST
 

Mixed-Signal Multi-Level Simulation of VLSI Circuits

— An Implicit mixed-mode solution



Introduction

An emerging area of growth, in the overall chip market, is for mixed-signal application-specific integrated circuits (ASIC’s). A new generation of mixed-mode simulators has evolved to apply different algorithms to different circuit blocks. However, most of them are either "glued" (two simulators running concurrently) or "explicit" (the designer must specify which components are digital and which are analog) -- the burden of selecting the most appropriate algorithm for each block rests with the designer. Requiring the designer to specify in advance which components are digital and which are analog is like asking him to simulate the circuit prior to running the simulation. The information required to do this is often the very information the designer is seeking from the simulation.

Binding a digital and an analog simulator into a "solution" is obviously no solution. Relying on the designer to partition the circuits is not practical either. What a designer needs is a truly "implicit" single-engine simulator that can simulate a circuit at different levels of abstraction, with "digital speed" whenever possible and "analog accuracy" wherever necessary.
 

Mixed-Mode Simulator
 

To electrons, there are no "analog" or "digital" parts -- they are all simply electronic circuits following the same laws of physics in their operations. In fact, digital parts are simply analog parts that are overdriven. But why do we need a mixed-mode circuit simulator? The answer is: If analog simulators were fast enough, no one would need digital simulators. Unfortunately, they are not, and they will never be.

In addition, complex electronic systems are designed in a hierarchical manner, so they should also be simulated and verified at different levels of abstraction. For example, in the analog domain, large analog subsystems (such as opamps, filters, oscillators, etc.) are frequently used as building blocks. They should be simulated using functional (or behavioral) models if simulation speed is of major concern.
 

Defining terms
 

The term "mixed-mode" has been used in a very broad sense, which implies one or more of the following interpretations:

Mixed-signal: Analog and digital circuitry with distinctively different waveforms (voltages vs. logic states).

Mixed-level: Same circuit described at different levels of abstraction (e.g., circuit, switch, gate, behavioral, etc.).

Mixed-method: Different simulation algorithms (e.g., matrix, integration, relaxation, event driven, selective trace, etc.) applied to different parts of a circuit.

Mixed-precision: Multiple precision (e.g., 2-, 3-, 6-, or 9-state logic) used at different stages of a design.

Mixed-technology: Different logic families (e.g., NMOS, CMOS, TTL, ECL, etc.) mixed in the same circuit description.
 

A trivial example
 

The following "trivial" example shows a string of inverters driven by an analog stimulus. Suppose that the source is a sine function with increasing amplitude.
 

Question: What are the waveforms at nodes 1, 2, and 3?

Trivial answer: Use full-circuit simulation such as SPICE.

The "digital" solution: For event-driven gate level model, the initial waveform at node 1 may be wrong, and results from that point on would be meaningless.

The mixed-mode scenario: The following two questions should be answered:

• Which gate(s) should be simulated as "analog"? (automatic circuit partitioning)

• When should it (they) be simulated as "analog"? (dynamic mode switching)
 



A wish list
 

• Simulator architecture

- A common paradigm and a unified data structure should be used at all levels of abstraction.

- A consistent representation for signals over all simulation levels as well as representation of time should be defined.

- A flexible and extensible structure so that algorithms and device models can be added or removed easily.
 
 

• Choice of simulation levels

- Ideally, one would prefer to combine all the levels into one simulator: electrical, switch, gate, behavioral, etc.

- It is desirable that the simulator can make intelligent choice of appropriate simulation levels; and the user can specify his own choice as well.
 
 

• Automatic circuit partitioning

- The simulator (not the user) should be able to determine which portions of the circuit must be simulated at the most detailed level and which portions will profit from simulation at a higher level without noticeable loss of accuracy.

- It is also nice if the user can designate circuit blocks to be simulated at a level of his choice.

- Higher-level model should correspond to its lower-level equivalent, and its parameters should be extracted automatically and dynamically from the lower-level model.
 
 

• Dynamic mode switching

- The simulator should be able to switch any elements or blocks from a lower level to a higher level when it is appropriate, and switch back when necessary.

- This switching should happen automatically and, more importantly, dynamically during a simulation.
 
 

• Hierarchical probing of variables

- Circuit variables (voltages and currents) should be obtainable at each level of abstraction.

- Both analog (waveforms) and digital (logic states) signals should be available at request.
 
 

• User interface

- It should accommodate all the levels on the same schematic capture.

- It should handle different waveforms (analog or digital) for post-processing.

- Adding new components (macromodels, behavioral models) should be simple.

- A consistent netlist format should be used at all levels of abstraction.
 

Myth or reality?
 

The challenge in mixed-mode simulation is not in simulating different types of electronic circuitry, but in combining distinctively different algorithms in a unified structure. There are simulators that work efficiently at different levels of abstraction, such as behavioral modeling language, gate-level logic simulator, switch-level timing analyzer, circuit-level simulator. The question is: Is it possible to combine all these into a single-engine simulator?

The items in the above Wish List sound too good to be true. The simulator introduced next (Xsim) shows that it is not a myth but a reality.