Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
virtuoso schematic composer_5.0.pdf
Скачиваний:
97
Добавлен:
05.06.2015
Размер:
3.8 Mб
Скачать

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

Variables That Control Command Execution

Predefined global variables control command execution that affect the modification of the database. The following table shows variables and how they control lm functions.

Variable

Default Value

Use

symbolGen

t

Controls lmDefCell execution for

 

 

defining a cell

taGen

t

Controls lmDefCell execution for timing

 

 

view generation

replaceViewProp

nil

Controls lmDefViewProp execution by

 

 

controlling the property-adding mode

replaceTermProp

nil

ControlslmDefTermProp execution by

 

 

controlling the property-adding mode

October 2002

657

Product Version 5.0

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

Properties That Modify Values

To modify the value of a view or terminal property in the Cadence environment, use the property list editor.

To delete a property, use lmDeleteViewProp or lmDeleteTermProp. Then use lmDefViewProp or lmDefTermProp in append mode to put the property with the desired value back into the database.

You can also use S/SLG commands and text editing. First, print all properties into a file. Then, edit the file by modifying the values of the target property and load the file into S/SLG to replace all original properties. Remember to set replaceViewProp to t or replaceTermProp to t. You can add parameters to the property values.

Sample Library Command File

The following example shows a text file containing several commands and variable settings. These commands and variables generate symbols, specify timing parameters, define cellview and terminal properties, and print cellview and terminal properties.

A semicolon ( ; ) defines comments.

lmOpenLib( "myLib" "" "" "a" )

;library must be opened in append mode in order to execute

;subsequent commands, such as lmDefCell, lmDefViewProp. This

;command is redundant if you use lmLoadData to load this library

;command file.

;

symbolGen = t

;global variable setting

;cell description for SN74181

