Cadence tools Brandon Rumberg 1 Tools to cover Creating - - PowerPoint PPT Presentation

cadence tools
SMART_READER_LITE
LIVE PREVIEW

Cadence tools Brandon Rumberg 1 Tools to cover Creating - - PowerPoint PPT Presentation

Cadence tools Brandon Rumberg 1 Tools to cover Creating piecewise linear (PWL) files OCEAN scripts Verilog-A 2 Why use PWL files? Creating arbitrary waveforms in Cadence is tedious & changes are difficult Piecewise


slide-1
SLIDE 1

1

Cadence tools

Brandon Rumberg

slide-2
SLIDE 2

2

Tools to cover

  • Creating piecewise linear (PWL) files
  • OCEAN scripts
  • Verilog-A
slide-3
SLIDE 3

3

Why use PWL files?

  • Creating arbitrary waveforms in Cadence

is tedious & changes are difficult

Piecewise linear source Combining sources

slide-4
SLIDE 4

4

PWLF Source

  • PWLF sources

read from a piecewise linear file

– ‘vpwlf’ in ‘analogLib’ library

  • The only

necessary parameter is the file path/name

Note: I’ve had trouble with the PWLF sources in the ‘NCSU_Analog_Parts’ library. They seem to have trouble finding the PWL file at times. So I recommend using the sources in ‘analogLib’

slide-5
SLIDE 5

5

When PWL files are useful

  • Testing a circuit with a realistic input acquired

from elsewhere

– Such as a speech recording

  • Testing chip-level configuration logic

– Such as a serial interface that controls parameters/connections within the chip – You can reuse these files to simplify post-fab testing

  • Performing a sequence of operations in one

transient simulation

– Particularly when the result of one operation affects the next operation

slide-6
SLIDE 6

6

PWL files

  • PWL files are text files

with rows of time/value pairs

– ‘Time’ and ‘Value’ are separated by a space – Each pair is on a separate line

  • Such files can easily be

generated with

– Matlab/Octave – Excel (save as txt file)

0.00000000e+00 1.50000000e+00 1.17200000e-03 1.50000000e+00 1.17300000e-03 1.50000000e+00 1.27200000e-03 1.50000000e+00 1.27300000e-03 1.50000000e+00 3.35900000e-03 1.50000000e+00 3.36900000e-03 5.10000000e+00 4.36900000e-03 5.10000000e+00 4.37900000e-03 5.10000000e+00 1.54379000e-01 5.10000000e+00

Time Value

slide-7
SLIDE 7

7

Generating PWL files

  • Create matrix with ‘time’ in the first column and ‘value’ in the

second column

  • Save using save -ascii <filename> <matrix>
  • The file extension is arbitrary
slide-8
SLIDE 8

8

Notes about PWLF

  • Cadence seems to read the PWL file at

the instance that the schematic is saved

– So if you generate a new PWL file, then you need to resave your schematic before starting a new simulation

slide-9
SLIDE 9

9

Tips for generating PWL files

  • Keep in mind that PWL

will be interpreted by connecting the dots

  • To simplify the creation
  • f a bitstream

– Define the hold (T) and rise/fall times (tr), then – Write a function that turns a string of bits into the desired waveform

To create a step, you need to specify the point before the step T tr T tr

slide-10
SLIDE 10

10

Tools to cover

  • Creating piecewise linear (PWL) files
  • OCEAN scripts
  • Verilog-A
slide-11
SLIDE 11

11

OCEAN scripts

  • OCEAN is a simulator scripting language

included in Cadence

  • Can be thought of as

– Parametric sweeps on steroids, or – A cross between Matlab and a simulator

  • OCEAN

– Exposes all simulator, graph, and calculator functions – Includes standard programming language functionality

  • File I/O
  • for/while loops
  • if/else branching
  • User-defined functions (called ‘procedures’)

– Lisp syntax

slide-12
SLIDE 12

12

An OCEAN of possibility

  • Circuit comparison

– Create one OCEAN testbench and then automatically swap in/out different netlists

  • Algorithmic circuit tuning

– Rather than using parametric sweeps, create an OCEAN script that automatically tunes the circuit

  • Parameter extraction

– Have OCEAN extract the important circuit performance parameters and save them in a file

slide-13
SLIDE 13

13

Creating an OCEAN script

  • The easiest way to get started is to set up an

initial simulation in the Virtuoso environment, then ‘Session-Save Script’

slide-14
SLIDE 14

14

Sample OCEAN script

  • Edit the script with a regular text editor
  • You can run the script using a different

circuit by changing the path in design( )

Design variables Analysis Simulate and results

slide-15
SLIDE 15

15

Running an OCEAN script

  • You can start ocean by typing ocean at the

command line

  • Then by typing load(“<script>.ocn”)
  • To avoid retyping full commands, use

– !<first letters of command><Enter> – e.g. !l<Enter> will rerun the last script

slide-16
SLIDE 16

16

Modifying an OCEAN script

  • Use simulation result to calculate capacitor

value that gives -20dB at high frequency

Define design variables as variables so we can work with them Run first with arbitrary starting values

Calculate high-frequency gain using standard calculator functions Calculate capacitor scaling to achieve target gain of -20dB (note that exponentials are done with **, not ^) Change the capacitor value based on the results Resimulate

slide-17
SLIDE 17

17

Results of previous slide

slide-18
SLIDE 18

18

Tools to cover

  • Creating piecewise linear (PWL) files
  • OCEAN scripts
  • Verilog-A
slide-19
SLIDE 19

19

Verilog-A

  • A modeling language for analog simulation
  • Uses for Verilog-A

– Replace transistor-level circuits

  • Simulate top-level before all circuits are finished
  • Evaluate top-level impact of circuit nonidealities
  • Speed up simulation

– Modeling non-standard circuit elements

slide-20
SLIDE 20

20

Creating a Verilog-A cell

  • Create a cell

as normal, but choose ‘VerilogA- Editor’ for the tool

  • This creates

and opens a Verilog template

Note: You can change the default text editor by typing editor=“<editor name>” in the icfb window The default is vi. You may want to change to nedit for a more conventional text editor.

slide-21
SLIDE 21

21

Insert your Verilog-A code

Input/output terminals Parameters can be defined Define component operation

slide-22
SLIDE 22

22

Symbol Creation & Compilation

  • When you close the

editor window, you will be asked if you want to create a symbol for you Verilog-A code

– Select ‘yes’ so that it will automatically generate your pins

  • The code is automatically

compiled when you compile

– If there is a syntax error you will receive a notification

  • Next is the symbol

generation dialog box shown to the write

  • Create symbol as usual
slide-23
SLIDE 23

23

Insert symbol for Verilog part & run sim