0% found this document useful (0 votes)
58 views27 pages

Simulator Architectural Design

The document introduces circuit simulation by outlining the basic constructs, model and device classes, device loading, object-oriented programming, and model compiler used in simulator architectural design. It describes the key components and flow of a circuit simulator, including the parser, model and device lists, analysis algorithms, and GUI. Different types of device instances are managed depending on whether they have associated models or not.

Uploaded by

Teto Schedule
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views27 pages

Simulator Architectural Design

The document introduces circuit simulation by outlining the basic constructs, model and device classes, device loading, object-oriented programming, and model compiler used in simulator architectural design. It describes the key components and flow of a circuit simulator, including the parser, model and device lists, analysis algorithms, and GUI. Different types of device instances are managed depending on whether they have associated models or not.

Uploaded by

Teto Schedule
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

INTRODUCTION TO CIRCUIT SIMULATION

Lecture 6.
Simulator Architectural Design

Guoyong Shi, PhD


[email protected]
School of Microelectronics
Shanghai Jiao Tong University
Spring 2010

2010-9-27 Slide 1
Outline
• Basic constructs
• Model & Device Classes
• Device loading
• Object-oriented programming
• Model Compiler

2010-9-27 Lecture 06 slide 2


A Detailed Simulator Flow
Parser
Parser Prepare for Analysis
Netlist (Save
(Saveall
allckt
cktinfo
info (Create void stamps
to a symbol table;
to a symbol table; for all devices)
Check
Checkcircuit
circuitintegrity;
integrity;
Higher-level Report
Report error,etc.)
error, etc.)
Description
Language

Algorithms Run
RunAnalysis
Analysis
(Fill
(Fill stampsaccording
stamps according
to
toanalysis
analysistype)
type)
Models

Save and
Present
GUI
Simulation Result

2010-9-27 Lecture 06 slide 3


Node versus Terminal
• “Node” is a circuit
attribute:
ƒ Each node is connected
to a list of devices.
• “Terminal” is a device
De
vi c attribute:

e
vic
e ƒ Each device has a list

De
of terminals.
k • A device terminal
Node /
becomes a circuit node
Terminal De when it is connected in a
i ce vi c circuit.
e v e • Multiple device terminals
D may share the same
node.
• Each device terminal
identifies a branch
current.

2010-9-27 Lecture 06 slide 4


Node versus Device
• Each Node Object manages
a list of devices connected
to it.
De • Each Device Object
v ic

ice
e manages a list of nodes as

v
De
its terminals.
k
node • Such information is directly
De
ce v ice used in the MNA matrix
v i
De stamping.

2010-9-27 Lecture 06 slide 5


Example
class DEVICE

class RES class CAP class IND

R1 C1 L1
R2 C2 L2
R3 C3 L3
. . .
Instances Instances
. . .

2010-9-27 Lecture 06 slide 6


Simulator Construction
• The simulator should manage the following lists:
ƒ List of models
mod_inst[2]
ƒ List of devices
ƒ List of analyses device[0] analysis[0]
mod_inst[1] device[1] analysis[1]
device[3] analysis[3]
device[0] device[4]
device[1] analysis[4]
mod_inst[0] device[5]
device[3] device[6] analysis[5]
model[0] device[0] device[4] analysis[6]
model[1] device[1] device[5] device type analysis[7]
model[3] device[3] device[6] analysis[8]
model[4] device[4]
model[5] device[5] device type
analysis type
model[6] device[6]

device type
model type
2010-9-27 Lecture 06 slide 7
Model & Device Classes
Model

Model_Res Model_Cap Model_Ind


Multiple MOS models

Model_MOS1 Model_MOS3
Model_MOS2

Model_Vsrc Model_Isrc Device

······ Ind
Res Cap

MOS1 MOS3
MOS MOS2
Just need one class
for MOS device Vsrc Isrc
2010-9-27 Lecture 06 ······ slide 8
Device Instances
• Device instances are divided into two
categories:
1. Instances without models
2. Instances with models

ƒ These two types of instances are managed


by the Circuit Object.

2010-9-27 Lecture 06 slide 9


Device Instances without Model
Managed by the Circuit object Spice takes a model-driven
device instantiating strategy.
Spice creates a default model
D_type[0] Res Res for the same type devices
D_type[1] Cap without a model.
D_type[3] Ind Ind
D_type[4] This means all device instances
D_type[5] have models.
D_type[6]
D_type[7] Device instances
D_type[8] without models

Device type

2010-9-27 Lecture 06 slide 10


Device Instances with Model
Model

Model instances
Model_Res Model_Cap Model_Ind

Res Res Model_Res_Inst_1 Model_MOS1 Model_MOS3


Model_MOS2

Res Model_Res_Inst_2
Model_Vsrc Model_Isrc

Res Res Model_Res_Inst_3


Model_BSIM3
Model_BSIM1

······
Device instances with models

2010-9-27 Lecture 06 slide 11


Links among Models & Devices
mod_inst[2]
Including
device[0]
default mod_inst[1] device[1]
models device[3]
device[0] device[4]
mod_inst[0] device[1] device[5]
device[3] device[6]
model[0] device[0] device[4]
model[1] device[1] device[5] device type
model[3] device[3] device[6]
model[4] device[4]
model[5] device[5] device type

