问题一:在实现DDR3写的时候出现了,数据与地址沿没有对齐的问题,如下图所示。
可看图中的蓝色与黄色光标,很明显在地址为0的时候,没有写数。
解决办法:
case(state)
IDLE:
begin
if( rd_en_fifo1_in & rs_wr_enable)//write_data_2_mig
begin
orv_cmd <= 3'b0;
orv_addr <= 29'h1fff_fff8;
or_en <= 1'b1;
i_wdf_wren <= 1'b1;
state <= WRITE;
end
else if(wr_en_fifo2_in & rs_rd_enable)
begin
orv_cmd <= 3'b001;
orv_addr <= 29'b0;
or_en <= 1'b1;
state <= READ;
end
end
如上代码所示将orv_addr的初始改为29’h1fff_fff8,读地址与读数据边沿对齐。结果仿真如下
读地址与读数据边沿对齐。