Verilog 将随机数据写入测试台中的RAM
我正在Verilog中使用RAM,我需要实现一个测试台,在那里我将确认三个内存进程(写入数据、读取数据和读取命令)的正确操作。我已经写了一个测试台,它似乎在写和读一些整数,但是有没有办法用单词或字符串填充内存,以使其更清晰 这是我的测试台:Verilog 将随机数据写入测试台中的RAM,verilog,ram,Verilog,Ram,我正在Verilog中使用RAM,我需要实现一个测试台,在那里我将确认三个内存进程(写入数据、读取数据和读取命令)的正确操作。我已经写了一个测试台,它似乎在写和读一些整数,但是有没有办法用单词或字符串填充内存,以使其更清晰 这是我的测试台: module ramtest(); parameter WORD_SIZE=8; parameter ADDR_WIDTH=8; parameter RAM_SIZE=1<<ADDR_WIDTH; reg we; reg re; re
module ramtest();
parameter WORD_SIZE=8;
parameter ADDR_WIDTH=8;
parameter RAM_SIZE=1<<ADDR_WIDTH;
reg we;
reg re;
reg [ADDR_WIDTH-1:0] addr;
reg [ADDR_WIDTH-1:0] instraddr;
reg [WORD_SIZE-1:0] datawr;
reg Clk;
reg [WORD_SIZE-1:0] mem[RAM_SIZE-1:0];
wire [WORD_SIZE-1:0] datard;
wire [WORD_SIZE-1:0] instrrd;
MCPU_RAMController raminst (.we(we),.datawr(datawr),.re(re),.addr(addr),.datard(datard),.instraddr(instraddr),.instrrd(instrrd));
integer i;
initial begin
we=0;
datawr=0;
instraddr=0;
addr=1;
#20;
for(i=0;i<RAM_SIZE;i=i+1) begin
datawr=i;
addr=i-1;
#10;
end
we=0;
addr=1;
instraddr=0;
for(i=0;i<RAM_SIZE;i=i+1) begin
addr=i-1;
#10;
end
end
endmodule
模块ramtest();
参数WORD_SIZE=8;
参数ADDR_WIDTH=8;
参数RAM_SIZE=1当前,在递增地址处用递增值(0、1、2等)填充内存。用随机数据值填充内存的一种方法是使用$random
系统功能
在测试台中,更改:
datawr=i;
致:
另请参见IEEE标准1800-2017,第18.13节随机数系统函数和方法,了解更多现代随机函数($urandom
等)。请勿破坏您的帖子。通过在此网站上发布,您已不可撤销地授予Stack Exchange network在其认为合适的时间内根据发布该内容的权利。有关删除的替代方案,请参见:
datawr=i;
datawr=$random;