一、實驗預習要求
-
預習《計算機組成原理》慕課附錄 3.4 節、《計算機硬體系統設計》慕課 4.3
節。
二、實驗目的
- 掌握定點數加減法溢出檢測方法。
- 了解算術邏輯運算單元 ALU 的基本構成。
- 掌握 Logisim 中各種運算元件的使用方法:
- 邏輯運算:與、或、非、異或
- 算術運算:乘法器、除法器、求補器、比較器
- 移位器
- 熟練掌握多路選擇器的使用方法。
-
能利用前述實驗完成的 32 位加法器(禁止使用 Logisim 自帶的加法器/減法
器元件)和 Logisim 的運算元件構造指定規格的 ALU 單元。
三、實驗内容
使用 Logisim 軟體打開實驗電路圖“alu.circ”完成算術邏輯運算單元 ALU
子電路的設計,并在 ALU 自動測試電路中進行測試。
7. 算術邏輯運算單元 ALU 子電路設計。
8. ALU 自動測試。
先上電路圖:

實驗原理分析:
ALU 運算操作碼定義 如下:
根據OP進行操作的原理
使用資料選擇器,将op(這裡的s)所有取值的對應運算功能實作,最後根據op的值來進行資料選擇。
0,1,2操作
這三個操作類似,我們可以一起說。需要實作的運算功能,我們都可以直接在logisim中直接找到。
實驗很明顯的說到,
Y取低五位,因為x的資料位寬就是32位,是以最多隻能被移動5位(2^5=32),取Y低五位我們可以用分線器實作。
3操作
實作乘法使用乘法器即可,由于相乘可能出現溢出,R2對應端口連接配接高進位。
4操作
将x和y連接配接觸發器,将商和餘數連接配接對應端口即可。
5,6操作
加法直接連接配接加法器輸入端即可,減法我們可以看成x+(-y),使用一個求補器将y的補碼送進加法器。
有符号加減法溢出,我們将最高位和符号位進位異或(下面有圖檔)。
無符号加法溢出很好了解,如果最高的兩位相加,産生了進位,那麼肯定就是溢出了!
無符号減法,因為我們求補碼多加了一個模,按理說就應該會産生一個進位,是以當進位為1是,其實并未溢出。進位為0,說明1(應該進的)+1(溢出的)=>0,此時是真正溢出了!是以我們要取反!
引用一張ppt吧,嘿嘿,挺簡明的。![]()
實驗四 32 位 ALU 設計實驗根據OP進行操作的原理其他細節
7,8,9,10操作
根據需要實作的邏輯功能,連接配接對應即可。
11,12操作
我們可以使用現成的比較器進行比較,同時注意比較器中有 無符号和有符号的 選項,注意選擇。
此外,由于比較結果資料位寬為1位,而選擇器資料位寬為32位,這裡需要使用位擴充器。
[外鍊圖檔轉存中…(img-luESZXLn-1618490852793)]
其他細節
1) 由于不能有引腳懸空,是以不輸入的都要接地
2)result2隻在X和Y進行乘除操作才會有數值,其他時候都是0,這同樣可以使用一個 資料選擇器實作
3)同樣的,UOF和OF隻在X和Y進行加減操作才會有數值,其他時候都是0,同樣可以使用一個 資料選擇器實作
4)Equal可以在比較器的 ‘=’ 那裡直接連接配接