#! /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_01022BC0 .scope module, "full_adder_dataflow" "full_adder_dataflow" 2 29; .timescale 0 0; L_000ED8B8 .functor XOR 1, C4, C4, C4<0>, C4<0>; L_000ED8F0 .functor XOR 1, L_000ED8B8, C4, C4<0>, C4<0>; L_0105BC40 .functor AND 1, C4, C4, C4<1>, C4<1>; L_0105BE00 .functor XOR 1, C4, C4, C4<0>, C4<0>; L_0105BFC0 .functor AND 1, C4, L_0105BE00, C4<1>, C4<1>; L_0105BC78 .functor OR 1, L_0105BC40, L_0105BFC0, C4<0>, C4<0>; v000ED828_0 .net *"_s0", 0 0, L_000ED8B8; 1 drivers v01030E00_0 .net *"_s4", 0 0, L_0105BC40; 1 drivers v01031278_0 .net *"_s6", 0 0, L_0105BE00; 1 drivers v01030FB8_0 .net *"_s8", 0 0, L_0105BFC0; 1 drivers v01030F60_0 .net "a", 0 0, C4; 0 drivers v01030CF8_0 .net "b", 0 0, C4; 0 drivers v01030E58_0 .net "carry_in", 0 0, C4; 0 drivers v010311C8_0 .net "carry_out", 0 0, L_0105BC78; 1 drivers v01030D50_0 .net "sum", 0 0, L_000ED8F0; 1 drivers S_01023220 .scope module, "full_adder_structural" "full_adder_structural" 2 16; .timescale 0 0; L_0105C2F0 .functor OR 1, L_0105BD90, L_0105C750, C4<0>, C4<0>; v01031068_0 .net "a", 0 0, C4; 0 drivers v01031430_0 .net "add1_carry", 0 0, L_0105BD90; 1 drivers v01031118_0 .net "add1_sum", 0 0, L_0105BCB0; 1 drivers v01031170_0 .net "add2_carry", 0 0, L_0105C750; 1 drivers v01030DA8_0 .net "b", 0 0, C4; 0 drivers v01030F08_0 .net "carry_in", 0 0, C4; 0 drivers v0105B3D0_0 .net "carry_out", 0 0, L_0105C2F0; 1 drivers v0105B270_0 .net "sum", 0 0, L_0105BF88; 1 drivers S_01022AB0 .scope module, "add1" "half_adder" 2 23, 3 5, S_01023220; .timescale 0 0; L_0105BCB0 .functor XOR 1, C4, C4, C4<0>, C4<0>; L_0105BD90 .functor AND 1, C4, C4, C4<1>, C4<1>; v010312D0_0 .alias "a", 0 0, v01031068_0; v01030EB0_0 .alias "b", 0 0, v01030DA8_0; v01031328_0 .alias "carry", 0 0, v01031430_0; v01031380_0 .alias "sum", 0 0, v01031118_0; S_01023660 .scope module, "add2" "half_adder" 2 24, 3 5, S_01023220; .timescale 0 0; L_0105BF88 .functor XOR 1, L_0105BCB0, C4, C4<0>, C4<0>; L_0105C750 .functor AND 1, L_0105BCB0, C4, C4<1>, C4<1>; v01031010_0 .alias "a", 0 0, v01031118_0; v010313D8_0 .alias "b", 0 0, v01030F08_0; v01031220_0 .alias "carry", 0 0, v01031170_0; v010310C0_0 .alias "sum", 0 0, v0105B270_0; S_010234C8 .scope module, "full_adder_tb" "full_adder_tb" 4 6; .timescale 0 0; v0105B588_0 .var "a", 0 0; v0105B2C8_0 .var "b", 0 0; v0105B320_0 .var "carry_in", 0 0; v0105B1C0_0 .net "carry_out", 0 0, v0105B110_0; 1 drivers v0105B638_0 .net "sum", 0 0, v0105ADA0_0; 1 drivers S_010229A0 .scope module, "full_adder" "full_adder_behavioral" 4 10, 2 37, S_010234C8; .timescale 0 0; v0105B218_0 .net "a", 0 0, v0105B588_0; 1 drivers v0105B5E0_0 .net "b", 0 0, v0105B2C8_0; 1 drivers v0105B008_0 .net "carry_in", 0 0, v0105B320_0; 1 drivers v0105B110_0 .var "carry_out", 0 0; v0105ADA0_0 .var "sum", 0 0; E_01023A48 .event edge, v0105B218_0, v0105B5E0_0, v0105B008_0; S_01022EF0 .scope module, "half_adder_behavioral" "half_adder_behavioral" 3 21; .timescale 0 0; v0105AC98_0 .net "a", 0 0, C4; 0 drivers v0105B060_0 .net "b", 0 0, C4; 0 drivers v0105ACF0_0 .var "carry", 0 0; v0105B428_0 .var "sum", 0 0; E_01023B28 .event edge, v0105B060_0, v0105AC98_0; S_010232A8 .scope module, "half_adder_dataflow" "half_adder_dataflow" 3 13; .timescale 0 0; L_0105C1A0 .functor XOR 1, C4, C4, C4<0>, C4<0>; L_0105C1D8 .functor AND 1, C4, C4, C4<1>, C4<1>; v0105B530_0 .net "a", 0 0, C4; 0 drivers v0105B378_0 .net "b", 0 0, C4; 0 drivers v0105AC40_0 .net "carry", 0 0, L_0105C1D8; 1 drivers v0105ADF8_0 .net "sum", 0 0, L_0105C1A0; 1 drivers .scope S_010229A0; T_0 ; %wait E_01023A48; %load/v 8, v0105B218_0, 1; %load/v 9, v0105B5E0_0, 1; %xor 8, 9, 1; %load/v 9, v0105B008_0, 1; %xor 8, 9, 1; %set/v v0105ADA0_0, 8, 1; %load/v 8, v0105B218_0, 1; %load/v 9, v0105B5E0_0, 1; %and 8, 9, 1; %load/v 9, v0105B008_0, 1; %load/v 10, v0105B218_0, 1; %load/v 11, v0105B5E0_0, 1; %xor 10, 11, 1; %and 9, 10, 1; %or 8, 9, 1; %set/v v0105B110_0, 8, 1; %jmp T_0; .thread T_0, $push; .scope S_010234C8; T_1 ; %vpi_call 4 19 "$dumpfile", "./full_adder/full_adder.vcd"; %vpi_call 4 20 "$dumpvars", 1'sb0, S_010234C8; %set/v v0105B588_0, 0, 1; %set/v v0105B2C8_0, 0, 1; %set/v v0105B320_0, 0, 1; %delay 1, 0; %set/v v0105B588_0, 0, 1; %set/v v0105B2C8_0, 0, 1; %set/v v0105B320_0, 1, 1; %delay 1, 0; %set/v v0105B588_0, 0, 1; %set/v v0105B2C8_0, 0, 1; %set/v v0105B320_0, 0, 1; %delay 1, 0; %set/v v0105B588_0, 1, 1; %set/v v0105B2C8_0, 0, 1; %set/v v0105B320_0, 0, 1; %delay 1, 0; %set/v v0105B588_0, 1, 1; %set/v v0105B2C8_0, 0, 1; %set/v v0105B320_0, 1, 1; %delay 1, 0; %set/v v0105B588_0, 1, 1; %set/v v0105B2C8_0, 1, 1; %set/v v0105B320_0, 0, 1; %delay 1, 0; %set/v v0105B588_0, 1, 1; %set/v v0105B2C8_0, 1, 1; %set/v v0105B320_0, 1, 1; %end; .thread T_1; .scope S_01022EF0; T_2 ; %wait E_01023B28; %load/v 8, v0105AC98_0, 1; %load/v 9, v0105B060_0, 1; %xor 8, 9, 1; %set/v v0105B428_0, 8, 1; %load/v 8, v0105AC98_0, 1; %load/v 9, v0105B060_0, 1; %and 8, 9, 1; %set/v v0105ACF0_0, 8, 1; %jmp T_2; .thread T_2, $push; # The file index is used to find the file name in the following table. :file_names 5; "N/A"; ""; "././full_adder/full_adder.v"; "././half_adder/half_adder.v"; ".\full_adder\full_adder_tb.v";