notice : 這篇文章僅僅具備上機實驗的參考做用,而且須要配套的文件ide
Logisim學習 學習
隧道 測試
至關於局部變量 spa
複用器-Bit-Selector3d
把(West edge)輸入數據從最低位開始,平均分紅n組,n由輸出位寬決定; code
另外一個輸入(South egde)決定選擇第i組數據 blog
用到的組件總結 遞歸
Wiring→Bit Extender,Constant,Tunnel,Probe ip
Gates→…ci
Plexers→Multiplexer,Decoder,Bit Selector
Arithmetic→Adder/Substractor*,Multiplier,Divider,Comparator,Shifter
Anchor
構建 32 位運算器。利用封裝好的 32 位加法器以及 logisim 平臺中現有運算部件(禁用系統自帶的加法器,減法器)構建一個32 位運算器,可支持算術加、減、乘、除,邏輯與、或、非、異或運算、邏輯左移、邏輯右移,算術右移運算,支持經常使用程序狀態標誌(有符號溢出OF、無符號溢出 CF,結果相等 Equal),運算器功能以及輸入輸出引腳見下表,在主電路中詳細測試本身封裝的運算器,在報告中分析該運算器的優缺點。
8位串行可控加法器
見課本P69,不一樣之處就是這裏有cin
eg. X + Y
Sub=0時,Cin 就是進位
Sub=1時
,Cin=0 時, Sub xor Cin = 1,表示對Y的補碼運算
,Cin=1 時,Sub xor Cin = 0,Cin表示借位,所以Y-1,與補碼的+1抵消
CLA74182先行進位電路
串行進位加法器一級一級的進位延遲大,
因此能夠想辦法提早獲得當前位的進位輸入
以4位爲例,設二進制加法器第i位輸入爲xi,yi,輸出爲si,進位輸入是ci,進位輸出Ci+1
遞歸的展開有
這裏能夠發現各級的進位與其餘進位無關
G*,P*再按 "文件" 所給提示鏈接便可
G*,P*做用
到下面會提到
CLA..做用
部分1:由以上產生的Gi,Pi,輸入到CLA,G*,P*
部分2:由Gi,Pi,C0能產快速生各個位的進位
4位快速加法器
這個比較簡單,若是畫好了CLA74182,G*,P*做用仍不明
notice
上面GP index從1開始
做用
輸入Xi,Yi,C0
由以上產生Gi,Pi,輸入到CLA,能產快速生各個位的進位和
獲得Si,Ci,G*,P*
輸出(須要的)(高亮最後的輸出) |
各結果的產生次序 |
Xi,Yi,C0 |
0 |
Gi,Pi(Xi,Yi) |
1 |
G*P*(Gi,Pi),Ci(Gi,Pi,C0) |
2 |
Si(Ci,Xi,Yi) |
3 |
notice
這裏用了隧道G1,G2,…
16位快速加法器
成組進位
而只把xi,yi丟向4位快速加法器,就能獲得G*,P*,輸入CLA74182,獲得各個進位,再輸回4位快速加法器,獲得Si
輸出(須要的)(高亮最後的輸出) |
各結果的產生次序 |
Xi,Yi,C0 |
0 |
Gi*,Pi* |
1 |
Ci(Gi*,Pi*,C0),GAll*,PAll* |
2 |
Si(Ci,Xi,Yi) |
3 |
32位快速加法器
同16位加法器,只不過多了個溢出檢測↓
_溢出檢測
第一種
相加兩數X,Y符號相同,且與結果S的符號不一樣
第二種
最高數據位的進位與符號位的進位是否一致,不一致表示溢出
例如 -111+(-110
補碼是1001 + 1010
因此溢出了
這裏用第一種溢出檢測便可;能夠用複用器-Bit-Selector分離出符號位(比Splitter簡單)
ALU
equal&&op=1011
logisim運算器→比較器
Signed OverFlow
只須要處理有符號加減的
Unsigned Overflow
加法和小於加數,減法差大於被減數
特別的:加法:無符號加法,溢出便是進位,32位加法器的一個輸出cout就是此變量
alu operation
logisim→複用器→數據選擇器multiplexer
0 |
自帶移位器 |
1 |
自帶移位器 |
2 |
自帶移位器 |
3 |
自帶乘法器 |
4 |
自帶除法器 |
5 |
32位加法器 |
6 |
32位加法器 |
7 |
自帶邏輯門 |
8 |
自帶邏輯門 |
9 |
自帶邏輯門 |
10 |
自帶邏輯門 |
11 |
√ |
具體電路再也不給出
其餘
^運算器測試電路
把☆ALU 從左側的欄目中拖到運算器測試電路上,完成運算器測試電路