`timescale 1 ns/1 ns
module tb_read_data();
//时钟和复位
reg clk ;
reg rst_n;
wire [15:0] data ;
reg [15:0] from_txt;
//表示产生的clk的周期,单位是ns
parameter CYCLE =10;
//待测试的例化模块
read_data i1(
.clk (clk ),
.rst_n (rst_n ),
.data (data ),
.from_txt ( from_txt )
);
//产生本地时钟
initial begin
clk =1;
forever
#(CYCLE/2)
clk=~clk;
end
//产生复位信号
initial begin
rst_n = 0;
#(5 * CYCLE);
rst_n = 1;
end
reg [15:0] data_mem[0:9]; //定义一个16bit X 10的数组
initial
begin
$readmemh("sin.txt",data_mem); //将sin.txt中的数据读入存储器data_mem
end
reg [4:0]i;
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
from_txt <= 16'd0;
i <= 'd0;
end
else
begin
from_txt <= data_mem[i]; //将存储器中的数据输出
i <= i + 1'b1;
end
end
/* task send_data(from_txt);
integer i;
begin
for (i=0;i<10;i=i+1)
begin
@(posedge clk)
from_txt <= data_mem[i]; //将存储器中的数据输出
end
end
endtask */
endmodule
modelsim 读取txt数据到变量中
最新推荐文章于 2022-03-27 23:16:12 发布