model[6] device[6]

device type
model type

2010-9-27 Lecture 06 slide 12


Model-based Device Instances
• If a device does not have a model, a default model is
created for it.
• The same type devices without model share the same
default model.
• The parameters for a default model are not assigned.
• Spice uses XXXtemp() function to evaluate the stamp,
which uses the temperature information.
ƒ If a default model, the model parameters are not used at all.
ƒ Only the lumped parameter given in the netlist is used for
evaluation.

2010-9-27 Lecture 06 slide 13


Analysis Classes

Analysis

analysis[0]
Analysis_DC Analysis_AC Analysis_Tran analysis[1]
analysis[3]
Analysis_Noise analysis[4]
Analysis_OP
Analysis_PZ analysis[5]
analysis[6]
analysis[7]
Analysis_Disto Analysis_Sens analysis[8]
arranged in list

analysis type

2010-9-27 Lecture 06 slide 14


Models and Devices
• A netlist may have a list of devices (identified by
device types)
• Each type of device may have a list of models
• Each device model may have a list of instances

ckt M_type[0] M_type[1] M_type[type]

M_inst-0 M_inst_0
D_inst_0
M_inst-1 M_inst_1
D_inst_1
D_inst_0
D_inst_2 M_inst-2
D_inst_1
M_inst_2
D_inst_0

* This data structure will be used during circuit loading!


2010-9-27 Lecture 06 slide 15
Referencing Model and Instances
• Each model instance may be linked with a list of
device instances.
• Each device instance has a back pointer pointing at
the belonging model instance.

MODEL

back link

dev inst-1 dev inst-2 ...... dev inst-k

* One model supports multiple devices.

2010-9-27 Lecture 06 slide 16


Device Loading

ckt mod type[0] mod type[1] mod type[K ]

mod inst-0 mod inst-0


dev inst-0 dev inst-0
mod inst-1 mod inst-1
dev inst-1 dev inst-1
dev inst-0 dev inst-0
dev inst-2 mod inst-2 dev inst-2 mod inst-2
dev inst-1 dev inst-1
dev inst-0 dev inst-0
Each instant is a
physical
device in circuit.
* This whole structure is scanned during
device loading.

2010-9-27 Lecture 06 slide 17


Device Models
• Semiconductor devices are described by a
set of analytical equations.
• One model may take several hundreds of
pages (BSIM3/4).
• Can be written in description language –
Verilog-AMS.
• Have to be translated into C/C++ code.

2010-9-27 Lecture 06 slide 18


Typical Modeling Flow
Repeat...
Model Parameter Extraction Device New Effect Found
Model Designer
Developer

Independent implementations

Vendor Vendor Vendor Vendor Vendor


A B C D E

Verified Design

Repeat...
New Effect Found
Foundry

2010-9-27 Lecture 06 slide 19


Model Implementation
• Refer to C implementation of model equations;
ƒ including derivative computations (Jacobian matrix, ...)
• Model implementation is more difficult, time
consuming and error-prone than model creation
(writing math eqns).
• Simulator vendors have to develop their own
implementations (IP issues)
• Model implementation is also costly.

• Designers have less control over models.


• Designers may identify flaws in models while
using simulators.
2010-9-27 Lecture 06 slide 20
Designers Want ...
• Accurate and robust models.
• Models covering all cases likely to appear in
real design.
• Models that can be simulated efficiently.

• Sometimes want to modify the model


equations in their own favor ...

2010-9-27 Lecture 06 slide 21


Model Compiler Can Help !
A Model Compiler is a CAD tool that supports automatic
implementation of compact device model.

Input in Output (ready


Model Compiler for simulator)
Compact
Description

1. Input: compact device models in a description language -


Verilog-AMS
2. Output: device code in C/C++ that can be directly compiled in
Spice-like simulators.
2010-9-27 Lecture 06 slide 22
Device Model Implementation Flow
New device & Equations

pi ler
om
Initial coding in MATLAB
odel C
M
New modification
Update new effects
Convert to C code

Install & test model in simulator

Release new simulator

Purchase by design company & qualification

2010-9-27 Designers useLecture


new models
06 slide 23
INTRODUCTION TO CIRCUIT SIMULATION

APPENDIX --
Object-Oriented Programming

2010-9-27 Slide 24
Object-Oriented Programming
• Data and functions associated with the same
object are collected in one class
ƒ So-called “encapsulation”
ƒ Provides modularity of code.

2010-9-27 Lecture 06 slide 25


Use Polymorphism
• Define object interface in the base classes
using virtual functions in C++ for
polymorphism.
• Implementation of objects defined in the
derived classes.
• Better code readability / flexibility, and
• Easier code management.

• Polymorphism is very suitable for model


interfacing and device methods.
2010-9-27 Lecture 06 slide 26
Modular Development
• Make the numerical methods, modeling, and
analysis independent from each other as
much as possible.
• Make the Solver Module independent of the
analysis algorithms; so that it is easier to
update the solver.
• Make device models Independent of the
simulator analysis engine;

2010-9-27 Lecture 06 slide 27

You might also like