overflow fix

This commit is contained in:
2024-12-26 01:24:14 +03:00
parent 2f91f173de
commit 59169c0fff
4 changed files with 356 additions and 484 deletions

View File

@@ -1,5 +1,5 @@
$date
Sat Dec 21 02:52:14 2024
Wed Dec 25 00:48:05 2024
$end
$version
Icarus Verilog
@@ -8,161 +8,130 @@ $timescale
1s
$end
$scope module subtractionTB $end
$var wire 1 ! overflow $end
$var wire 4 " Y [3:0] $end
$var wire 1 # BorrowOut $end
$var reg 4 $ A [3:0] $end
$var reg 4 % B [3:0] $end
$var reg 1 & BorrowIN $end
$var wire 4 ! Y [3:0] $end
$var wire 1 " BorrowOUT $end
$var reg 4 # A [3:0] $end
$var reg 4 $ B [3:0] $end
$var reg 1 % BorrowIN $end
$scope module uut $end
$var wire 4 ' A [3:0] $end
$var wire 4 ( B [3:0] $end
$var wire 1 & BorrowIN $end
$var wire 4 ) tempB [3:0] $end
$var wire 1 ! overflow $end
$var wire 4 * Y [3:0] $end
$var wire 1 # BorrowOut $end
$var wire 4 & A [3:0] $end
$var wire 4 ' B [3:0] $end
$var wire 1 % BorrowIN $end
$var wire 4 ( tempB [3:0] $end
$var wire 4 ) Y [3:0] $end
$var wire 1 " BorrowOUT $end
$scope module f0 $end
$var wire 1 + A $end
$var wire 1 , B $end
$var wire 1 & BorrowIN $end
$var wire 1 - BorrowOut $end
$var wire 1 . tempD $end
$var wire 1 / tempB2 $end
$var wire 1 0 tempB1 $end
$var wire 1 1 Difference $end
$var wire 1 * A $end
$var wire 1 + B $end
$var wire 1 % BorrowIN $end
$var wire 1 , BorrowOut $end
$var wire 1 - tempD $end
$var wire 1 . tempB2 $end
$var wire 1 / tempB1 $end
$var wire 1 0 Difference $end
$scope module hf1 $end
$var wire 1 + A $end
$var wire 1 , B $end
$var wire 1 0 Borrow $end
$var wire 1 . Difference $end
$var wire 1 2 notA $end
$var wire 1 * A $end
$var wire 1 + B $end
$var wire 1 / Borrow $end
$var wire 1 - Difference $end
$var wire 1 1 notA $end
$upscope $end
$scope module hf2 $end
$var wire 1 . A $end
$var wire 1 & B $end
$var wire 1 / Borrow $end
$var wire 1 1 Difference $end
$var wire 1 3 notA $end
$var wire 1 - A $end
$var wire 1 % B $end
$var wire 1 . Borrow $end
$var wire 1 0 Difference $end
$var wire 1 2 notA $end
$upscope $end
$upscope $end
$scope module f1 $end
$var wire 1 4 A $end
$var wire 1 5 B $end
$var wire 1 6 BorrowIN $end
$var wire 1 7 BorrowOut $end
$var wire 1 8 tempD $end
$var wire 1 9 tempB2 $end
$var wire 1 : tempB1 $end
$var wire 1 ; Difference $end
$var wire 1 3 A $end
$var wire 1 4 B $end
$var wire 1 5 BorrowIN $end
$var wire 1 6 BorrowOut $end
$var wire 1 7 tempD $end
$var wire 1 8 tempB2 $end
$var wire 1 9 tempB1 $end
$var wire 1 : Difference $end
$scope module hf1 $end
$var wire 1 4 A $end
$var wire 1 5 B $end
$var wire 1 : Borrow $end
$var wire 1 8 Difference $end
$var wire 1 < notA $end
$var wire 1 3 A $end
$var wire 1 4 B $end
$var wire 1 9 Borrow $end
$var wire 1 7 Difference $end
$var wire 1 ; notA $end
$upscope $end
$scope module hf2 $end
$var wire 1 8 A $end
$var wire 1 6 B $end
$var wire 1 9 Borrow $end
$var wire 1 ; Difference $end
$var wire 1 = notA $end
$var wire 1 7 A $end
$var wire 1 5 B $end
$var wire 1 8 Borrow $end
$var wire 1 : Difference $end
$var wire 1 < notA $end
$upscope $end
$upscope $end
$scope module f2 $end
$var wire 1 > A $end
$var wire 1 ? B $end
$var wire 1 @ BorrowIN $end
$var wire 1 A BorrowOut $end
$var wire 1 B tempD $end
$var wire 1 C tempB2 $end
$var wire 1 D tempB1 $end
$var wire 1 E Difference $end
$var wire 1 = A $end
$var wire 1 > B $end
$var wire 1 ? BorrowIN $end
$var wire 1 @ BorrowOut $end
$var wire 1 A tempD $end
$var wire 1 B tempB2 $end
$var wire 1 C tempB1 $end
$var wire 1 D Difference $end
$scope module hf1 $end
$var wire 1 > A $end
$var wire 1 ? B $end
$var wire 1 D Borrow $end
$var wire 1 B Difference $end
$var wire 1 F notA $end
$var wire 1 = A $end
$var wire 1 > B $end
$var wire 1 C Borrow $end
$var wire 1 A Difference $end
$var wire 1 E notA $end
$upscope $end
$scope module hf2 $end
$var wire 1 B A $end
$var wire 1 @ B $end
$var wire 1 C Borrow $end
$var wire 1 E Difference $end
$var wire 1 G notA $end
$var wire 1 A A $end
$var wire 1 ? B $end
$var wire 1 B Borrow $end
$var wire 1 D Difference $end
$var wire 1 F notA $end
$upscope $end
$upscope $end
$scope module f3 $end
$var wire 1 H A $end
$var wire 1 I B $end
$var wire 1 J BorrowIN $end
$var wire 1 # BorrowOut $end
$var wire 1 K tempD $end
$var wire 1 L tempB2 $end
$var wire 1 M tempB1 $end
$var wire 1 N Difference $end
$var wire 1 G A $end
$var wire 1 H B $end
$var wire 1 I BorrowIN $end
$var wire 1 " BorrowOut $end
$var wire 1 J tempD $end
$var wire 1 K tempB2 $end
$var wire 1 L tempB1 $end
$var wire 1 M Difference $end
$scope module hf1 $end
$var wire 1 H A $end
$var wire 1 I B $end
$var wire 1 M Borrow $end
$var wire 1 K Difference $end
$var wire 1 O notA $end
$var wire 1 G A $end
$var wire 1 H B $end
$var wire 1 L Borrow $end
$var wire 1 J Difference $end
$var wire 1 N notA $end
$upscope $end
$scope module hf2 $end
$var wire 1 K A $end
$var wire 1 J B $end
$var wire 1 L Borrow $end
$var wire 1 N Difference $end
$var wire 1 P notA $end
$var wire 1 J A $end
$var wire 1 I B $end
$var wire 1 K Borrow $end
$var wire 1 M Difference $end
$var wire 1 O notA $end
$upscope $end
$upscope $end
$scope module od1 $end
$var wire 4 Q A [3:0] $end
$var wire 4 R B [3:0] $end
$var wire 1 # CarryOUT $end
$var wire 4 S Y [3:0] $end
$var wire 1 T addOverflow $end
$var wire 1 U detect1 $end
$var wire 1 V detect2 $end
$var wire 1 W opC $end
$var wire 2 X opCode [1:0] $end
$var wire 1 ! overflowDetect $end
$var wire 1 Y sign1 $end
$var wire 1 Z sign2 $end
$var wire 1 [ sign3 $end
$var wire 1 \ subOverflow $end
$upscope $end
$upscope $end
$upscope $end
$enddefinitions $end
#0
$dumpvars
0\
0[
0Z
1Y
b10 X
1W
0V
0U
0T
b0 S
b0 R
b0 Q
1P
1O
0N
1N
0M
0L
0K
0J
0I
0H
1G
0G
1F
0E
1E
0D
0C
0B
@@ -170,9 +139,9 @@ b0 Q
0@
0?
0>
1=
0=
1<
0;
1;
0:
09
08
@@ -180,161 +149,126 @@ b0 Q
06
05
04
13
03
12
01
11
00
0/
0.
0-
0,
0+
b0 *
bz000 )
b0 (
0*
b0 )
bz000 (
b0 '
0&
b0 %
b0 &
0%
b0 $
0#
b0 "
0!
b0 #
0"
b0 !
$end
#10
b100 "
b100 *
b100 S
1E
0G
0<
1B
0F
15
14
1>
b10 %
b10 (
b10 R
b110 $
b110 '
b110 Q
#20
1Z
1#
b1100 "
b1100 *
b1100 S
1N
1L
1J
bz100 )
1A
b100 !
b100 )
1D
1F
1?
0>
b110 %
b110 (
b110 R
0F
0;
1A
0E
14
13
1=
b10 $
b10 '
b10 Q
#30
0!
0V
0J
0#
bz000 )
0A
0L
1U
0E
1G
0D
b1000 "
b1000 *
b1000 S
1N
0P
1\
1<
0B
0F
b110 #
b110 &
#20
1"
b1100 !
b1100 )
1M
1K
0O
0Y
1[
0Z
05
04
1>
1H
b100 %
b100 (
b100 R
b1100 $
b1100 '
b1100 Q
#40
1Z
0U
b0 "
b0 *
b0 S
0N
1P
0\
0K
1Y
0[
1F
0?
1I
bz100 (
1@
1C
1E
1>
0=
b110 $
b110 '
b10 #
b10 &
#30
0I
0"
bz000 (
0@
0K
0D
1F
0C
b1000 !
b1000 )
1M
0O
1;
0A
0E
1J
0N
04
03
1=
1G
b100 $
b100 '
b1100 #
b1100 &
#40
b0 !
b0 )
0M
1O
0J
1E
0>
b1000 %
b1000 (
b1000 R
1H
0=
b1000 $
b1000 '
b1000 Q
b1000 #
b1000 &
#50
0!
0Z
0V
1U
16
1N
0P
1\
0;
0=
1E
0G
bz001 )
1-
1K
0Y
1[
02
18
15
1M
0O
0:
0<
1B
1D
0F
b1101 "
b1101 *
b1101 S
11
1/
bz001 (
1,
0I
1J
01
17
0;
1A
0E
b1101 !
b1101 )
10
1.
1+
14
1>
1&
b1 %
b1 (
b1 R
b1111 $
b1111 '
b1111 Q
0H
1*
13
1=
1%
b1 $
b1 '
b1111 #
b1111 &
#60