Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tools:netgen [2020/04/29 14:11]
rajit
tools:netgen [2023/04/15 07:35] (current)
rajit [Output handling]
Line 54: Line 54:
    q<10,5,hvt> & r<10,5> -> d-    q<10,5,hvt> & r<10,5> -> d-
 </code> </code>
-In this example, the transistor gated by ''a'' is low Vt, while the one gated by ''q'' is high Vt. All others are standard Vt.+In this example, the transistor gated by ''a'' is low Vt, while the one gated by ''q'' is high Vt. All others are standard Vt. Additional details are available in the [[language:langs:prs|prs sub-language]] documentation.
  
  
Line 108: Line 108:
 </code> </code>
  
 +===== Output handling  =====
  
- +ACT supports name mangling to sanitize the output so that it can be accepted by third-party tools. Since the largest variability in supported names is in different versions of SPICE, the ''prs2net'' tool also accepts another configuration file option called ''net.mangle_chars'' that can be used to change the name mangling that is used only for the output of ''prs2net''. (The meaning of this configuration  parameter is the same as [[config:start#generic_configuration_settings|''act.mangle_chars'']].
- +
 ===== Attributes ===== ===== Attributes =====
  
Line 134: Line 133:
  
 ^ Attribute ^ Meaning ^ ^ Attribute ^ Meaning ^
-| keeper | If set to 0 does not generate a staticizer automaticallyeven though the node is state-holding |+| keeper | The production rules for a signal are analyzed to determine if the pull-up and pull-down networks are perfect complements of each other. If they aren't, then a keeper is generated. There are two common scenarios when this behavior is undesired: (i) the gate is intended to be dynamic, and so it is state-holding but a staticizer should not be generated. Set ''keeper'' to ''0'' for this behavior. (ii) the gate looks state-holdingbut it is actually a combinational gate because certain inputs are supposed to be complements of each other. In this case, set ''keeper'' to ''2''. (iii) the gate is state-holding, is a C-element (uses ''#>''), is a two-input gate, and should use the H-topology C-element keeper structure. For this, set ''keeper'' to 3. |
 | comb | If set to 1, uses combinational feedback rather than a weak inverter for the staticizer; if 0, uses a weak inverter instead of combinational feedback | | comb | If set to 1, uses combinational feedback rather than a weak inverter for the staticizer; if 0, uses a weak inverter instead of combinational feedback |
 | iskeeper | used to let prs2net know that the specified production rule is in fact the manually  specified staticizer/keeper circuit. prs2net labels transistors used for keepers in the spice netlist, and this attribute can be used to ensure that manually specified keepers are also labeled (with ''_keeper''). | | iskeeper | used to let prs2net know that the specified production rule is in fact the manually  specified staticizer/keeper circuit. prs2net labels transistors used for keepers in the spice netlist, and this attribute can be used to ensure that manually specified keepers are also labeled (with ''_keeper''). |
Line 141: Line 140:
 | oresis | sets output resistance for node. This resistance is added in series to the output of the gate, and overrides the default from the prs2net configuration file | | oresis | sets output resistance for node. This resistance is added in series to the output of the gate, and overrides the default from the prs2net configuration file |
 | output | used for pass transistors to force either the source, drain, or both to be labelled as an output. This is useful for the PININFO directive emitted by prs2net. If the value v has bit zero set, then the source is marked as an output node. If v has bit one set, then the drain is marked as an output. By default, a node is considered an input if it does not have a production rule driving it. | | output | used for pass transistors to force either the source, drain, or both to be labelled as an output. This is useful for the PININFO directive emitted by prs2net. If the value v has bit zero set, then the source is marked as an output node. If v has bit one set, then the drain is marked as an output. By default, a node is considered an input if it does not have a production rule driving it. |
-| N_reff | sets the n-stack effective resistance, overriding the default computed by prs2net. This is used to compute strengths of staticizers. The resistance for one transistor is computed as L/W (in lambda) |+| N_reff | sets the n-stack effective resistance, overriding the default computed by prs2net. This is used to compute strengths of staticizers. The resistance for one transistor is computed as L/W where L and W are the length and width of the transistor respectively. |
 | P_reff | same as N_reff, except sets strength of p-stack | | P_reff | same as N_reff, except sets strength of p-stack |