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