實(shí)驗(yàn)存儲(chǔ)系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)
本次實(shí)驗(yàn)只有兩道題目,但其實(shí)具有一定難度,這兩題分別為漢字字庫存儲(chǔ)芯片擴(kuò)展實(shí)驗(yàn)和MIPS寄存器文件設(shè)計(jì),這次實(shí)驗(yàn)利用logisim進(jìn)行設(shè)計(jì),實(shí)驗(yàn)報(bào)告分為兩個(gè)主要部分,在這兩個(gè)部分中依次對(duì)兩個(gè)實(shí)驗(yàn)的方案設(shè)計(jì),設(shè)計(jì)思路進(jìn)行了介紹。
字庫存儲(chǔ)芯片擴(kuò)展實(shí)驗(yàn)
1.1設(shè)計(jì)要求
現(xiàn)有如下 ROM 組件,4片4K32位 ROM ,7片 16K32位 ROM,實(shí)驗(yàn)中有一個(gè) 16*16 點(diǎn)陣字庫文件(存儲(chǔ)字庫的存儲(chǔ)系統(tǒng)),由 7 片 16K× 32 位 ROM 和一個(gè)空白器件構(gòu)成??瞻滋幈硎救鄙僖粋€(gè)器件,請(qǐng)按照字?jǐn)U展(容量擴(kuò)展,地址線擴(kuò)展)的方式利用圖中第一行所給出的 4 片 4K×32 位 ROM 的 存儲(chǔ)器完成最終字庫存儲(chǔ)器,并把字庫數(shù)據(jù)進(jìn)行簡單的分割后,存入這 4 片 4K ×32 位的 ROM 中。
字庫電路輸入輸出引腳如圖所示,輸入引腳是 7 位的區(qū)號(hào)和位號(hào);輸出 引腳是 32 位的 D7~D0,每一個(gè)輸出都是 32 位的漢字點(diǎn)陣信息,用于連接到漢 字點(diǎn)陣輸入端(拆分為高低 16 位)
1.2設(shè)計(jì)原理
1.2.1 字括展
由題目得,要求我們用4片4K×32 位ROM按照字?jǐn)U展的括展方式實(shí)現(xiàn)16K×32位ROM,因此這邊給大家介紹一下字括展的原理
字括展也稱為容量括展或地址總線括展,當(dāng)存儲(chǔ)芯片的存儲(chǔ)容量不能滿足存儲(chǔ)器對(duì)存儲(chǔ)容量的要求時(shí),需要進(jìn)行字括展的方式來括展,其中需要將所有存儲(chǔ)芯片的數(shù)據(jù)線,讀寫控制線各自并聯(lián),同時(shí)分別與CPU的數(shù)據(jù)線和讀寫控制線連接,各存儲(chǔ)芯片的片選信號(hào)可以由CPU多余的地址線通過譯碼器譯碼產(chǎn)生,通過計(jì)算得出,為實(shí)現(xiàn)上圖電路,共需要16K/4K=4個(gè)ROM芯片實(shí)現(xiàn)
1.2.2 地址線連接
cpu分為地址線、數(shù)據(jù)線和控制線,地址線是用來傳輸?shù)刂沸畔⒂玫?,因?yàn)樾枰?6K×32位的ROM系統(tǒng),所以目標(biāo)芯片中含有16K個(gè)地址,對(duì)應(yīng)著14條地址線(2的14次方=16K),其中備用芯片12條地址線,高兩位(分線器分開)用作片選,可以接到2-4譯碼器的輸入端,在這邊的話,需要分線器進(jìn)行工作,將14個(gè)地址分開,分為低12位和高兩位,對(duì)其進(jìn)行編輯,將0-11設(shè)為0,其他位為1,高兩位地址用于芯片的選擇。
低 12 位地址直接連 4K×32b 的 ROM 芯片的地址線。4 個(gè)芯片的 32 位輸出直接連到 D1,因?yàn)橥瑫r(shí)只有一個(gè)芯片工作,因此不會(huì)沖突
1.2.3 數(shù)據(jù)線連接
題目告訴我們,數(shù)據(jù)為32位,但輸出LED矩陣位為16×16,所以說,該數(shù)據(jù)線應(yīng)該有16位
每個(gè)16K×32b 的 ROM 的內(nèi)部各自存儲(chǔ) 16K 個(gè)地址,每個(gè)地址里存放 4 個(gè)字節(jié)數(shù)據(jù)。地址范圍都一樣:0x0000~0x3FFF
4 個(gè) 4K×32b 的 ROM,地址范圍分別是也都一樣:0x000~0xFFF,每個(gè)共有 4K個(gè)地址,現(xiàn)在需要把 16K×32b 的 ROM 中的數(shù)據(jù)按照順序 每 4K 個(gè)為一組分為四組,分別放到 4 個(gè) 4K×32b 的 ROM 中去。HZK16_1 .txt 中的 1~4096 個(gè)數(shù)據(jù)放到 0 號(hào) 4K 的 ROM 中,4097~ 8192 個(gè)數(shù)據(jù)放到 1 號(hào) 4K 的 ROM 中,8193~12288 個(gè)數(shù)據(jù)放到 2 號(hào) 4K 的 ROM 中,12289~16384 個(gè)數(shù)據(jù)放到 3 號(hào) 4K 的 ROM 中
1.2.4 片選信號(hào)連接
在運(yùn)行時(shí),還需要對(duì)于片選信號(hào)線進(jìn)行連接,將鼠標(biāo)放置在上面,會(huì)得到相應(yīng)的記錄,如得到信號(hào)是1,不工作。對(duì)于連接片選信號(hào)線,可以選擇譯碼器或是多路選擇器,我選擇的是譯碼器,連接原理為:將整個(gè)存儲(chǔ)系統(tǒng)地址線的高位用于譯碼器的輸入端,而譯碼器的輸出端用于連接四個(gè)芯片各自合適的片選信號(hào)線。
在頁面中增加一個(gè)譯碼器,數(shù)據(jù)位寬改為2,對(duì)于連發(fā),需要進(jìn)行討論,對(duì)應(yīng)的16K數(shù)據(jù)放置芯片位置,需要對(duì)應(yīng)其譯碼器的連接
1.3實(shí)驗(yàn)步驟
1.理解題目,按照實(shí)驗(yàn)要求對(duì)四個(gè)4×32位的芯片進(jìn)行字括展,使其成為16K×32位的芯片
2.了解數(shù)據(jù)線,地址線,片選信號(hào)的連接方式,然后進(jìn)行連接
3.地址線通過分線器來進(jìn)行分離,其中還需要對(duì)其中的數(shù)據(jù)進(jìn)行調(diào)整,分為高2位和低14位,高位為1,低位為0
4.之后對(duì)于片選信號(hào)進(jìn)行連接,加入譯碼器,其中譯碼器位寬為2,可選為00,01,10,11四個(gè)信號(hào)
5.進(jìn)行編譯測評(píng),改正錯(cuò)誤
1.4故障與調(diào)試
1.4.1 LED燈展示不正確
故障現(xiàn)象:LED無法正確明亮與熄滅
原因分析:結(jié)果檢查,線條的連接沒有問題,應(yīng)該是只讀存儲(chǔ)器中,存儲(chǔ)的數(shù)據(jù)存在問題,
解決方案:四個(gè)4K×32位的ROM當(dāng)中,數(shù)據(jù)并不是平分的,并且對(duì)于不同的連接方式,前4k的數(shù)據(jù)需要放在不同的芯片當(dāng)中
1.5測試與分析
自行測試與頭歌網(wǎng)測試皆正確
1.6最終電路圖
MIPS寄存器文件設(shè)計(jì)
2.1設(shè)計(jì)要求
利用 Logisim平臺(tái)構(gòu)建一個(gè)簡化的MIPS寄存器文件,內(nèi)部包含 4個(gè) 32 位寄存器。通過 R1#、R2#給定兩個(gè)寄存器的地址編號(hào),就可以從右側(cè)的 R1、R2 引腳 讀讀出對(duì)應(yīng)寄存器的值。輸入引腳還包括寫入寄存器的編號(hào) W#,數(shù)據(jù)寫入引腳 Din,當(dāng)寫使能信號(hào) WE 有效,時(shí)鐘的配合下將數(shù)據(jù)總線上的數(shù)據(jù)通過 Din 端寫入寄存器文件內(nèi)部對(duì) 應(yīng)的寄存器中具體引腳為下圖所示
2.2設(shè)計(jì)原理
2.2.1 封裝
首先需要看寄存器文件的封裝,由輸入引腳(R1,R2,W#,Din,WE,CLK時(shí)鐘信號(hào))
2.2.2 讀控制電路設(shè)計(jì)
R1,R2分別為讀寄存器的編號(hào),我們寄存器設(shè)計(jì)好之后,一次可以讀入兩個(gè)寄存器里面的值,那么指定哪兩個(gè)寄存器里面的值輸出呢,那就需要我們通過R1#,R2#這兩個(gè)信號(hào),給出寄存器的編碼,然后RD1,RD2分別是寄存器一二的數(shù)據(jù)輸出引腳,它工作原理為,如果對(duì)寄存器文件進(jìn)行讀的話,可以讀出寄存器中的值,寄存器由R1#,R2#的編號(hào)來指定是那兩個(gè)寄存器,值由RD1,RD2進(jìn)行輸出。
由指令執(zhí)行過程中,需要讀兩個(gè)寄存器的值,把他們送到目的寄存器中,所讀寄存器的編號(hào),由電路設(shè)計(jì)決定,為源寄存器中的編碼決定的,由RD1,RD2進(jìn)行輸出。
數(shù)據(jù)輸出可以根據(jù) R1#、R2#的編碼控制多路選擇器進(jìn)行選擇輸出。也可以采用譯碼器+三態(tài)門進(jìn)行輸出控制。由于這里需要同時(shí)讀出兩個(gè)寄存器,所以相關(guān)邏輯必須有兩份。
2.2.3 寫控制電路設(shè)計(jì)
W#這個(gè)輸入引腳,是寫寄存器的時(shí)候用,寫寄存器時(shí),要求WE,W#信號(hào)有效,然后數(shù)據(jù)從Din輸入引腳寫入數(shù)據(jù),Din為32位,所有寄存器皆為32位。WE為寫使能信號(hào),數(shù)據(jù)必須由W#指定寫入哪個(gè)寄存器,同時(shí),WE有效,在時(shí)鐘脈沖下,將Din端數(shù)據(jù)寫到寄存器文件(由W#指定)中。
在指令執(zhí)行時(shí),通過分線器,將相應(yīng)位提取出來,相應(yīng)位代表著最終指令執(zhí)行之后,想寫入的目的寄存器的編號(hào),數(shù)據(jù)送到Din端,然后RegWrite也就是寫使能信號(hào)有效后,由CLK信號(hào),把指定寄存器的數(shù)據(jù),寫入。
寫入時(shí)根據(jù) W#收到的寫入寄存器編號(hào),利用譯碼器或多路選擇器選擇具體 寄存器(寫信號(hào) WE 和譯碼信號(hào)同時(shí)有效時(shí),令寄存器的使能端 en=1)
2.3實(shí)驗(yàn)步驟
(1)理解題目,按照實(shí)驗(yàn)要求進(jìn)行電路連接
(2)W#為兩位,可能值為00,01,10,11。當(dāng)值不同時(shí),選擇不同寄存器,所以加入譯碼器,通過W#輸出信號(hào),由輸出信號(hào)進(jìn)行選擇
(3)寫信號(hào)還需要?jiǎng)e的信號(hào)有效,才具備寫入條件,如何控制寫入寄存器,將WE和譯碼信號(hào)的值送入使能端,=1時(shí),可以寫入
(4)查看寄存器片選信號(hào),如為1有效,為0無效
(5)同步置1和清零可不連,可以將電源連到地線,一直無效
(6)寫入數(shù)據(jù)要把數(shù)據(jù)輸出引腳連在對(duì)應(yīng)寄存器輸入引腳
(7)選擇與門,并更改與門位寬,W#需要譯碼器,改為兩位,W#連到譯碼器輸入端,然后譯碼器四個(gè)輸出引腳,WE是1時(shí),W#如果也是1,與門相連
(8)按要求連接,進(jìn)行測試
2.4故障與調(diào)試
2.4.1 位寬不匹配
故障現(xiàn)象:LED無法正確明亮與熄滅
原因分析:題目只給出四個(gè)寄存器,所以只需要兩個(gè)位寬就足夠
解決方案:將位寬改為2
2.5測試與分析
自行測試與頭歌網(wǎng)測試皆正確
2.6最終電路圖
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5358瀏覽量
120771 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7522瀏覽量
88290 -
mips
+關(guān)注
關(guān)注
1文章
239瀏覽量
47791 -
存儲(chǔ)系統(tǒng)
+關(guān)注
關(guān)注
2文章
413瀏覽量
40884 -
存儲(chǔ)芯片
+關(guān)注
關(guān)注
11文章
900瀏覽量
43201
原文標(biāo)題:【實(shí)踐】頭歌計(jì)算機(jī)組成原理存儲(chǔ)系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告(字庫存儲(chǔ)芯片,MIPS寄存器文件設(shè)計(jì))
文章出處:【微信號(hào):feifeijiehaha,微信公眾號(hào):電路和微電子考研】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論