mapp: the berkeley model and algorithm prototyping platform - … · a. gokcen mahmutoglu,...
Post on 16-Feb-2019
233 Views
Preview:
TRANSCRIPT
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 1
MAPP: The Berkeley Model and Algorithm
Prototyping Platform
Tianshi Wang, Karthik Aadithya, A. Gokcen MahmutogluBichen Wu, Jian Yao and Jaijeet Roychowdhury
EECS Department University of California at Berkeley
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 2
Model Development Today
Device physics into mathematical code (MATLAB)
Interdependent with simulation
» Check for errors
» Does it converge?
» Can it replicate real dynamical device behavior?
Translate into Verilog-A → Run with HSpice or Spectre
What if there are problems?
» Simulators: Complicated under the hood
» Makes testing and debugging hard MAPP: specifically designed with model development in mind
» All purpose model development in pure MATLAB
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 3
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 4
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 5
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
Run Circuitsin Commercial
Simulators
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 6
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
robustconvergence?
Run Circuitsin Commercial
Simulators
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 7
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
robustconvergence?
Run Circuitsin Commercial
Simulators
YesDeploy model
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 8
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
robustconvergence?
Run Circuitsin Commercial
Simulators
YesDeploy model
convergence vsphysics tradeoff
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 9
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
robustconvergence?
support forconvergence hooks
limited/missing
Run Circuitsin Commercial
Simulators
YesDeploy model
convergence vsphysics tradeoff
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 10
Verilog-A-based Model Development Flow
Devicephysics
AnalyticalEquationsfor Device
WriteVerilog-A
Model
robustconvergence?
support forconvergence hooks
limited/missing
Run Circuitsin Commercial
Simulators
x
no ability todebug code
YesDeploy model
convergence vsphysics tradeoff
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 11
Three Steps of MAPP
● First Step
Create correct, robust model in pure MATLAB
● Second Step
Create and verify Verilog-A model: VAPP
● Third Step
Convert into fast C++ code: MAPP C++ API, Xyce-ModSpec interface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 12
MAPP for Device Model Development
CompactModel
Equations
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 13
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
➔ format itself eliminates somecommon modelling mistakes
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 14
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Testimmediately(standalone)
basic debug
➔ format itself eliminates somecommon modelling mistakes
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 15
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
basic debug
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 16
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
Problems?
basic debug
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 17
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
Problems?Yes
basic debugcode/facilitiesfor inspectionand debugging
➔ model doesn't evaluate➔ overflow/domain errors
➔ DC conv. failure➔ transient timestep too small➔ unphysical results➔ voltage/current blows up
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 18
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
Problems?Yes
basic debugcode/facilitiesfor inspectionand debugging
➔ model doesn't evaluate➔ overflow/domain errors
➔ DC conv. failure➔ transient timestep too small➔ unphysical results➔ voltage/current blows up
➔ smoothing➔ define custom functions/derivatives➔ custom init/limiting➔ gmin
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 19
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
Problems?Yes
basic debugcode/facilitiesfor inspectionand debugging
➔ model doesn't evaluate➔ overflow/domain errors
➔ DC conv. failure➔ transient timestep too small➔ unphysical results➔ voltage/current blows up
➔ smoothing➔ define custom functions/derivatives➔ custom init/limiting➔ gmin
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 20
MAPP for Device Model Development
CompactModel
Equations
Write in MATLAB(ModSpec format)
Run SmallCircuits in
MAPP
Testimmediately(standalone)
Problems?Yes
basic debugcode/facilitiesfor inspectionand debugging
➔ model doesn't evaluate➔ overflow/domain errors
➔ DC conv. failure➔ transient timestep too small➔ unphysical results➔ voltage/current blows up
➔ smoothing➔ define custom functions/derivatives➔ custom init/limiting➔ gmin
➔ format itself eliminates somecommon modelling mistakes
DC/AC/TRANin MATLAB
No
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 21
Glimpse: Diode Model in MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 22
Glimpse: Diode Model in MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 23
Glimpse: Diode Model in MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 24
Glimpse: Diode Model in MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 25
Glimpse: Diode Model in MAPP
MOD.terminalsMOD.parmsMOD.explicit_outsMOD.f: function handleMOD.q: function handle…
MODSPECformat
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 26
Glimpse: Diode Model in MAPP
● executable (in Matlab)
● takes 10min to write
● works in all analyses
MOD.terminalsMOD.parmsMOD.explicit_outsMOD.f: function handleMOD.q: function handle…
MODSPECformat
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 27
MAPP: Compact Model Prototyping
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 28
FEFET: Char Curves, Inverter Ferro-electrical FET (negative cap. gate)
» modified MVS model by Dimitri Antoniadis (MIT)– Unpublished work
» homotopy needed to capture -ve res. region
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 29
FEFET: Char Curves, Inverter Ferro-electrical FET (negative cap. gate)
» modified MVS model by Dimitri Antoniadis (MIT)– Unpublished work
» homotopy needed to capture -ve res. region
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 30
Landau-Lifshitz-Gilbert (LLG) Model: Spin-Torque Devices
Three dimensional oscillator – rotation of magnetization in response to torques
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 31
MAPP's Multi-Physics Capabilities
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 32
MAPP's Multi-Physics Capabilities
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics Electronics
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 33
MAPP's Multi-Physics Capabilities
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 34
MAPP's Multi-Physics Capabilities
Networks in different physical domains supported» via domain-specific Equation Engines
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 35
MAPP's Multi-Physics Capabilities
Networks in different physical domains supported» via domain-specific Equation Engines
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
Opto-Electronics
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 36
MAPP's Multi-Physics Capabilities
Networks in different physical domains supported» via domain-specific Equation Engines
Domains interact via devices with multiple Network Interface Layers (NILs)
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
Opto-Electronics
ModSpec Core(Equations)
Electrical
Electrical
Network Interface Layer
node voltages, branch currents,
KCL, KVL
MechanicalMechanicalNILNIL
SpintronicSpintronicNILNIL
BiochemicalBiochemicalNILNIL
ThermalThermalNILNIL
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 37
MAPP's Multi-Physics Capabilities
Networks in different physical domains supported» via domain-specific Equation Engines
Domains interact via devices with multiple Network Interface Layers (NILs)
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
Opto-Electronics
ModSpec Core(Equations)
Electrical
Electrical
Network Interface Layer
node voltages, branch currents,
KCL, KVL
MechanicalMechanicalNILNIL
SpintronicSpintronicNILNIL
BiochemicalBiochemicalNILNIL
ThermalThermalNILNIL
opto-electronicdevices
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 38
MAPP's Multi-Physics Capabilities
Networks in different physical domains supported» via domain-specific Equation Engines
Domains interact via devices with multiple Network Interface Layers (NILs)
Master Equation Engine orchestrates domain-specific Engines to produce multi-physics system DAEs
photo-detector
Mach-Zehnderelectro-optical modulator
combiner
multi-modefiber
multi-modefiber
splitterlaser
Electronics ElectronicsOptics Optics
Opto-Electronics
ModSpec Core(Equations)
Electrical
Electrical
Network Interface Layer
node voltages, branch currents,
KCL, KVL
MechanicalMechanicalNILNIL
SpintronicSpintronicNILNIL
BiochemicalBiochemicalNILNIL
ThermalThermalNILNIL
opto-electronicdevices
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 39
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 40
translate manually
to NEEDS-compatible Verilog-A
Step 2
NEEDS-compatibleVerilog-A model
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 41
translate manually
to NEEDS-compatible Verilog-A
Step 2
NEEDS-compatibleVerilog-A model
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
ModSpec Model(in MATLAB)
auto-generatedfrom Verilog-A
automatic translator
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 42
translate manually
to NEEDS-compatible Verilog-A
Step 2
double-checkin MAPP
compare code, check consistency
NEEDS-compatibleVerilog-A model
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
ModSpec Model(in MATLAB)
auto-generatedfrom Verilog-A
automatic translator
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 43
end of Step 2: high level of confidence Verilog-A model is correct/debugged
translate manually
to NEEDS-compatible Verilog-A
Step 2
double-checkin MAPP
compare code, check consistency
NEEDS-compatibleVerilog-A model
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
ModSpec Model(in MATLAB)
auto-generatedfrom Verilog-A
automatic translator
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 44
end of Step 2: high level of confidence Verilog-A model is correct/debugged
translate manually
to NEEDS-compatible Verilog-A
Step 2
double-checkin MAPP
compare code, check consistency
NEEDS-compatibleVerilog-A model
MAPP Model Development Flow (2)
ModSpec Model(in MATLAB)hand-coded
ModSpec Model(in MATLAB)
auto-generatedfrom Verilog-A
automatic translator
Step 1: model developed in ModSpec/MAPP
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 45
Verilog-A to ModSpec Translation
Verilog-AModel VAPP
ModSpecModel
(MATLAB)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 46
Verilog-A to ModSpec Translation
Verilog-AModel VAPP
ModSpecModel
(MATLAB)
● DAE formulation ● Semantic checking
● Check good coding practices ● Auto Diff or hardcoded Jacobians
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 47
Verilog-A to ModSpec Translation
Verilog-A VAPP ModSpec
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 48
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 49
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
I(p,n) <+ G*V(p,n)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 50
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
<+
I
p n
*
G V
p n
I(p,n) <+ G*V(p,n) ● Start with tokens
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 51
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
Contribution
IO Math
IO
I(p,n) <+ G*V(p,n) ● Start with tokens● Contract representation into more abstract direction.● Create objects and link them
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 52
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
ContributionlhsIOrhsIOsIsExplicitDiffEqnprint
ModelIOsParmsTerminalsprint
I(p,n) <+ G*V(p,n) ● Start with tokens● Contract representation into more abstract direction.● Create objects and link them● Top level objects directly related to ModSpec internals
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 53
Verilog-A to ModSpec Translation
Verilog-A ModSpecAST IR-1 IR-2
ContributionlhsIOrhsIOsIsExplicitDiffEqnprint
ModelIOsParmsTerminalsprint
I(p,n) <+ G*V(p,n) ● Start with tokens● Contract representation into more abstract direction.● Create objects and link them● Top level objects directly related to ModSpec internals
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 54
Glimpse: Verilog-A → ModSpec Translator
Verilog-AModSpec (MATLAB)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 55
Glimpse: Verilog-A → ModSpec Translator
Verilog-AModSpec (MATLAB)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 56
Glimpse: Verilog-A → ModSpec Translator
Verilog-AModSpec (MATLAB)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 57
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 58
automatictranslator
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 59
automatictranslator
confirmmodel with
DC/AC/TRANin C++ MAPP
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
proof of modelgoodness
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 60
automatictranslator
confirmmodel with
DC/AC/TRANin C++ MAPP
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
proof of modelgoodness model supported
in Open-sourceSimulators
(Xyce)
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 61
automatictranslator
confirmmodel with
DC/AC/TRANin C++ MAPP
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
use modelin Commercial
Simulators
proof of modelgoodness model supported
in Open-sourceSimulators
(Xyce)
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 62
“simulation-ready” model deployed
automatictranslator
confirmmodel with
DC/AC/TRANin C++ MAPP
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
use modelin Commercial
Simulators
proof of modelgoodness model supported
in Open-sourceSimulators
(Xyce)
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 63
“simulation-ready” model deployed
automatictranslator
confirmmodel with
DC/AC/TRANin C++ MAPP
MAPP Model Development Flow (3)
Step 3
NEEDS-compatibleVerilog-A model
(from Step 2)
use modelin Commercial
Simulators
proof of modelgoodness model supported
in Open-sourceSimulators
(Xyce)
ModSpecModel
(C++ API)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 64
Glimpse: ModSpec Model in Xyce
ModSpec Model(C++ API)
model supported in Xyce
.so libraries(dynamically loadable)
compile standalone
Xyce-ModSpecInterface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 65
Glimpse: ModSpec Model in Xyce
1 *** Test-bench for generting dc response of an inverter 2 3 *** Creat sub-circuit for the inverter 4 .subckt inverter Vin Vout Vvdd Vgnd 5 6 yModSpec_Device X1 Vvdd Vin Vout Vvdd MVSmod type=-1 W=1.0e-4 7 Lgdr=32e-7 dLg=8e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 8 Cif = 1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 9 CTM_select=1 Rs0=100 Rd0 = 100 n0=1.68 nd=0.1 vxo=7542204 10 mu=165 Vt0=0.5535 delta=0.15 11 12 yModSpec_Device X0 Vout Vin Vgnd Vgnd MVSmod type=1 W=1e-4 13 Lgdr=32e-7 dLg=9e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 14 Cif=1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 15 CTM_select=1 Rs0=100 Rd0=100 n0=1.68 nd=0.1 vxo=1.2e7 16 mu=200 Vt0=0.4 delta=0.15 17 18 .model MVSmod MODSPEC_DEVICE SONAME=MVS_ModSpec_Element.so 19 20 .ends 21 22 *** circuit layout 23 Vsup sup 0 1 24 Vin in 0 0 25 Vsource source 0 0 26 X2 in out sup 0 inverter 27 28 *** simulation 29 .dc Vin 0 1 0.01 30 31 .print dc V(in) V(out) 32 *** END 33 .end
Xyce netlist for inverter(using MVS ModSpec/C++ model)
ModSpec Model(C++ API)
model supported in Xyce
.so libraries(dynamically loadable)
compile standalone
Xyce-ModSpecInterface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 66
Glimpse: ModSpec Model in Xyce
1 *** Test-bench for generting dc response of an inverter 2 3 *** Creat sub-circuit for the inverter 4 .subckt inverter Vin Vout Vvdd Vgnd 5 6 yModSpec_Device X1 Vvdd Vin Vout Vvdd MVSmod type=-1 W=1.0e-4 7 Lgdr=32e-7 dLg=8e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 8 Cif = 1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 9 CTM_select=1 Rs0=100 Rd0 = 100 n0=1.68 nd=0.1 vxo=7542204 10 mu=165 Vt0=0.5535 delta=0.15 11 12 yModSpec_Device X0 Vout Vin Vgnd Vgnd MVSmod type=1 W=1e-4 13 Lgdr=32e-7 dLg=9e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 14 Cif=1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 15 CTM_select=1 Rs0=100 Rd0=100 n0=1.68 nd=0.1 vxo=1.2e7 16 mu=200 Vt0=0.4 delta=0.15 17 18 .model MVSmod MODSPEC_DEVICE SONAME=MVS_ModSpec_Element.so 19 20 .ends 21 22 *** circuit layout 23 Vsup sup 0 1 24 Vin in 0 0 25 Vsource source 0 0 26 X2 in out sup 0 inverter 27 28 *** simulation 29 .dc Vin 0 1 0.01 30 31 .print dc V(in) V(out) 32 *** END 33 .end
Xyce netlist for inverter(using MVS ModSpec/C++ model)
ModSpec Model(C++ API)
model supported in Xyce
.so libraries(dynamically loadable)
compile standalone
Xyce-ModSpecInterface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 67
Glimpse: ModSpec Model in Xyce
1 *** Test-bench for generting dc response of an inverter 2 3 *** Creat sub-circuit for the inverter 4 .subckt inverter Vin Vout Vvdd Vgnd 5 6 yModSpec_Device X1 Vvdd Vin Vout Vvdd MVSmod type=-1 W=1.0e-4 7 Lgdr=32e-7 dLg=8e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 8 Cif = 1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 9 CTM_select=1 Rs0=100 Rd0 = 100 n0=1.68 nd=0.1 vxo=7542204 10 mu=165 Vt0=0.5535 delta=0.15 11 12 yModSpec_Device X0 Vout Vin Vgnd Vgnd MVSmod type=1 W=1e-4 13 Lgdr=32e-7 dLg=9e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 14 Cif=1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 15 CTM_select=1 Rs0=100 Rd0=100 n0=1.68 nd=0.1 vxo=1.2e7 16 mu=200 Vt0=0.4 delta=0.15 17 18 .model MVSmod MODSPEC_DEVICE SONAME=MVS_ModSpec_Element.so 19 20 .ends 21 22 *** circuit layout 23 Vsup sup 0 1 24 Vin in 0 0 25 Vsource source 0 0 26 X2 in out sup 0 inverter 27 28 *** simulation 29 .dc Vin 0 1 0.01 30 31 .print dc V(in) V(out) 32 *** END 33 .end
model's name model parameter:name of .so library
.model line
Xyce netlist for inverter(using MVS ModSpec/C++ model)
ModSpec Model(C++ API)
model supported in Xyce
.so libraries(dynamically loadable)
compile standalone
Xyce-ModSpecInterface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 68
Glimpse: ModSpec Model in Xyce
1 *** Test-bench for generting dc response of an inverter 2 3 *** Creat sub-circuit for the inverter 4 .subckt inverter Vin Vout Vvdd Vgnd 5 6 yModSpec_Device X1 Vvdd Vin Vout Vvdd MVSmod type=-1 W=1.0e-4 7 Lgdr=32e-7 dLg=8e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 8 Cif = 1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 9 CTM_select=1 Rs0=100 Rd0 = 100 n0=1.68 nd=0.1 vxo=7542204 10 mu=165 Vt0=0.5535 delta=0.15 11 12 yModSpec_Device X0 Vout Vin Vgnd Vgnd MVSmod type=1 W=1e-4 13 Lgdr=32e-7 dLg=9e-7 Cg=2.57e-6 beta=1.8 alpha=3.5 Tjun=300 14 Cif=1.38e-12 Cof=1.47e-12 phib=1.2 gamma=0.1 mc=0.2 15 CTM_select=1 Rs0=100 Rd0=100 n0=1.68 nd=0.1 vxo=1.2e7 16 mu=200 Vt0=0.4 delta=0.15 17 18 .model MVSmod MODSPEC_DEVICE SONAME=MVS_ModSpec_Element.so 19 20 .ends 21 22 *** circuit layout 23 Vsup sup 0 1 24 Vin in 0 0 25 Vsource source 0 0 26 X2 in out sup 0 inverter 27 28 *** simulation 29 .dc Vin 0 1 0.01 30 31 .print dc V(in) V(out) 32 *** END 33 .end
model's name model parameter:name of .so library
.model line
Xyce netlist for inverter(using MVS ModSpec/C++ model)
ModSpec Model(C++ API)
model supported in Xyce
.so libraries(dynamically loadable)
compile standalone
Xyce-ModSpecInterface
DC sweep using Xyce
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 69
Glimpse: ModSpec models in Xyce
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 70
Glimpse: ModSpec models in Xyce
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 71
Glimpse: ModSpec models in Xyce
20 ModSpec BJTs
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 72
Glimpse: ModSpec models in Xyce
20 ModSpec BJTs
Xyce-ModSpec-Interface supportsvoltage limiting (e.g., pnjlim, fetlim, limvds)
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 73
Glimpse: ModSpec models in Xyce
20 ModSpec BJTsmultiple ModSpec models in one netlist
Xyce-ModSpec-Interface supportsvoltage limiting (e.g., pnjlim, fetlim, limvds)
T. Wang and J. Roychowdhury, University of California at Berkeley Slide 74
Glimpse: ModSpec models in Xyce
20 ModSpec BJTsruns in other analyses as well, e.g., HB.
multiple ModSpec models in one netlist
Xyce-ModSpec-Interface supportsvoltage limiting (e.g., pnjlim, fetlim, limvds)
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 75
MAPP: Features
Works entirely in MATLAB Help system (start with help MAPP) Automatic differentiation (vecvalder) Executable device specification (ModSpec) DC, AC, transient analyses
» also noise, homotopy, HB, shooting, PPV, MOR, etc. (not released yet)
Automated testing system exercising suite of tests Verilog-A model translator (VAPP) Xyce – ModSpec interface
A. Gokcen Mahmutoglu, amahmutoglu@berkeley.edu Slide 76
Summary
http://MAPP.eecs.berkeley.edu
top related