clex18.in : GDS2, netlist reduction and contact statement

clex18.in : GDS2, netlist reduction and contact statement

clex18.in : GDS2, netlist reduction and contact statement

Requires: CLEVER

We show in this example that CLEVER can be used with a gds2 layout format as input. The commands used are GDS2=”layout.gds” and cell=”cell_number1″ which allow the user to load a gds2file and select a specific cell in the layout.

Netlist reduction for capacitance and resistance extraction are also available in CLEVER. Since we perform the capacitance and resistance extraction with one Interconnect command, we need to define two different minvalues. Therefore the keywords minRES and minCAP have to be set in the Interconnect command like:

Interconnect minRES = 0.001 minCAP=1.0e-18.

Finally we show in this example that the Interconnect statement was extended by the option Contact = <string>. This allows the user to specify one particular conductor for which CLEVER extracts the capacitance values with respect to all other conductors. If more than one interconnect statements are invoked during the course of the simulation, the last results of capacitance calculation will replace the previously calculated values that already exist in the netlist.

To load and run this example, select the Load button in DeckBuild > Examples. This will copy the input file and any support files to your current working directory. Select the Run button in DeckBuild to execute the example.

Output Results

These examples are for reference only. Every software package contains a full set of examples suitable for that version and are installed with the software. If you see examples here that are not in your installation
you should consider updating to a later version of the software.

Input Files

Input Deck


go VictoryProcess

Init Layout=clex18.gds cell=INV_MET_POLY_COMB mapfile=clex18.map Depth=10 \
     Material=Silicon RuleFile=clex18.lmp Gasheight=100

Electrode Substrate

##############################
# Define thickness variables #
##############################
set fieldoxide_thick=0.35 
set poly1_thick=0.22
set ild_thick=0.75
set metal1_thick=0.62
set metal2_thick=0.62
set metal3_thick=0.62 
set metal4_thick=0.62 
set metal5_thick=0.99 
set IMD1_thick=0.99
set IMD2_thick=0.99
set IMD3_thick=0.99
set IMD4_thick=0.99
set passiv_thick_ox=1.5
set passiv_thick_nit=1.2

## Process Description ##

## Trench
Etch Material=Silicon Thickness=$"fieldoxide_thick" Max Mask=AA
Deposit Material=Oxide Thickness=0 Max

## Gate oxide level
Deposit Material=Gateox Thickness=0.01 Max
Etch Material=Gateox Mask=*GATE reverse
deposit Material=oxide Thickness=0 Max

## Poly
Deposit material=polysilicon Thickness=$"poly1_thick" Max
Etch material=polysilicon Mask=CPOL
Electrode Mask=*GATE material=polysilicon

## Contact 
deposit material=PMD thickness=$"poly1_thick" Min
deposit material=PMD thickness=$"ild_thick" Max

Etch material=PMD Mask=CCON Reverse
Etch material=oxide
Strip Material=Resist

## Stop Source/Drain/Substrate Contacts Shorting to Substrate ##
## since substrate is treated as conductor here in other examples##
## substrate is a dielectric and thus no problem of short circuit ##

Deposit Material=Gateox Thickness=0.01 Min

## Named polygons will be converted into electrodes ##
Electrode Mask=*CONT Material=Gateox

## Metal 1 
deposit Material=ALU1 thickness=$"metal1_thick" Max
Etch material=ALU1 Mask=CME1
Electrodes Mask=CME1 material=ALU1 

## passiv 
deposit material=TEOS thickness=$"passiv_thick_ox" Max
deposit material=NIT thickness=$"passiv_thick_nit" Max

save Name=clex18_0


go Clever

Init Structure="clex18_0.str" GDS2="clex18.gds" cell="INV_MET_POLY_COMB" \
     layermap="clex18.map" Map="clex18.lmp"

###############################
# Assign materials parameters #
###############################

material silicon conductivity=1000

##############################
# Define material variables  #
##############################
set Perm_Gateox=0.0001
set Perm_OXIDE=3.9
set Perm_PMD=4.2
set Perm_FOX=3.9
set Perm_TEOS=4.2
set Perm_HDP=4.1
set Perm_NIT=6
set poly_conduct=1.0/(6*$poly1_thick*1e-4)
set lil_conduct=1.0/(0.285*$poly1_thick*1e-4)
set Al_conduct_1=1.0/(70e-3*$metal1_thick*1e-4)
set Al_conduct_2=1.0/(70e-3*$metal2_thick*1e-4)
set Al_conduct_3=1.0/(70e-3*$metal3_thick*1e-4)
set Al_conduct_4=1.0/(70e-3*$metal4_thick*1e-4)
set Al_conduct_5=1.0/(45e-3*$metal5_thick*1e-4)

material material("poly")   conductivity=$poly_conduct
material material("ALU1")   conductivity=$Al_conduct_1
material material("TEOS")   permittivity=$Perm_TEOS
material material("PMD")    permittivity=$Perm_PMD
material material("NIT")    permittivity=$Perm_NIT
material Material("Gateox") permittivity=$Perm_Gateox
material material("ALU2")   conductivity=$Al_conduct_2
material material("ALU3")   conductivity=$Al_conduct_3
material material("HDP")    permittivity=$Perm_HDP

## Save the 3D structure
save  structure="clex18.str"

## Parasitic Extraction ## 
# Extract the resistance but keep only those above 1ohm
Interconnect Resistance AdaptR=0.05 MinRES=1 

# First a calculation is made with 5% for every electrodes. 
Interconnect Capacitance AdaptC=0.05 capsolver=1

# Then Vdd since the precision asked is higher.
Interconnect Capacitance contact="Vdd" adaptC=0.03 capsolver=1

# you can also precise all the electrodes with a precision from
# the lowest  to the highest
# Interconnect Capacitance contact="Vdd"    adapt=0.07 capsolver=1
# Interconnect Capacitance contact="Vss"    adapt=0.05 capsolver=1
# Interconnect Capacitance contact="In"     adapt=0.03 capsolver=1
# Interconnect Capacitance contact="Out"    adapt=0.02 capsolver=1

Save Spice="clex18.net" 

quit

Related Articles