Product Documentation
Virtuoso Technology Data SKILL Reference
Product Version IC23.1, June 2023

techCreateSpacingRuleTable

techCreateSpacingRuleTable( 
d_techID 
t_constraintName 
l_indexDefinitions 
tx_layer1 
[ tx_layer2 ]
) 
=> t / nil

Description

Creates a spacing table and indexes for the named constraint in the specified technology database. This new table does not overwrite an existing one. ASCII technology file location: spacingTables subsection in the foundry constraint group. To create table entries, use techSetSpacingRuleTableEntry. If a spacingTables subsection does not exist, this function creates one.

Arguments

d_techID

The database identifier of the technology database.

t_constraintName

The name of the spacing constraint.

l_indexDefinitions

A list defining the name of the index or indexes for the table. The list has the following syntax:

list( [ t_index1Name ] nil nil
[
t_index2Name ] nil nil )

where,

  • t_index1Name is the name of the first dimension of a two-dimensional table or the only dimension of a one-dimensional table.
    Valid values: Any number or string
  • t_index2Name is the name of the second dimension of a two-dimensional table.
    Valid values: Any number or string

tx_layer1

The first layer on which to apply the table constraint.

Valid values: The layer name, the layer number

tx_layer2

The optional second layer on which to apply the table constraint.

Valid values: The layer name, the layer number

Value Returned

t

The spacing table was created.

nil

The spacing table was not created.

Examples

techCreateSpacingRuleTable(tfID "minSpacing" 
list("width" nil nil "length" nil nil) "Metal1")
=> t

Creates a 2D minSpacing table with indexes width and length for Metal1 in the foundry constraint group:

spacingTables(
;( constraint layer1 [layer2]
; (( index1Definitions [index2Defintions]) [defaultValue] )
; ( table) )
;( --------------------------------------------)
( minSpacing "Metal1"
(("width" nil nil "length" nil nil))
(
)
)
) ;spacingTables

defaultValue is the value that is currently not obeyed by any tool. Therefore, if you query for a value that is not present in the table, 0 is returned irrespective of the value specified in this field.

( minSpacing                 "Metal1"
(("width" nil nil "length" nil nil)0.08)
(
(0.2 0.38) 0.11
(0.2 0.42) 0.11
(0.2 1.5) 0.11
)
)

Returns 0 if you query (0.1 0.1) from the table. This is because none of the entries in the table fits the (0.1 0.1) criterion. The lowest entry is width, which is greater than 0.2 and parallel run length is greater than 0.38. So, all queries below this particular value will return 0.

It is recommended that you provide a full table for greater clarity, as shown below:

( minSpacing                 "Metal1"
(("width" nil nil "length" nil nil)0.08)
(

(0.0 0.0) 0.09
(0.0 0.38) 0.09
(0.0 0.42) 0.09
(0.0 1.5) 0.09
(0.2 0.0) 0.09
(0.2 0.38) 0.11
(0.2 0.42) 0.11
(0.2 1.5) 0.11
)
)

If you now query (0.1 0.1), you will get 0.09.


Return to top
 ⠀
X