如果你對計算機組成原理感興趣,可以考慮閱讀我的專欄
須知
本文僅作學習筆記使用,僅在CSDN網站發佈,如果在其他網站發現,均爲侵權行爲,請舉報。作者:小王在努力。
實驗要求
基本要求
-
熟悉proteus仿真系統
-
設計並驗證4位算數邏輯單元的功能
擴展要求
-
實現ALU輸入輸出鎖存
-
實現8位算數邏輯運算單元
思考內容
思考單總線,雙總線和三總線結構在設計上的異同
實驗步驟
一、理論分析
計算機的運算器是一種類似於計算器的一個原件,他可以實現數邏運算和位運算,由於本實驗要求設計ALU並實現其部分功能。經過選擇,我們選取74LS181來實現ALU的功能部分。
74LS181的功能真值表如下:
本實驗擴展要求爲了實現8位數邏運算,所以會需要兩個74LS181芯片。
本實驗採用74LS373作爲鎖存器,來鎖存數據,用LED-GREEN作爲輸出顯示。
本實現的功能爲:4位數邏運算:A異或B(擴展功能:A-B-1)
8位數邏運算:A異或B(擴展功能:A-B-1)
二、實驗方法
按照基本要求,四位二進制算術邏輯運算單元電路:
本電路採用一個74LS181作爲ALU核心,名爲U2的74LS373作爲4位操作數A和4位操作數B的鎖存器,名爲U5的74LS373作爲74LS181的功能輸入也就是S4~S0以及M的輸入,輸出結果用名爲U6的74LS181鎖存器中,最後74LS181鎖存器連接4個LED-GREEN作爲輸出。
四位二進制的第一個功能:A異或B
四位二進制的第二個功能:A-B-1
擴展:八位二進制算術邏輯運算單元電路:
使用名爲U7的74LS373鎖存器記錄八位操作數A和名爲U8的74LS373鎖存器記錄八位操作數B,由於74LS181只能進行4位的運算,所以我們可以用兩個74LS373分別來實現A操作數的第四位和B操作數的低四位運算以及A操作數的高四位和B操作數的高四位運算,分別用U1和U2存儲A、B高四位數據和A、B低四位數據,其中名爲U4的74LS181作低位運算的進位信號輸入到名爲U3的74LS181運算器中,兩個運算器的S0~S4和M分別由兩個鎖存器輸入,最後的運算結果保存在一個74LS373鎖存器,後面接8個LED-GREEN作爲輸出。
八位二進制的第一個功能:A異或B
八位二進制的第二個功能:A-B-1
三、實驗結果分析
我實現的功能爲0110,M=1的A異或B所以用數據A:1111和數據B:1010進行實驗,計算結果F3~F0=1010,實驗結果和計算符合。
擴展功能:A-B-1,操作數A爲1111,操作數B爲0101,計算結果F3~F0=1001,實驗結果與計算符合。
功能 | 模式選擇M | 功能選擇S3~S0 | 進位CN | 四位輸入A | 四位輸入B | 四位輸出 | 進位輸出 |
---|---|---|---|---|---|---|---|
算術A-B-1 | 0 | 0110 | 1 | 1111 | 1010 | 1010 | 0 |
邏輯異或 | 1 | 0110 | X | 1111 | 0101 | 1001 | X |
擴展爲8位二進制後,功能A異或B,操作數A:01101110 操作數B:10111001,經過計算F7~F0=11010111,實驗結果和計算符合。
擴展功能:A-B-1,操作數A:11101111操作數B:10011001,經過計算F7~F0=01010101,與實驗結果符合。
功能 | 模式選擇M | 功能選擇S3~S0 | 進位CN | 八位輸入A | 八位輸入B | 八位輸出 | 進位輸出 |
---|---|---|---|---|---|---|---|
算術A-B-1 | 0 | 0110 | 1 | 01101110 | 10111001 | 11010111 | 0 |
邏輯異或 | 1 | 0110 | X | 11101111 | 10011001 | 01010101 | X |
四、思考問題
-
單總線結構:這種結構的運算器實現一次雙操作數 運算要3步,1.A操作數從總線輸入 2.B操作數從總線輸入 3.輸出結果從總線輸出,總共要經歷三個脈衝才能完成雙操作數運算。
-
雙總線結構:此時加了一根總線,有了兩根總線,只需要兩步就可以完成雙操作數的運算了 1.A操作數從總線1輸入的同時B操作數從總線2輸入 2.輸出結果暫時放到緩存器中,經過一個脈衝送入總線
-
三總線結構:三總線結構的話就簡單了,只需要一步就可以完成雙操作數的運算了1.操作數A從總線1輸入,操作數B從總線2輸入,同時計算結果從總線3輸出。
五、問題和解決辦法
問題1:接入總線之後,在輸入端進行輸入的時候,輸出端不響應,顯示爲高阻態。(雖然我沒有用總線吧,我採取的是用鎖存器輸入功能的方法,此處可以改爲總線控制)
解決辦法:在輸入端要加上標號,對應的輸出端也要加上標號,這樣才能保證輸入與輸出對應。
加標號的方法:
1.右擊一條輸入總線的線
2.添加標號
3.輸入端的線就有了標號
4.接着給輸出端也加上標號
5.此時運行,發現輸出不是高阻態了,證明成功了
六、結論
完成了本次實驗要求的ALU運算功能電路設計與功能驗證實驗內容。我學會了熟練使用proteus軟件設計電路的同時,增加了對運算器運算過程的瞭解,瞭解了74LS181和74LS373芯片的功能以及用法。瞭解了總線的使用方法,以及對單總線和雙總線以及三總線的設計結構上的異同。
後話
- 首先給大家說一下,博主經常在線,如果有什麼問題或者想法,可以在下方評論,我會積極反饋的。
- 其次還是要請大家能夠多多指出問題,我也會在評論區等候大家!
.