一、FPGA 中 LPM_ROM 定制與讀出實(shí)驗(yàn)的實(shí)驗(yàn)步驟
第一步:創(chuàng)建新的工程建立mif文件
File--->New Project wizard.... --->選擇芯片cyclone IV EP4CE22F17C8--->建立存儲器初始化文件ROM1.mif ?--->創(chuàng)建一個(gè)128*32bits空間大小的存儲空間--->輸入初始化數(shù)據(jù)(如圖5.1ROM1的數(shù)據(jù))
圖5.1 ROM1的數(shù)據(jù)
第二步:調(diào)用用LMP元件庫創(chuàng)建自己的元件。
用圖形編輯,進(jìn)入 mega_LPM 元件庫,調(diào)用 LPM_ROM 元件,設(shè)置地址總線寬度 ADR[6..0] 和數(shù)據(jù)總線寬度 Q[31..0],分別為 7位和 32位,并添加輸入輸出引腳,如下圖5.2所示設(shè)置和連接。
圖5.2 自定義ROM的原理圖
第三步:編譯,仿真測試。
編譯通過后。創(chuàng)建University Program vwf文件進(jìn)行仿真測試。仿真圖如圖5.3 自定義ROM的仿真圖。
圖5.3 自定義ROM的仿真圖
分析此仿真圖,每當(dāng)clk是上升沿,就會觸發(fā)此ROM,讀出對應(yīng)地址中的內(nèi)容,比如說當(dāng)?shù)刂肥?的時(shí)候,clk遇到上升沿的時(shí)候,就會觸發(fā),讀出相應(yīng)地址內(nèi)的內(nèi)容為1。
二、FPGA 中 LPM_RAM 定制與讀出實(shí)驗(yàn)的實(shí)驗(yàn)步驟
第一步:創(chuàng)建新的工程建立mif文件
File--->New Project wizard.... --->選擇芯片cyclone IV EP4CE22F17C8--->建立存儲器初始化文件ROM1.mif ?--->創(chuàng)建一個(gè)128*8bits空間大小的存儲空間--->輸入初始化數(shù)據(jù)(如圖5.4ROM2的數(shù)據(jù))
圖5.4ROM2的數(shù)據(jù)
第二步:調(diào)用用LMP元件庫創(chuàng)建自己的元件。
用圖形編輯,進(jìn)入 mega_LPM 元件庫,調(diào)用 LPM_RAM 元件,設(shè)置地址總線寬度 ADR[6..0] 和數(shù)據(jù)總線寬度 Q[7..0],分別為 7位和 8位,并添加輸入輸出引腳,wren控制的是讀寫信號,wren是1的時(shí)候是寫入數(shù)據(jù),為0時(shí)讀取數(shù)據(jù)。如下圖5.5所示設(shè)置和連接。
圖5.5自定義RAM的原理圖
第三步:編譯,仿真測試。
編譯通過后。創(chuàng)建University Program vwf文件進(jìn)行仿真測試。wren=0的仿真圖如圖5.6 自定義RAM的仿真圖1。
圖5.6 自定義RAM的仿真圖1
分析此仿真圖,當(dāng)讀寫信號線wren設(shè)置為0時(shí),只能讀。每當(dāng)clk是上升沿,就會觸發(fā)此RAM,讀出對應(yīng)地址中的內(nèi)容,比如說當(dāng)?shù)刂肥?的時(shí)候,clk遇到上升沿的時(shí)候,就會觸發(fā),讀出相應(yīng)地址內(nèi)的內(nèi)容為1。
當(dāng)wren=1和0的仿真圖如圖5.7 自定義RAM的仿真圖2
圖5.7 自定義RAM的仿真圖2
分析此仿真圖,當(dāng)讀寫信號線wren設(shè)置為0和1交替時(shí),可讀可寫。每當(dāng)clk是上升沿,就會觸發(fā)此RAM,讀出對應(yīng)地址中的內(nèi)容,當(dāng)wren是1的時(shí)候,就會將data中的數(shù)據(jù)更新address處的數(shù)據(jù)。實(shí)現(xiàn)數(shù)據(jù)的更新,比如說當(dāng)wren第一次為1時(shí),將1 地址內(nèi)的數(shù)據(jù)更新為128,之后遇到clk為上升沿讀取數(shù)據(jù)發(fā)現(xiàn)是128。
六、實(shí)驗(yàn)討論與總結(jié)
(1)如何在圖形編輯窗口中設(shè)計(jì) LPM-ROM 、LPM-RAM存儲器?怎樣設(shè)計(jì)地址寬度和數(shù)據(jù)線的寬度?怎樣導(dǎo)入 LPM-ROM、LPM-RAM 的設(shè)計(jì)參數(shù)文件和存儲 LPM-ROM 、LPM-RAM的設(shè)計(jì)參數(shù)文件?
解答:以設(shè)計(jì)LPM-ROM為例,設(shè)計(jì)的時(shí)候在IP Catalog窗口搜ROM,如下圖
選中ROM:1-POST之后,選擇一個(gè)保存的位置,比如ROM,然后設(shè)置相應(yīng)的參數(shù),如下圖。
最后需要?jiǎng)?chuàng)建.bsf和.v的文件。就可以在原理圖中進(jìn)行設(shè)計(jì)的引用了。
創(chuàng)建一個(gè)Block Diagram/Schematic File文件,雙擊界面,彈出一個(gè)Symbol的界面,找到Project,就可以選中我們剛剛創(chuàng)建的ROM了。
RAM的創(chuàng)建和ROM的相似,只不過搜的時(shí)候搜RAM。其余步驟同理。
(2)怎樣對 LPM-ROM、LPM-RAM 的設(shè)計(jì)參數(shù)文件進(jìn)行軟件仿真測試?
解答:以ROM為例,設(shè)計(jì)完原理圖之后,就需要?jiǎng)?chuàng)建VMF的仿真文件,將引腳導(dǎo)入,設(shè)置相應(yīng)的參數(shù),進(jìn)行仿真的測試。設(shè)置參數(shù)的對于ROM的測試主要就是address和clk,但是對于RAM來說多了wren和data,都要進(jìn)行測試。
(3)怎樣在實(shí)驗(yàn)臺上對 LPM-ROM 、LPM-RAM進(jìn)行測試?
解答:需要下載到我們的實(shí)驗(yàn)箱上的FPGA芯片上進(jìn)行測試,通過撥碼開關(guān)結(jié)合段碼顯示,進(jìn)行測試。
(4)存儲器原理圖中的地址、數(shù)據(jù),可否通過寄存器提供?文章來源:http://www.zghlxwxcb.cn/news/detail-435912.html
解答:可以,寄存器本身就有存儲的功能,但是需要控制好周期。文章來源地址http://www.zghlxwxcb.cn/news/detail-435912.html
到了這里,關(guān)于實(shí)驗(yàn)二 存儲器實(shí)驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!