rom读写测试时序分析 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki
D1 rom比较简单,就是bram的读的功能而已。配置如下:
一般我们这2项都不勾选,这样延迟是一拍。
D2 代码
`timescale 1ns / 1ps
module test_rom(
);
reg clka, rstn;
initial clka=0;
always #10 clka=~clka;
initial begin
rstn=0;
#1000;
rstn=1;
end
reg [15:0] dina;
reg [7:0] addra;
reg ena;
wire [15:0] douta;
initial begin
dina=16'h0000;
addra=8'h00;
ena=0;
wait(rstn==1);
# 1000;
repeat(256)
@(posedge clka) begin
#1;
ena=1;
addra=addra+1;
end
ena=0;
end
blk_mem_gen_1 your_instance_name (
.clka(clka), // input wire clka
.ena(ena), // input wire ena
.addra(addra), // input wire [7 : 0] addra
.douta(douta) // output wire [15 : 0] douta
);
endmodule
D3 波形
可以看到,第1个读的地址0x01,数据是13。(注意,由于testbench原因,没有从0x00地址开始读)
最后一个读的地址是0xff,读的数据是267