Mixed-Mode Interface


The mixed-mode interface is the code written at Stanford to provide the communication between SPICE and PISCES. Figure 1 shows how the two simulators are configured to talk with each other. Similarly to an analytic model (like a BJT or MOSFET), a numerical device is seen as just another block in SPICE. This block communicates to the numerical device simulator through an interface routine. Like other analytic models, the numerical device provides terminal currents (and conductances) for given node voltages. The difference is that the latter finds the solution numerically.

This interface utilizes a two level Newton scheme to solve a circuit that includes numerical devices. On the upper level is the circuit iterations to determine the node voltages. For each one of these iterations, the device simulator solves for the terminal currents and conductance matrix using another Newton iteration within the device simulator (the lower level). The advantage of this method is the modularity created in the code.

Figure 2 shows the flow diagram for the execution of a single iteration step at the upper level. The blocks on the far right hand side represents different modules for the device simulator and/or method of execution. The sequence of steps is as follows.

  1. Determine the voltage boundary conditions, time step, and/or frequency SPICE requires for the current iteration/solution. The exact information depends on the type of analysis.
  2. Create the numerical device input deck that solves for the information requested by SPICE. A separate module exists for each device simulator that is interfaced to SPICE.
  3. Execute the numerical device simulations on the current host or on a remote host by some specified protocol.
  4. Read the results of that simulation.
  5. Based upon the analysis type, load the SPICE conductance (admittance) matrix and current vector.
  6. Repeat for each device at each circuit iteration.

Since a device simulation is required for each circuit iteration, the interface algorithms are given some intelligence to limit the computations required by the numerical device. The most important aspects or those algorithms are as follows:




<- Return to Top