lmDefCell( "74181"

;input and output terminal names

input( A0 A1 A2 A3 B0 B1 B2 B3 S0 S1 S2 S3 CIN_ M ) output( F0 F1 F2 F3 AEQB COUT_ Y X )

defsymbol(

symbolProps( vendorName = "TI"

partName = "SN74181" refDes = "U100"

)

)

; specify time delay for generating a timing view delayTable( ( CIN_ COUT_ 12:13 nonInvert )

( (A0 A1 A2 A3) COUT_ 35ns:33ns invert )

( (B0 B1 B2 B3) COUT_ 35ns:33ns nonInvert ) ( CIN_ (F0 F1 F2 F3) 13ns:12ns )

( (A0 A1 A2 A3) Y 17ns:17ns nonInvert ) ( (B0 B1 B2 B3) Y 17ns:17ns invert )

October 2002

658

Product Version 5.0

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

( (A0 A1 A2 A3) X 17ns:17ns nonInvert ) ( (B0 B1 B2 B3) X 17ns:17ns invert )

( (A0 B0) F0 32ns:23ns ) ( (A1 B1) F1 32ns:23ns ) ( (A2 B2) F2 32ns:23ns ) ( (A3 B3) F3 32ns:23ns )

( (A0 A1 A2 A3 B0 B1 B2 B3) AEQB 35ns:32ns )

)

; add properties into the symbol view lmDefViewProp(

timeAdded = time("Apr 1 10:00:00 2000") author = "John Smith"

;define properties for SILOS logic/fault simulation if

;used as function model

silos = proplist(

NLPElementPostamble =nlpExpr("[@SILOS_FNx_Image]") Input_Pin_List = nlpExpr("[|A0] [|A1] [|A2]\

[|A3] [|B0] [|B1] [|B2] [|B3] [|S0] [|S1] [|S2] \ [|S3] [|CIN_] [|M]")

Output_Pin_List = nlpExpr("[|F0] [|F1] [|F2] [|F3] \ [|AEQB] [|COUT_] [|Y] [|X]")

Pin_Net_Map = nlpExpr("\\n$ 8 [|F0]=F0 [|F1]=F1 \ [|F2]=F2 [|F3]=F3 [|AEQB]=AEQB [|COUT_]=COUT_ \ [|Y]=Y [|X]=X \

[|A0]=A0 [|A1]=A1 [|A2]=A2 [|A3]=A3N[|B0]=B0 \ [|B1]=B1 [|B2]=B2 [|B3]=B3 [|S0]=S0 [|S1]=S1 \ [|S2]=S2 [|S3]=S3 [|CIN_]=CIN_ [|M]=M") \

;The value of Input_Pin_List Output_Pin_List and

;Pin_Net_Map should be put into one line of a text

;file. Here it is split into several lines for a more

;readable format.

)

)

;define the characteristics of input/output current for

;terminals

;iol : low-level output current

;ioh : high-level output current

;iil : low-level input current

;iih : high-level input current

;

lmDefTermProp(

( output iol = 16mA )

( (F0 F1 F2 F3 COUT_ Y X) ioh = -800uA ) ( AEQB ioh = 250uA )

( (A0 A1 A2 A3 B0 B1 B2 B3) iil = -4.8mA iih = 120uA ) ( (S0 S1 S2 S3) iil = -6.4mA iih = 160uA )

( M iil = -1.6mA iih = 40uA )

( COUT_ iil = -8mA iih = 200uA )

)

)

;cell description for TC4531BP - 12bit parity tree

;ignore symbol generation

symbolGen = nil lmDefCell( "4531"

; input and output terminal names

input( D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11\ "ODD|EVEN" )

output( Q ) defsymbol(

symbolProps(

vendorName = "TOSHIBA"

October 2002

659

Product Version 5.0

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

partName = "TC4531BP" refDes = "U200"

)

)

;specify time delay delayTable(

( (D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11) 320ns:320ns ) ( "ODD|EVEN" 210ns:210ns )

)

;add properties into the symbol view

lmDefViewProp(

timeAdded = time("Apr 1 10:00:00 2000") author = "John Smith"

;define properties for SILOS logic/fault simulation

;if used as a function model

silos = proplist( NLPElementPostamble =

nlpExpr("[@SILOS_FNx_Image]")

Input_Pin_List = nlpExpr("[|D0] [|D1] [|D2] \ [|D3] [|D4] [|D5] [|D6] [|D7] [|D8] [|D9] \ [|D10] [|D11] [|ODD|EVEN]") \

Output_Pin_List = nlpExpr("[|Q]") \ Pin_Net_Map = nlpExpr("\\n$ 1 [|Q]=Q [|D0]=D0 \

[|D1]=D1 [|D2]=D2 [|D3]=D3 [|D4]=D4 [|D5]=D5 \ [|D6]=D6 [|D7]=D7 [|D8]=D8 [|D9]=D9 \ [|D10]=D10 [|D11]=D11 [|ODD|EVEN]=ODD|EVEN")

;The value of Input_Pin_List and Pin_Net_Map

;should be put into one line of a text file. Here it

;is split into several lines for a more readable format

)

)

;

;define the characteristics of input/output current for

;terminals

;iol : low-level output current

;ioh : high-level output current

;iil : low-level input current

;iih : high-level input current

;VDD = 5V, VSS = 0V, 25C

lmDefTermProp( ( output

iol = 1.5 ; 1.5A ioh = -1.0 ; –1.0A

)

( input

iil = -0.01nA iih = 0.01nA

)

)

)

;append properties to the symbol of SN74181 replaceViewProp = nil

lmDefViewProp( "74181" vdd = 5

date = time("Apr 1 12:00:00 2000")

)

;append properties to some terminals of the symbol of TC4531 replaceTermProp = nil

lmDefTermProp( "4531" ("ODD|EVEN"

check = "odd or even parity"

October 2002

660

Product Version 5.0

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

)

(Q is = "only output"

)

)

;print all properties of the symbol of SN74181 in the file

;prop.74181

lmPrintViewProp( "74181" symbol "prop.74181" )

;print all terminal properties of the symbol of TC4531BP in

;the file term.4531

lmPrintTermProp( "4531" symbol "term.4531" )

;replace the properties in the symbol of SN74169 replaceViewProp = t

lmDefViewProp( "74169" symbol

instancesLastChanged = time("Jun 28 18:37:50 2000") userUnits = "userUnits"

"DBUPerUU" = 1.0 snapSpacing = 5 screenGridSpacing = 10 screenGridMultiple = 4 displayExpanded? = yes type = "TTL" manufacturerID = "TI" partName = "1000"

)

;replace the terminal properties in the symbol of SN74169 replaceTermProp = t

lmDefTermProp( "74169" symbol (input

iil = -2mA iih = 50uA

)

(output

iol = 20mA ioh = -1mA

)

)

;print the properties of symbol view for each cell in the current

;working library in the file sym.prop

lmPrintLibViewProp( symbol "sym.prop" )

;print the terminal properties of symbol view for each cell

;in the current working library in the term.prop file lmPrintLibTermProp( symbol "term.prop" )

lmCloseLib

;this command is redundant if you use lmLoadData to load this

;command file.

October 2002

661

Product Version 5.0

Virtuoso Schematic Composer User Guide

Symbol and Simulation Library Generator

October 2002

662

Product Version 5.0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]