Skip to content

SAIF & VCD Interoperability

To ensure seamless integration with existing industrial verification environments, Axiom produces standard IEEE 1364 Value Change Dump (.vcd) and Synopsys SAIF 2.0 (.saif) files.


1. IEEE 1364 Value Change Dump (VCD)

Axiom's VcdWriter formats all netlist state transitions with standard VCD definitions:

  • Header: $date, $version, $timescale 1 ps.
  • Hierarchy: Hierarchical $scope module and $upscope blocks.
  • Variables: Multi-bit $var wire [width] [symbol] [name] declarations.
  • Initial Values: $dumpvars state dump at t=0.
  • Transitions: Interleaved timestamp markers (#1000) with binary and hex bus transitions.

VCD files generated by Axiom can be opened directly in:

  • GTKWave
  • Surfer
  • AMD Vivado Waveform Viewer
  • Sigrok / PulseView

2. Switching Activity Interchange Format (SAIF 2.0)

Accurate power estimation in Vivado's report_power requires high-confidence simulation vectors rather than static vectorless estimates.

Axiom produces valid SAIF 2.0 files containing switching probabilities:

text
(SAIFILE
  (SAIFVERSION "2.0")
  (DIRECTION "backward")
  (DESIGN "counter")
  (DATE "Axiom HDL Engine")
  (VENDOR "Axiom")
  (PROGRAM_NAME "Axiom Simulator")
  (PROGRAM_VERSION "0.1.0")
  (DIVIDER /)
  (TIMESCALE 1 ps)
  (DURATION 50000)
  (INSTANCE counter
    (NET
      (clk (T0 25000) (T1 25000) (TX 0) (TZ 0) (TC 99))
      (rst_n (T0 1000) (T1 49000) (TX 0) (TZ 0) (TC 1))
      (count (T0 12000) (T1 38000) (TX 0) (TZ 0) (TC 48))
    )
  )
)

Loading into AMD Vivado

In Vivado Tcl:

tcl
open_run impl_1
read_saif -strip_path /tb_top/u_dut -file power.saif
report_power -file post_sim_power.rpt

Vivado automatically updates its dynamic switching activity matrices from Axiom's measured SAIF toggle counts.

Released under the MIT License.