首頁>Club>
5
回覆列表
  • 1 # HeYuKun

    雙埠儲存器原理實驗

    一、實驗目的

    (1)瞭解雙埠靜態隨機儲存器IDT7132的工作特性及使用方法。

    (2)瞭解半導體儲存器怎樣儲存和讀出資料。

    (3)瞭解雙埠儲存器怎樣並行讀寫,產生衝突的情況如何。

    二、實驗電路

    圖7 雙埠儲存器實驗電路圖

    圖7示出了雙埠儲存器的實驗電路圖。這裡使用了一片IDT7132(U36)(2048×8位),兩個埠的地址輸入A8—A10引腳接地,因此實際使用儲存容量為256位元組。左埠的資料部分連線資料匯流排DBUS7—DBUS0,右埠的資料部分連線指令匯流排INS7—INS0。一片GAL22V10(U37)作為左埠的地址暫存器(AR1),內部具有地址遞增的功能。兩片4位的74HC298(U28、U27)作為右埠的地址暫存器(AR2H、AR2L),帶有選擇輸入地址源的功能。使用兩組發光二極體指示燈顯示地址和資料:透過開關IR/DBUS切換顯示資料匯流排DBUS和指令暫存器IR的資料,透過開關AR1/AR2切換顯示左右兩個埠的儲存地址。寫入資料由實驗臺操作板上的二進位制開關SW0—SW7設定,並經過SW_BUS三態門74HC244(U38)傳送到資料匯流排DBUS上。指令匯流排INS的指令程式碼輸出到指令暫存器IR(U20),這是一片74HC374。

    儲存器IDT7132有6個控制引腳:CEL#、LRW、OEL#、CER#、RRW、OER#。CEL#、LRW、OEL#控制左埠讀、寫操作,CER#、RRW、OER#控制右埠讀、寫操作。CEL#為左埠選擇引腳,低有效。當CEL# =1 時,禁止左埠讀、寫操作;當CEL# =0 時,允許左埠讀、寫操作。當LRW為高時,左埠進行讀操作;當LRW為低時,左埠進行寫操作。當OEL#為低時,將左埠讀出的資料放到資料匯流排DBUS上;當OEL#為高時,禁止左埠讀出的資料放到資料匯流排DBUS上。CER#、RRW、OER#控制右埠讀、寫操作的方式與CEL#、LRW、OER#控制左埠讀、寫操作的方式類似,不過右埠讀出的資料放到指令總線上而不是資料匯流排上。實驗臺上的OEL#由LRW經反相產生。當CEL#=0且LRW=1時,左埠進行讀操作,同時將讀出的資料放到資料匯流排DBUS上。當CER#=0且LRW=0時,在T3的上升沿開始進行寫操作,將資料匯流排上的資料寫入儲存器。實驗臺上已連線T3到時序發生器的T3輸出。實驗臺上OER#已固定接地,RRW固定接高電平,CER#由CER反相產生,因此當CER=1且LDIR=1時,右埠讀出的指令在T4的上升沿打入IR暫存器。

    儲存器的地址由地址暫存器AR1、AR2提供,而AR1和AR2的內容根據數碼開關SW0—SW7設定產生,並經三態門SW_BUS傳送到資料匯流排時被AR1或AR2接收, 三態門的控制訊號SW_BUS#是低電平有效。資料匯流排DBUS有5個數據來源:運算器ALU,暫存器堆RF,控制檯開關SW0—SW7,雙埠儲存器IDT7132和中斷地址暫存器IAR。在任何時刻,都不允許2個或者2個以上的資料來源同時向資料匯流排DBUS輸送資料,只允許1個(或者沒有)資料來源向資料匯流排DBUS輸送資料。在本實驗中,為了保證資料的正確設定和觀察,請令RS_BUS# = 1, ALU_BUS = 0, IAR_BUS# = 1。AR1的控制訊號是LDAR1和AR1_INC。當LDAR1 = 1時,AR1從DBUS接收地址;當AR1_INC =1時,使AR1中的儲存器地址增加1;在T4的上升沿,產生新的地址;LDAR1和AR1_INC兩者不可同時為1。AR2的控制訊號是LDAR2和M3。當M3 =1 時,AR2從資料匯流排DBUS接收資料;當M3=0 時,AR2以PC匯流排PC0—PC7作為資料來源。當LDAR2=1時,在T2的下降沿,將新的PC值打入AR2。

    三、實驗裝置

    (1)TEC-4計算機組成原理實驗系統1臺

    (2)雙蹤示波器一臺

    (3)直流萬用表一隻

    (4)邏輯測試筆一支

    四、實驗任務

    (1)按圖7所示,將有關控制訊號和二進位制開關對應接好,仔細複查一遍,然後接通電源。

    (2)將數碼開關SW0—SW7(SW0是最低位)設定為00H,將此資料作為地址置入AR1;然後重新設定二進位制開關控制,將數碼開關SW0—SW7上的數00H寫入RAM第0號單元。依此方法,在儲存器10H單元寫入資料10H,20H單元寫入20H,30H單元寫入30H,40H號單元寫入40H。共存入5個數據。

    使用雙埠儲存器的左埠,依次讀出儲存器第00H、10H、20H、30H、40H單元中的內容,觀察上述各單元中的內容是否與該單元的地址號相同。請記錄資料。注意:總線上禁止兩個以上部件同時向匯流排輸出資料。當儲存器進行讀出操作時,必須關閉SW_BUS三態門!而當向AR1送入地址時,雙埠儲存器不能被選中。

    (3)透過雙埠儲存器右埠(指令埠),依次把儲存器第00H、10H、20H、30H、40H單元中的內容置入指令暫存器IR,觀察結果是否與(2)相同,並記錄資料。

    (4)雙埠儲存器的並行讀寫和訪問衝突測試。

    置CEL#=0且CER=1,使儲存器左、右埠同時被選中。當AR1和AR2的地址不相同時,沒有訪問衝突;地址相同時,由於都是讀出操作,也不衝突。如果左、右埠地址相同且一個進行讀操作、另一個進行寫操作,則發生衝突。要檢測衝突,可以用示波器測試BUSYL和BUSYR插孔(分別是兩個埠的“忙”訊號輸出)。BUSY為0時不一定發生衝突,但發生衝突時,BUSY一定為0。當某一個埠(無論是左埠還是右埠)的BUSY = 0時,對該埠的寫操作被IDT7132忽略掉。

    五、實驗步驟及實驗結果

    (1)接線

    IAR_BUS#接VCC,ALU_BUS接GND,RS_BUS#接VCC,禁止中斷地址暫存器、運算器、多埠暫存器堆RF向資料匯流排DBUS送資料。AR1_INC接GND,M3接VCC,使地址暫存器AR1和AR2從資料匯流排DBUS取得地址資料。

    CEL#接K0,LRW接K1,CER接K2, LDAR1接K3,LDAR2接K4,SW_BUS#接K5,LDIR接K6。

    置DP=1,DB=0,DZ=0,使實驗臺處於單拍狀態。

    (2)向儲存器寫數,並讀出進行檢查。

    1.令K0 (CEL#)=1,K1(LRW)=1,K2(CER)=0,K3(LDAR1)=1,K4(LDAR2)=0,K5 (SW_BUS#)=0, K6(LDIR)=0。將IR/DBUS開關撥到DBUS位置,將 AR1/AR2開關撥到AR1位置。置SW7-SW0=00H,按一次QD按鈕,將00H寫入AR1,綠色的地址指示燈應顯示00H。再令K3(LDAR1)=0,K0(CEL#)=0,K1(LRW)=0,按一次QD按鈕,則將00H資料寫入儲存器的00H單元。依次重複進行,在儲存器10H單元寫入資料10H,20H單元寫入20H,30H單元寫入30H,40H單元寫入40H,共存入5個數據。

    2.令K0 (CEL#)=1,K1(LRW)=1,K2(CER)=0,K3(LDAR1)=1,K4(LDAR2)=0,K5 (SW_BUS#)=0,K6(LDIR)=0。將IR/DBUS開關撥到DBUS位置,將ARl/AR2開關撥到AR1位置。置SW7-SW0=00H,按一次QD按鈕,將00H寫入AR1,綠色的地址指示燈應顯示00H。令K5(SW_BUS#)=1,然後令K3(LDAR1)=0,K0(CEL#)=0,K1(LRW) =l,則讀出儲存器的00H單元的資料,讀出的資料顯示在DBUS資料指示燈上,應為00H。照此方法,可依次讀出儲存器單元l0H、20H、30H、40H的資料 。

    (3)讀出儲存器的資料,寫入IR。

    令K0(CEL#)=l,K1(LRW)=l,K2(CER)=0,K3(LDAR1)=0,K4(LDAR2)=1,K5 (SW_BUS#)=0,K6(LDIR)=0。將IR/DBUS開關撥到IR位置,將ARl/AR2開關撥到AR2位置。置SW7-SW0=00H,按一次QD按鈕,將00H寫入AR2,綠色的地址指示燈應顯示00H。令K4(LDAR2)=0,K2(CER)=l,K6(LDIR)=1,按一次QD按鈕,則從右埠讀出儲存器的00H單元的資料,讀出的資料寫入指令暫存器IR,顯示在IR資料指示燈上,應為00H。照此方法,可從右埠依次讀出儲存器單元l0H、20H、30H、40H的資料,寫入指令暫存器IR。

    (4)雙埠儲存器的並行讀寫和訪問衝突測試

    1.令K0(CEL#)=l,K1(LRW)=l,K2(CER)=0,K3(LDAR1)=l,K4(LDAR2)=0,K5 (SW_BUS#)=0,K6(LDIR)=0。將ARl/AR2開關撥到AR1位置。置SW7-SW0=38H,按一次QD按鈕,將38H寫入AR1,綠色的地址指示燈應顯示38H。令K3(LDAR1)=0,K4(LDAR2)= l,K5(SW_BUS#)=0將ARl/AR2開關撥到AR2位置。置SW7-SW0=38H,按一次QD按鈕,將38H寫入AR2,綠色的地址指示燈應顯示38H。

    2. 先令K2(CER)=1,K0(CEL#)=1,用示波器探頭(或邏輯筆)測試BUSYL插孔,BUSYL應為高電平。保持K2(CER)不變,將K0(CEL#)撥動到0位置,示波器上(邏輯筆)的BUSYL訊號從高電平變為低電平; 再將K0(CEL#)撥到1位置,BUSYL訊號從低電平變為高電平。

  • 中秋節和大豐收的關聯?
  • 涉事貨拉拉司機周某春到底犯了什麼罪?