Ví dụ này hướng dẫn cách tạo tức thì một khối bộ nhớ bằng cách sử dụng hàm LPM lpm_ram_dq. Ram thay đổi sử dụng lpm_ram_dq năng từ thư viện LPM. Các cổng được xác định theo kiểu xác định và sau đó được ánh xạ đến các cổng LPM, như trong văn bản màu đỏ. Các giá trị tham số sau đó được chuyển qua với tính năng defparam từ khóa. Trong ví dụ này, một khối RAM 16 x 256 được khởi tạo; bạn có thể sử dụng một quy trình tương tự để tạo tức thì các khối RAM có kích thước khác.
Tham lpm_file chỉ Tập tin khởi tạo bộ nhớ (.mif) chỉ định nội dung ban đầu của khối bộ nhớ (RAM hoặc ROM). MIF là tệp văn bản ASCII có thể được tạo bằng cách thủ công hoặc lưu từ đầu ra của mô phỏng. Trong MIF, bạn được yêu cầu xác định chiều sâu bộ nhớ và giá trị chiều rộng, đồng thời tùy chọn bạn có thể xác định các radixes được sử dụng để hiển thị và diễn giải các giá trị địa chỉ và dữ liệu. Các giá trị này được hiển thị trong văn bản màu đỏ trong tệp trích xuất từ map_lpm_ram.mif, bao gồm bên dưới. MiF được sử dụng làm tệp đầu vào để khởi tạo bộ nhớ trong Trình biên dịch và Trình mô phỏng MAX+PLUS II.
Để biết thêm thông tin về việc sử dụng ví dụ này trong dự án của bạn, hãy truy cập:
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
Trích xuất từ Tệp 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;