【【典型电路设计之ROM 的 Verilog HDL 描述】】

典型电路设计之ROM 的 Verilog HDL 描述

ROM的Verilog HDL 描述
ROM 即是只读存储器,是一种只能读出事先存储的数据的存储器,其特性是存入数据无法改变,也就是说这种存储器只能读不能写。由于ROM在断电之后数据不会丢失,所以通常会在不需要经常变更资料的电子或电脑系统中,资料并不会因为电源关闭而丢失。
这是verilog代码

module rom(dout, clk, addm, cs_n);
input clk, cs_n;
input [2:0] addm;
output [7:0] dout;
reg[7:0] dout;
reg[7:0] rom[7:0];
initial
begin
rom[0]=8’b0000_0000;
rom[1]=8’b0000_0001;
rom[2]=8’b0000_0010;
rom[3]=8’b0000_0011;
rom[4]=8’b0000_0100;
rom[5]=8’b0000_0101;
rom[6]=8’b0000_0110;
rom[7]=8’b0000_0111;
end
always@(posedge clk)
begin
if(cs_n)
dout<=8’bZZZZ_ZZZZ;
else
dout<=rom[addm];
end
endmodule

下面是testbench 代码
module rom_tb;
reg clk, cs_n;
reg [2:0]addm;
wire [7:0]dout;
rom U1(.dout(dout),.clk(clk),.addm(addm),.cs_n(cs_n));
initial
begin
clk=0;
addm=0;
cs_n=0;
end
always #10 clk=~clk;
initial
begin
repeat(7)
#20 addm=addm+1;
end
endmodule

你可能感兴趣的:(Verilog学习系列,fpga开发)