前言
將ROM中的數(shù)據(jù)讀取出來,通過串口發(fā)送到上位機。
整體設(shè)計
模塊劃分
1、按鍵消抖模塊
2、ROM控制器模塊
3、創(chuàng)建ROM IP核模塊
4、串口發(fā)送模塊
前面已經(jīng)設(shè)計好了串口發(fā)送模塊和按鍵消抖模塊,還剩ROM IP的創(chuàng)建和控制ROM模塊的設(shè)計。
讀ROM控制模塊設(shè)計:

1、address:讀地址端口
2、q:讀數(shù)據(jù)端口
3、設(shè)置單時鐘模式clock來控制所有寄存器
如何讀ROM?
只要當(dāng)前時刻給出寫地址rdaddress,ROM輸出端q就是對應(yīng)地址的存儲單元中的數(shù)據(jù)。
在什么時刻發(fā)送數(shù)據(jù)?
一開始rdaddress為0,q是地址為0的存儲單元中的數(shù)據(jù),第一次按下按鍵,使能Send_en,發(fā)送數(shù)據(jù),然后產(chǎn)生Tx_done標志信號,作為寫地址自加的條件,同時又使能Send_en,
這樣就實現(xiàn)了q端數(shù)據(jù)始終等于當(dāng)前輸入到ROM中的rdaddress對應(yīng)的存儲單元中的數(shù)據(jù)。
ROM IP核
ROM:只讀存儲器,只能讀出事先所存的數(shù)據(jù),一旦存儲無法改變且掉電不丟失。
事實上在FPGA中通過IP核生成的ROM調(diào)用的都是FPGA內(nèi)部的RAM資源,掉電數(shù)據(jù)丟失。
用IP核生成的ROM模塊與RAM模塊相比只是不能寫數(shù)據(jù)而已,提前添加了數(shù)據(jù)文件(.mif格式),對ROM中的數(shù)據(jù)進行初始化。
ROM的讀操作與單端口RAM配置中的讀操作相同。
-
單端口ROM:提供一個讀地址端口和一個讀數(shù)據(jù)端口,只能進行讀操作。
address:讀地址端口
q:讀數(shù)據(jù)端口
addressstall_a:地址使能控制,為高電平時,有效地址時鐘會保持之前的地址【創(chuàng)建IP時可選】;
inclock、outclock:支持輸入與輸出時鐘模式和單時鐘模式;
?? ?? ?? ? 在輸入與輸出時鐘模式下,輸入時鐘控制讀地址寄存器;輸出時鐘控制數(shù)據(jù)q輸出寄存器。
?? ?? ?? ?? 在單時鐘模式下,沒有inclock、outclock,只有一個clock信號,可以通過單時鐘以及時鐘使能clockena來控制M9K存儲器模塊中所有寄存器。
inclocken、outclocken:使能輸入時鐘和輸出時鐘;
outaclr:異步復(fù)位信號。
ROM模式?jīng)]有寫使能、字節(jié)使能、數(shù)據(jù)輸入寄存器,寫地址寄存器。 -
雙端口ROM:與單端口ROM類似,區(qū)別是提供兩個讀地址和兩個讀數(shù)據(jù)端口,看成兩個單端口ROM的合并。

這里只進行單端口ROM IP核的創(chuàng)建,實現(xiàn)對ROM中數(shù)據(jù)簡單的讀取就行。
創(chuàng)建單端口ROM IP核
.mif格式文件的制作:
ROM中提前添加mif文件,對ROM中的數(shù)據(jù)進行初始化。
文件格式如下:

一般mif格式文件的創(chuàng)建使用腳本進行轉(zhuǎn)換,比如實現(xiàn)串口傳圖顯示,將圖像像素值數(shù)據(jù)存到ROM中;對應(yīng)想測試對ROM中數(shù)據(jù)進行讀取,使用Quartus II軟件可以創(chuàng)建mif文件。
1、mif格式文件中生成的數(shù)據(jù)位寬是8bit,這里設(shè)置數(shù)據(jù)位寬為8bit;
設(shè)置存儲容量為256個數(shù)據(jù),即256個8bit數(shù)據(jù);
選擇單時鐘模式,控制讀地址寄存器和讀數(shù)據(jù)寄存器;【若是雙時鐘模式,輸入時鐘控制讀地址寄存器,輸出時鐘控制讀數(shù)據(jù)寄存器】
2、輸出端口q是否需要寄存一拍,一般不選擇;
ROM模式?jīng)]有寫使能;
這里也不勾選時鐘使能信號、ROM異步復(fù)位信號aclr;
文章來源:http://www.zghlxwxcb.cn/news/detail-774143.html
3、加載數(shù)據(jù)文件,添加之前生成的mif格式文件文章來源地址http://www.zghlxwxcb.cn/news/detail-774143.html
到了這里,關(guān)于FPGA基礎(chǔ)設(shè)計(八):串口訪問ROM的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!