The Netlist Component definition allows passive SPICE3 circuits to be considered a circuit component definition within the FDTD simulation. This co-simulation allows the netlist circuit to be treated as one cell edge, regardless of the actual size and complexity of the circuit being described by the netlist. This allows users to simulate complex circuits without creating the circuit layout piece-by-piece in XF.
Additionally, netlist components may be used to define a matching circuit embedded within a feed. The netlist must first be imported, creating a netlist component definition that can then be assigned as a matching circuit in the feed editor.
A netlist component is created by choosing Netlist Component from the Type drop-down menu in the Circuit Component Definition Editor. A netlist file is imported using the Import Netlist button. Once imported, the file's contents can be edited using the View/Edit Netlist button.
Netlist files will contain one or more subcircuits. Because the netlist component represents only one subcircuit during the FDTD simulation, the Subcircuit drop-down menu specifies which to use.
Supported Elements and Models
XF supports a subset of the circuit elements and element models available in SPICE, and supports none of the SPICE analysis or output commands.
The following circuit elements are supported:
- Coupled Inductors
- Subcircuits (used to call another .SUBCKT definition)
The import process will fail if unsupported circuit elements are encountered anywhere in the netlist file. Analysis commands (.AC, .DISTO, .NOISE, etc.) and output commands (.SAVE, .PLOT, .PRINT, .FOUR) contained in a netlist file will be ignored during the import process and excluded from the imported data. It follows that XF only supports .MODEL definitions corresponding to currently supported element types.
After a netlist file is imported, only valid subcircuit definitions from the netlist may be used as the netlist component definition. If the netlist file contains more than one valid subcircuit, the desired subcircuit may be selected from the drop-down menu in the editor.
The following rules define a valid .SUBCKT definition:
- It must only contain the supported circuit elements described above.
- It must have two, three, or four external nodes/terminals. Three and four terminal subcircuits may only be used to define a matching circuit, and cannot be used to define a standalone circuit component.
- It must not be nested inside another subcircuit definition.
Conventions and Syntax
Detailed information about how SPICE3 netlists are structured and written can be found at the University of California at Berkeley's EECS Department.
There are a few key differences between the official SPICE3 conventions and syntax and what XF supports for imported netlist files:
- Model parameters should be listed and separated by spaces, following the model type on a .MODEL definition line rather than appearing inside parenthesis following the model type. For example, .MODEL Model-Name ModelType Param1=Value1 Param2=Value2...
- Only .SUBCKT definitions may be used as the netlist component definition. The top-level netlist circuit described by elements that are defined outside of a .SUBCKT definition will be unavailable to use as the netlist component definition. To use those elements, users must group them into their own .SUBCKT definition in the netlist file prior to import.
- Model, subcircuit, and element names may contain underscores (_) only when they are in addition to alphanumeric characters, and must begin with a letter.
- Subcircuit and element terminal names must contain only underscores and alphanumeric characters, and are not required to begin with a letter.
0.20 pF Ceramic Chip Example
Consider a general purpose high Q multilayer ceramic chip from Murata. Instead of entering its capacitance value of 0.20 pF as an ideal component in XF, a more accurate model can be used in the simulation by following these steps:
- Locate the capacitor on Murata's website by searching the part number.
- Download a SPICE netlist file (*.mod) from the product page.
- Import the netlist file into XF's netlist component definition.
- Place the model in the FDTD simulation space as a Circuit Component.
At each timestep during the FDTD simulation, co-simulation with a circuit solver will update the cell edge containing the netlist component.