#! /c/iverilog/bin/vvp :ivl_version "0.9.7 " "(v0_9_7)"; :vpi_time_precision + 0; :vpi_module "system"; :vpi_module "v2005_math"; :vpi_module "va_math"; S_00119918 .scope module, "half_adder_behavioral" "half_adder_behavioral" 2 21; .timescale 0 0; v0011E700_0 .net "a", 0 0, C4; 0 drivers v0011CF80_0 .net "b", 0 0, C4; 0 drivers v0011E758_0 .var "carry", 0 0; v0011E7B0_0 .var "sum", 0 0; E_0011A260 .event edge, v0011CF80_0, v0011E700_0; S_001191A8 .scope module, "half_adder_dataflow" "half_adder_dataflow" 2 13; .timescale 0 0; L_001115D0 .functor XOR 1, C4, C4, C4<0>, C4<0>; L_0011D930 .functor AND 1, C4, C4, C4<1>, C4<1>; v0011D828_0 .net "a", 0 0, C4; 0 drivers v0011D880_0 .net "b", 0 0, C4; 0 drivers v0011D8D8_0 .net "carry", 0 0, L_0011D930; 1 drivers v001114C8_0 .net "sum", 0 0, L_001115D0; 1 drivers S_001199A0 .scope module, "half_adder_tb" "half_adder_tb" 3 6; .timescale 0 0; v01030A60_0 .var "a", 0 0; v01030A08_0 .var "b", 0 0; v01030900_0 .net "carry", 0 0, L_01031290; 1 drivers v01030E80_0 .net "sum", 0 0, L_0011D490; 1 drivers S_001194D8 .scope module, "add1" "half_adder" 3 10, 2 5, S_001199A0; .timescale 0 0; L_0011D490 .functor XOR 1, v01030A60_0, v01030A08_0, C4<0>, C4<0>; L_01031290 .functor AND 1, v01030A60_0, v01030A08_0, C4<1>, C4<1>; v00111520_0 .net "a", 0 0, v01030A60_0; 1 drivers v00111578_0 .net "b", 0 0, v01030A08_0; 1 drivers v0011D400_0 .alias "carry", 0 0, v01030900_0; v01031038_0 .alias "sum", 0 0, v01030E80_0; .scope S_00119918; T_0 ; %wait E_0011A260; %load/v 8, v0011E700_0, 1; %load/v 9, v0011CF80_0, 1; %xor 8, 9, 1; %set/v v0011E7B0_0, 8, 1; %load/v 8, v0011E700_0, 1; %load/v 9, v0011CF80_0, 1; %and 8, 9, 1; %set/v v0011E758_0, 8, 1; %jmp T_0; .thread T_0, $push; .scope S_001199A0; T_1 ; %vpi_call 3 13 "$dumpfile", "./half_adder/half_adder.vcd"; %vpi_call 3 14 "$dumpvars", 1'sb0, S_001199A0; %set/v v01030A60_0, 0, 1; %set/v v01030A08_0, 0, 1; %delay 1, 0; %set/v v01030A60_0, 0, 1; %set/v v01030A08_0, 1, 1; %delay 1, 0; %set/v v01030A60_0, 1, 1; %set/v v01030A08_0, 0, 1; %delay 1, 0; %set/v v01030A60_0, 1, 1; %set/v v01030A08_0, 1, 1; %delay 1, 0; %set/v v01030A60_0, 0, 1; %set/v v01030A08_0, 0, 1; %end; .thread T_1; # The file index is used to find the file name in the following table. :file_names 4; "N/A"; ""; "././half_adder/half_adder.v"; ".\half_adder\half_adder_tb.v";