From 720bf93a734c19be99d49fe593563bee8c0f0b86 Mon Sep 17 00:00:00 2001
From: stefan schippers These 4 attributes tell XSCHEM to ignore completely the instance in the respective netlist formats.
+ These 5 attributes tell XSCHEM to ignore completely the instance in the respective netlist formats.
Allowed values for these attributes are true (or open), false and
short
If short is specified the instance will short together all its pins. For this to work
@@ -193,6 +194,7 @@ name="mchanged_name" model=\"nmos\" w="20u" l="3u" m="10"
If any of these attributes are present and not empty and the symbol type is set to subcircuit
the corresponding netlister will ignore the schematic subcircuit for this specific instance
and dump into the netlist the content of this attribute.
@@ -251,6 +253,15 @@ name="mchanged_name" model=\"nmos\" w="20u" l="3u" m="10"
in the symbol if any.
+ This attribute contains a SPECTRE model or subckt specification
+ (spectre_device_model="model D1N4148 ....")
+ that will be printed at end of netlist only once for the specified component (D1N4148 in the example).
+ spectre_device_model attributes defined at instance level override the spectre_device_model set
+ in the symbol if any.
+
This attribute specifies an alternate schematic file to open when descending into the subcircuit.
diff --git a/doc/xschem_man/creating_symbols.html b/doc/xschem_man/creating_symbols.html
index b77bf05b..976b7a1e 100644
--- a/doc/xschem_man/creating_symbols.html
+++ b/doc/xschem_man/creating_symbols.html
@@ -54,7 +54,21 @@ p{padding: 15px 30px 10px;}
type=subcircuit
format="@name @pinlist @symname"
template="name=x1"
-
+
+ It is now possible to use @model instead of @symname to use a custom specified subcircuit name instead
+ of the symbol filename, see the following example for an opamp subcircuit with a gain parameter:
+ the above extension is allowed only for spice and spectre netlists.
These attributes are using by xschem to generate the subcircuit netlist line. the format
attribute tells xschem that a line containing the instance name (@name, replaced by
diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html
index 587186bc..6feda0eb 100644
--- a/doc/xschem_man/developer_info.html
+++ b/doc/xschem_man/developer_info.html
@@ -92,7 +92,8 @@ p{padding: 15px 30px 10px;}
have a property string attached. Any text can be present in a property string, however
in most cases the property string is organized as a set of key=value pairs separated by white space.
In addition to object properties the schematic or symbol view has global properties attached.
- There is one global property defined per netlisting mode (currently SPICE, VHDL, Verilog, tEDAx) and one additional global property
+ There is one global property defined per netlisting mode (currently SPICE, VHDL, Verilog, tEDAx, Spectre)
+ and one additional global property
for symbols (containing the netlisting rules usually).
See the XSCHEM properties section of the manual for more info.
Global properties define a property string bound to the parent schematic/symbol file,
there is one global property record per netlisting mode,
- currently SPICE, VHDL, Verilog, tEDAx.
- XSCHEM has 3 predefined netlisting modes, Spice, Verilog and
+ XSCHEM has 4 predefined netlisting modes, SPICE, Verilog, Spectre and
VHDL. Netlisting mode can be set in the Options menu
- (Vhdl, Verilog Spice radio buttons)
+ (Vhdl, Verilog SPICE Spectre radio buttons)
or with the <Shift>V key. Once a netlist mode is set, hitting the
Netlist button on the top-right of the menu bar or the n
key will produce the netlist file in the defined simulation directory.
- All the concepts explained for SPICE netlist apply for Verilog and VHDL formats.
+ All the concepts explained for SPICE netlist apply for Verilog, Spectre and VHDL formats.
Its up to the designer to ensure that the objects in the schematic are 'known' to the
target simulator. For example a resistor is normally
not used in VHDL or Verilog designs, so unless an appropriate 'format'
diff --git a/doc/xschem_man/symbol_property_syntax.html b/doc/xschem_man/symbol_property_syntax.html
index 5ff5abce..028e84cd 100644
--- a/doc/xschem_man/symbol_property_syntax.html
+++ b/doc/xschem_man/symbol_property_syntax.html
@@ -155,7 +155,8 @@ type=nmos
These 4 attributes tell XSCHEM to ignore completely all instances of the symbol in the respective netlist formats.
+ These 5 attributes tell XSCHEM to ignore completely all instances of the symbol in the respective netlist formats.
Allowed values for these attributes are true (or open), false and
short
If short is specified all symbol instances will short together all their pins. For this to work
@@ -182,6 +183,7 @@ type=nmos
These 4 attributes will avoid XSCHEM to descend into the schematic representation of the symbol
(if there is one) when building the respective netlist format. For example, if an analog block
has a schematic (.sch) file describing the circuit that is meaningless when doing a VHDL netlist,
@@ -192,6 +194,7 @@ type=nmos
Same as above _stop attributes, but in this case the schematic subcircuit is completely ignored,
only the 'format' string is dumped to netlist. No component/entity is generated in vhdl netlist,
no module declaration in verilog, no .subckt in spice, no schematic global attributes are exported to netlist. If any of these attributes are present and not empty and the symbol type is set to subcircuit
the corresponding netlister will ignore the schematic subcircuit
and dump into the netlist the content of this attribute. The typical usage is to include a file, example:
- If any of these 3 properties if set to true the symbol will be netlisted in the specified format.
+ If any of these 4 properties if set to true the symbol will be netlisted in the specified format.
This is only valid if the split file netlisting mode is active (Options -> Split netlist).
This is very rarely used but is required in mixed mode simulations, where part of the system will be
handled by an analog simulator (spice) and another part of the system by a digital Verilog / VHDL simulator.
@@ -522,6 +527,12 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );"
This attribute contains a SPICE .model or .subckt specification (device_model=".model D1N4148 D ....")
that will be printed at end of netlist only once for the specified component (D1N4148 in the example).
+ This attribute contains a SPECTRE model or subckt specification
+ (spectre_device_model="model D1N4148 D ....")
+ that will be printed at end of netlist only once for the specified component (D1N4148 in the example).
+
This attribute specifies an alternate schematic file to open when descending into the subcircuit:
@@ -566,6 +577,15 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );"
expands to patternR2[2],patternR2[1],patternR2[0] This expands to the name of the symbol This expands to the name of the symbol, instead of taking the filename it will use the model
+ attribute as defined in the template symbol attribute. This is possible for spice and spectre netlists only.
+ Example:
+
+
+
+
+type=subcircuit
+format="@name @pinlist @model gain=@gain"
+template="name=x1 gain=100 model=opamp"
+
+
+
+ currently SPICE, VHDL, Verilog, tEDAx, Spectre.
In addition (only in file_format 1.2 and newer) for schematics and symbols there is a global attribute ('K')
that defines how to netlist the schematic/symbol if placed as a
symbol into another parent schematic (should be set in the same way as the 'G' global attribute for symbols
@@ -807,6 +808,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
NETLISTING
@@ -118,7 +118,7 @@ format="@name @pinlist @symname"
Other netlist formats
@@ -401,7 +405,7 @@ m5 net1 b net2 VSSPIN nlv w=wn l=ln geomod=0 m=1
for tEDAx netlists.
+
+ type=subcircuit
+ format="@name @pinlist @model gain=@gain offset=@offset"
+ template="name=X1 model=opamp gain=100 offset=0"
+
This expands to the symbol reference exactly as specified in the instance (the Symbol textbox if you edit the symbol attributes with q key).
@@ -579,7 +599,7 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );" the order they are set in the symbol This expands to the net that connect to symbol pin named pin. This substitution
- takes place only when producing a netlist (Spice, Verilog, VHDL, tEDAx) so it is allowed to use this
+ takes place only when producing a netlist (Spice, Verilog, Spectre, VHDL, tEDAx) so it is allowed to use this
value only in format,vhdl_format, tedax_format or verilog_format
attributes (see Netlisting slide)
The @#pin attribute is expanded to ?m net where m is the pin multiplicity and
@@ -588,7 +608,7 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );"
This expands to the net that connect to symbol pin at position n in the XSCHEM internal storage. This substitution
- takes place only when producing a netlist (Spice, Verilog, VHDL, tEDAx) so it is allowed to use this
+ takes place only when producing a netlist (Spice, Verilog, Spectre, VHDL, tEDAx) so it is allowed to use this
value only in format,vhdl_format, tedax_format or verilog_format
attributes (see Netlisting slide)
This method of accessing a net that connects to a pin is much faster than previous one since XSCHEM does not need to
@@ -720,6 +740,10 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );"
this expands to the Verilog global property string of the schematic containing the symbol
++ this expands to the Spectre global property string of the schematic containing the symbol +
- Note: all the above concepts are valid for VHDL, Verilog and tEDAx netlists by replacing the - spice_sym_def attribute with vhdl_sym_def, verilog_sym_def and tedax_sym_def + Note: all the above concepts are valid for VHDL, Verilog, Spectre and tEDAx netlists by replacing the + spice_sym_def attribute with vhdl_sym_def, verilog_sym_def, + spectre_sym_def and tedax_sym_def respectively.
| TOOL | TYPE | XSCHEM SUPPORT |
|---|---|---|
| VACASK | Simulator | Works |
| Hspice | Proprietary Simulator | Works |
| Finesim | Proprietary Simulator | Works |
| Gtkwave | Viewer | Works |