procedural circuit simulation with decida
DESCRIPTION
Procedural Circuit Simulation with decida. Richard V. H. Booth Agere Systems, Allentown, PA. decida. Device and Circuit Data Analysis http://decida.org Platform for Procedural Circuit Simulation - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/1.jpg)
Procedural Circuit SimulationProcedural Circuit Simulationwith with decidadecida
Richard V. H. BoothRichard V. H. BoothAgere Systems, Allentown, PAAgere Systems, Allentown, PA
![Page 2: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/2.jpg)
2
decidadecida• Device and Circuit Data AnalysisDevice and Circuit Data Analysis
• http://decida.orghttp://decida.org
• Platform for Procedural Circuit SimulationPlatform for Procedural Circuit Simulation• M.S. Toth and R.V. Booth, “A Designer-Customizable Design M.S. Toth and R.V. Booth, “A Designer-Customizable Design
Environment for Analog/Mixed-Signal Circuit Design,” Environment for Analog/Mixed-Signal Circuit Design,” presented at the 2001 O’Reilly Open-Source Convention, presented at the 2001 O’Reilly Open-Source Convention, San Diego CA, July 2001.San Diego CA, July 2001.
• http://conferences.oreillynet.com/cs/os2001/view/e_sess/1351http://conferences.oreillynet.com/cs/os2001/view/e_sess/1351• Compact Model Compiler (AMC)Compact Model Compiler (AMC)
• R.V.H. Booth, “An Extensible Compact Model Description R.V.H. Booth, “An Extensible Compact Model Description Language and Compiler,” presented at the 2001 Language and Compiler,” presented at the 2001 International Behavioral Modeling and Simulation International Behavioral Modeling and Simulation Workshop, Santa Rosa CA, October 2001.Workshop, Santa Rosa CA, October 2001.
• http://www.bmas-conf.org/web-docs/Repository/y2001/FinalPapers/Pdf/http://www.bmas-conf.org/web-docs/Repository/y2001/FinalPapers/Pdf/Booth.pdfBooth.pdf
• Device Measurements and Parameter ExtractionDevice Measurements and Parameter Extraction• Data Analysis and VisualizationData Analysis and Visualization
![Page 3: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/3.jpg)
3
decida decida procedural simulationprocedural simulation
![Page 4: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/4.jpg)
4
Procedural simulationProcedural simulation• Design phasesDesign phases
• Initial circuit module designsInitial circuit module designs• Circuit module optimizationsCircuit module optimizations• Pre-layout/post-layout characterizationsPre-layout/post-layout characterizations• Model-building for high-level verificationModel-building for high-level verification• Top-level simulations (pre-release/field)Top-level simulations (pre-release/field)
• Procedural simulationProcedural simulation• Organized simulation Organized simulation
runs/post-processing/bookkeepingruns/post-processing/bookkeeping• Can be used with Can be used with ALLALL design phases design phases
![Page 5: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/5.jpg)
5
Procedural SimulationProcedural Simulation• Advantages of Procedural Simulation ApproachAdvantages of Procedural Simulation Approach
• All variations over All variations over processingprocessing, supply , supply voltagevoltage, , operating operating temperaturetemperature, control register/divider , control register/divider settingssettings can be performed can be performed
• Simulation results are Simulation results are post-processedpost-processed in-line, and in-line, and can be evaluated before the entire range of can be evaluated before the entire range of variations are donevariations are done
• Simulations can be farmed out to Simulations can be farmed out to compute farmcompute farm• Script is ready for simulations with Script is ready for simulations with post-layoutpost-layout
netlists or revised process files netlists or revised process files • Simulation approach is exactly Simulation approach is exactly documenteddocumented• Scripts can be Scripts can be re-usedre-used for similar modules for similar modules• SimulatorSimulator independence independence
![Page 6: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/6.jpg)
6
PLL design component testsPLL design component tests
PFD charge-pumpREF
FBK
UP
DNVCO
loopfilter
feedback divider
OUT
bias regulatorVREF
IREFVREG
DIV
VC
![Page 7: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/7.jpg)
7
PLL design component testsPLL design component tests
PFD charge-pumpREF
FBK
UP
DNVCO
loopfilter
feedback divider
OUT
bias regulatorVREF
IREFVREG
DIV
VCdc analysis (T, Vdd)
stability
line-rejection
load-rejection
startup
dropout
compact model
![Page 8: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/8.jpg)
8
PLL design component testsPLL design component tests
PFD charge-pumpREF
FBK
UP
DNVCO
loopfilter
feedback divider
OUT
bias regulatorVREF
IREFVREG
DIV
VC
frequency versus VC
jitter analysis
range design
gain design
operating current
powerdown current
compact model
![Page 9: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/9.jpg)
9
PLL design component testsPLL design component tests
PFD charge-pumpREF
FBK
UP
DNVCO
loopfilter
feedback divider
OUT
bias regulatorVREF
IREFVREG
DIV
VC
locking time
stability analysis
phase/frequency hit
operating current
powerdown current
compact model
![Page 10: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/10.jpg)
10
Open SourceOpen SourceHow do you develop a procedural circuit simulation platform How do you develop a procedural circuit simulation platform
while doing real work?while doing real work?• Using the tool immediately for real work can make it Using the tool immediately for real work can make it
exactly the right solution for the problem at hand. But:exactly the right solution for the problem at hand. But:• the solutions must be generalized appropriatelythe solutions must be generalized appropriately• infrastructure specifics promote hackinginfrastructure specifics promote hacking
• Most people do it (shell scripts, etc.)Most people do it (shell scripts, etc.)• If it’s just one person using the platform, then updating it If it’s just one person using the platform, then updating it
doesn’t make anyone angry. But if more than one (a few):doesn’t make anyone angry. But if more than one (a few):• extensibility and incremental development doesn’t require extensibility and incremental development doesn’t require
major code releases, just feature-addingmajor code releases, just feature-adding• spin-off tools can be used by othersspin-off tools can be used by others
• Open Source!Open Source!• customers can use itcustomers can use it• tool becomes more generaltool becomes more general• tool benefits from real code development expertisetool benefits from real code development expertise
![Page 11: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/11.jpg)
11
decidadecida architecture architecture
Tcl/Tk
decida BLT [incr tcl]
Application
decidalibrary
packagelibraries
userlibraries
simulators
![Page 12: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/12.jpg)
12
decidadecida architecture architecture
Tcl/Tk
decida BLT [incr tcl]
Application
decidalibrary
packagelibraries
userlibraries
simulators
Tcl/Tk Core
![Page 13: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/13.jpg)
13
decidadecida architecture architecture
Tcl/Tk
decida BLT [incr tcl]
Application
decidalibrary
packagelibraries
userlibraries
simulators
Extensibility
![Page 14: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/14.jpg)
14
decidadecida architecture architecture
Tcl/Tk
decida BLT [incr tcl]
Application
decidalibrary
packagelibraries
userlibraries
simulators
Natural Development Flow
![Page 15: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/15.jpg)
15
decidadecida extension extension
Data objectData object
data dat1
dat1 read vco.prelayout.out
dat1 plot Time Vco
dat1 jitter Vco
![Page 16: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/16.jpg)
16
decidadecida extension extension
Circuit Simulator ObjectCircuit Simulator Object
celerity sim1
sim1 command “.rd vco10v3.sp”
sim1 command “.dc vcont 0 $vdd .1”
sim1 info elements
![Page 17: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/17.jpg)
17
decidadecida extension extension
Test Bench ObjectTest Bench Object
TestCkt tckt1
tckt1 embed vco10v3.sp
tckt1 monitor V(OUT)
set datq [tckt1 analysis_data .dc vcont 0 $vdd .1]
![Page 18: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/18.jpg)
18
decidadecida extension extension
Test Suite ObjectTest Suite Object
TestSuite ts1
ts1 add-test temp-sweep { . . .} {. . .}
ts1 configure –simulator hspice
ts1 go
![Page 19: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/19.jpg)
19
TestSuite Script exampleTestSuite Script example
TestSuite ts1 –mode prelayout –simulator hspice \ -modeldir /home/models/lv090g/sim \ –netlistdir /home/mgb1/work/proj1 \ -vnom 3.3 –vlow 3.0 –vhigh 3.6#-----------------------------------------------------# test definitions#-----------------------------------------------------ts1 go –guiexit 0
![Page 20: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/20.jpg)
20
TestSuite test menuTestSuite test menu
![Page 21: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/21.jpg)
21
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Specify a Test named “dc”
![Page 22: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/22.jpg)
22
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Specify list of netlists to embed
![Page 23: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/23.jpg)
23
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Specify list of node voltages and element currents to monitor
![Page 24: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/24.jpg)
24
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Create Report object to collect simulation results
![Page 25: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/25.jpg)
25
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Perform analysis for each Case combination (process/temperature/voltage)
![Page 26: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/26.jpg)
26
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Simulator-independent reference to Processing-case library
![Page 27: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/27.jpg)
27
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Loop over range of supply voltages(over-ride case-combination setting)
![Page 28: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/28.jpg)
28
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Simulator-independent power-supply setting
![Page 29: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/29.jpg)
29
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
Perform analysis and collect the resultsIn an auxiliary data object
![Page 30: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/30.jpg)
30
Bandgap temperature sweep testBandgap temperature sweep test
ts1 add-test dc { prelayout {bgfra_test.sp bgfra.sp} postlayout {bgfrq_test.sp bgfra.extract.sp}} { tckt monitor {V(VBG) IBG=I(MN1) @XBGFRA: V(Q1E)} Report rpt $test.$mode.report –verbose 1 rpt header “Case Temp Vdd VBG IBG VQ1E” foreachcase {WCS WCF} { tckt setlibs $lib foreach vdd [range-sample $vlow $vhigh .1 –step] { tckt setsupply VDD $vdd set d [tckt analysis_data .dc temp -40 125 5] rpt report-data $d key TEMP vdd VBG IBG VQ1E $d delete } } delete object rpt}
No post-processing required:Dump the results to the report object
![Page 31: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/31.jpg)
31
dataviewdataview of test results of test results
![Page 32: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/32.jpg)
32
Last WordsLast Words• analysis/visualizationanalysis/visualization
• dataviewdataview• X-Y/histogram/smith-chartX-Y/histogram/smith-chart• FFT/IFFTFFT/IFFT• eye/scope diagramseye/scope diagrams• jitter analysisjitter analysis• signal analysissignal analysis
• simulator-independencesimulator-independence• speed/accuracyspeed/accuracy• pre-layout/post-layoutpre-layout/post-layout• verificationverification• convergenceconvergence
![Page 33: Procedural Circuit Simulation with decida](https://reader036.vdocument.in/reader036/viewer/2022062315/56815d2c550346895dcb240e/html5/thumbnails/33.jpg)
33
decida decida Open-Source projectOpen-Source project
http://decida.orghttp://decida.org
executables for Solaris and Linuxexecutables for Solaris and Linux