Generating Netlists
Electrical circuit simulators or layout generations tools cannot deal with a schematic. The information exchange is made via netlists. A netlist concentrates all relevant information of a schematic. This includes a description of its components and how the components are connected. Netlist for simulations also includes information what and how to simulate. So for simulation and for a schematic or better a netlist driven layer different kinds of netlist are required. Even different simulators need different netlists.
From the SchematicEditor any kind of text based netlists can be generated. Some format are already predefined, other can simple be added. The generation is a formal process. The core definition of a netlist type is spicified in the setup and may look like this:
*spice $filename export from LayoutEditor $groundnode(0) *start of netlist $netlist(spice) *end of netlist *required models $model(spice)
Any expression from the definition is passed to the resulting netlist. Expressions starting with a '$' will be replaced. e.g $filename will be replace by the file name from which the netlist was extracted. $netlist(name) will be replaced by the netlist section with name of any used component. Expression containing a '$' in that section will be replaced as well. So that the above show definition may result in a netlist like this:
*spice layout/example/doubler/doubler.les export from LayoutEditor *start of netlist XU3 VSS VDD 2 4 INV_X1 XU2 VSS VDD 3 2 INV_X1 XU1 VSS VDD IN 3 INV_X1 XU4 VSS VDD IN 4 OUT AND2_X1 *end of netlist *required models .include layout/library/openCellLibrary/spicemodel.sp
The device specific netlist information is stored with each component. Within the component manager you can define unlimited different netlist information for any device. The information is splited into the pure netlist information which is listed one for each format and a model information which is listed once for each device type. Exporting the netlist is done via the save as feature in the schematic. The netlist body is defined in the setup dialog of the LayoutEditor.
An overview of all supported expression in a netlist:
|
global parameters: |
||
$groundnode(name) |
|
how the ground node will be named. If not defined, 0 is used |
|
$model(type) |
|
all models of the sheet |
|
$netlist(type) |
|
netlist of a sheet |
|
$filename |
|
filename |
|
$notEmpty(expression;value) |
|
value is printed, if expression is not empty |
|
$empty(expression;value) |
|
value is printed, if expression is empty |
|
|
sheet specific: |
||
$ports(format[;separator]) |
|
output non global ports of this sheet $portname outputs its name. The seperator is optional. |
|
$allports(format) |
|
output all ports of this sheet $portname outputs its name. |
|
$globalports(format) |
|
output all global ports of this sheet $portname outputs its name. |
|
$sheetname |
|
name of the sheet |
|
|
component specific: |
||
$parameters(format) |
|
output all component parameter in that format $parametername and $parametervalue can be used |
|
$node(port) |
|
node whitch is connected with port |
|
$devicename |
|
devicename |
|
$name_of_the_parameter |
|
value of "name_of_the_parameter" |
|
$parametername_num |
|
name of the parameter in position 'num' |
|
$librarypath |
|
path of the library the component belongs to |
|
See also
