《存儲器實驗報告》由會員分享,可在線閱讀,更多相關《存儲器實驗報告(9頁珍藏版)》請在裝配圖網上搜索。
1、實驗3
存儲器實驗
預習實驗報告
疑問:
1、 存儲器是干嘛的?
2、 存儲器的讀寫功能如何實現?
3、 存儲器中的字和位分別表示的是什么?
4、 在定制存儲器的時候,如何對它里面的存儲單元賦初始值?
5、 如何實現連讀?
6、 存儲器的代碼實現書上有,但如果用原理圖來做,各個部分用什么芯片來實現?
7、 下載到實驗箱時如何分配輸入以減少開關數?
& 在用地址計數器產生地址中的置數的方法產生地址是如何操作的?
實驗報告
波形圖:
參數設置:
Endtime: 2.0us
Gridsize: 100 .Ons
信號設置:
clk_cdu: sw|pc_
2、bus:
m|w|r:
ldar: pc_clr|ld|en:
k:
d: d~result: ar:
時鐘信號,設置周期為 100ns占空比為50%。
總線(sw_bus)和地址計數器 PC( pc_bus)輸出數據控制信號,輸 入,低電平有效,二進制。
芯片的片選(m )、讀(w )、寫(r)操作的控制信號,輸入,高電 平有效,二進制。
地址寄存器AR的裝載數據控制信號,輸入,高電平有效,二進制。 地址計數器 PC的清零(pc_clr )、裝載(pc_ld )和計數使能信號 (pc_en),輸入,低電平有效,二進制。
k [7]~ k [0],數據輸入端信號,輸入,十六進
3、制。
d[7]~d[0],數據輸出中間信號,雙向信號,十六進制。
d [7] result ~d[0] result,最終的數據輸出信號,輸出,八進制。
ar[7]~ ar[0],地址寄存器 AR的輸出結果,輸出,十六進制。
pcout:
pcout [7卜pcout [0],地址計數器PC的輸出結果,輸出,十六進制。
仿真波形
以在01H單元中寫入EEH的數據并讀出為例:
1) 初始狀態(tài):K=OOH,選擇芯片(m=1) , PC保持當前的值(pc_clr=1),其余信號無效;
2)
4、置數法產生地址: K=01H t總線(sw_bus=O)宀 PC(pc_clr=1、pc_ld=0、pc_en=1),可以
看到此時總線上的數據為 01H;
3) PC保持:pcen=O,總線上及 pc的值停在01H;
4) PCt ar : PC(sw=1,pc_bus=0) t AR=01H (ldar=1),總線上顯示 01H;
5) 讀取::(sw|pc_bus=11 , m=1、r=1) tAR=E1H , D2H,總線上顯示 E1H, D2H ;
6) EEH 總線:寫入到地址為 01H的單元中(m=1、w=1、r=0),之后并將其內容讀取出來 (m=1、w=0、r=1)
5、。
7) 計數法產生地址: PC+1 (pc_bus=0、pc_clr=1、pc_ld=1、pc_en=1、w=0、r=0)、PC=02H
tAR(ldar=1)、同時總線上顯示 PC的值。
8) 讀取地址為 AR=02H所存的數值(m=1、r=1),總線上出現了短暫的 EEH及C5H。
9) PC 清零:pc_clr=0
10) 連讀 00H, 01H、02H、03H、04H、里面存放的數據(pc_bus=1、pc_clr=1、pc_ld=1、pc_en=1、 m=1、r=1、ldar=1),總線上顯示 E1,EE ,F3,C5,00。
結論:
本實驗的設計能存儲器的存儲數據以
6、及讀和寫的操作的功能,同時連續(xù)讀出存入地址
單元中存放的數據,電路設計正確。
二、實驗日志
預習疑問解答:
1、存儲器是干嘛的?
存儲器的主要功能是存放計算機正在執(zhí)行或將要執(zhí)行的程序以及數據等信息。 它進行讀操作
時片選信號有效,讀控制有效;進行寫操作時片選信號有效,寫控制有效,同時輸入數據。
2、存儲器的讀寫功能如何實現? 如果用代碼實現
process (clk, we, din)
begin
if(ris in g_edge(clk)) the n
if (we= the n
RAM(Addr)<=din; 寫操作
End if;
Addr_Reg<=Ad
7、dr;
end if;
end process;
dout<=RAM(Addr_Reg); 讀操作
實驗中是用lpm定制的,原理是一樣的。
3、 存儲器中的字和位分別表示的是什么?
字表示地址的長度,如果字長為 M,則地址寄存器的位數應該為 log2M,位表示數據的字
長,如果位長為 N,則數據寄存器應該為 N位。
4、 在定制存儲器的時候,如何對它里面的存儲單元賦初始值?
打開memory initial file 即.mif的文件,直接在對應的位置設值就可以了。
5、 如何實現連讀?
這是課后的一個思考題,答案見下面。
6、存儲器的代碼實現書上有,但如果用原理圖來
8、做,各個部分用什么芯片來實現?
AR是用芯片74273(8位帶異步清零的 D觸發(fā)器)來實現,三態(tài)門輸入是用芯片 74244(八路 輸入三態(tài)緩沖器)來實現,PC是用芯片74161(4位二進制加計數器, 帶同步載入,異步清零) 來實現,存儲器是用lpm定制來實現。
7、下載到實驗箱時如何分配輸入以減少開關數?
輸入有sw|pc_bus,m|w|r,Idar, pc_clr|ld|en,k (是8位的),總共17個,實驗箱上只有 16 個開關,可以直接把 K的高地位搞成兩個計數器,通過時鐘信號控制,直接實現輸入二位
& 在用地址計數器產生地址中的置數的方法產生地址是如何操作的?
9、
這是74161的功能表:
CLR
LD
PC
CLK
功能
PC
答:
2、如何將
答:
2片512*4bit的RAM構成容量為1024*4bit的存儲體?畫出簡單電路圖?
0
x
x
x
清零
1
0
1
置數
1
1
1
計數加1
1
0
0
x
保持
1
0
0
x
保持
clr|ld|e n=101時置數,此時可以通過總線將想要產生的地址值通過數據輸入端口置數到 中,再將PC的值保持,打入到 AR中,實現 PC=PC+1,PCt AR。
思考題:
A8
A8~A0
CE
R0M2
D3
10、~D0
OE
A8
9
片選
讀允許
D3~D0
CE
A8~A0
ROM1
OE
D3~D0
1、如何將2片512*4bit的RAM構成容量為512*8bit的存儲體?畫出簡單電路圖?
.--
.-..亠—
gn或…
—ft
74244
?網- T?. 77dl^:
1GH
I A1
1Y1
LA2
1Y2
Ii3
1Y3
144
1Y4
MW
SA1
2Y1
2A2
ZYZ
2A3
ZY3
2A4
?Y*
Ml gr亂日 UF
74273
3、如
11、何修改電路使其能連續(xù)讀出存入地址單元中存放的數 據?
答:修改電路如下:
所做的修改:
1)、將地址寄存器 AR和地址計數器 PC的數據直接相連。
fr=^T pccft^r p^lbr
PI
D1
m
垃
02
03
皿
QJ
D5
Q5
06
M
rtt
aRH
CLK
meH OCTAL D-FF > ■
t- n - -r - r t -a- l r - ■— r ~t ~sr t- f "、 i
k
V;"
2)、將原來的通過總線將 PC里的值傳給 AR的三態(tài)門輸入, 改為用來控制將
12、 PC的值傳到總線,即 pc_bus用來控制PC里 的值是否傳到總線。
::::
4、如何將原理圖輸入的邏輯電路轉換成 HDL的描述語言?
答:打開電路圖,選擇 File Creat/Update Creat HDL Desig n File for Current File,將會彈出下面的窗口, 選擇HDL的描述語 言。
@ Quaitus-D - 禮酊 bdlli|
盛吐]ETd~ViewProjM ifcMiyrtW&PrMftiiftgTed*SSndOwHelp
CDtfc*-
r目沁?
b衛(wèi)x*
-兇 hew Pr Eject Musa rd..
礦 Qpn 申
13、*cL Obi +J
d仙血衲AXw 叫M □ PnojKL.
Clw Propt!
CfritN cm+o
QjndiuqtsliiTjn
爭 ahU^Efi Report - &midioriliAl?dTT5 | ti GUDdMiqiEhs^iMF
Q
5松自 Curd鉀C R^pCi*! 詁Af-
SUS
IIGH
141 w
hl |YJ
bl
|Vi
<3
ZOH
3VI
2AZ
32
TV!
E>p9r%i
Cwffte Symbd 同刖 fcr Oirrert 哄
■j— & a ■
14、mi aid ir4」 tT n - —i
實驗中遇到的問題:
1、 在對存儲器進行初始化之后,在波形仿真將其讀出的時候,所有的結果都是 00H。
在用lpm定制設計參數的時候, LPM_FILE的文件名不是./initial_file.mif ,開始不知道
這個關系,后來明白了,原來 lpm存儲器是在 mif文件里面讀取數據的。
2、 用代碼實現 PC_AR的時候,仿真波形上應該出現 EE的地方為不定值。
據說是代碼的電路設計不正確, 后來換成了原理圖來做, 換了電路圖做之后還是有, 看
了一下書上的波形圖,原來在那個地方 d是有輸入的,輸入是 EE。(主要是沒明白操作的含
15、
義)
3、 仿真時結果不正確,應該出現 01,02,03的那幾個地方莫名其妙地冒出來了 06,07,08
請同學幫忙看了一下,開始沒有把計數器的值在波形上顯示出來, 后來把計數器的值在
波形上顯示了,發(fā)現 PC的值有問題,是電路連接問題,錯誤的電路連接是這樣的:
低位的ENT和ENP應該空置,高位的 ENT的輸入是低位的進位, ENP接高電平,而
且我的計數器的時鐘信號也是錯誤的,正確的電路應該是下面這個:
-
---
74161
LDN
A
P
OA
C
OB
D
QC
EHT
CD
EHP
RCO
CLPN
CLK
i■■三i 性 COUNTER
■ — ? ■ ■ S I S- 1 ■ " ■! I !■ 1
了4 伯 ~1
-Cl LDN
0
QA
;搭ent[衛(wèi)F
0
QB
i - Ecn材
D
Q.C
5 ? pccntT護
EKT
QD
— >■
ENP
RCC
―[
CLRN
CLK
mstij COUNTER
實驗心得: