stline

stline :
A generalized multi-conductor, multi-port transmission line with per-port characteristic impedance and split-delay transfer functions.

The stline primitive models a generalized multi-conductor, multi-port transmission line. That is, each of its ports can have a different characteristic impedance defined with a circuit network expression and each of its port-to-port couplings can be defined with multiple transfer functions split with different delays. The parameter num_port defines the number of ports of the transmission line, and the primitive has a set of terminals pos[1:num_port] and neg[1:num_port], where pos[i] and neg[i] denote the positive and negative terminals of the port #i, with i ranging from 1 to num_port.

The string-array parameter Z0 defines the individual characteristic impedances of the ports using the circuit network expressions. For example, a string “R50||C1p” describes a parallel combination of a 50-ohm resistance and a 1-pF capacitance, and “R50+L1n” describes a series combination of a 50-ohm resistance and a 1-nH inductance. In this circuit network expression, each R/L/C element is described with a string starting with an R, L, or C prefix followed by its resistance, inductance, or capacitance value, respectively, and an optional unit suffix (e.g. n for nano and p for pico). The characteristic impedance of each port can be then described as an arbitrary network of R/L/C elements using the series operator +, parallel operator ||, and grouping operators (). If the string-array parameter Z0 has only one expression, it implies that all the ports share the same circuit network expression for their characteristic impedances.

The integer-array parameter ports and real-array parameters delay and delay together define the frequency-dependent transfer characteristics between any selected source and destination ports of the transmission line. For instance, if the transmission or reflection coefficient from port P1 to port P2 can be described as the following s-domain transfer function H(s) having a total of N partial fraction terms and a transport delay of D:

                 b1_real + j*b1_imag                 bN_real + j*bN_imag
    H(s) = ( ---------------------------- + ... + ---------------------------- ) * exp(-s*D),
             (s + a1_real + j*a1_imag)^m1         (s + aN_real + j*aN_imag)^mN

the parameter ports shall contain the following entries for the source and destination port indices:

    ports = '{ ..., P1, P2, ... }

And at the corresponding position, the parameter data shall have the 5*N+1 entries defining the coefficients of the N partial fraction terms:

    data =  '{ ...,
              N,                                            // number of terms
              a1_real, a1_imag, b1_real, b1_imag, m1,       // partial fraction term #1
              a2_real, a2_imag, b2_real, b2_imag, m2,       // partial fraction term #2
              ...
              aN_real, aN_imag, bN_real, bN_imag, mN,       // partial fraction term #N
              ...
            }

and the parameter delay shall have an entry defining the transport delay:

    delay = '{ ..., D, ... }

Note that the parameters ports, data, and delay may define multiple sets of transfer function and delay for the same pair of source and destination ports, allowing the definition of a port-to-port coupling with multiple transfer functions split with different delays.

The parameters Z0, ports, data, and delay can be alternatively defined by a parameter definition file named filename which defines the same named parameters in Python format. For any transmission characteristics not specified, the primitive assumes the reciprocal characteristics from the ones defined and ideal characteristics for the rest (i.e. no transmission loss and no crosstalk).

This primitive is a pseudo-module describing a structural netlist of electrical circuits and not a behavioral model by itself. The XMODEL simulator extracts an event-driven behavioral model at run-time based on the circuit network described by these circuit-level pseudo-modules.

Input/Output Terminals

Name I/O Type Description
pos input xreal positive terminals of ports
neg input xreal negative terminals of ports

Parameters

Name Type Default Unit Description
num_port int 2 None number of ports
Z0 string array ‘{“R50”} ohms characteristic impedance
ports int array ‘{0} None source/destination ports
data real array ‘{0.0} None transfer characteristics data
delay real array ‘{0.0} seconds line propagation delay
filename string “” None parameter definition file
abstol real 1e-3 None absolute tolerance for event-filtering
reltol real 1e-2 None relative tolerance for event-filtering
m real 1.0 None multiplicity factor
« resistor
switch »