您可以將初始化檔案名稱作為參數,傳遞至頂級設計中每個 ROM 或 RAM 實例的 MegaWilbyd® 生成檔案。若要這麼做,請使用下列程式來編輯 MegaWilbyd 外掛程式管理器所產生的包裝檔,並即時記錄設計中的實例。以下範例使用 Verilog HDL 作為 ROM 記憶體區塊。
- 將參數init_file的定義新增到 MegaWipard 產生的包裝檔案中,如下所示:
parameter init_file = "";
- 修改包裝檔案中的超級功能即時,以指派新的
init_file
參數為altsyncram_component.init_file
參數值,如下所示。此變更使 MegaWi 生自訂 ROM 模組參數化,並允許自訂 ROM 的即時化來定義初始化檔案的價值。defparam
altsyncram_component.init_file = init_file, - 刪除現有的值
altsyncram_component.init_file
參數,如果包裝檔案中有一個。下列是修改後的包裝檔案的範例:module my_rom (address, clock, q);
input [2:0] address;
input clock;
output [7:0] q;
parameter init_file = "";
wire [7:0] sub_wire0;
wire [7:0] q = sub_wire0[7:0];
altsyncram altsyncram_component (
...
defparam
altsyncram_component.init_file = init_file, ... - 針對頂級設計中的每一個 ROM 實例,請設定
init_file
參數至所需的初始化檔案名稱。下列範例顯示模組的
my_rom
一個即時化,其中使用 defparam 將 .mif 初始化檔案傳遞至參數init_file
。此設計可包含許多此 ROM 的即時性,每一個使用不同的初始化檔案,透過設定 defparam。module top_level_roms (addr, clk, q);
output [7:0] q;
input clk;
input [2:0] addr;my_rom u1 (.address(addr),.clock(clk),.q(q));
defparam u1.init_file = "rom_test.mif";
endmodule