File Structure
All files used by IC-CAP are stored in an ASCII format that can be accessed by standard HP-UX tools and editors. IC-CAP Model files have a user-defined name; the extension is assigned by the system. The following table lists the file types and extensions.
Table 73 IC-CAP File Types and Extensions
|
|
|
|
Dataset
|
.ds
|
Data management
|
.mdm
|
Hardware
|
.hdw
|
Setup
|
.set
|
Model
|
.mdl
|
Input
|
.inp
|
Circuit
|
.cir
|
Output
|
.out
|
Model Parameters
|
.mps
|
Transform
|
.xfm
|
Macro
|
.mac
|
Plot
|
.plt
|
DUT
|
.dut
|
Instrument Options
|
.iot
|
DUT Parameters
|
.dps
|
Variables Table
|
.vat
|
Test Circuit
|
.tci
|
Input
|
.inp
|
Statistical data
|
.sdf
|
|
|
The .mdl file is a combination of the file types listed below it. If all Models currently loaded are saved together, they are put in a single .mdl file. The complete Model file contains a circuit description, a model parameter set, Macros, and DUT descriptions. The DUT description in turn contains a DUT parameter set, a Test Circuit, and Setups. The Setups contain Inputs, Outputs, Transforms, and Plots.
The hardware description is global to IC-CAP and is not a part of a Model file. It can be saved in a .hdw file. It is also found in the .icconfig file in the user's home directory. In addition to the hardware description, this file contains values of system variables, and status information for windows that are directly available from the Main Menu.
The individual major sections of the complete Model file begin with the word LINK followed by the type (for example, Model or DUT) and a name. The supporting information under this defines the appropriate configuration for IC-CAP. The hierarchy of related items in each file is defined by sets of braces { }. A major section title is followed by an open brace { and continues until the complementary closing brace }.
Within a section there are several key words that indicate the function of the associated information. When a single key word is on a line, the associated information is on the lines below. For some key words, their associated information is in fields to the right only, while for others, associated information is in fields to the right and lines below. These key words are summarized in the following table.
When editing an IC-CAP Model file, key words and braces must be in the correct locations for the file to be correctly read into IC-CAP. Editing the file with a text editor can be quite productive in some areas. When developing large Program Transforms or Macros, you may find it more convenient to create these with an editor outside of IC-CAP and read them in. When doing this, begin each line of text in your Program Transform or Macro with the pound sign (#).
Table 74 Key words in the IC-CAP File Structures
|
|
LINK
|
major IC-CAP building block
|
applic
|
application window that can be opened by IC-CAP
|
subapp
|
title within an application
|
TABLE
|
collection of user-modifiable elements
|
element
|
user-programmable field (input box)
|
HYPTABLE
|
table that is dynamically configured by IC-CAP
|
BLKEDIT
|
block editor text follows (note: leading space in text)
|
CNTABLE
|
connection table—not currently used in IC-CAP
|
PSTABLE
|
parameter set table
|
param
|
model parameter name and value
|
data
|
configuration data follows belonging to the LINK item
|
dataset
|
collection of numerical data
|
datasize
|
dimensional information for a dataset
|
type
|
MEASured, SIMUlated, or COMMON data points to follow
|
point
|
individual data value—index, row, column, real value, imaginary value
|
list
|
this item is dependent on the owning LINK item
|
member
|
the owning LINK item is dependent on this item
|
Example File
The following truncated Model file illustrates the structure described. Comments enclosed in angle brackets < > describe the file contents; they are not part of the actual IC-CAP file. Variable Tables or lines that start with applic or subapp are optional. It is not necessary for these lines to be present for a file to be successfully read by IC-CAP.
{ PSTABLE "Parameter Table"
{
}
}
}
Link DAT "idvd" <DAT is internal name for Setup>
{
LINK MODEL "diode" <first line of an IC-CAP .mdl file>
{
applic "Edit" 1 83 194 <main model window is open & at pixels 83,194>
subapp "dset_tile" 1 < DUT-Se tup tile is open>
TABLE "Variable Table" <Variable Table for Model "diode">
{
element 0 "Name" "SIMULATOR"
element 0 "Value" "spice2"
element 1 "Name" ""
element 1 "Value" ""
}
LINK CIRC "Circuit" <circuit description starts here>
{
applic "Edit" 0 12 328
subapp "Circuit" 1
data
{
circuitdeck
{
D1 1 = A 2 = C DIODE <all lines in circuit have a leading space>
.MODEL DIODE D
+ IS = 1E-14
+ N = 1.0
}
}
} <circuit description ends here>
Link PS "Parameter Set"
{
applic "Edit" 0 7 137
subapp "Parameter Table" 1
data
{
PSTABLE "Parameter Table"
{
param IS 10.01f
param N 999.7m
}
}
}
Link DUT "dc"
{
applic "Edit" 0 -1 -1 <DUT editor is closed, has not been opened yet>
applic "Edit Variables" 0 -1 -1
subapp "setup_list" 1
Link TCIRC "Test Circuit"
{
subapp "Test Circuit" 0
data
{
|
circuitdeck
{
} <end test circuit deck>
} <end data section>
} <end Test Circuit>
Link DPS "Device Parameter Set"
{
subapp "Parameter Table" 1
data
applic "Edit" 0 382 136 <Setup "idvd" is closed>
applic "Instrument Options" 0 -1 -1 <instrument options table not opened yet>
applic "Edit Variables" 0 -1 -1 <variables editor not opened yet>
subapp "SWEEP" 1
subapp "OUT" 1
subapp "XFORM" 1
subapp "PLOT" 1
subapp "Instrument Table List" 1
subapp "Variable Table" 1
Link SWEEP "va" <Input sweep specification starts here>
{
applic "Display Data" 0 -1 -1
subapp "Edit Sweep Info" 1
subapp "Display Data" 1
data
{
HYPTABLE "Edit Sweep Info" <start of dynamic table definition>
{
element "Mode" "V"
element "Sweep Type" "LIN"
}
HYPTABLE "Edit Sweep Mode Def"
{
element "+ Node" "A"
element "- Node" "GROUND"
element "Unit" "SMU1"
element "Compliance" " 100.0m"
}
HYPTABLE "Edit Sweep Def"
{
element "Sweep Order" "1"
element "Start" " 300.0m"
element "Stop" " 1.000 "
element "# of Points" "29"
element "Step Size" " 25.00m"
}
} <end of dynamic table definition>
list XFORM "extract" <Transform "extract" is dependent on this Input>
list PLOT "i_vs_v" <Plot has similar dependency>
} <Input specification "va" ends here>
<repeat of similar Input not shown>
Link OUT "ia" <Output specification starts here>
{
< file contents here similar to Input case & not shown>
dataset <start of measured and simulated data>
{
datasize BOTH 29 1 1 <key: type #-of-points #-of-rows #-of-columns>
type MEAS <measured data>
<key: index row column real imaginary>
point 0 1 1 1.09023e-09 0 <data point 0 has single value real number>
point 1 1 1 2.86573e-09 0 <note: s-parameters would have 4 values per point>
point 2 1 1 7.53339e-09 0 <corresponding to s11 s12 s21 and s22
|
point 3 1 1 1.98044e-08 0 <would be complex (real & imag) values>
point 4 1 1 5.20644e-08 0
<other data points not shown>
type SIMU <simulated data>
point 0 1 1 1.09513e-09 0
point 1 1 1 2.87943e-09 0
<other data points not shown - same number as MEAS>
}
}
list XFORM "optim_is_n" <Transform "optim_is_n" is dependent upon this Output>
list PLOT "i_vs_v" <Plot has similar dependency>
}
Link XFORM "extract" <extraction Transform starts here>
{
data
{
HYPTABLE "Link Transform"
{
element "Function" "Program"
}
BLKEDIT "Program Body" <prog body starts here - note leading space>
{
! Program Transform to extract IS, N, RS
! from forward diode I-V characteristics
!
! Note: print statements go to the
! window used to start IC-CAP
print "Example Program Transform to extract DC Diode Parameters"
index = 0 ! array index
!
! pick 2 low current points for IS & N
! to be extracted from
v1 = va[index] ! 1st voltage step
WHILE v1 < 0.4 ! get first data
index = index + 1 ! point pair
v1 = va[index]
END WHILE
i1 = ia[index]
< more program exists but is not shown>
print "... end of program Transform extraction ..."
}
dataset
{
datasize COMMON 29 1 1 <key: type #-of-points #-of-rows #-of-columns>
type COMMON <COMMON specification means that the same data is >
point 0 1 1 0 0 <used to represent measured & simulated data. >
point 1 1 1 0 0 <However, the data space is not used by this >
point 2 1 1 0 0 <transform, which calculates parameter values only>
<more points not shown>
}
}
member SWEEP "va" <this Transform is dependent on Input "va">
member OUT "ia" <this Transform is dependent on Output "ia">
}
|
Link PLOT "i_vs_v" <Plot definition starts here>
{
applic "Display Plot" 0 5 435 <Plot window is closed, but located at pixels 5,435>
applic "Display Data" 0 -1 -1 <data window has never been opened>
subapp "Edit plot Info" 0
subapp "Display Data" 1
data
{
plotsize 11960 8970 <Plot size is 11960x8970 (in 1/100 mm)>
HYPTABLE "Edit plot Info"
{
element "Report Type" "XY GRAPH"
}
HYPTABLE "Edit Plot Def"
{
element "X Data" "va"
element "Y Data 0" "ia"
element "Y Data 1" ""
element "Y Data 2" ""
element "Y Data 3" ""
element "Y Data 4" ""
element "Header" ""
element "Footer" ""
element "X Axis Type" "LINEAR"
element "Y Axis Type" "LINEAR"
element "Y2 Axis Type" "LINEAR"
element "Y2 Data" ""
}
}
member INPUT "va"
member OUT "ia"
}
data <data section for Setup - instrument options table information>
{
TABLE "HP4141.7.23" <HP4141 DC parameter measurement instrument>
{
element 0 "Use User Sweep" "No"
element 0 "Hold Time[0-650s]" " 0.000 "
element 0 "Delay Time[0-6.5s]" " 0.000 "
element 0 "Integ Time" "S"
} TABLE "HP4275.7.10"
{
element 0 "Hold Time[0-650]" " 0.000 "
element 0 "Delay Time[0-650]" " 0.000 "
element 0 "High Res" "No"
element 0 "Meas Freq (KHz)" "10"
}
}
}
}
} <end of complete Model file>
|
|