⑴ 詳解加法器的電路實現
基本思路:想一種辦法使得三排開關連起來
輸入信息:
輸出信息
實現:
異或門實現和運算;
與門實現進位運算;
將一個異或門和與門電路並聯封裝一起來,就是一個半加器
輸入信息
輸出信息
實現:
兩個半加器和一個或門電路=全加器
第一個半加器的輸入是被加數和加數,輸出是和S1,進位信息C1;
第二個半加器的輸入是個位的進位信息C0,及上一步的計算結果R1,輸出是和S2,進位信息C2;
或門電路的輸入是第二個半加器的進位信息C2,和第一個半加器的進位信息C1,輸出是進位信息C3;
思考題
這一講,詳細講解了無符號數的加法器是怎麼通過電路搭建出來的。那麼,如果是使用補碼表示的有符號數,這個加法器是否可以實現正數加負數這樣的運算呢?如果不行,我們應該怎麼搭建對應的電路呢?
答:使用全加器可以實現使用補碼表示的有符號數,但需要對文中的加法器電路進行優化。
根據正數加負數轉換成正數加上這個負數的補碼,將減法運算轉化成加法運算,比如A-B=A+(-B)=A+(~B+1),即:如果發現是做減法,則就將B作為一個非門的輸入,且給設置低位的進位輸入為1,即可;
如何檢測溢出?
首先,列舉下兩個有符號數相加產生溢出的條件:
其次,可以根據最高數值位是否產生進位,以及符號位是否產生進位來判斷是否有溢出發生,即如果最高位的進位輸入和最高位的進位輸出不相等的話,就表示發生了溢出。對應的電路實現是使用最高位的進位輸出和進位輸出作為一個異或門的輸入即可,如果異或門的輸出是1,就表示發生了溢;如果該異或門的輸出是0,表示沒有溢出。
對應上面的四種情況就是:
⑵ 什麼是一位全加器,怎麼設計邏輯電路圖
全加器英語名稱為full-adder,是用門電路實現兩個二進制數相加並求出和的組合線路,稱為一位全加器。
一位全加器可以處理低位進位,並輸出本位加法進位。多個一位全加器進行級聯可以得到多位全加器。常用二進制四位全加器74LS283。
邏輯電路圖設計如下:
一位全加器(FA)的邏輯表達式為:
S=A⊕B⊕Cin
Co=(A⊕B)Cin+AB
其中A,B為要相加的數,Cin為進位輸入;S為和,Co是進位輸出;
如果要實現多位加法可以進行級聯,就是串起來使用;比如32位+32位,就需要32個全加器;這種級聯就是串列結構速度慢,如果要並行快速相加可以用超前進位加法。
(2)加法電路設計擴展閱讀:
全加器是組合邏輯電路中最常見也最實用的一種,考慮低位進位的加法運算就是全加運算,實現全加運算的電路稱為全加器。而其功能設計可以根據組合邏輯電路的設計方法來完成。
通過邏輯門、74LS138解碼器、74LS153D數據選擇器來實現一位全加器的電路設計,並且實現擴展的兩位全加器電路。並且Multisim是一個專門用於電路設計與模擬的工具軟體。
⑶ 設計一個加法器
一、半加器
半加器是用於計算2個一個bit的二進制數a與b的和,輸出結果是sum(s)和進位carry(c)。在多bit數的計算中,進位c將作為下一相鄰bit的加法運算中。單個半加器的計算結果是2c+s。 真值表:
邏輯表達式:
Verilog描述為:
mole half_adder(
input a,
input b,
output c,
output s
);
assign c = a&b;
assign s = a^b;
endmole
電路圖如下:
二、全加器
全加器不同於半加器是,全加器帶有進位cin。輸入為a,b,cin,輸出為sum(s),進位carry(c),均是單bit信號。 s為a、b、cin三個單bit數的和,cout為a,b,cin三個數超過2後的進位。 真值表
邏輯表達式:
verilog描述:
mole full_add(
input a,
input b,
input cin,
output cout,
output s
);
assign s = a^b^cin;
assign cout = a&b | (cin & (a^b));
endmole
電路圖:
表示符號:
三、行波進位加法器
N-bit加法器可以根據1-bit全加器組合而成。每個全加器的輸出進位cout作為下一個全加器的輸入進位cin,這種加法器稱為行波進位加法器(Ripple-carry addr,簡稱RCA),如一個16bit加法器的結構如下所示,其中A、B為16bit的加數,S為A+B的和,c16為該加法器的輸出:
由上圖所知可以得到進位c16的結果依賴於c15,c14,c13,…c2,c1,c0,對於32bit,64bit等加法器,進位鏈將顯得更加長。所以,行波進位加法器設計簡單,只需要級聯全加器即可,但它的缺點在於超長的進位鏈,限制了加法器的性能。
mole rca #(width=16)(
input [width-1:0] A,
input [width-1:0] B,
output [width-1:0] sum,
output cout
);
wire [width:0] temp;
assign temp[0] = 0;
genvar i;
for(i=0;i<width;i=i
⑷ 設計一個簡單加法電路
LM358,+/-5V供電,顯然只抄能處理正負5V范圍內的信號。那麼,輸入的一個直流信號就是5V,正弦波的正半周,疊加5V後,顯然超過了容許范圍。解決方法: 1,加大電源。 2,把輸入的直流信號,改為2.5V。都可以。
⑸ BCD碼加法電路圖指教 數字電路
要知道BCD數是用四位二進制數來表示一位十進制數,那麼兩位BCD數進行加法時(和的范圍是0~18),當結果超過9時就超過了一位BCD數的表示範圍(0~9),這時需要用兩位BCD數來表示該結果。比如3+8=11,用BCD碼相加表示為 0011 + 1000 所得結果為1011,顯然1011並不在一位BCD碼的表示範圍內,當給1011加上6(也就是0110時),得到的結果為 10001,也就是兩位BCD數表示的11。
總結,當兩位BCD數相加的結果大於9時,需要進行加6修正。
設計該「加6修正邏輯」的過程為:
卡諾圖法:五變數的卡諾圖,C0 F4 F3 F2 F1。用F表示結果,當F = 1時,表示需要作加6修正。
說明:C0 F4 F3 F2 F1為兩位BCD數進行二進制相加後得到的結果(范圍為0~18,因此需要5位二進制數來表示)。當C0為1時,也就是說相加結果大於15(在16~18之間),此時需要加6修正,F = 1。當C0為0時,表示所得結果在0~15之間,這時當結果也大於9時,需要加6修正,F = 1。
由於這里不方便畫卡諾圖了,就直接上結果:
F = C0 + F4&F3 + F4&F2
對上面的 F 的表達式變換一下就行了,變成只用與非門表示的形式。"~" 表示 「邏輯非」
F= ~[~(C0 + F4&F3 + F4&F2)] = ~{ ~C0 & [~(F4&F3)] & [~(F4&F2)] }
⑹ 實驗五 組合邏輯電路的設計——加法器、比較器
來自電子科技大學中山學院(數電實驗)
基礎實驗
(1)利用7483設計4位以內的加法器,請給出實驗電路,並根據表5.4要求填寫輸出結果。
(2)給出7485實現4位二進制比較器的電路圖,分析其工作原理。
原理:當參加比較的2個4位二進制數A3-A0和B3-B0的高位不等時,比較結果就由高位確定,低位和級聯輸入的取值不起作用;高位相等時,比較結果由低位確定;當2個4位二進制數相等時,比較結果由級聯輸入決定。
提高實驗
(1)請設計一個電路,輸入8421BCD碼,輸出餘3碼。
提示:8421BCD碼的餘3碼為原碼加011。
(2)請設計一個電路,實現7-5=?的運算功能電路。
(3)有X Y Z三路信號輸入,請用7485設計一個電路,要求按如下情況輸出信號。
*當7485的輸入端輸入A>B 時輸出X信號;
*當7485的輸入端輸入A=B 時輸出Y信號;
*當7485的輸入端輸入A<B 時輸出Z信號。
請給出電路設計方案,並說明原理。
提示:在輸出埠可添加3個與門與1個或門
實驗五詳情
⑺ 用74ls138設計一個全加器電路求電路圖
首先得弄清楚全加器的原理,你這里說的應該是設計1位的全加器。
全加器有3個輸入端:a,b,ci;有2個輸出端:s,co.
與3-8解碼器比較,3-8解碼器有3個數據輸入端:A,B,C;3個使能端;8個輸出端,OUT(0-7)。
這里可以把3-8解碼器的3個數據輸入端當做全加器的3個輸入端,即3-8解碼器的輸入A、B、C分別對應全加器的輸入a,b,ci;將3-8解碼器的3個使能端都置為有效電平,保持正常工作;這里關鍵的就是處理3-8解碼的8個輸出端與全加器的2個輸出的關系。
現在寫出全加器和3-8解碼器的綜合真值表:
(A/a,B/b,C/ci為全加器和解碼器的輸入,OUT為解碼器的輸出(0-7),s為加法器的和,co為加法器的進位輸出)PS:假定解碼器的輸出為高電平有效。
A/a B/b C/ci OUT s co
0 0 0 0 0 0
0 0 1 1 1 0
0 1 0 2 1 0
0 1 1 3 0 1
1 0 0 4 1 0
1 0 1 5 0 1
1 1 0 6 0 1
1 1 1 7 1 1
根據上面的真值表,可以設計出電路圖:
將3-8解碼器的輸出OUT(1、2、4、7)作為一個4輸入的或門的輸入,或門的輸出作為加法器的和;將3-8解碼器的輸出OUT(3、5、6、7)作為一個4輸入的或門的輸入,或門的輸出作為加法器的進位輸出。即完成了加法器的設計。
回過頭來分析:
當加法器的輸入分別為:a=1,b=0,ci=1時,對應3-8解碼器的輸入為A=1,B=0,C=1,這是解碼器對應的輸出為OUT(5)=1,其餘的為0,根據上面設計的連接關系,s=0,co=1,滿足全加器的功能,舉其他的例子也一樣,所以,設計全加器的設計正確。