基于ise14.7 用Nexys3开发板
今天玩了玩只读存储器
源代码如下:
module rom8(
input wire[2:0]addr,
output wire[7:0]M
);
parameter N=8;//存储单元数据的位数
parameter N_WORDS=8;//存储数据的个数
reg[N-1:0]rom[0:N_WORDS-1];//定义了一个N_WORDS个N位的存储器
parameter data=64'h00C8F9AF64956CD4;
parameter IXLEFT=N*N_WORDS-1;
integer i;
initial begin
for(i=0;i
rom[i]=data[(IXLEFT-N*i)-:N];//功能:从(IXLEFT-N*i)递减取8位 如data[(63-8)-:8]=data[55:48]
end
assign M=rom[addr];
endmodule
没有作实际效果演示,就仿真了一下:
添加的仿真代码:
module test;
// Inputs
reg [2:0] addr;
// Outputs
wire [7:0] M;
// Instantiate the Unit Under Test (UUT)
rom8 uut (
.addr(addr),
.M(M)
);
initial begin
// Initialize Inputs
addr = 0;
// Wait 100 ns for global reset to finish
#20;
// Add stimulus here
addr=3'h0;
#20;
addr=3'h1;
#20;
addr=3'h2;
#20;
addr=3'h3;
#20;
addr=3'h4;
#20;
addr=3'h5;
#20;
addr=3'h6;
#20;
addr=3'h7;
#20;
end
endmodule
拿回来大家一起学习。求大神指教!!!
|