1.在設計BCD加法器的部份我們可以知道
當10的時候就要顯示出0並且十位部份要進位
而如何進位 依照學裡來看就是進行加6的動作
為何要加6 以下分為兩個來解釋
a.以16進位來看 當10+6的時候 就會回到0 (16:0~15)
所以+6會讓個位回到0
b.以2進位來看 1010 + 110 = 1 0000
所以個位一樣是0 (而且4bit 2進位 =16進位)
2.以上是+6的概念 但在設計部份比較快速設計的方法
是用真值表去判斷 首先我先講解+6進位的部份
a.看到橘色的部份 從橘色部份開始 就是顯示 10 ->0 ,11->1 ......
c_d表示十位進位
由這裡我們直接做卡諾圖 可以很快就推出 x4x2 + x4x3
到這裡十位部份我們只做到一半 因為 我們只有考慮到15
若是值是16的話 十位就會變成0 主要是因為我們忘記考慮2進制進位問題
所以我們最後還要再加上c(進位) 而最後的十位設計就會變成 c+x4x2+x4x3
b.十位部份解決之後 我們就來解決顯示個位的 4個bit x4 x3 x2 x1
從上面可以發現x1 和最後要顯示出來的 sx1值都是一模一樣
所以我們知道這部份不用處理可以直接輸出
(其實從+6的想法就可以知道這裡本來就不用處理)
c.而 sx2的部份(淺藍色部份)我們可以發現他從有進位之後
就根原本的輸入是顛倒的0->1 1->0
要解決這問題很簡單 只要+1就可以 而又剛好是因為進位才會發生
所以很自然的就會把進位的c1加過來 變成 sx2=c_d+x2
d.sx3部份考慮就會比sx2來的多一點 因為 當你sx2 有進行+c1的動作的時候
你就必須要考慮到(2進制)進位的問題 所以看上面藍色的部份
fx3 為 sx2進位後和x3做運算過後的結果
所以從c2我們又可以發現 sx3 和 fx3 一樣是顛倒 一樣是在十位進位所產生的結果
所以我們就可以推出 sx3 = fx3+c_d
而透過 2bit的加法器 就可以得出上面的結果 x2,x3 + c_d,c_d
e.根據 sx3的經驗 我們來分析sx4要如何設計
一樣會有進位的考慮 所以我們可以先寫出x2 x3 經過 + c_d ,c_d 後的進位 c3
(其實就是經過2bit加法器之後的cout)
這時候可以發現 c3 和 x4 以及 sx4 的關係
(注意再分析時不要忘了誰是由誰產生的 因為很多人都會稿錯而造成分析錯誤)
推出 sx4 = c3 xor x4
電路圖如下
BCD設計
2bit加法器
所以設計上就是這樣而已 如果有問題 還是不了解 或者是我寫錯在來找我討論囉!
祝各位學弟妹allpass囉~
以上電路圖由 珊羽 提供~

您好: 請教一下,我想用10進制加法器的原理設計出能顯示到20的邏輯電路,該 怎麼作? 謝謝!!
*****