此範例顯示如何使用 LPM 功能lpm_ram_dq即時化記憶體區塊。變數 ram 使用 LPM 程式庫的lpm_ram_dq功能。埠先定義,然後對應到 LPM 埠,如紅色文字所示。參數值接著會透過關鍵詞解比傳遞。在此範例中,即時化了 16 x 256 RAM 區塊;您可以使用類似的程式來即時調整其他大小的 RAM 模組。
lpm_file參數是指指定記憶體區塊 (RAM 或 ROM) 初始內容的記憶體初始化檔案 (.mif)。MIF 是 ASCII 文字檔案,可以手動建立或從模擬輸出中儲存。在 MIF 中,您必須指定記憶體深度和寬度值,並選擇性地指定用於顯示和解釋位址和資料值的 radix。這些值會在範例檔案 的呅取map_lpm_ram.mif中顯示為紅色文字,如下所示。MIF 會在 MAX+PLUS II 編譯器與模擬器中用作記憶體初始化的輸入檔案。
如需在專案中使用此範例的詳細資訊,請前往:
RAMveri.v
// instantiation of lpm_ram_dq, 16-bit data, 256 address location module map_lpm_ram (dataout, datain, addr, we, inclk, outclk); // port instantiation input [15:0] datain; input [7:0] addr; input we, inclk, outclk; output [15:0] dataout; // instantiating lpm_ram_dq lpm_ram_dq ram (.data(datain), .address(addr), .we(we), .inclock(inclk), .outclock(outclk), .q(dataout)); // passing the parameter values defparam ram.lpm_width = 16; defparam ram.lpm_widthad = 8; defparam ram.lpm_indata = "REGISTERED" defparam ram.lpm_outdata = "REGISTERED" defparam ram.lpm_file = "map_lpm_ram.mif" endmodule
從 MIF 檔案中播取
WIDTH = 16; DEPTH = 256; ADDRESS_RADIX = HEX; DATA_RADIX = HEX; CONTENT BEGIN 0 : ffff; 1 : 0000; 2 : bbf3; 3 : 0000; 4 : 0000; . . . fb : 0000; fc : 0000; fd : 0000; fe : 0000; ff : 0000; END;