Compare commits
3 Commits
1b0958962c
...
1d5ff13ca1
Author | SHA1 | Date | |
---|---|---|---|
1d5ff13ca1 | |||
57c2935e1c | |||
85dbb22740 |
@ -229,7 +229,8 @@ b11 (
|
||||
1"
|
||||
#70
|
||||
b111000 !
|
||||
b111000 *
|
||||
b#70
|
||||
00 *
|
||||
b0 (
|
||||
0"
|
||||
#71
|
||||
|
286
iverilog/tobb/lab6/bibp
Normal file
286
iverilog/tobb/lab6/bibp
Normal file
@ -0,0 +1,286 @@
|
||||
#! /usr/bin/vvp
|
||||
:ivl_version "11.0 (stable)";
|
||||
:ivl_delay_selection "TYPICAL";
|
||||
:vpi_time_precision + 0;
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
|
||||
S_0x55e76f51ca80 .scope module, "bibpTB" "bibpTB" 2 1;
|
||||
.timescale 0 0;
|
||||
P_0x55e76f51cc10 .param/l "N" 0 2 2, +C4<00000000000000000000000000000011>;
|
||||
v0x55e76f534860_0 .var "A", 8 0;
|
||||
v0x55e76f534920_0 .net "sonuc", 3 0, v0x55e76f534720_0; 1 drivers
|
||||
S_0x55e76f51ccb0 .scope module, "uut" "bibp" 2 6, 3 1 0, S_0x55e76f51ca80;
|
||||
.timescale 0 0;
|
||||
.port_info 0 /INPUT 9 "buyruk";
|
||||
.port_info 1 /OUTPUT 4 "sonuc";
|
||||
P_0x55e76f51d420 .param/l "N" 0 3 1, +C4<00000000000000000000000000000011>;
|
||||
v0x55e76f4d8cf0_0 .var/i "a", 31 0;
|
||||
v0x55e76f534290_0 .var/i "b", 31 0;
|
||||
v0x55e76f534370_0 .net "buyruk", 8 0, v0x55e76f534860_0; 1 drivers
|
||||
v0x55e76f534430_0 .var/i "c", 31 0;
|
||||
v0x55e76f534510_0 .var/i "count", 31 0;
|
||||
v0x55e76f534640_0 .var/i "i", 31 0;
|
||||
v0x55e76f534720_0 .var "sonuc", 3 0;
|
||||
E_0x55e76f511f90 .event edge, v0x55e76f534370_0;
|
||||
.scope S_0x55e76f51ccb0;
|
||||
T_0 ;
|
||||
%wait E_0x55e76f511f90;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 6, 4;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 0, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.1, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 1, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.2, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 2, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.3, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 3, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.4, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 4, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.5, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 5, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.6, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 6, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.7, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 7, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.8, 6;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.9;
|
||||
T_0.1 ;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%add;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.9;
|
||||
T_0.2 ;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%sub;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.9;
|
||||
T_0.3 ;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%and;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.9;
|
||||
T_0.4 ;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%or;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.9;
|
||||
T_0.5 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f534640_0, 0, 32;
|
||||
T_0.10 ;
|
||||
%load/vec4 v0x55e76f534640_0;
|
||||
%cmpi/s 4, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_0.11, 5;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%load/vec4 v0x55e76f534640_0;
|
||||
%part/s 1;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%load/vec4 v0x55e76f534640_0;
|
||||
%addi 1, 0, 32;
|
||||
%part/s 1;
|
||||
%cmp/e;
|
||||
%jmp/0xz T_0.12, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.13;
|
||||
T_0.12 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
T_0.13 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55e76f534640_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55e76f534640_0, 0, 32;
|
||||
%jmp T_0.10;
|
||||
T_0.11 ;
|
||||
%jmp T_0.9;
|
||||
T_0.6 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f4d8cf0_0, 0, 32;
|
||||
T_0.14 ;
|
||||
%load/vec4 v0x55e76f4d8cf0_0;
|
||||
%cmpi/s 6, 0, 32;
|
||||
%jmp/0xz T_0.15, 5;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%load/vec4 v0x55e76f4d8cf0_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.16, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
T_0.16 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55e76f4d8cf0_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55e76f4d8cf0_0, 0, 32;
|
||||
%jmp T_0.14;
|
||||
T_0.15 ;
|
||||
%jmp T_0.9;
|
||||
T_0.7 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f534510_0, 0, 32;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f534290_0, 0, 32;
|
||||
T_0.18 ;
|
||||
%load/vec4 v0x55e76f534290_0;
|
||||
%cmpi/s 6, 0, 32;
|
||||
%jmp/0xz T_0.19, 5;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%load/vec4 v0x55e76f534290_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.20, 4;
|
||||
%load/vec4 v0x55e76f534510_0;
|
||||
%addi 1, 0, 32;
|
||||
%store/vec4 v0x55e76f534510_0, 0, 32;
|
||||
T_0.20 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55e76f534290_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55e76f534290_0, 0, 32;
|
||||
%jmp T_0.18;
|
||||
T_0.19 ;
|
||||
%load/vec4 v0x55e76f534510_0;
|
||||
%pushi/vec4 2, 0, 32;
|
||||
%mod/s;
|
||||
%cmpi/e 0, 0, 32;
|
||||
%jmp/0xz T_0.22, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.23;
|
||||
T_0.22 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
T_0.23 ;
|
||||
%jmp T_0.9;
|
||||
T_0.8 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f534510_0, 0, 32;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55e76f534430_0, 0, 32;
|
||||
T_0.24 ;
|
||||
%load/vec4 v0x55e76f534430_0;
|
||||
%cmpi/s 6, 0, 32;
|
||||
%jmp/0xz T_0.25, 5;
|
||||
%load/vec4 v0x55e76f534370_0;
|
||||
%load/vec4 v0x55e76f534430_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.26, 4;
|
||||
%load/vec4 v0x55e76f534510_0;
|
||||
%addi 1, 0, 32;
|
||||
%store/vec4 v0x55e76f534510_0, 0, 32;
|
||||
T_0.26 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55e76f534430_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55e76f534430_0, 0, 32;
|
||||
%jmp T_0.24;
|
||||
T_0.25 ;
|
||||
%load/vec4 v0x55e76f534510_0;
|
||||
%pushi/vec4 2, 0, 32;
|
||||
%mod/s;
|
||||
%cmpi/e 0, 0, 32;
|
||||
%jmp/0xz T_0.28, 4;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
%jmp T_0.29;
|
||||
T_0.28 ;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%store/vec4 v0x55e76f534720_0, 0, 4;
|
||||
T_0.29 ;
|
||||
%jmp T_0.9;
|
||||
T_0.9 ;
|
||||
%pop/vec4 1;
|
||||
%jmp T_0;
|
||||
.thread T_0, $push;
|
||||
.scope S_0x55e76f51ca80;
|
||||
T_1 ;
|
||||
%vpi_call 2 12 "$dumpfile", "bibp.vcd" {0 0 0};
|
||||
%vpi_call 2 13 "$dumpvars" {0 0 0};
|
||||
%pushi/vec4 9, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 97, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 165, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 227, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 319, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 289, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 353, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 417, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%pushi/vec4 481, 0, 9;
|
||||
%store/vec4 v0x55e76f534860_0, 0, 9;
|
||||
%delay 5, 0;
|
||||
%end;
|
||||
.thread T_1;
|
||||
# The file index is used to find the file name in the following table.
|
||||
:file_names 4;
|
||||
"N/A";
|
||||
"<interactive>";
|
||||
"bibpTB.v";
|
||||
"bibp.v";
|
56
iverilog/tobb/lab6/bibp.v
Normal file
56
iverilog/tobb/lab6/bibp.v
Normal file
@ -0,0 +1,56 @@
|
||||
module bibp #(parameter N = 3) (
|
||||
input [(N*2)+2:0] buyruk,
|
||||
output reg [N:0] sonuc
|
||||
);
|
||||
integer i, a, b, c, count;
|
||||
|
||||
always @(buyruk) begin
|
||||
case (buyruk[(N*2)+2:N*2])
|
||||
default: sonuc = {(N+1){1'b0}};
|
||||
|
||||
3'b000: sonuc = buyruk[(N*2)-1:(N*2)-3] + buyruk[(N*2)-4:0];
|
||||
3'b001: sonuc = buyruk[(N*2)-1:(N*2)-3] - buyruk[(N*2)-4:0];
|
||||
3'b010: sonuc = buyruk[(N*2)-1:(N*2)-3] & buyruk[(N*2)-4:0];
|
||||
3'b011: sonuc = buyruk[(N*2)-1:(N*2)-3] | buyruk[(N*2)-4:0];
|
||||
|
||||
3'b100: begin
|
||||
for (i = 0; i <= (N*2)-2; i++)
|
||||
if (buyruk[i] == buyruk[i+1])
|
||||
sonuc = {(N+1){1'b1}};
|
||||
else
|
||||
sonuc = {(N+1){1'b0}};
|
||||
end
|
||||
3'b101: begin
|
||||
sonuc = {(N+1){1'b0}};
|
||||
for (a = 0; a < (N*2); a++) begin
|
||||
if (buyruk[a] == 1)
|
||||
sonuc = {(N+1){1'b1}};
|
||||
end
|
||||
end
|
||||
|
||||
3'b110: begin
|
||||
count = 0;
|
||||
for (b = 0; b < (N*2); b++) begin
|
||||
if (buyruk[b] == 1)
|
||||
count = count + 1;
|
||||
end
|
||||
if (count % 2 == 0)
|
||||
sonuc = {(N+1){1'b1}};
|
||||
else
|
||||
sonuc = {(N+1){1'b0}};
|
||||
end
|
||||
|
||||
3'b111: begin
|
||||
count = 0;
|
||||
for (c = 0; c < (N*2); c++) begin
|
||||
if (buyruk[c] == 1)
|
||||
count = count + 1;
|
||||
end
|
||||
if (count % 2 == 0)
|
||||
sonuc = {(N+1){1'b0}};
|
||||
else
|
||||
sonuc = {(N+1){1'b1}};
|
||||
end
|
||||
endcase
|
||||
end
|
||||
endmodule
|
81
iverilog/tobb/lab6/bibp.vcd
Normal file
81
iverilog/tobb/lab6/bibp.vcd
Normal file
@ -0,0 +1,81 @@
|
||||
$date
|
||||
Thu Jan 30 06:13:44 2025
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
$end
|
||||
$timescale
|
||||
1s
|
||||
$end
|
||||
$scope module bibpTB $end
|
||||
$var wire 4 ! sonuc [3:0] $end
|
||||
$var reg 9 " A [8:0] $end
|
||||
$scope module uut $end
|
||||
$var wire 9 # buyruk [8:0] $end
|
||||
$var reg 4 $ sonuc [3:0] $end
|
||||
$var integer 32 % a [31:0] $end
|
||||
$var integer 32 & b [31:0] $end
|
||||
$var integer 32 ' c [31:0] $end
|
||||
$var integer 32 ( count [31:0] $end
|
||||
$var integer 32 ) i [31:0] $end
|
||||
$upscope $end
|
||||
$upscope $end
|
||||
$enddefinitions $end
|
||||
#0
|
||||
$dumpvars
|
||||
bx )
|
||||
bx (
|
||||
bx '
|
||||
bx &
|
||||
bx %
|
||||
b10 $
|
||||
b1001 #
|
||||
b1001 "
|
||||
b10 !
|
||||
$end
|
||||
#5
|
||||
b11 !
|
||||
b11 $
|
||||
b1100001 "
|
||||
b1100001 #
|
||||
#10
|
||||
b100 !
|
||||
b100 $
|
||||
b10100101 "
|
||||
b10100101 #
|
||||
#15
|
||||
b111 !
|
||||
b111 $
|
||||
b11100011 "
|
||||
b11100011 #
|
||||
#20
|
||||
b1111 !
|
||||
b1111 $
|
||||
b101 )
|
||||
b100111111 "
|
||||
b100111111 #
|
||||
#25
|
||||
b0 !
|
||||
b0 $
|
||||
b101 )
|
||||
b100100001 "
|
||||
b100100001 #
|
||||
#30
|
||||
b1111 !
|
||||
b1111 $
|
||||
b110 %
|
||||
b101100001 "
|
||||
b101100001 #
|
||||
#35
|
||||
b110 &
|
||||
b10 (
|
||||
b110100001 "
|
||||
b110100001 #
|
||||
#40
|
||||
b0 !
|
||||
b0 $
|
||||
b110 '
|
||||
b10 (
|
||||
b111100001 "
|
||||
b111100001 #
|
||||
#45
|
25
iverilog/tobb/lab6/bibpTB.v
Normal file
25
iverilog/tobb/lab6/bibpTB.v
Normal file
@ -0,0 +1,25 @@
|
||||
module bibpTB();
|
||||
parameter N = 3;
|
||||
reg [(N*2)+2:0] A;
|
||||
wire [N:0] sonuc;
|
||||
|
||||
bibp #(N) uut (
|
||||
.buyruk(A),
|
||||
.sonuc(sonuc)
|
||||
);
|
||||
|
||||
initial begin
|
||||
$dumpfile("bibp.vcd");
|
||||
$dumpvars;
|
||||
A = 9'b000_001_001; #5;
|
||||
A = 9'b001_100_001; #5;
|
||||
A = 9'b010_100_101; #5;
|
||||
A = 9'b011_100_011; #5;
|
||||
A = 9'b100_111_111; #5;
|
||||
A = 9'b100_100_001; #5;
|
||||
A = 9'b101_100_001; #5;
|
||||
A = 9'b110_100_001; #5;
|
||||
A = 9'b111_100_001; #5;
|
||||
end
|
||||
|
||||
endmodule
|
341
iverilog/tobb/lab7/bib3A
Normal file
341
iverilog/tobb/lab7/bib3A
Normal file
@ -0,0 +1,341 @@
|
||||
#! /usr/bin/vvp
|
||||
:ivl_version "11.0 (stable)";
|
||||
:ivl_delay_selection "TYPICAL";
|
||||
:vpi_time_precision + 0;
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi";
|
||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
|
||||
S_0x55a2c2765ba0 .scope module, "bib3AdvancedTB" "bib3AdvancedTB" 2 1;
|
||||
.timescale 0 0;
|
||||
v0x55a2c2780cc0_0 .var "basla", 0 0;
|
||||
v0x55a2c2780d80_0 .net "bitti", 0 0, v0x55a2c27805f0_0; 1 drivers
|
||||
v0x55a2c2780e50_0 .var "buyruk", 8 0;
|
||||
v0x55a2c2780f50_0 .var "clk", 0 0;
|
||||
v0x55a2c2781020_0 .var/i "i", 31 0;
|
||||
v0x55a2c27810c0 .array "memory", 15 0, 8 0;
|
||||
v0x55a2c2781160_0 .net "sonuc", 3 0, v0x55a2c2780b40_0; 1 drivers
|
||||
S_0x55a2c2765d30 .scope module, "uut" "bib3Advanced" 2 10, 3 1 0, S_0x55a2c2765ba0;
|
||||
.timescale 0 0;
|
||||
.port_info 0 /INPUT 1 "clk";
|
||||
.port_info 1 /INPUT 1 "basla";
|
||||
.port_info 2 /INPUT 9 "buyruk";
|
||||
.port_info 3 /OUTPUT 4 "sonuc";
|
||||
.port_info 4 /OUTPUT 1 "bitti";
|
||||
v0x55a2c2723c00_0 .var/i "a", 31 0;
|
||||
v0x55a2c2780470_0 .var/i "b", 31 0;
|
||||
v0x55a2c2780550_0 .net "basla", 0 0, v0x55a2c2780cc0_0; 1 drivers
|
||||
v0x55a2c27805f0_0 .var "bitti", 0 0;
|
||||
v0x55a2c27806b0_0 .net "buyruk", 8 0, v0x55a2c2780e50_0; 1 drivers
|
||||
v0x55a2c27807e0_0 .var/i "c", 31 0;
|
||||
v0x55a2c27808c0_0 .net "clk", 0 0, v0x55a2c2780f50_0; 1 drivers
|
||||
v0x55a2c2780980_0 .var/i "count", 31 0;
|
||||
v0x55a2c2780a60_0 .var/i "i", 31 0;
|
||||
v0x55a2c2780b40_0 .var "sonuc", 3 0;
|
||||
E_0x55a2c275ba20 .event posedge, v0x55a2c27808c0_0;
|
||||
.scope S_0x55a2c2765d30;
|
||||
T_0 ;
|
||||
%wait E_0x55a2c275ba20;
|
||||
%load/vec4 v0x55a2c2780550_0;
|
||||
%flag_set/vec4 8;
|
||||
%jmp/0xz T_0.0, 8;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 6, 4;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 0, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.3, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 1, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.4, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 2, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.5, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 3, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.6, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 4, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.7, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 5, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.8, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 6, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.9, 6;
|
||||
%dup/vec4;
|
||||
%pushi/vec4 7, 0, 3;
|
||||
%cmp/u;
|
||||
%jmp/1 T_0.10, 6;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.3 ;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%add;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.4 ;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%sub;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.5 ;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%and;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.6 ;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 3, 3;
|
||||
%pad/u 4;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%parti/s 3, 0, 2;
|
||||
%pad/u 4;
|
||||
%or;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.7 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2780a60_0, 0, 32;
|
||||
T_0.12 ;
|
||||
%load/vec4 v0x55a2c2780a60_0;
|
||||
%cmpi/s 4, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_0.13, 5;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%load/vec4 v0x55a2c2780a60_0;
|
||||
%part/s 1;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%load/vec4 v0x55a2c2780a60_0;
|
||||
%addi 1, 0, 32;
|
||||
%part/s 1;
|
||||
%cmp/e;
|
||||
%jmp/0xz T_0.14, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%jmp T_0.15;
|
||||
T_0.14 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
T_0.15 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55a2c2780a60_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55a2c2780a60_0, 0, 32;
|
||||
%jmp T_0.12;
|
||||
T_0.13 ;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.8 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2723c00_0, 0, 32;
|
||||
T_0.16 ;
|
||||
%load/vec4 v0x55a2c2723c00_0;
|
||||
%cmpi/s 5, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_0.17, 5;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%load/vec4 v0x55a2c2723c00_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.18, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%jmp T_0.19;
|
||||
T_0.18 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
T_0.19 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55a2c2723c00_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55a2c2723c00_0, 0, 32;
|
||||
%jmp T_0.16;
|
||||
T_0.17 ;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.9 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2780980_0, 0, 32;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2780470_0, 0, 32;
|
||||
T_0.20 ;
|
||||
%load/vec4 v0x55a2c2780470_0;
|
||||
%cmpi/s 5, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_0.21, 5;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%load/vec4 v0x55a2c2780470_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.22, 4;
|
||||
%load/vec4 v0x55a2c2780980_0;
|
||||
%addi 1, 0, 32;
|
||||
%store/vec4 v0x55a2c2780980_0, 0, 32;
|
||||
T_0.22 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55a2c2780470_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55a2c2780470_0, 0, 32;
|
||||
%jmp T_0.20;
|
||||
T_0.21 ;
|
||||
%load/vec4 v0x55a2c2780980_0;
|
||||
%pushi/vec4 2, 0, 32;
|
||||
%mod/s;
|
||||
%cmpi/e 0, 0, 32;
|
||||
%jmp/0xz T_0.24, 4;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%jmp T_0.25;
|
||||
T_0.24 ;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
T_0.25 ;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.10 ;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2780980_0, 0, 32;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c27807e0_0, 0, 32;
|
||||
T_0.26 ;
|
||||
%load/vec4 v0x55a2c27807e0_0;
|
||||
%cmpi/s 5, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_0.27, 5;
|
||||
%load/vec4 v0x55a2c27806b0_0;
|
||||
%load/vec4 v0x55a2c27807e0_0;
|
||||
%part/s 1;
|
||||
%pad/u 32;
|
||||
%cmpi/e 1, 0, 32;
|
||||
%jmp/0xz T_0.28, 4;
|
||||
%load/vec4 v0x55a2c2780980_0;
|
||||
%addi 1, 0, 32;
|
||||
%store/vec4 v0x55a2c2780980_0, 0, 32;
|
||||
T_0.28 ;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55a2c27807e0_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55a2c27807e0_0, 0, 32;
|
||||
%jmp T_0.26;
|
||||
T_0.27 ;
|
||||
%load/vec4 v0x55a2c2780980_0;
|
||||
%pushi/vec4 2, 0, 32;
|
||||
%mod/s;
|
||||
%cmpi/e 0, 0, 32;
|
||||
%jmp/0xz T_0.30, 4;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
%jmp T_0.31;
|
||||
T_0.30 ;
|
||||
%pushi/vec4 15, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
T_0.31 ;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%jmp T_0.11;
|
||||
T_0.11 ;
|
||||
%pop/vec4 1;
|
||||
%jmp T_0.1;
|
||||
T_0.0 ;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%assign/vec4 v0x55a2c27805f0_0, 0;
|
||||
%pushi/vec4 0, 0, 4;
|
||||
%assign/vec4 v0x55a2c2780b40_0, 0;
|
||||
T_0.1 ;
|
||||
%jmp T_0;
|
||||
.thread T_0;
|
||||
.scope S_0x55a2c2765ba0;
|
||||
T_1 ;
|
||||
%load/vec4 v0x55a2c2780f50_0;
|
||||
%inv;
|
||||
%store/vec4 v0x55a2c2780f50_0, 0, 1;
|
||||
%delay 5, 0;
|
||||
%jmp T_1;
|
||||
.thread T_1;
|
||||
.scope S_0x55a2c2765ba0;
|
||||
T_2 ;
|
||||
%vpi_call 2 25 "$dumpfile", "bib3Advanced.vcd" {0 0 0};
|
||||
%vpi_call 2 26 "$dumpvars" {0 0 0};
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0x55a2c2780f50_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0x55a2c2780cc0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 9;
|
||||
%store/vec4 v0x55a2c2780e50_0, 0, 9;
|
||||
%vpi_call 2 28 "$readmemb", "memory.mem", v0x55a2c27810c0 {0 0 0};
|
||||
%delay 10, 0;
|
||||
%pushi/vec4 1, 0, 1;
|
||||
%store/vec4 v0x55a2c2780cc0_0, 0, 1;
|
||||
%pushi/vec4 0, 0, 32;
|
||||
%store/vec4 v0x55a2c2781020_0, 0, 32;
|
||||
T_2.0 ;
|
||||
%load/vec4 v0x55a2c2781020_0;
|
||||
%cmpi/s 16, 0, 32;
|
||||
%flag_or 5, 4;
|
||||
%jmp/0xz T_2.1, 5;
|
||||
%ix/getv/s 4, v0x55a2c2781020_0;
|
||||
%load/vec4a v0x55a2c27810c0, 4;
|
||||
%store/vec4 v0x55a2c2780e50_0, 0, 9;
|
||||
%delay 10, 0;
|
||||
; show_stmt_assign_vector: Get l-value for compressed += operand
|
||||
%load/vec4 v0x55a2c2781020_0;
|
||||
%pushi/vec4 1, 0, 32;
|
||||
%add;
|
||||
%store/vec4 v0x55a2c2781020_0, 0, 32;
|
||||
%jmp T_2.0;
|
||||
T_2.1 ;
|
||||
%pushi/vec4 0, 0, 1;
|
||||
%store/vec4 v0x55a2c2780cc0_0, 0, 1;
|
||||
%delay 10, 0;
|
||||
%vpi_call 2 36 "$finish" {0 0 0};
|
||||
%end;
|
||||
.thread T_2;
|
||||
# The file index is used to find the file name in the following table.
|
||||
:file_names 4;
|
||||
"N/A";
|
||||
"<interactive>";
|
||||
"bib3AdvancedTB.v";
|
||||
"bib3Advanced.v";
|
80
iverilog/tobb/lab7/bib3Advanced.v
Normal file
80
iverilog/tobb/lab7/bib3Advanced.v
Normal file
@ -0,0 +1,80 @@
|
||||
module bib3Advanced (
|
||||
input clk,
|
||||
input basla,
|
||||
input [8:0] buyruk,
|
||||
output reg [3:0] sonuc,
|
||||
output reg bitti
|
||||
);
|
||||
integer i, a, b, c, count;
|
||||
always@(posedge clk) begin
|
||||
if(basla) begin
|
||||
bitti <= 1'b0;
|
||||
case (buyruk[8:6])
|
||||
default: begin
|
||||
sonuc <= 4'b0000;
|
||||
end
|
||||
3'b000: begin
|
||||
sonuc <= buyruk[5:3] + buyruk[2:0];
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b001: begin
|
||||
sonuc <= buyruk[5:3] - buyruk[2:0];
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b010: begin
|
||||
sonuc <= buyruk[5:3] & buyruk[2:0];
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b011: begin
|
||||
sonuc <= buyruk[5:3] | buyruk[2:0];
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b100: begin
|
||||
for (i = 0; i <= 4; i++) begin
|
||||
if (buyruk[i] == buyruk[i+1])
|
||||
sonuc <= 4'b1111;
|
||||
else
|
||||
sonuc <= 4'b0000;
|
||||
end
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b101: begin
|
||||
for (a = 0; a <= 5; a++) begin
|
||||
if (buyruk[a] == 1)
|
||||
sonuc <= 4'b1111;
|
||||
else
|
||||
sonuc <= 4'b0000;
|
||||
end
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b110: begin
|
||||
count = 0;
|
||||
for (b = 0; b <= 5; b++) begin
|
||||
if (buyruk[b] == 1)
|
||||
count = count + 1;
|
||||
end
|
||||
if (count % 2 == 0)
|
||||
sonuc <= 4'b1111;
|
||||
else
|
||||
sonuc <= 4'b0000;
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
3'b111: begin
|
||||
count = 0;
|
||||
for (c = 0; c <= 5; c++)
|
||||
if (buyruk[c] == 1)
|
||||
count = count + 1;
|
||||
if (count % 2 == 0)
|
||||
sonuc <= 4'b0000;
|
||||
else
|
||||
sonuc <= 4'b1111;
|
||||
bitti <= 1'b1;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
else begin
|
||||
bitti <= 1'b0;
|
||||
sonuc <= 4'b0000;
|
||||
end
|
||||
end
|
||||
endmodule
|
238
iverilog/tobb/lab7/bib3Advanced.vcd
Normal file
238
iverilog/tobb/lab7/bib3Advanced.vcd
Normal file
@ -0,0 +1,238 @@
|
||||
$date
|
||||
Thu Jan 30 07:38:04 2025
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
$end
|
||||
$timescale
|
||||
1s
|
||||
$end
|
||||
$scope module bib3AdvancedTB $end
|
||||
$var wire 4 ! sonuc [3:0] $end
|
||||
$var wire 1 " bitti $end
|
||||
$var reg 1 # basla $end
|
||||
$var reg 9 $ buyruk [8:0] $end
|
||||
$var reg 1 % clk $end
|
||||
$var integer 32 & i [31:0] $end
|
||||
$scope module uut $end
|
||||
$var wire 1 # basla $end
|
||||
$var wire 9 ' buyruk [8:0] $end
|
||||
$var wire 1 % clk $end
|
||||
$var reg 1 " bitti $end
|
||||
$var reg 4 ( sonuc [3:0] $end
|
||||
$var integer 32 ) a [31:0] $end
|
||||
$var integer 32 * b [31:0] $end
|
||||
$var integer 32 + c [31:0] $end
|
||||
$var integer 32 , count [31:0] $end
|
||||
$var integer 32 - i [31:0] $end
|
||||
$upscope $end
|
||||
$upscope $end
|
||||
$enddefinitions $end
|
||||
#0
|
||||
$dumpvars
|
||||
bx -
|
||||
bx ,
|
||||
bx +
|
||||
bx *
|
||||
bx )
|
||||
bx (
|
||||
b0 '
|
||||
bx &
|
||||
0%
|
||||
b0 $
|
||||
0#
|
||||
x"
|
||||
bx !
|
||||
$end
|
||||
#5
|
||||
b0 !
|
||||
b0 (
|
||||
0"
|
||||
1%
|
||||
#10
|
||||
0%
|
||||
b1001 $
|
||||
b1001 '
|
||||
b0 &
|
||||
1#
|
||||
#15
|
||||
1"
|
||||
b10 !
|
||||
b10 (
|
||||
1%
|
||||
#20
|
||||
0%
|
||||
b1100001 $
|
||||
b1100001 '
|
||||
b1 &
|
||||
#25
|
||||
b11 !
|
||||
b11 (
|
||||
1"
|
||||
1%
|
||||
#30
|
||||
0%
|
||||
b10100101 $
|
||||
b10100101 '
|
||||
b10 &
|
||||
#35
|
||||
b100 !
|
||||
b100 (
|
||||
1"
|
||||
1%
|
||||
#40
|
||||
0%
|
||||
b11100011 $
|
||||
b11100011 '
|
||||
b11 &
|
||||
#45
|
||||
b111 !
|
||||
b111 (
|
||||
1"
|
||||
1%
|
||||
#50
|
||||
0%
|
||||
b100111111 $
|
||||
b100111111 '
|
||||
b100 &
|
||||
#55
|
||||
b1111 !
|
||||
b1111 (
|
||||
1"
|
||||
b101 -
|
||||
1%
|
||||
#60
|
||||
0%
|
||||
b100100001 $
|
||||
b100100001 '
|
||||
b101 &
|
||||
#65
|
||||
b0 !
|
||||
b0 (
|
||||
1"
|
||||
b101 -
|
||||
1%
|
||||
#70
|
||||
0%
|
||||
b101100001 $
|
||||
b101100001 '
|
||||
b110 &
|
||||
#75
|
||||
b1111 !
|
||||
b1111 (
|
||||
1"
|
||||
b110 )
|
||||
1%
|
||||
#80
|
||||
0%
|
||||
b110100001 $
|
||||
b110100001 '
|
||||
b111 &
|
||||
#85
|
||||
1"
|
||||
b110 *
|
||||
b10 ,
|
||||
1%
|
||||
#90
|
||||
0%
|
||||
b111100001 $
|
||||
b111100001 '
|
||||
b1000 &
|
||||
#95
|
||||
b0 !
|
||||
b0 (
|
||||
1"
|
||||
b110 +
|
||||
b10 ,
|
||||
1%
|
||||
#100
|
||||
0%
|
||||
b1001 $
|
||||
b1001 '
|
||||
b1001 &
|
||||
#105
|
||||
b10 !
|
||||
b10 (
|
||||
1"
|
||||
1%
|
||||
#110
|
||||
0%
|
||||
b1100001 $
|
||||
b1100001 '
|
||||
b1010 &
|
||||
#115
|
||||
b11 !
|
||||
b11 (
|
||||
1"
|
||||
1%
|
||||
#120
|
||||
0%
|
||||
b10100101 $
|
||||
b10100101 '
|
||||
b1011 &
|
||||
#125
|
||||
b100 !
|
||||
b100 (
|
||||
1"
|
||||
1%
|
||||
#130
|
||||
0%
|
||||
b11100011 $
|
||||
b11100011 '
|
||||
b1100 &
|
||||
#135
|
||||
b111 !
|
||||
b111 (
|
||||
1"
|
||||
1%
|
||||
#140
|
||||
0%
|
||||
b100111111 $
|
||||
b100111111 '
|
||||
b1101 &
|
||||
#145
|
||||
b1111 !
|
||||
b1111 (
|
||||
1"
|
||||
b101 -
|
||||
1%
|
||||
#150
|
||||
0%
|
||||
b100100001 $
|
||||
b100100001 '
|
||||
b1110 &
|
||||
#155
|
||||
b0 !
|
||||
b0 (
|
||||
1"
|
||||
b101 -
|
||||
1%
|
||||
#160
|
||||
0%
|
||||
b101100001 $
|
||||
b101100001 '
|
||||
b1111 &
|
||||
#165
|
||||
b1111 !
|
||||
b1111 (
|
||||
1"
|
||||
b110 )
|
||||
1%
|
||||
#170
|
||||
0%
|
||||
bx $
|
||||
bx '
|
||||
b10000 &
|
||||
#175
|
||||
b0 !
|
||||
b0 (
|
||||
0"
|
||||
1%
|
||||
#180
|
||||
0%
|
||||
0#
|
||||
b10001 &
|
||||
#185
|
||||
1%
|
||||
#190
|
||||
0%
|
39
iverilog/tobb/lab7/bib3AdvancedTB.v
Normal file
39
iverilog/tobb/lab7/bib3AdvancedTB.v
Normal file
@ -0,0 +1,39 @@
|
||||
module bib3AdvancedTB();
|
||||
|
||||
reg clk;
|
||||
reg basla;
|
||||
reg [8:0] buyruk;
|
||||
reg [8:0] memory [0:15];
|
||||
wire [3:0] sonuc;
|
||||
wire bitti;
|
||||
|
||||
bib3Advanced uut (
|
||||
.clk(clk),
|
||||
.basla(basla),
|
||||
.buyruk(buyruk),
|
||||
.sonuc(sonuc),
|
||||
.bitti(bitti)
|
||||
);
|
||||
|
||||
always begin
|
||||
clk = ~clk; #5;
|
||||
end
|
||||
|
||||
integer i;
|
||||
|
||||
initial begin
|
||||
$dumpfile("bib3Advanced.vcd");
|
||||
$dumpvars;
|
||||
clk = 0; basla = 0; buyruk = 9'b0_0000_0000;
|
||||
$readmemb("memory.mem", memory); #10;
|
||||
basla = 1'b1;
|
||||
|
||||
for(i = 0; i <= 16; i++) begin
|
||||
buyruk = memory[i]; #10;
|
||||
end
|
||||
|
||||
basla = 1'b0; #10;
|
||||
$finish;
|
||||
end
|
||||
|
||||
endmodule
|
0
iverilog/tobb/lab7/bib3_gelismis.v
Normal file
0
iverilog/tobb/lab7/bib3_gelismis.v
Normal file
16
iverilog/tobb/lab7/memory.mem
Normal file
16
iverilog/tobb/lab7/memory.mem
Normal file
@ -0,0 +1,16 @@
|
||||
000001001
|
||||
001100001
|
||||
010100101
|
||||
011100011
|
||||
100111111
|
||||
100100001
|
||||
101100001
|
||||
110100001
|
||||
111100001
|
||||
000001001
|
||||
001100001
|
||||
010100101
|
||||
011100011
|
||||
100111111
|
||||
100100001
|
||||
101100001
|
12
iverilog/tobb/lab7/paramBib3Advanced.v
Normal file
12
iverilog/tobb/lab7/paramBib3Advanced.v
Normal file
@ -0,0 +1,12 @@
|
||||
module paramBib3Advanced #(parameter N = 3) (
|
||||
input clk,
|
||||
input basla,
|
||||
input [(N*2)+2:0] buyruk,
|
||||
output reg [N:0] sonuc,
|
||||
output reg bitti
|
||||
);
|
||||
|
||||
genvar i;
|
||||
generate
|
||||
for (i = 0; i < N)
|
||||
endgenerate
|
Loading…
x
Reference in New Issue
Block a user