155 lines
5.5 KiB
Plaintext
155 lines
5.5 KiB
Plaintext
#! /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<z>, C4<z>, C4<0>, C4<0>;
|
|
L_000ED8F0 .functor XOR 1, L_000ED8B8, C4<z>, C4<0>, C4<0>;
|
|
L_0105BC40 .functor AND 1, C4<z>, C4<z>, C4<1>, C4<1>;
|
|
L_0105BE00 .functor XOR 1, C4<z>, C4<z>, C4<0>, C4<0>;
|
|
L_0105BFC0 .functor AND 1, C4<z>, 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<z>; 0 drivers
|
|
v01030CF8_0 .net "b", 0 0, C4<z>; 0 drivers
|
|
v01030E58_0 .net "carry_in", 0 0, C4<z>; 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<z>; 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<z>; 0 drivers
|
|
v01030F08_0 .net "carry_in", 0 0, C4<z>; 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<z>, C4<z>, C4<0>, C4<0>;
|
|
L_0105BD90 .functor AND 1, C4<z>, C4<z>, 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<z>, C4<0>, C4<0>;
|
|
L_0105C750 .functor AND 1, L_0105BCB0, C4<z>, 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<z>; 0 drivers
|
|
v0105B060_0 .net "b", 0 0, C4<z>; 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<z>, C4<z>, C4<0>, C4<0>;
|
|
L_0105C1D8 .functor AND 1, C4<z>, C4<z>, C4<1>, C4<1>;
|
|
v0105B530_0 .net "a", 0 0, C4<z>; 0 drivers
|
|
v0105B378_0 .net "b", 0 0, C4<z>; 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";
|
|
"<interactive>";
|
|
"././full_adder/full_adder.v";
|
|
"././half_adder/half_adder.v";
|
|
".\full_adder\full_adder_tb.v";
|