procedural circuit simulation with decida

33
Procedural Circuit Simulation Procedural Circuit Simulation with with decida decida Richard V. H. Booth Richard V. H. Booth Agere Systems, Allentown, PA Agere Systems, Allentown, PA

Upload: lester

Post on 11-Feb-2016

46 views

Category:

Documents


8 download

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 Presentation

TRANSCRIPT

Page 1: Procedural Circuit Simulation with  decida

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

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

3

decida decida procedural simulationprocedural simulation

Page 4: Procedural Circuit Simulation with  decida

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

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

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

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

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

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

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

11

decidadecida architecture architecture

Tcl/Tk

decida BLT [incr tcl]

Application

decidalibrary

packagelibraries

userlibraries

simulators

Page 12: Procedural Circuit Simulation with  decida

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

13

decidadecida architecture architecture

Tcl/Tk

decida BLT [incr tcl]

Application

decidalibrary

packagelibraries

userlibraries

simulators

Extensibility

Page 14: Procedural Circuit Simulation with  decida

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

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

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

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

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

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

20

TestSuite test menuTestSuite test menu

Page 21: Procedural Circuit Simulation with  decida

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

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

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

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

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

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

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

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

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

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

31

dataviewdataview of test results of test results

Page 32: Procedural Circuit Simulation with  decida

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

33

decida decida Open-Source projectOpen-Source project

http://decida.orghttp://decida.org

executables for Solaris and Linuxexecutables for Solaris and Linux