Merge branch 'main' of ssh://ssh.ras-pi.tr/kaltinsoy/verilog

This commit is contained in:
k0rrluna 2025-01-03 05:09:40 +03:00
commit ceede4abc3
4 changed files with 1765 additions and 2004 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
$date $date
Mon Dec 23 02:54:24 2024 Tue Dec 24 13:48:57 2024
$end $end
$version $version
Icarus Verilog Icarus Verilog
@ -710,15 +710,15 @@ $upscope $end
$enddefinitions $end $enddefinitions $end
#0 #0
$dumpvars $dumpvars
b1 j$ b1000 j$
1i$ 0i$
1h$ 0h$
1g$ 1g$
1f$ 0f$
0e$ 0e$
0d$ 1d$
0c$ 0c$
b0 b$ b11 b$
0a$ 0a$
0`$ 0`$
0_$ 0_$
@ -1037,7 +1037,7 @@ b0 A
0@ 0@
b0 ? b0 ?
b0 > b0 >
b1 = b0 =
b0 < b0 <
b0 ; b0 ;
b0 : b0 :
@ -1047,7 +1047,7 @@ b0 7
b0 6 b0 6
b0 5 b0 5
b0 4 b0 4
b1 3 b1000 3
b0 2 b0 2
b0 1 b0 1
b0 0 b0 0
@ -1056,10 +1056,10 @@ b0 .
b0 - b0 -
b0 , b0 ,
b0 + b0 +
b0 * b11 *
b0 ) b0 )
b0 ( b0 (
b0 ' b11 '
0& 0&
b0 % b0 %
b0 $ b0 $
@ -1068,40 +1068,6 @@ b0 "
0! 0!
$end $end
#5 #5
15#
1:#
08#
11#
17#
1y"
1=#
1!#
09#
0{"
12#
0`"
1t"
1<#
b10101 "
b10101 6
b10101 ;"
04#
1~"
b1100 6"
1v"
1c"
b1000 8"
1["
13#
1u"
1Z"
b1111 :
b1111 3"
b1111 -
b1111 +
b1111 9
b1111 7
b1111 A
1v 1v
1"" 1""
1," 1,"
@ -1212,37 +1178,10 @@ b1111 g
b1111 ># b1111 >#
b1111 G# b1111 G#
#15 #15
15#
1:#
08#
11#
1y"
17#
1=#
06#
1!#
1;#
12#
0`"
1t"
1<#
04#
1~"
b1100 6"
1v"
1c"
b1000 8"
1["
1`$ 1`$
0X$ 0X$
13#
1u"
1Z"
1C 1C
1\$ 1\$
b10101 "
b10101 6
b10101 ;"
1." 1."
14$ 14$
1P$ 1P$
@ -1251,8 +1190,6 @@ b10101 ;"
11$ 11$
1|# 1|#
1B$ 1B$
b1111 :
b1111 3"
1#" 1#"
1<$ 1<$
1"$ 1"$
@ -1269,7 +1206,6 @@ b1111 3"
1M$ 1M$
1U$ 1U$
1]$ 1]$
b1111 -
1"" 1""
1!$ 1!$
1($ 1($
@ -1285,7 +1221,6 @@ b111 C$
1I$ 1I$
0Q$ 0Q$
1Y$ 1Y$
b1111 +
1y 1y
1h# 1h#
1p# 1p#
@ -1301,7 +1236,6 @@ b1111 +
1s# 1s#
b1011 y# b1011 y#
b1101 ?$ b1101 ?$
b1111 9
1! 1!
bz111 i bz111 i
1m 1m
@ -1342,8 +1276,6 @@ b1100 A$
0W$ 0W$
0^$ 0^$
1R 1R
b1111 7
b1111 A
1S 1S
1W 1W
1[ 1[
@ -1525,49 +1457,17 @@ b111 g
b111 ># b111 >#
b111 G# b111 G#
#25 #25
1{"
18#
05#
01#
0:#
0y"
19#
0!#
0=#
06#
07#
0Z$ 0Z$
1`"
0t"
02#
1;#
0W$ 0W$
0c"
b0 8"
0["
0~"
b0 6"
0v"
0<#
04#
b0 "
b0 6
b0 ;"
0T$ 0T$
0Z"
0u"
03#
0! 0!
0# 0#
b0 :
b0 3"
0C 0C
0=$ 0=$
0J# 0J#
00" 00"
0." 0."
09$ 09$
b0 -
0," 0,"
0!$ 0!$
00$ 00$
@ -1581,8 +1481,6 @@ b0 A$
0K# 0K#
0G$ 0G$
0O$ 0O$
b0 8
b0 +
0'" 0'"
0%" 0%"
0h# 0h#
@ -1599,9 +1497,6 @@ b0 y#
0)$ 0)$
0*$ 0*$
b0 ?$ b0 ?$
b0 .
b0 >
b0 9
0w 0w
0W 0W
0_ 0_
@ -1636,9 +1531,9 @@ b0 {#
0+$ 0+$
05$ 05$
03$ 03$
b10 = 0d$
b0 7 b10000000 3
b0 A b10000000 j$
0v 0v
0K 0K
0S 0S
@ -1652,9 +1547,8 @@ b0 H
0~# 0~#
0'$ 0'$
0/$ 0/$
0i$ 0g$
b10 3 1c$
b10 j$
bz000 i bz000 i
0m 0m
0N 0N
@ -1692,9 +1586,9 @@ b0 j
0k 0k
0t 0t
0~ 0~
b1 ' b111 '
b1 * b111 *
b1 b$ b111 b$
0& 0&
b0 % b0 %
b0 ) b0 )
@ -1711,40 +1605,6 @@ b0 g
b0 ># b0 >#
b0 G# b0 G#
#30 #30
06#
1;#
18#
01#
07#
0y"
0=#
0!#
19#
1{"
02#
1`"
0t"
0<#
b1 "
b1 6
b1 ;"
04#
0~"
b0 6"
0v"
0c"
b0 8"
0["
03#
0u"
0Z"
b1 :
b1 3"
b1 -
b1 +
b1 8
b1 .
b1 >
1v 1v
1"" 1""
1," 1,"
@ -1801,40 +1661,6 @@ b1111 h
b1111 ?# b1111 ?#
b1111 H# b1111 H#
#35 #35
15#
1:#
08#
11#
17#
1y"
1=#
1!#
09#
0{"
12#
0`"
1t"
1<#
b10101 "
b10101 6
b10101 ;"
04#
1~"
b1100 6"
1v"
1c"
b1000 8"
1["
13#
1u"
1Z"
b1111 :
b1111 3"
b1111 -
b1111 +
b1111 8
b1111 .
b1111 >
1{ 1{
1'" 1'"
b1111 ? b1111 ?
@ -1889,39 +1715,10 @@ b1111 g
b1111 ># b1111 >#
b1111 G# b1111 G#
#40 #40
15#
08#
1:#
11#
09#
0{"
1y"
17#
1=#
06#
1!#
1;#
12#
0`"
1t"
1<#
04#
1~"
b1100 6"
1v"
1c"
b1000 8"
1["
1`$ 1`$
0X$ 0X$
1C 1C
13#
1u"
1Z"
1\$ 1\$
b10101 "
b10101 6
b10101 ;"
1." 1."
14$ 14$
1P$ 1P$
@ -1930,8 +1727,6 @@ b10101 ;"
11$ 11$
1|# 1|#
1B$ 1B$
b1111 :
b1111 3"
1#" 1#"
1<$ 1<$
1"$ 1"$
@ -1948,7 +1743,6 @@ b1111 3"
1M$ 1M$
1U$ 1U$
1]$ 1]$
b1111 -
1"" 1""
1!$ 1!$
1($ 1($
@ -1964,7 +1758,6 @@ b111 C$
1I$ 1I$
0Q$ 0Q$
1Y$ 1Y$
b1111 +
1y 1y
1h# 1h#
1p# 1p#
@ -1980,7 +1773,6 @@ b1111 +
1s# 1s#
b1011 y# b1011 y#
b1101 ?$ b1101 ?$
b1111 8
1! 1!
bz111 i bz111 i
1m 1m
@ -2021,8 +1813,6 @@ b1100 A$
0W$ 0W$
0^$ 0^$
1R 1R
b1111 .
b1111 >
1S 1S
1W 1W
1[ 1[
@ -2101,28 +1891,9 @@ b1111 h
b1111 ?# b1111 ?#
b1111 H# b1111 H#
#45 #45
05#
b111 "
b111 6
b111 ;"
14#
0:#
18#
01#
b1000 6"
0y"
0!#
1I# 1I#
1`"
0t"
0B$ 0B$
0c"
b0 8"
0["
0Z"
0M$ 0M$
b111 :
b111 3"
0\$ 0\$
b110 C$ b110 C$
0F$ 0F$
@ -2134,11 +1905,9 @@ b110 C$
1G$ 1G$
1Q$ 1Q$
0O$ 0O$
b111 -
0|# 0|#
0E$ 0E$
1L$ 1L$
b111 +
1,$ 1,$
0.$ 0.$
04$ 04$
@ -2152,7 +1921,6 @@ b111 +
03$ 03$
1Y$ 1Y$
0W$ 0W$
b111 8
1K# 1K#
0($ 0($
10$ 10$
@ -2162,8 +1930,6 @@ b1101001 P#
0X# 0X#
b101 y# b101 y#
b110 ?$ b110 ?$
b111 .
b111 >
1n# 1n#
0p# 0p#
0u# 0u#
@ -2224,89 +1990,85 @@ b111 >#
b111 G# b111 G#
#50 #50
0(# 0(#
0)# 0<#
0'#
00# 00#
0,# 0'#
06#
0x" 0x"
0,#
1}"
1+# 1+#
0.# 0.#
0&# 0&#
19# 1-#
1}"
1{"
0/# 0/#
0%# 0%#
0=# 1*#
0~"
0$# 0$#
1-#
0w" 0w"
02# 0##
0s"
0p" 0p"
0h" 0h"
1*#
0|" 0|"
0v"
0^"
0g"
0##
1z"
0u"
1T"
0\"
1m" 1m"
b0z 7" b0z 7"
0k" 0k"
0g"
0r" 0r"
0a" 1T"
1z"
0q" 0q"
0\"
0]" 0]"
05# 05#
07# 04#
0s"
0f" 0f"
0a"
1b" 1b"
0:# 0:#
1;# 1;#
0d" 19#
0N"
1_"
18#
0Y"
0S"
0X"
01#
0T$
0U"
0M"
1Q"
1R"
b0 9"
0P"
b0 6"
0y"
0<#
04#
b0 " b0 "
b0 6 b0 6
b0 ;" b0 ;"
0# 07#
0L" 0^"
0N"
1_"
18#
0=#
0d"
0S"
0X"
01#
02#
0Y"
1Q"
1R"
0P"
1{"
0y"
0~"
b0 6"
0v"
0T$
0U"
b0 9"
0M"
0J" 0J"
0V" 0V"
0!# 0!#
03# 0#
0=$ 0u"
0J# 0L"
0B" 0B"
1D" 1D"
0K" 0K"
1`" 1`"
0t" 0t"
09$ 0=$
0a$ 0J#
0I#
0H" 0H"
0G" 0G"
b0 :" b0 :"
@ -2314,21 +2076,23 @@ b0 :"
0c" 0c"
b0 8" b0 8"
0[" 0["
09$
0a$
0I#
0="
0>"
0Z"
0," 0,"
0!$ 0!$
00$ 00$
02$ 02$
0]$ 0]$
0=" b0 :
0>" b0 3"
0Z"
b0 -
0#" 0#"
0w# 0w#
0K# 0K#
0V$ 0V$
b0 :
b0 3"
0'" 0'"
0%" 0%"
0h# 0h#
@ -2337,7 +2101,7 @@ b0 3"
01$ 01$
0E$ 0E$
0L$ 0L$
b0 + b0 ,
0"" 0""
0c# 0c#
0k# 0k#
@ -2347,7 +2111,6 @@ b0 y#
0*$ 0*$
b0 ?$ b0 ?$
0U$ 0U$
b0 ,
0w 0w
0W 0W
0_ 0_
@ -2375,7 +2138,6 @@ b0 C$
b0 Q# b0 Q#
b0 A$ b0 A$
0Z$ 0Z$
b0 8
0{ 0{
0y 0y
0D 0D
@ -2397,10 +2159,7 @@ b0 8
0O$ 0O$
0Y$ 0Y$
0W$ 0W$
0f$ 1d$
b0 =
b0 .
b0 >
0v 0v
0d 0d
0f 0f
@ -2422,9 +2181,9 @@ b0 H
0D$ 0D$
0K$ 0K$
0S$ 0S$
0h$ 1g$
1i$ 1i$
1d$ 0c$
b100 3 b100 3
b100 j$ b100 j$
bz000 i bz000 i

View File

@ -19,17 +19,17 @@ ALU uut(
initial begin initial begin
$dumpfile("ALU.vcd"); // GTKWAVE SIMULTAIN DATA WAVEFORM $dumpfile("ALU.vcd"); // GTKWAVE SIMULTAIN DATA WAVEFORM
$dumpvars; // ICARUS VERILOG ADD ALL VARIABLES $dumpvars; // ICARUS VERILOG ADD ALL VARIABLES
A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b000; #5; A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b011; #5;
A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b000; #5; A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b011; #5;
A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b000; #5; A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b011; #5;
A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b000; #5; A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b011; #5;
A = 4'b0111; B = 4'b0111; CarryIN = 1'b1; opCodeA = 3'b000; #5; A = 4'b0111; B = 4'b0111; CarryIN = 1'b1; opCodeA = 3'b011; #5;
A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b001; #5; A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b111; #5;
A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b001; #5; A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b111; #5;
A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b001; #5; A = 4'b1111; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b111; #5;
A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b001; #5; A = 4'b1111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b111; #5;
A = 4'b0111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b001; #5; A = 4'b0111; B = 4'b1111; CarryIN = 1'b1; opCodeA = 3'b111; #5;
A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b010; #5; A = 4'b0000; B = 4'b0000; CarryIN = 1'b0; opCodeA = 3'b010; #5;
A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b010; #5; A = 4'b0000; B = 4'b1111; CarryIN = 1'b0; opCodeA = 3'b010; #5;

View File

@ -8,9 +8,9 @@ module arithmeticUnit (
); );
wire [3:0] addY, subY; wire [3:0] addY, subY;
wire CarryOUTADD, CarryOUTSUB, tempCAdd, tempCSub; wire CarryOUTADD, CarryOUTSUB, tempCAdd, tempCSub, tempoverflow;
addition a1(.A(A), .B(B), .CarryIN(CarryIN), .Y(addY), .CarryOUT(CarryOUTADD), .overflow(overflow)); addition a1(.A(A), .B(B), .CarryIN(CarryIN), .Y(addY), .CarryOUT(CarryOUTADD), .overflow(tempoverflow));
subtraction s1(.A(A), .B(B), .BorrowIN(CarryIN), .Y(subY), .BorrowOUT(CarryOUTSUB)); subtraction s1(.A(A), .B(B), .BorrowIN(CarryIN), .Y(subY), .BorrowOUT(CarryOUTSUB));
and add1 (add_Y[0], opCode[0], addY[0]); and add1 (add_Y[0], opCode[0], addY[0]);
@ -28,4 +28,6 @@ and and10 (tempCSub, CarryOUTSUB, opCode[1]);
and and11 (tempCAdd, CarryOUTADD, opCode[0]); and and11 (tempCAdd, CarryOUTADD, opCode[0]);
or or4 (CarryOUT, tempCAdd, tempCSub); or or4 (CarryOUT, tempCAdd, tempCSub);
and add12 (overflow, opCode[0], tempoverflow);
endmodule endmodule