第1步:規(guī)范
這些是我們要執(zhí)行的 Cache Controller 的主要規(guī)范設(shè)計(jì):
直接映射。
單銀行阻止緩存。
“寫入”匹配的直通策略。
在寫未命中時不寫分配或在周圍寫策略。
無寫緩沖區(qū)或其他優(yōu)化。
標(biāo)記數(shù)組已合并。
此外,我們將設(shè)計(jì)一個緩存和一個主存儲系統(tǒng)
高速緩存的默認(rèn)(可配置)規(guī)格:
256字節(jié)單存儲高速緩存。
16個緩存行,每個緩存行(塊)= 16字節(jié)。
主內(nèi)存的規(guī)格:
同步讀/寫內(nèi)存。
多存儲區(qū)交錯存儲-四個存儲區(qū)。
每個存儲區(qū)大小= 1 kB。因此,總大小= 4 kB。
具有10位地址總線的字(4字節(jié))可尋址存儲器。
更高的讀取帶寬。在一個時鐘周期內(nèi)讀取數(shù)據(jù)寬度= 16字節(jié)。
寫入數(shù)據(jù)寬度= 4字節(jié)。
注意:如果您正在尋找4路關(guān)聯(lián)高速緩存控制器設(shè)計(jì),請檢查我的較新版本
步驟2:整個系統(tǒng)的RTL視圖
頂部模塊的完整RTL表示形式如圖所示(不包括處理器)??偩€的默認(rèn)規(guī)格為:
所有數(shù)據(jù)總線均為32位總線。
地址總線= 32位總線(但是內(nèi)存在這里只能尋址10位)。
數(shù)據(jù)塊= 128位(用于讀取的寬帶寬總線)。
所有組件均由同一時鐘驅(qū)動。
步驟3:測試環(huán)境
頂部模塊是使用測試臺進(jìn)行測試,該測試臺僅對非流水線處理器進(jìn)行建模(因?yàn)樵O(shè)計(jì)整個處理器絕非易事!)。測試臺經(jīng)常向存儲器生成讀/寫數(shù)據(jù)請求。這模擬了處理器執(zhí)行的所有程序中常見的典型“加載”和“存儲”指令。測試結(jié)果成功驗(yàn)證了緩存控制器的功能。以下是觀察到的測試統(tǒng)計(jì)信息:
所有讀/寫未命中和命中信號均正確生成。
所有讀取/寫入數(shù)據(jù)操作均成功。
未檢測到數(shù)據(jù)不一致/不一致問題。
該設(shè)計(jì)已成功通過時序驗(yàn)證了Maxm。 Xilinx Virtex-4 ML-403板(整個系統(tǒng))的工作時鐘頻率= 110 MHz,僅高速緩存控制器為195 MHz。
為主存儲器推斷出Block RAM。其他所有數(shù)組都在LUT上實(shí)現(xiàn)。
步驟4:附加文件
以下博客隨此文件附在此處:
.VHD文件。
測試平臺。
有關(guān)Cache Controller的文檔。
注意:
通讀該文檔以全面了解此處介紹的緩存控制器的規(guī)格。
代碼中的任何更改都依賴于其他模塊。因此,應(yīng)明智地進(jìn)行更改。注意我給的所有評論和標(biāo)題。
如果出于某種原因,無法為主內(nèi)存推斷出Block RAM,請減小內(nèi)存的大小,然后更改文件中的地址總線寬度,依此類推。這樣就可以在LUT或分布式RAM上實(shí)現(xiàn)相同的內(nèi)存。這樣可以節(jié)省路由時間和資源?;蛘?,轉(zhuǎn)到特定的FPGA文檔,找到與Block RAM兼容的代碼,并相應(yīng)地編輯代碼,并使用相同的地址總線寬度規(guī)范。
責(zé)任編輯:wv
-
控制器
+關(guān)注
關(guān)注
114文章
17116瀏覽量
184445
發(fā)布評論請先 登錄

工程機(jī)械控制器廠家 控制器國產(chǎn)替代 #國產(chǎn)控制器#控制器廠家#控制器品牌
電機(jī)控制器出現(xiàn)的一種偶發(fā)故障排查與分析
高速SSD存儲系統(tǒng)中數(shù)據(jù)緩存控制器整體頂層設(shè)計(jì)

一種新型直流電機(jī)控制器
一種可堆疊和交錯的多相高壓反相降壓-升壓控制器設(shè)計(jì)

評論