看板 Grad-ProbAsk 關於我們 聯絡資訊
今天看計組時有個點一直想不通 1.為什麼 overflow 可以這樣偵測 2. 連波加法器的 sumdelay ____________________________________ 使用 full adder建構的ALU, overflow 偵測 overflow = CarryIn[N-1] xor CarryOut[N-1] 以 4 bit 為例, 其overflow = CarryIn3 xor CarryOut3 CarryIn3 |   __|___ a3 —[ ] b3 ˍ[ ]result3    —--- | CarryOut3 怎麼用 xor 就可以這樣偵測出來~"~? 2. 連波加法器的 gate delay 是 2N 原因是因為他由 N個 full adder串連而成 1 bit result = a AND b (levle 1) 1 bit CarryOut = a xor b xor CarryIn (level 2) 所以其 delay 是 2N 那 Sum delay 卻是 (N-1)2 + 3 這就不懂了~"~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.98.223 ※ 編輯: RebeccaHall 來自: 218.165.98.223 (10/13 12:28) ※ 編輯: RebeccaHall 來自: 218.165.98.223 (10/13 12:29)
wheels:MSB的Cin跟Cout不同就代表有overflow,用真值表就推的出來 10/13 21:16
wheels:第二個要把full adder的sum用ab'c'+a'b'c+a'bc'+abc看 10/13 21:20
wheels:Cout要用ab+bc+ac看。這樣的話每經過一個full adder就要花 10/13 21:23
wheels:2個delay,所以到最後一個full adder要產生Cout要花2N個 10/13 21:23
wheels:delay。若是要看sum的話就想成產生最後一個full adder需要 10/13 21:24
wheels:的Cin要花2(N-1)個delay,最後一個full adder要花3個delay 10/13 21:24
wheels:來計算sum,所以總共就是(N-1)2+3個delay。 10/13 21:25
RebeccaHall:overflow 真值Cin=1 Cout=0 為什麼會overflow? 10/13 22:27
RebeccaHall:cin=1 a=0 b=0 cout = 0 這樣怎會overflow... 10/13 22:28
wheels:你那樣cout不會是0,會是1。 10/13 22:52
wheels:囧,恍神看錯,是這樣會讓a=b=0代表的正數相加變成sum=1的 10/13 22:57
wheels:負數才對,sorry~ 10/13 22:57
wheels:不是Cout=1就是有overflow,超出可代表數值時才是overflow 10/13 23:40
RebeccaHall:原來如此~了解了!!原來是用有號數去看..剛剛一個個代 10/14 08:34
RebeccaHall:全部結果帶過一次~真得就1 0,0 1 會出現 overflow 10/14 08:35
RebeccaHall:謝謝W大幫忙^"^ 10/14 08:35
sneak: 來計算sum,所以總共 https://daxiv.com 09/11 14:32