0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三種種創(chuàng)建ROM的方法解析

454398 ? 來源:csdn ? 作者:ferast ? 2020-11-23 14:13 ? 次閱讀

ROM是只讀型存儲器,寫入數(shù)據(jù)之后就不能在對數(shù)據(jù)進行更改。下面提供3種創(chuàng)建ROM的方法:
一、自己動手通過readmemh或readmemb函數(shù)來將自己寫的文件與ROM進行關(guān)聯(lián);有幾點需要注意的地方:寄存器rom的大?。ㄎ粚捄蜕疃龋┤缦旅娴拇a中位寬為8,深度為1024

// An highlighted block
module myrom(
	clk,
	addr,
	q
);
input clk;
input [9:0] addr;
output reg[9:0] q;
reg [7:0] rom [1023:0];
initial begin 
	$readmemh("./xxx.txt",rom,0,1023);
	//讀16進制的數(shù)據(jù)
	//格式$readmemh("file_name",memory_name[,start_addr[,finish_addr]]);
	//file_name:文件名;memory_name:ROM名;start_addr:開始地址;finish_addr:結(jié)束地址
	//[]的內(nèi)容為可選內(nèi)容,
	//readmemb 讀2進制的數(shù)據(jù)
end
always(posedge clk)
	q<=rom[addr];
endmodule

二、第二中方法是通過ip核創(chuàng)建rom。選擇菜單欄中的Tools下的ip核配置工具,搜索rom,選著Verilog語言,并命名文件。點擊下一步

可以看到,在配置工具中依然需要設(shè)置位寬和深度。

在mem init中的文件名,這里需要注意的是文件必須是.mif和.hex文件。

三、第三中方法是直接生成代碼,在代碼段上進行修改。

生成的代碼段如下:這里需要修改的是兩個參數(shù)DATA_WIDTH、ADDR_WIDTH。然后將對應(yīng)的文件名修改了就可以了。

// Quartus II Verilog Template
// Single Port ROM

module single_port_rom
#(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=8)
(
	input [(ADDR_WIDTH-1):0] addr,
	input clk, 
	output reg [(DATA_WIDTH-1):0] q
);

	// Declare the ROM variable
	reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0];

	// Initialize the ROM with $readmemb.  Put the memory contents
	// in the file single_port_rom_init.txt.  Without this file,
	// this design will not compile.

	// See Verilog LRM 1364-2001 Section 17.2.8 for details on the
	// format of this file, or see the "Using $readmemb and $readmemh"
	// template later in this section.

	initial
	begin
		$readmemb("single_port_rom_init.txt", rom);
	end

	always @ (posedge clk)
	begin
		q <= rom[addr];
	end

endmodule

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7365

    瀏覽量

    163088
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    539

    瀏覽量

    85428
