计算机组成原理 寄存器实验详解(含工程文件)
- 寄存器實驗
- 實驗要求
- 分析
- 設計
- 具體實現
- (一)驗證寄存器寫操作
- (二)驗證寄存器讀操作
- (三)移位操作
- (四)循環移位操作
- 思考問題
寄存器實驗
先放一張 Proteus 總體仿真圖,設計過程還是比較復雜的,需要考慮總體的布局,線路的排布等等。。。
我將原工程文件放在文末,需要可自取
實驗要求
- 基本要求
- 理解CPU運算器中寄存器的作用
- 設計并驗證寄存器組(至少四個寄存器)
- 利用寄存器或組合邏輯電路實現移位運算功能(至少含左移、右移、循環左移、循環右移四種運算功能)
- 擴展要求
- 實現更多的寄存器
- 實現多總線結構寄存器訪問
分析
-
實驗要求設計驗證寄存器,還有實現移位功能,擴展功能是使用多總線結構和更多寄存器,這里我使用雙總線結構,八個寄存器。
-
實驗中用到的元器件如下
- 74LS373(寄存器)
- 74LS299(通用移位/存儲寄存器)
- 74LS138(譯碼器,用來控制八個寄存器)
- 74LS245(數據傳送)
- SW-SPDT(單刀雙擲開關)
- LED(用來顯示輸出)
- RES(LED下拉電阻)
- 4073(與門)
- 4075(或門)
- 74LS04(非門)
-
74LS299 功能表如下
- 其功能被表引腳與Proteus元器件有些許不同
- CLR 對應 MR(低電平有效)
- 不管任何狀態,強制清零
- 輸出控制 G1、G2對應 OE1、OE2(低電平有效)
- 需要輸出時,將這兩個引腳置0
- CLK
- 脈沖信號
- 查看功能表即可,需要上升沿時,就將開關撥高再撥低
- D7、D0
- 下一位移位的數
- Q7、Q0
- 保存最高位和最低位
- CLR 對應 MR(低電平有效)
- 其功能被表引腳與Proteus元器件有些許不同
-
其他元器件的使用自行百度即可
設計
這里說一下怎么使用 74LS138 和門電路組合實現控制八個 74LS373
- 我們使用 74LS138 的輸出和 兩個開關(一個讀開關、一個寫開關)作為輸入,因為我們實現能夠 同時控制 74SL373 的讀/寫
- 對應的輸出就是 74LS373 的讀和寫
- 可得到如下真值表
- 對應表達式如下
- 最后根據表達式進行連線即可
- 運行流程圖如下
- 電路設計可根據下述操作慢慢理解
具體實現
(一)驗證寄存器寫操作
- 首先,通過開關給 74LS245 輸入數據,打開 74LS245 開關(CE引腳置0),將數據傳送到總線上。如果需要對數據進行保存,通過 74LS138 輸入開關(A、B、C)選通某個 74LS373 寄存器,打開 74LS373 的寫開關(OE引腳),將數據寫入 74SL373 ,然后關閉寫開關,關閉 74LS245(CE引腳置1)。關閉 74LS245 后,此時總線上無數據。(放一張中間的圖吧,下圖對應的 74LS138 選通的是第一個寄存器,打開 74SL373 寫開關)
我這里測試的八位數據是 00100100,選擇的寄存器是第一個
(二)驗證寄存器讀操作
- 接著上一步,將 74LS373 的讀開關(LE引腳)打開,將 74LS373 中所存的數據輸出到總線上,讀操作完成。
- 如圖,此時 74LS245 是關閉的(CE引腳為1)的,打開 74LS373 的讀開關后,數據輸出到總線
(三)移位操作
移位和循環移位的區別
- 循環移位區別于一般移位的是移位是 沒有數位的丟失。
- 循環左移時,用從左邊移出的位填充字的右端,而循環右移時,用從右邊移出的位填充字的左側
- 例: 10110011
- 右移1位得到 :01011001
- 循環右移1位得到:11011001
-
進行移位操作前,需要先將總線上的數據寫入 74LS299 ,接著上一步,我們已經將 74LS373 的數據輸出到總線上,然后我們給與 74LS299 的 CLK 引腳一個上升沿,就可以將總線上的數據寫入 到74LS299 中, 然后關閉 74LS373 的讀開關(此時總線無數據)
-
左移操作
- 74LS299 的 OE1、OE2、S1 、D7、D0 引腳均置 0,S0、MR 引腳置1(MR為0強制清零),持續給 CLK 上升沿就可以了(將開關重復撥上撥下) ,觀察 LED 的變化。
- 如下圖,持續進行左移操作,發現 最高位被移出
- 右移操作
- 右移 S1置1,S0 置0,OE1、OE2、S0 、D7、D0 引腳均置 0,S1、MR 引腳置1,同樣持續給與 CLK 引腳上升沿,然后觀察 LED 的變化。
- 如下圖,持續進行右移操作,發現 最低位被移出
(四)循環移位操作
- 循環左移
- 將 74LS299 的 D7 引腳接到Q0引腳,D0 引腳接到 Q7 引腳,OE1、OE2、S1 、D7、D0 引腳均置 0,S0、MR 引腳置1,持續給與 CLK 上升沿,觀察 LED 變化。
- 如下圖進行循環左移操作,我們可以看出,循環左移最高位移動到了最低位
- 循環右移
-
將 74LS299 的 D7 引腳接到Q0引腳,D0 引腳接到 Q7 引腳,OE1、OE2、S0 、D7、D0 引腳均置 0,S1、MR 引腳置1,持續給與 CLK 上升沿,觀察 LED 變化。
-
如下圖進行循環右移操作,我們可以看出,循環右移最低位移動到了最高位
-
我們可以將循環右移后的總線上的數據寫入 74LS373 中。如圖,將總線上的數據寫入到 74SL373 中,并進行了 讀操作(LE)
-
思考問題
-
最后有一個小的思考問題 思考隨著寄存器的增多,電路設計的復雜度是什么比例增大
-
寄存器增多,設計上來說復雜度是成倍的增加,電路的設計難度也有一定的提高。
原工程文件:
鏈接:https://pan.baidu.com/s/1mVnxtAznoFetXNdCohPYkg
提取碼:hmcq
如果本文對你有小小的幫助,請點個贊再走吧 😄
總結
以上是生活随笔為你收集整理的计算机组成原理 寄存器实验详解(含工程文件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见查询SQL语句
- 下一篇: 更多单词/词组/短语补充和总结(二)