日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机组成原理 寄存器实验详解(含工程文件)

發(fā)布時間:2024/5/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成原理 寄存器实验详解(含工程文件) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 寄存器實驗
    • 實驗要求
    • 分析
    • 設(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
        • 保存最高位和最低位
  • 其他元器件的使用自行百度即可

設(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。