# RC model-boundary example: reproduction All three printed files are original and MIT licensed. Copy them into an external build directory before running commands that produce binaries. No simulator, library, compiled object or executable belongs in the published data directory. ## Pins | Tool | Version | Official source and commit | | --- | --- | --- | | Icarus Verilog | 13.0 | `https://github.com/steveicarus/iverilog.git`, `dfeee909ed9f20b4870dd93423156c0170c0e1ff` | | Verilator | 5.052 | `https://github.com/verilator/verilator.git`, `ea338be98e1e838d3518809ce8899f85a009963c` | | ngspice | 47 | `https://git.code.sf.net/p/ngspice/ngspice`, release tag commit `a80f6e3e95d51534905b1f23410a951802666656` | ngspice was built from its official release archive `https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/47/ngspice-47.tar.gz`, SHA-256 `894e649651f1838a14095e5a5439e7d3aa63e87ede14d283173fda4fcdef675f`. Configure options were `--with-x=no --with-readline=no --with-editline=no --disable-openmp` plus an external installation prefix. Tool builds are not redistributed. Recorded execution environment: macOS 27.0.1, arm64. ## Execute With the pinned tools on `PATH`, run from the directory containing copied example files: ```sh iverilog -g2012 -s rc_model -o rnm.vvp rc_model.sv vvp rnm.vvp verilator --binary --timing -Wno-fatal --top-module rc_model --Mdir obj_rnm rc_model.sv ./obj_rnm/Vrc_model ngspice -b unloaded.cir ngspice -b loaded.cir ``` The recorded isolated Icarus build additionally used `-B` to point to its installed `lib/ivl`. The recorded Verilator invocation used the same installed `verilator_bin` executable directly and set `VERILATOR_ROOT` to its installed `share/verilator` directory. These installation settings and the complete invoked argument arrays are retained in the public records with paths replaced by descriptive variables. Use an external build path without spaces for this Verilator build. ## Expected observations Icarus and Verilator print identical five-sample rows and finish with `CHECK: loaded and unloaded contracts remain distinct`. Neither HDL run invokes ngspice; the article compares the separate outputs explicitly. | Time, ns | Unloaded RNM, V | Unloaded ngspice, V | Loaded RNM, V | Loaded ngspice, V | | ---: | ---: | ---: | ---: | ---: | | 1 | 0.632120559 | 0.631937 | 0.432332358 | 0.432265 | | 2 | 0.864664717 | 0.864597 | 0.490842181 | 0.490833 | | 3 | 0.950212932 | 0.950188 | 0.498760624 | 0.498759 | | 4 | 0.981684361 | 0.981675 | 0.499832269 | 0.499832 | | 5 | 0.993262053 | 0.993259 | 0.499977300 | 0.499977 | The RC circuit uses ideal 1 kΩ and 1 pF elements and optionally a 1 kΩ load. ngspice reports TEMP and TNOM of 27 °C; no temperature-sensitive component model is introduced here. Its source rises in 1 ps, whereas the analytical model assumes an instantaneous step. `tran 1p 5n` requests the transient run through 5 ns; the explicit `meas` commands provide the compared samples. Input hashes, exact outputs, return codes, tool source commits and UTC timestamps are in `../../measurements/printed-hdl/P10-icarus.json`, `P10-verilator.json` and `P10-ngspice.json`. Automatic performance/allocation summaries were omitted, with an explicit note in each record. These are not speed benchmarks. No UVM-MS, commercial tool, transistor model, changing load, nonlinear circuit, noise or process variation was executed.