The circuits in this directory illustrate the use of the d_cosim XSPICE code model as a container for a Verilog simulation using Icarus Verilog. Icarus Verilog must be built with the --enable-libvvp option, so that its simulation engine is available as a dynamic library. The Verilog source code and included parts of the circuit definitions can be found in the adjacent "verilator" directory. The circuits and steps below are intended to be used from the directory containing this file, certainly ouput files from iverilog should be in the current directory when simulating. The example circuits are: 555.cir: The probably familiar NE555 oscillator provides a minimal example of combined simulation with SPICE and Verilog. The digital part of the IC, a simple SR flip-flop, is expressed in Verilog. delay.v: A very simple example of using delays in Verilog to generate waveform outputs. pwm.c: Verilog delays controlling a pulse-width modulated output generate an approximate sine wave. adc.cir: Slightly more complex Verilog describes the controlling part of a switched-capacitor ADC. Before a simulation can be run, the associated Verilog code must be compiled: iverilog -o 555 ../verilator/555.v Similar compilations are needed to prepare the other examples. The simulations require additional dynamic libraries, ivlng.so (or ivlng.DLL) and ivlng.vpi: they are expected to be in the usual installation location. To use the versions in a built source tree that has not been installed, the .model definitions in the circuit files must be changed to the ugly: .model vlog_ff d_cosim sim_args=["555"] + simulation = "../../../release/src/xspice/verilog/.libs/ivlng" + lib_args = [ "libvvp" + "../../../release/src/xspice/verilog/.libs/ivlngvpi.so" ] Or for Windows builds using MSVC: .model vlog_ff d_cosim sim_args=["555"] + simulation = "..\..\..\visualc\xspice\verilog\ivlng.DLL" + lib_args = [ "libvvp" + "..\..\..\visualc\xspice\verilog\shim.vpi" ]