(1)ROM IP核简介:
ROM是只读存储器,是一种只能读出事先锁存的固态半导体存储器。其特性是一旦存储资料就无法再将之改变或删除,并且资料也不会因为电源关闭而消失。(掉电不丢失)
FPGA使用内部RAM实现ROM、RAM ip核的功能,Xilinx使用coe文件填充ROM和RAM。
(2)ROM的配置:
ROM关键词:block
PLL关键词:clk
- 配置单端口rom流程:
初始文件coe文件格式如下:
- 配置双端口rom流程:
(3)ROM的调用:单端口ROM为例
module rom(clk,add,dout);input clk;input [7:0]add;output [7:0]dout;rom_8x256 rom_8x256_inst(.clka(clk), // input wire clka.addra(add), // input wire [7 : 0] addra.douta(dout) // output wire [7 : 0] douta
);endmodule
(4)仿真文件代码:
`timescale 1ns / 1psmodule rom_tb;reg clk ;reg reset_n;reg [7:0]add ;wire [7:0]dout;rom rom_inst(.clk (clk ),.add (add ),.dout (dout));initial clk = 1'b1;always #10 clk = ~clk;initial beginreset_n <= 1'd0;#15;reset_n <= 1'd1;#50000;$stop;endalways@(posedge clk or negedge reset_n)if(!reset_n)add <= 8'd0;else if(add == 8'd255)add <= 8'd0;else add <= add + 8'd1;endmodule
(5)仿真波形: