verilog
This commit is contained in:
19
labs/lab2/src/BitM.v
Normal file
19
labs/lab2/src/BitM.v
Normal file
@ -0,0 +1,19 @@
|
||||
module BitM(
|
||||
input A,
|
||||
input B,
|
||||
output AlB,
|
||||
output AeB,
|
||||
output AgB
|
||||
);
|
||||
|
||||
wire An, Bn;
|
||||
|
||||
not n1 (An, A);
|
||||
not n2 (Bn, B);
|
||||
|
||||
and a1 (AlB, An, B);
|
||||
and a2 (AgB, Bn, A);
|
||||
|
||||
nor nor1 (AeB, AlB, AgB);
|
||||
|
||||
endmodule
|
26
labs/lab2/src/BitM_tb.v
Normal file
26
labs/lab2/src/BitM_tb.v
Normal file
@ -0,0 +1,26 @@
|
||||
module BitM_tb();
|
||||
|
||||
reg r1, r2;
|
||||
wire w1, w2, w3;
|
||||
|
||||
BitM uut(
|
||||
.A(r1),
|
||||
.B(r2),
|
||||
.AlB(w1),
|
||||
.AeB(w2),
|
||||
.AgB(w3)
|
||||
);
|
||||
|
||||
initial begin
|
||||
$dumpfile("bdmp.vcd");
|
||||
$dumpvars;
|
||||
r1 = 0; r2 = 0; #10
|
||||
r1 = 0; r2 = 1; #10
|
||||
r1 = 1; r2 = 0; #10
|
||||
r1 = 1; r2 = 1; #10
|
||||
$display(w1);
|
||||
$display(w2);
|
||||
$display(w3);
|
||||
end
|
||||
|
||||
endmodule
|
58
labs/lab2/src/bdmp.vcd
Normal file
58
labs/lab2/src/bdmp.vcd
Normal file
@ -0,0 +1,58 @@
|
||||
$date
|
||||
Thu Apr 11 07:50:26 2024
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
$end
|
||||
$timescale
|
||||
1s
|
||||
$end
|
||||
$scope module BitM_tb $end
|
||||
$var wire 1 ! w3 $end
|
||||
$var wire 1 " w2 $end
|
||||
$var wire 1 # w1 $end
|
||||
$var reg 1 $ r1 $end
|
||||
$var reg 1 % r2 $end
|
||||
$scope module uut $end
|
||||
$var wire 1 $ A $end
|
||||
$var wire 1 " AeB $end
|
||||
$var wire 1 ! AgB $end
|
||||
$var wire 1 # AlB $end
|
||||
$var wire 1 & An $end
|
||||
$var wire 1 % B $end
|
||||
$var wire 1 ' Bn $end
|
||||
$upscope $end
|
||||
$upscope $end
|
||||
$enddefinitions $end
|
||||
$comment Show the parameter values. $end
|
||||
$dumpall
|
||||
$end
|
||||
#0
|
||||
$dumpvars
|
||||
1'
|
||||
1&
|
||||
0%
|
||||
0$
|
||||
0#
|
||||
1"
|
||||
0!
|
||||
$end
|
||||
#10
|
||||
0"
|
||||
0'
|
||||
1#
|
||||
1%
|
||||
#20
|
||||
1!
|
||||
0"
|
||||
1'
|
||||
0#
|
||||
0&
|
||||
0%
|
||||
1$
|
||||
#30
|
||||
1"
|
||||
0!
|
||||
0'
|
||||
1%
|
||||
#40
|
70
labs/lab2/src/blab2
Normal file
70
labs/lab2/src/blab2
Normal file
@ -0,0 +1,70 @@
|
||||
#! /c/Source/iverilog-install/bin/vvp
|
||||
:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)";
|
||||
:ivl_delay_selection "TYPICAL";
|
||||
:vpi_time_precision + 0;
|
||||
:vpi_module "C:\iverilog\lib\ivl\system.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\va_math.vpi";
|
||||
S_000002114102cad0 .scope module, "BitM_tb" "BitM_tb" 2 1;
|
||||
.timescale 0 0;
|
||||
v0000021140f146e0_0 .var "r1", 0 0;
|
||||
v0000021140f14780_0 .var "r2", 0 0;
|
||||
v0000021140f14820_0 .net "w1", 0 0, L_0000021140ee32f0; 1 drivers
|
||||
v0000021140f148c0_0 .net "w2", 0 0, L_0000021140f14f60; 1 drivers
|
||||
v0000021140f14960_0 .net "w3", 0 0, L_0000021140f14de0; 1 drivers
|
||||
S_000002114102cc60 .scope module, "uut" "BitM" 2 6, 3 1 0, S_000002114102cad0;
|
||||
.timescale 0 0;
|
||||
.port_info 0 /INPUT 1 "A";
|
||||
.port_info 1 /INPUT 1 "B";
|
||||
.port_info 2 /OUTPUT 1 "AlB";
|
||||
.port_info 3 /OUTPUT 1 "AeB";
|
||||
.port_info 4 /OUTPUT 1 "AgB";
|
||||
L_000002114102af60 .functor NOT 1, v0000021140f146e0_0, C4<0>, C4<0>, C4<0>;
|
||||
L_0000021140ee3190 .functor NOT 1, v0000021140f14780_0, C4<0>, C4<0>, C4<0>;
|
||||
L_0000021140ee32f0 .functor AND 1, L_000002114102af60, v0000021140f14780_0, C4<1>, C4<1>;
|
||||
L_0000021140f14de0 .functor AND 1, L_0000021140ee3190, v0000021140f146e0_0, C4<1>, C4<1>;
|
||||
L_0000021140f14f60 .functor NOR 1, L_0000021140ee32f0, L_0000021140f14de0, C4<0>, C4<0>;
|
||||
v0000021141028fc0_0 .net "A", 0 0, v0000021140f146e0_0; 1 drivers
|
||||
v0000021140ee2ee0_0 .net "AeB", 0 0, L_0000021140f14f60; alias, 1 drivers
|
||||
v000002114102aec0_0 .net "AgB", 0 0, L_0000021140f14de0; alias, 1 drivers
|
||||
v000002114102cdf0_0 .net "AlB", 0 0, L_0000021140ee32f0; alias, 1 drivers
|
||||
v000002114102ce90_0 .net "An", 0 0, L_000002114102af60; 1 drivers
|
||||
v0000021140f145a0_0 .net "B", 0 0, v0000021140f14780_0; 1 drivers
|
||||
v0000021140f14640_0 .net "Bn", 0 0, L_0000021140ee3190; 1 drivers
|
||||
.scope S_000002114102cad0;
|
||||
T_0 ;
|
||||
%vpi_call 2 15 "$dumpfile", "bdmp.vcd" {0 0 0};
|
||||
%vpi_call 2 16 "$dumpvars" {0 0 0};
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0000021140f146e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0000021140f14780_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0000021140f146e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v0000021140f14780_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v0000021140f146e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0000021140f14780_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v0000021140f146e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v0000021140f14780_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%vpi_call 2 21 "$display", v0000021140f14820_0 {0 0 0};
|
||||
%vpi_call 2 22 "$display", v0000021140f148c0_0 {0 0 0};
|
||||
%vpi_call 2 23 "$display", v0000021140f14960_0 {0 0 0};
|
||||
%end;
|
||||
.thread T_0;
|
||||
# The file index is used to find the file name in the following table.
|
||||
:file_names 4;
|
||||
"N/A";
|
||||
"<interactive>";
|
||||
"BitM_tb.v";
|
||||
"BitM.v";
|
43
labs/lab2/src/dmp.vcd
Normal file
43
labs/lab2/src/dmp.vcd
Normal file
@ -0,0 +1,43 @@
|
||||
$date
|
||||
Thu Apr 11 06:36:34 2024
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
$end
|
||||
$timescale
|
||||
1s
|
||||
$end
|
||||
$scope module tb $end
|
||||
$var wire 1 ! w2 $end
|
||||
$var wire 1 " w1 $end
|
||||
$var reg 1 # r1 $end
|
||||
$var reg 1 $ r2 $end
|
||||
$scope module uut $end
|
||||
$var wire 1 # A $end
|
||||
$var wire 1 $ B $end
|
||||
$var wire 1 ! C $end
|
||||
$var wire 1 " S $end
|
||||
$upscope $end
|
||||
$upscope $end
|
||||
$enddefinitions $end
|
||||
$comment Show the parameter values. $end
|
||||
$dumpall
|
||||
$end
|
||||
#0
|
||||
$dumpvars
|
||||
0$
|
||||
0#
|
||||
0"
|
||||
0!
|
||||
$end
|
||||
#20
|
||||
1"
|
||||
1#
|
||||
#40
|
||||
1$
|
||||
0#
|
||||
#60
|
||||
0"
|
||||
1!
|
||||
1#
|
||||
#80
|
75
labs/lab2/src/fdmp.vcd
Normal file
75
labs/lab2/src/fdmp.vcd
Normal file
@ -0,0 +1,75 @@
|
||||
$date
|
||||
Thu Apr 11 07:39:27 2024
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
$end
|
||||
$timescale
|
||||
1s
|
||||
$end
|
||||
$scope module ftb $end
|
||||
$var wire 1 ! w2 $end
|
||||
$var wire 1 " w1 $end
|
||||
$var reg 1 # r1 $end
|
||||
$var reg 1 $ r2 $end
|
||||
$var reg 1 % r3 $end
|
||||
$scope module uut $end
|
||||
$var wire 1 # A $end
|
||||
$var wire 1 & AB $end
|
||||
$var wire 1 ' ABCin $end
|
||||
$var wire 1 ( AaB $end
|
||||
$var wire 1 $ B $end
|
||||
$var wire 1 % Cin $end
|
||||
$var wire 1 ! Cout $end
|
||||
$var wire 1 " S $end
|
||||
$upscope $end
|
||||
$upscope $end
|
||||
$enddefinitions $end
|
||||
$comment Show the parameter values. $end
|
||||
$dumpall
|
||||
$end
|
||||
#0
|
||||
$dumpvars
|
||||
0(
|
||||
0'
|
||||
0&
|
||||
0%
|
||||
0$
|
||||
0#
|
||||
0"
|
||||
0!
|
||||
$end
|
||||
#10
|
||||
1"
|
||||
1%
|
||||
#20
|
||||
1&
|
||||
0%
|
||||
1$
|
||||
#30
|
||||
1!
|
||||
0"
|
||||
1'
|
||||
1%
|
||||
#40
|
||||
0!
|
||||
1"
|
||||
0'
|
||||
0%
|
||||
0$
|
||||
1#
|
||||
#50
|
||||
1!
|
||||
0"
|
||||
1'
|
||||
1%
|
||||
#60
|
||||
0'
|
||||
0&
|
||||
1(
|
||||
0%
|
||||
1$
|
||||
#70
|
||||
1"
|
||||
1%
|
||||
#80
|
106
labs/lab2/src/flab2
Normal file
106
labs/lab2/src/flab2
Normal file
@ -0,0 +1,106 @@
|
||||
#! /c/Source/iverilog-install/bin/vvp
|
||||
:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)";
|
||||
:ivl_delay_selection "TYPICAL";
|
||||
:vpi_time_precision + 0;
|
||||
:vpi_module "C:\iverilog\lib\ivl\system.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\va_math.vpi";
|
||||
S_000001da0354ad70 .scope module, "ftb" "ftb" 2 1;
|
||||
.timescale 0 0;
|
||||
v000001da035dc840_0 .var "r1", 0 0;
|
||||
v000001da035dc8e0_0 .var "r2", 0 0;
|
||||
v000001da035dc980_0 .var "r3", 0 0;
|
||||
v000001da035dca20_0 .net "w1", 0 0, L_000001da03594080; 1 drivers
|
||||
v000001da035935f0_0 .net "w2", 0 0, L_000001da03594470; 1 drivers
|
||||
S_000001da0354e9e0 .scope module, "uut" "fullAdder" 2 6, 3 1 0, S_000001da0354ad70;
|
||||
.timescale 0 0;
|
||||
.port_info 0 /INPUT 1 "A";
|
||||
.port_info 1 /INPUT 1 "B";
|
||||
.port_info 2 /INPUT 1 "Cin";
|
||||
.port_info 3 /OUTPUT 1 "S";
|
||||
.port_info 4 /OUTPUT 1 "Cout";
|
||||
L_000001da03594010 .functor XOR 1, v000001da035dc840_0, v000001da035dc8e0_0, C4<0>, C4<0>;
|
||||
L_000001da03594080 .functor XOR 1, L_000001da03594010, v000001da035dc980_0, C4<0>, C4<0>;
|
||||
L_000001da03593e50 .functor AND 1, L_000001da03594010, v000001da035dc980_0, C4<1>, C4<1>;
|
||||
L_000001da035940f0 .functor AND 1, v000001da035dc840_0, v000001da035dc8e0_0, C4<1>, C4<1>;
|
||||
L_000001da03594470 .functor OR 1, L_000001da03593e50, L_000001da035940f0, C4<0>, C4<0>;
|
||||
v000001da03563310_0 .net "A", 0 0, v000001da035dc840_0; 1 drivers
|
||||
v000001da03562ee0_0 .net "AB", 0 0, L_000001da03594010; 1 drivers
|
||||
v000001da0354af00_0 .net "ABCin", 0 0, L_000001da03593e50; 1 drivers
|
||||
v000001da03549850_0 .net "AaB", 0 0, L_000001da035940f0; 1 drivers
|
||||
v000001da0354eb70_0 .net "B", 0 0, v000001da035dc8e0_0; 1 drivers
|
||||
v000001da0354ec10_0 .net "Cin", 0 0, v000001da035dc980_0; 1 drivers
|
||||
v000001da0354ecb0_0 .net "Cout", 0 0, L_000001da03594470; alias, 1 drivers
|
||||
v000001da0354ed50_0 .net "S", 0 0, L_000001da03594080; alias, 1 drivers
|
||||
.scope S_000001da0354ad70;
|
||||
T_0 ;
|
||||
%vpi_call 2 15 "$dumpfile", "fdmp.vcd" {0 0 0};
|
||||
%vpi_call 2 16 "$dumpvars" {0 0 0};
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc840_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc8e0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001da035dc980_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%vpi_call 2 25 "$display", v000001da035dca20_0 {0 0 0};
|
||||
%vpi_call 2 26 "$display", v000001da035935f0_0 {0 0 0};
|
||||
%end;
|
||||
.thread T_0;
|
||||
# The file index is used to find the file name in the following table.
|
||||
:file_names 4;
|
||||
"N/A";
|
||||
"<interactive>";
|
||||
"ftb.v";
|
||||
"fullAdder.v";
|
29
labs/lab2/src/ftb.v
Normal file
29
labs/lab2/src/ftb.v
Normal file
@ -0,0 +1,29 @@
|
||||
module ftb ();
|
||||
|
||||
reg r1, r2, r3;
|
||||
wire w1, w2;
|
||||
|
||||
fullAdder uut(
|
||||
.A(r1),
|
||||
.B(r2),
|
||||
.Cin(r3),
|
||||
.S(w1),
|
||||
.Cout(w2)
|
||||
);
|
||||
|
||||
initial begin
|
||||
$dumpfile("fdmp.vcd");
|
||||
$dumpvars;
|
||||
r1 = 0; r2 = 0; r3 = 0; #10
|
||||
r1 = 0; r2 = 0; r3 = 1; #10
|
||||
r1 = 0; r2 = 1; r3 = 0; #10
|
||||
r1 = 0; r2 = 1; r3 = 1; #10
|
||||
r1 = 1; r2 = 0; r3 = 0; #10
|
||||
r1 = 1; r2 = 0; r3 = 1; #10
|
||||
r1 = 1; r2 = 1; r3 = 0; #10
|
||||
r1 = 1; r2 = 1; r3 = 1; #10
|
||||
$display(w1);
|
||||
$display(w2);
|
||||
end
|
||||
|
||||
endmodule
|
20
labs/lab2/src/fullAdder.v
Normal file
20
labs/lab2/src/fullAdder.v
Normal file
@ -0,0 +1,20 @@
|
||||
module fullAdder(
|
||||
input A,
|
||||
input B,
|
||||
input Cin,
|
||||
output S,
|
||||
output Cout
|
||||
);
|
||||
|
||||
wire AB;
|
||||
wire ABCin, AaB;
|
||||
|
||||
xor (AB, A, B);
|
||||
xor (S, AB, Cin);
|
||||
|
||||
and (ABCin, AB, Cin);
|
||||
and (AaB, A, B);
|
||||
|
||||
or (Cout, ABCin, AaB);
|
||||
|
||||
endmodule
|
11
labs/lab2/src/halfAdder.v
Normal file
11
labs/lab2/src/halfAdder.v
Normal file
@ -0,0 +1,11 @@
|
||||
module halfAdder(
|
||||
input A,
|
||||
input B,
|
||||
output S,
|
||||
output C
|
||||
);
|
||||
|
||||
xor (S, A, B);
|
||||
and (C, A, B);
|
||||
|
||||
endmodule
|
61
labs/lab2/src/lab2
Normal file
61
labs/lab2/src/lab2
Normal file
@ -0,0 +1,61 @@
|
||||
#! /c/Source/iverilog-install/bin/vvp
|
||||
:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)";
|
||||
:ivl_delay_selection "TYPICAL";
|
||||
:vpi_time_precision + 0;
|
||||
:vpi_module "C:\iverilog\lib\ivl\system.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_sys.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\vhdl_textio.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\v2005_math.vpi";
|
||||
:vpi_module "C:\iverilog\lib\ivl\va_math.vpi";
|
||||
S_000001b4458eec80 .scope module, "tb" "tb" 2 1;
|
||||
.timescale 0 0;
|
||||
v000001b4458ec1d0_0 .var "r1", 0 0;
|
||||
v000001b4458ec270_0 .var "r2", 0 0;
|
||||
v000001b4458ec310_0 .net "w1", 0 0, L_000001b445783190; 1 drivers
|
||||
v000001b4458ec3b0_0 .net "w2", 0 0, L_000001b4457832f0; 1 drivers
|
||||
S_000001b4458eee10 .scope module, "uut" "halfAdder" 2 6, 3 1 0, S_000001b4458eec80;
|
||||
.timescale 0 0;
|
||||
.port_info 0 /INPUT 1 "A";
|
||||
.port_info 1 /INPUT 1 "B";
|
||||
.port_info 2 /OUTPUT 1 "S";
|
||||
.port_info 3 /OUTPUT 1 "C";
|
||||
L_000001b445783190 .functor XOR 1, v000001b4458ec1d0_0, v000001b4458ec270_0, C4<0>, C4<0>;
|
||||
L_000001b4457832f0 .functor AND 1, v000001b4458ec1d0_0, v000001b4458ec270_0, C4<1>, C4<1>;
|
||||
v000001b4458ebff0_0 .net "A", 0 0, v000001b4458ec1d0_0; 1 drivers
|
||||
v000001b445782ee0_0 .net "B", 0 0, v000001b4458ec270_0; 1 drivers
|
||||
v000001b4458ec090_0 .net "C", 0 0, L_000001b4457832f0; alias, 1 drivers
|
||||
v000001b4458ec130_0 .net "S", 0 0, L_000001b445783190; alias, 1 drivers
|
||||
.scope S_000001b4458eec80;
|
||||
T_0 ;
|
||||
%vpi_call 2 14 "$dumpfile", "dmp.vcd" {0 0 0};
|
||||
%vpi_call 2 15 "$dumpvars" {0 0 0};
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001b4458ec1d0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001b4458ec270_0, 0, 1;
|
||||
%delay 20, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001b4458ec1d0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001b4458ec270_0, 0, 1;
|
||||
%delay 20, 0;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v000001b4458ec1d0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001b4458ec270_0, 0, 1;
|
||||
%delay 20, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001b4458ec1d0_0, 0, 1;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v000001b4458ec270_0, 0, 1;
|
||||
%delay 20, 0;
|
||||
%vpi_call 2 20 "$display", v000001b4458ec310_0 {0 0 0};
|
||||
%vpi_call 2 21 "$display", v000001b4458ec3b0_0 {0 0 0};
|
||||
%end;
|
||||
.thread T_0;
|
||||
# The file index is used to find the file name in the following table.
|
||||
:file_names 4;
|
||||
"N/A";
|
||||
"<interactive>";
|
||||
"tb.v";
|
||||
"halfAdder.v";
|
24
labs/lab2/src/tb.v
Normal file
24
labs/lab2/src/tb.v
Normal file
@ -0,0 +1,24 @@
|
||||
module tb();
|
||||
|
||||
reg r1, r2;
|
||||
wire w1, w2;
|
||||
|
||||
halfAdder uut(
|
||||
.A(r1),
|
||||
.B(r2),
|
||||
.S(w1),
|
||||
.C(w2)
|
||||
);
|
||||
|
||||
initial begin
|
||||
$dumpfile("dmp.vcd");
|
||||
$dumpvars;
|
||||
r1 = 0; r2 = 0; #20
|
||||
r1 = 1; r2 = 0; #20
|
||||
r1 = 0; r2 = 1; #20
|
||||
r1 = 1; r2 = 1; #20
|
||||
$display(w1);
|
||||
$display(w2);
|
||||
end
|
||||
|
||||
endmodule
|
Reference in New Issue
Block a user