verilog
This commit is contained in:
parent
997713f8f2
commit
d71ea508e1
@ -13,18 +13,18 @@ module bibp #(parameter UZUNLUK = 8)(
|
|||||||
/*assign v1 = buyruk[UZUNLUK - 1 : UZUNLUK/2];
|
/*assign v1 = buyruk[UZUNLUK - 1 : UZUNLUK/2];
|
||||||
assign v2 = buyruk[UZUNLUK/2 : 0];*/
|
assign v2 = buyruk[UZUNLUK/2 : 0];*/
|
||||||
|
|
||||||
wire [(UZUNLUK/2) - 1:0] v1,v2;
|
// wire [(UZUNLUK/2) - 1:0] v1,v2;
|
||||||
|
|
||||||
|
// !!! LOCALPARAM IVERILOG DA PROBLEMLI OLDUGU ICIN KULLANILMIYOR !!!
|
||||||
|
|
||||||
always@(*) begin
|
always@(*) begin
|
||||||
v1 = buyruk[UZUNLUK - 1 : UZUNLUK/2];
|
|
||||||
v2 = buyruk[(UZUNLUK/2) - 1 : 0];
|
|
||||||
case(buyruk[UZUNLUK+2:UZUNLUK-1])
|
case(buyruk[UZUNLUK+2:UZUNLUK-1])
|
||||||
3'b000: sonuc = v1 + v2;
|
3'b000: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0];
|
||||||
3'b001: sonuc = v1 - v2;
|
3'b001: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]; // SUBTRACTION ?????? CHECK!!!
|
||||||
3'b010: sonuc = v1 & v2;
|
3'b010: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] & buyruk[(UZUNLUK/2) - 1 : 0];
|
||||||
3'b011: sonuc = v1 | v2;
|
3'b011: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] | buyruk[(UZUNLUK/2) - 1 : 0];
|
||||||
3'b100: sonuc = v1 ^ v2;
|
3'b100: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] ^ buyruk[(UZUNLUK/2) - 1 : 0];
|
||||||
default: sonuc = v1 + v2;
|
default: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0];
|
||||||
endcase
|
endcase
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
$date
|
$date
|
||||||
Thu Jul 11 19:23:34 2024
|
Sat Jul 13 00:01:24 2024
|
||||||
$end
|
$end
|
||||||
$version
|
$version
|
||||||
Icarus Verilog
|
Icarus Verilog
|
||||||
@ -8,27 +8,19 @@ $timescale
|
|||||||
1s
|
1s
|
||||||
$end
|
$end
|
||||||
$scope module bibpTB $end
|
$scope module bibpTB $end
|
||||||
$var wire 4 ! v2 [3:0] $end
|
$var wire 5 ! sonuc [4:0] $end
|
||||||
$var wire 4 " v1 [3:0] $end
|
$var reg 11 " buyruk [10:0] $end
|
||||||
$var wire 5 # sonuc [4:0] $end
|
|
||||||
$var reg 11 $ buyruk [10:0] $end
|
|
||||||
$scope module uut $end
|
$scope module uut $end
|
||||||
$var wire 11 % buyruk [10:0] $end
|
$var wire 11 # buyruk [10:0] $end
|
||||||
$var reg 5 & sonuc [4:0] $end
|
$var reg 5 $ sonuc [4:0] $end
|
||||||
$var reg 4 ' v1 [3:0] $end
|
|
||||||
$var reg 4 ( v2 [3:0] $end
|
|
||||||
$upscope $end
|
$upscope $end
|
||||||
$upscope $end
|
$upscope $end
|
||||||
$enddefinitions $end
|
$enddefinitions $end
|
||||||
#0
|
#0
|
||||||
$dumpvars
|
$dumpvars
|
||||||
b100 (
|
b100 $
|
||||||
b101 '
|
b101010100 #
|
||||||
b100 &
|
b101010100 "
|
||||||
b101010100 %
|
|
||||||
b101010100 $
|
|
||||||
b100 #
|
|
||||||
b101 "
|
|
||||||
b100 !
|
b100 !
|
||||||
$end
|
$end
|
||||||
#10
|
#10
|
||||||
|
@ -7,35 +7,23 @@
|
|||||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.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/v2005_math.vpi";
|
||||||
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
|
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
|
||||||
S_0x5634a3f74fe0 .scope module, "bibpTB" "bibpTB" 2 1;
|
S_0x557dbd3f8cf0 .scope module, "bibpTB" "bibpTB" 2 1;
|
||||||
.timescale 0 0;
|
.timescale 0 0;
|
||||||
P_0x5634a3f60060 .param/l "UZUNLUK" 0 2 3, +C4<00000000000000000000000000001000>;
|
P_0x557dbd3f8e80 .param/l "UZUNLUK" 0 2 3, +C4<00000000000000000000000000001000>;
|
||||||
v0x5634a3f87b40_0 .var "buyruk", 10 0;
|
v0x557dbd40a7d0_0 .var "buyruk", 10 0;
|
||||||
v0x5634a3f87c20_0 .net "sonuc", 4 0, v0x5634a3f877e0_0; 1 drivers
|
v0x557dbd40a890_0 .net "sonuc", 4 0, v0x557dbd40a690_0; 1 drivers
|
||||||
v0x5634a3f87cf0_0 .net "v1", 3 0, v0x5634a3f878c0_0; 1 drivers
|
S_0x557dbd3f8f20 .scope module, "uut" "bibp" 2 7, 3 1 0, S_0x557dbd3f8cf0;
|
||||||
v0x5634a3f87df0_0 .net "v2", 3 0, v0x5634a3f879b0_0; 1 drivers
|
|
||||||
S_0x5634a3f751c0 .scope module, "uut" "bibp" 2 9, 3 1 0, S_0x5634a3f74fe0;
|
|
||||||
.timescale 0 0;
|
.timescale 0 0;
|
||||||
.port_info 0 /INPUT 11 "buyruk";
|
.port_info 0 /INPUT 11 "buyruk";
|
||||||
.port_info 1 /OUTPUT 4 "v1";
|
.port_info 1 /OUTPUT 5 "sonuc";
|
||||||
.port_info 2 /OUTPUT 4 "v2";
|
P_0x557dbd3f95c0 .param/l "UZUNLUK" 0 3 1, +C4<00000000000000000000000000001000>;
|
||||||
.port_info 3 /OUTPUT 5 "sonuc";
|
v0x557dbd3bbcf0_0 .net "buyruk", 10 0, v0x557dbd40a7d0_0; 1 drivers
|
||||||
P_0x5634a3f753a0 .param/l "UZUNLUK" 0 3 1, +C4<00000000000000000000000000001000>;
|
v0x557dbd40a690_0 .var "sonuc", 4 0;
|
||||||
v0x5634a3f38cf0_0 .net "buyruk", 10 0, v0x5634a3f87b40_0; 1 drivers
|
E_0x557dbd3bce20 .event edge, v0x557dbd3bbcf0_0;
|
||||||
v0x5634a3f877e0_0 .var "sonuc", 4 0;
|
.scope S_0x557dbd3f8f20;
|
||||||
v0x5634a3f878c0_0 .var "v1", 3 0;
|
|
||||||
v0x5634a3f879b0_0 .var "v2", 3 0;
|
|
||||||
E_0x5634a3f39630 .event edge, v0x5634a3f38cf0_0, v0x5634a3f878c0_0, v0x5634a3f879b0_0;
|
|
||||||
.scope S_0x5634a3f751c0;
|
|
||||||
T_0 ;
|
T_0 ;
|
||||||
%wait E_0x5634a3f39630;
|
%wait E_0x557dbd3bce20;
|
||||||
%load/vec4 v0x5634a3f38cf0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
%parti/s 4, 4, 4;
|
|
||||||
%store/vec4 v0x5634a3f878c0_0, 0, 4;
|
|
||||||
%load/vec4 v0x5634a3f38cf0_0;
|
|
||||||
%parti/s 4, 0, 2;
|
|
||||||
%store/vec4 v0x5634a3f879b0_0, 0, 4;
|
|
||||||
%load/vec4 v0x5634a3f38cf0_0;
|
|
||||||
%parti/s 4, 7, 4;
|
%parti/s 4, 7, 4;
|
||||||
%dup/vec4;
|
%dup/vec4;
|
||||||
%pushi/vec4 0, 0, 4;
|
%pushi/vec4 0, 0, 4;
|
||||||
@ -57,65 +45,77 @@ T_0 ;
|
|||||||
%pushi/vec4 4, 0, 4;
|
%pushi/vec4 4, 0, 4;
|
||||||
%cmp/u;
|
%cmp/u;
|
||||||
%jmp/1 T_0.4, 6;
|
%jmp/1 T_0.4, 6;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%add;
|
%add;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.0 ;
|
T_0.0 ;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%add;
|
%add;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.1 ;
|
T_0.1 ;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%sub;
|
%sub;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.2 ;
|
T_0.2 ;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%and;
|
%and;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.3 ;
|
T_0.3 ;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%or;
|
%or;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.4 ;
|
T_0.4 ;
|
||||||
%load/vec4 v0x5634a3f878c0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 4, 4;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%load/vec4 v0x5634a3f879b0_0;
|
%load/vec4 v0x557dbd3bbcf0_0;
|
||||||
|
%parti/s 4, 0, 2;
|
||||||
%pad/u 5;
|
%pad/u 5;
|
||||||
%xor;
|
%xor;
|
||||||
%store/vec4 v0x5634a3f877e0_0, 0, 5;
|
%store/vec4 v0x557dbd40a690_0, 0, 5;
|
||||||
%jmp T_0.6;
|
%jmp T_0.6;
|
||||||
T_0.6 ;
|
T_0.6 ;
|
||||||
%pop/vec4 1;
|
%pop/vec4 1;
|
||||||
%jmp T_0;
|
%jmp T_0;
|
||||||
.thread T_0, $push;
|
.thread T_0, $push;
|
||||||
.scope S_0x5634a3f74fe0;
|
.scope S_0x557dbd3f8cf0;
|
||||||
T_1 ;
|
T_1 ;
|
||||||
%vpi_call 2 12 "$dumpfile", "vbibp.vcd" {0 0 0};
|
%vpi_call 2 10 "$dumpfile", "vbibp.vcd" {0 0 0};
|
||||||
%vpi_call 2 13 "$dumpvars" {0 0 0};
|
%vpi_call 2 11 "$dumpvars" {0 0 0};
|
||||||
%pushi/vec4 340, 0, 11;
|
%pushi/vec4 340, 0, 11;
|
||||||
%store/vec4 v0x5634a3f87b40_0, 0, 11;
|
%store/vec4 v0x557dbd40a7d0_0, 0, 11;
|
||||||
%delay 10, 0;
|
%delay 10, 0;
|
||||||
%vpi_call 2 16 "$finish" {0 0 0};
|
%vpi_call 2 14 "$finish" {0 0 0};
|
||||||
%end;
|
%end;
|
||||||
.thread T_1;
|
.thread T_1;
|
||||||
# The file index is used to find the file name in the following table.
|
# The file index is used to find the file name in the following table.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user