Source: ACES 2014
Source: CERN CDS
No data output. The custom SLVS transceiver and its functional Verilog model disagreed on the polarity of the direction signal.
They still missed a mismatch between the functional model and the actual circuit.
d_cosim
Keep the digital simulator as the top level. Attach ngspice only to the blocks that need a real circuit.
The analog block is a Verilog shell. SpiceBind binds the instance; the netlist is the implementation.
HDL inputs drive Vname … external. Outputs come back from v(name). Names match after lowercasing.
Vname … external
v(name)
If an HDL event lands inside a SPICE step, that step is redone.
Keep the same RTL, testbench, cocotb, waveform viewers, and regressions.
Run SPICE only for the instances where the circuit changes what the system does.
Write tests and sweeps for ADCs, PLLs, DCOs, sensor front-ends, bias loops, and custom I/O.
Icarus Verilog, Verilator, ngspice, cocotb. Standard VPI, BSD-3-Clause. Works without a vendor AMS simulator.
Analog oscillation simulation for nominal and fast corners
SERV CPU, RAM, Wishbone, and measurement logic stay RTL. The firmware runs unchanged.
dco_core keeps the same HDL interface: enable, trim[3:0], osc. Use the behavioral model for fast runs or bind the SPICE circuit with SpiceBind.
dco_core
enable
trim[3:0]
osc
Firmware calibration loop
Results before and after trimming across corners
SpiceBind adds circuit-level simulation to selected blocks in an RTL verification flow.
<div class="closing-hero">Put real circuits into your existing HDL tests.</div>