Sie können dies tun, indem Sie den Initialisierungsdateinamen als Parameter an die MegaWi ascii-generierte® Datei für jede Instanz des ROM oder RAM im Top-Level-Design weitergeben. Verwenden Sie dazu das nachstehende Verfahren, um die vom MegaWifile-Plug-In-Manager generierte Wrapper-Datei zu bearbeiten und die Instanzen in Ihrem Design zu instanziieren. Das nachstehende Beispiel verwendet Verilog HDL für einen ROM-Speicherblock.
- Fügen Sie die Definition des Parameters init_file der megaWiisch generierten Wrapper-Datei hinzu, wie folgt:
parameter init_file = "";
- Ändern Sie die Megafunktionsinstanziierung in der Wrapper-Datei, um die neue zuzuweisen
init_file
Parameter alsaltsyncram_component.init_file
Parameterwert, wie folgt. Diese Änderung macht das megaWistellige generierte angepasste ROM-Modul parameterisierbar und ermöglicht die Instanziierung des angepassten ROM, um den Wert der Initialisierungsdatei zu definieren.defparam
altsyncram_component.init_file = init_file, - Löschen Sie den vorhandenen Wert des
altsyncram_component.init_file
Parameter, wenn einer in der Wrapper-Datei vorhanden ist. Das Folgende ist ein Beispiel für die modifizierte Wrapper-Datei: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, ... - Stellen Sie für jede ROM-Instanz im Top-Level-Design die
init_file
Parameter zum gewünschten Initialisierungsdateinamen.Das nachstehende Beispiel zeigt eine Instanziierung des
my_rom
Moduls, wo defparam verwendet wird, um die .mif Initialisierungsdatei an den Parameterinit_file
zu übergeben. Das Design kann viele Instanziierungen dieses ROM umfassen, wobei jedes eine andere Initialisierungsdatei verwendet, indem das Defparam festgelegt wird.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