Bạn có thể làm điều này bằng cách chuyển tên tệp khởi tạo làm tham số vào tệp do MegaWizard® tạo ra cho mỗi phiên bản ROM hoặc RAM trong thiết kế cấp cao nhất. Để làm như vậy, hãy sử dụng quy trình sau đây để chỉnh sửa tệp đóng gói do Trình quản lý Trình cắm MegaWizard tạo ra và khởi tạo các phiên bản trong thiết kế của bạn. Ví dụ sau sử dụng Verilog HDL cho khối bộ nhớ ROM.
- Thêm định nghĩa của tham số init_file tập tin đóng gói do MegaWizard tạo ra, như sau:
parameter init_file = "";
- Sửa đổi khởi tạo siêu chức năng trong tệp gói để gán tính năng mới
init_file
tham số làaltsyncram_component.init_file
giá trị tham số, như sau. Sự thay đổi này làm cho tham số mô-đun ROM tùy chỉnh do MegaWizard tạo ra có thể thay đổi, và cho phép khởi tạo ROM tùy chỉnh để xác định giá trị của tệp khởi tạo.defparam
altsyncram_component.init_file = init_file, - Xóa giá trị hiện có của
altsyncram_component.init_file
tham số, nếu có một tham số trong tệp gói. Dưới đây là một ví dụ về tệp gói đã sửa đổi: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, ... - Đối với mỗi phiên bản ROM trong thiết kế cấp cao nhất, hãy đặt
init_file
tham số của tên tệp khởi tạo mong muốn.Ví dụ sau cho thấy một sự
my_rom
khởi tạo của mô-đun, trong đó defparam được sử dụng để truyền tệp khởi tạo .mif sang tham sốinit_file
. Thiết kế có thể bao gồm nhiều khởi tạo của ROM này, mỗi rom này sử dụng một tệp khởi tạo khác nhau, bằng cách thiết lập dải phân cách.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