收藏 人收藏

    評論

    相關(guān)推薦

    光電耦合器的三種檢測方法

    光電耦合器的三種檢測方法
    發(fā)表于 05-22 11:26 ?930次閱讀
    光電耦合器的<b class='flag-5'>三種</b>檢測<b class='flag-5'>方法</b>

    啟動Redis的三種方法

    Redis筆記(1)——安裝、卸載、三種方法啟動Redis,Redis命令使用(干貨十足),Redis兩種方法設(shè)置密碼,時間復雜度(更完善哦~)
    發(fā)表于 06-08 16:09

    如何使用三種方式進行文件的創(chuàng)建

    新建文件在GUI的桌面環(huán)境中,創(chuàng)建文件是很簡單的,例如Windows平臺中,大多數(shù)情況下只需要點擊右鍵,就可以新建文本文檔等各類文件。在終端中創(chuàng)建文件,大體有這么三種方式,使用touch命令進行
    發(fā)表于 12-15 08:42

    STM32的三種Boot模式的差異

    如有錯誤,歡迎指正,謝謝!目錄一、STM32的三種Boot模式的差異二、創(chuàng)建基于MDK創(chuàng)建純匯編語言的STM32工程模板、匯編基本語法的學習四、編程練習一、STM32的
    發(fā)表于 12-20 07:54

    記錄一下MCU存在ROM中的bootloader的三種方法

    網(wǎng)上查到的直接進入TIVA系列MCU存在ROM中的bootloader的三種方法,記錄一下。使用 TM4C ROM bootloader 的種方式:Flash Empty當 MCU
    發(fā)表于 02-14 06:45

    噪聲系數(shù)測量的三種方法

    噪聲系數(shù)測量的三種方法 本文介紹了測量噪聲系數(shù)的三種方法:增益法、Y
    發(fā)表于 05-07 13:38 ?2118次閱讀

    解決電池問題有三種方法

    解決電池問題有三種方法      對于手機電池問題如何解決,業(yè)內(nèi)人士指出有以下三種方法:   一、發(fā)明新型電池。目前有日本生產(chǎn)商已經(jīng)展示了概念性的燃
    發(fā)表于 11-10 14:26 ?942次閱讀

    三種不同的“防 Ping”技巧

    三種不同的“防 Ping”技巧 淺析三種不同的“防 Ping”方法   眾所周知,Ping命令是一個非常有用的網(wǎng)絡(luò)命令,大家常用它
    發(fā)表于 04-14 13:53 ?1099次閱讀

    用示波器快速捕獲異常的三種方法

    萬事開頭難!當你想用示波器來分析問題時,你一定有想過,我要如何才能把問題抓下來?當然,只有抓下來之后,才能進行后面種種的分析,否則一切都是空談。本文將帶你用三種最好用的方法將異常抓下來。
    的頭像 發(fā)表于 01-04 09:26 ?6153次閱讀
    用示波器快速捕獲異常的<b class='flag-5'>三種方法</b>

    python統(tǒng)計詞頻的三種方法

    python統(tǒng)計詞頻的三種方法方法。
    發(fā)表于 05-25 14:33 ?2次下載

    三種IGBT驅(qū)動電路和保護方法

    三種IGBT驅(qū)動電路和保護方法(新型電源技術(shù)作業(yè)答案)-三種IGBT驅(qū)動電路和保護方法,非常不錯,受益頗多,感興趣的可以看看,值得一看。
    發(fā)表于 09-17 17:01 ?294次下載
    <b class='flag-5'>三種</b>IGBT驅(qū)動電路和保護<b class='flag-5'>方法</b>

    直接進入TIVA系列MCU存在ROM中的bootloader的三種方法(轉(zhuǎn)載)

    網(wǎng)上查到的直接進入TIVA系列MCU存在ROM中的bootloader的三種方法,記錄一下。使用 TM4C ROM bootloader 的種方式:Flash Empty當 MCU
    發(fā)表于 12-09 12:51 ?7次下載
    直接進入TIVA系列MCU存在<b class='flag-5'>ROM</b>中的bootloader的<b class='flag-5'>三種方法</b>(轉(zhuǎn)載)

    噪聲系數(shù)測量的三種方法

    本文介紹了測量噪聲系數(shù)的三種方法:增益法、Y系數(shù)法和噪聲系數(shù)測試儀法。這三種方法的比較以表格的形式給出。
    的頭像 發(fā)表于 05-18 11:02 ?1149次閱讀
    噪聲系數(shù)測量的<b class='flag-5'>三種方法</b>

    繼電保護的三種狀態(tài)解析

    繼電保護的三種狀態(tài)解析? 繼電保護系統(tǒng)是電力系統(tǒng)中非常重要的一個組成部分,其具有三種狀態(tài),包括:正常狀態(tài)、故障狀態(tài)和巡檢狀態(tài)。這些狀態(tài)的作用不同,下面我們將對它們進行詳盡、詳實、細致的解析
    的頭像 發(fā)表于 09-27 16:00 ?2414次閱讀

    異步電機主要的三種調(diào)速方法解析

    異步電機主要的三種調(diào)速方法解析
    的頭像 發(fā)表于 01-07 17:50 ?1930次閱讀
    異步電機主要的<b class='flag-5'>三種</b>調(diào)速<b class='flag-5'>方法</b><b class='flag-5'>解析</b>