최상위 설계에서 ROM 또는 RAM의 각 인스턴스에 대해 MegaWizard® 생성 파일에 매개변수로 초기화 파일 이름을 전달하여 이 작업을 수행할 수 있습니다. 이렇게 하려면 다음 절차를 통해 MegaWizard Plug-In Manager에서 생성한 래퍼 파일을 편집하고 설계에서 인스턴스를 인스턴스화합니다. 다음 예에서는 ROM 메모리 블록에 Verilog HDL을 사용합니다.
- 다음과 같이 MegaWizard 생성 래퍼 파일에 매개변수 init_file 정의를 추가합니다.
parameter init_file = "";
- 래퍼 파일의 메가 기능 인스턴스화를 수정하여 새 인스턴스를 할당합니다.
init_file
매개변수를altsyncram_component.init_file
매개변수 값은 다음과 같습니다. 이 변경으로 MegaWizard에서 생성한 맞춤형 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
매개 변수를 원하는 초기화 파일 이름으로 지정합니다.다음 예에서는 .mif 초기화 파일을 매개변수
init_file
로 전달하는 데 defparam을 사용하는 모듈의my_rom
한 인스턴스화를 보여줍니다. 설계에는 defparam을 설정하여 각기 다른 초기화 파일을 사용하는 이 ROM의 많은 인스턴스화가 포함될 수 있습니다.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