Electronics 板


LINE

※ 引述《DerekJeter (MLB第一型男)》之銘言: : 4-bit 對 4-bit 二補數的加法運算 : 也就是 input a[3:0], b[3:0] : 和 output sum[3:0] 都是二補數表示法 : 另外還有 input carry_in 和 output carry_ou, overflow : 想請問 carry_out 的定義以及如何工作? : overflow 就是當 sum 不在 -8 ~ 7 之間時要顯示 overflow = 1 : 當 overflow 發生時,計算結果應該把 carry_out 一起拿來看 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 也就是 {carry_out,sum} : 那如果沒有發生 overflow 時的 carry_out 應該如何顯示呢? 你的問題有點奇怪... @@" 我記得白算盤裡面也有提, 算術溢位(arithmetic overflow)算是硬體例外(exception) 當overflow發生時(overflow = 1), 運算數值是多少已經不重要了, 必需靠其他機制來處理這個exception case 當然, 如果 overflow = 0, 才需要care/verify最後的運算結果正不正確~ : 是否不用理它(顯示0或1都OK)? 對~ 最後一級的carry_out, 如果沒拿來作特殊設計, 通常不用管它~ _ 這情況很有點類似 D-type flip-flop 的 Q 那條訊號,  就是硬體運算時會產生這條線, 但實際上通常我們不需要這條~ (不過也有例外就是了) : 我有在網路找過一些電路圖 : 譬如說 ripple carry adder : 它就直接把最後一個的 full adder 的 c_out 當作 carry_out ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 沒錯~ 就是這樣~ : 可是當 3+(-1) 時 : 加法器做的其實是 a = 0011, b = 1111, c_in = 0 : carry 1 1 1 1 : a 0 0 1 1 : b 1 1 1 1 : +) c_in 0 : ---------------------------- : sum 0 0 1 0 : 也就是會使 carry_out = 1 : 這樣是正確的嗎? : 還是應該讓它為 0 (因為計算結果2是正數) : 感激不盡 no no 你把sign-bit的位置搞錯了~!! 當 3+(-1) 時 carry 1 1 1 1 a 0 0 1 1 (+3) b 1 1 1 1 (-1) +) c_in 0 ---------------------------- sum 0 0 1 0 (+2) 畫黃色的位元是sign-bit, 不是你指的carry_out那條 如我之前所述, carry_out是多少並不重要, 它不是我們關心的重點~ 順帶一提, 通常用來判斷加法溢位(overflow/underflow)的法則很簡單, 只要判斷以下兩種case, 其中一種成立即為 "overflow = 1" (只要看sign-bit) 1. 正+正結果為負(overflow) 或 2. 負+負結果為正(underflow) 另外在白算盤書上有介紹, 比上面的方法更快更簡單就能判斷是否發生溢位, 而且整個過程只需要多加一個 "XOR gate" 就搞定了~!! 詳細作法請參閱白算盤"Arithmetic for Computers"那一章~ 如果不想讓overflow發生, 則必須透過有號擴充(sign extend). 這樣可省下判斷overflow的logic電路, (連overflow那條訊號也免了) 但付出的代價為運算時的bit width增加, 造成整個latency被拉長~ 你的問題以前也曾讓我感到非常confused~ 其實只要釐清幾個基本定義跟觀念, 自己花點時間, 實際舉一些例子, 搭配硬體架構圖好好想清楚, 應該不難理解~ -- 以上, 希望對原po有幫助~ 有錯的話還請板友指正~ <(_ _)> --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.168.131 ※ 編輯: DinoZavolta 來自: 140.117.168.131 (05/01 02:09)
1F:推 bighead319:你第二段[D-type flip-flop的Q_bar那條訊號,實際上 05/01 02:20
2F:→ bighead319:我們通常不需要] 假設A,B是兩個 reg 05/01 02:21
3F:→ bighead319:假設有某一段敘述使得有 B <= ~A; 的電路,那你覺得 05/01 02:22
4F:→ bighead319:合成軟體會笨到把A的Q接反向器在接B還是直接接A的Q_bar 05/01 02:23
5F:→ bighead319:此外,一開始[當overflow發生 運算數值多少已不重要] 05/01 02:25
6F:→ bighead319:並非都是如此,一般應該會依照應用需求來對輸出做修正 05/01 02:26
7F:→ bighead319:也許增加1bit來完成正確輸出或是做shift或飽和來減少 05/01 02:28
8F:→ bighead319:因為溢流而產生的誤差損失 05/01 02:28
9F:→ DinoZavolta:多謝b大指教~ :) 05/01 03:27







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS 或 站內搜尋

TOP