求助:NAND flash NV-DDR2接口问题
最近在做NANDflash NV-DDR2接口,项目中在fpga内部用dqs上升沿来计数,发现计数器(debug 信号)和nand flash芯片给出的dqs脉冲数(示波器检测)不一致,dqs_cnt会大于实际dqs脉冲数,不知道什么原因,麻烦各位大侠分析一下问题所在,谢谢。
dqs接口代码如下
IOBUFDS #(
.IBUF_LOW_PWR("TRUE"), //Low Power - "TRUE", High Performance ="FALSE"
.IOSTANDARD("DEFAULT"), //// Specify the I/O standard
.SLEW("FAST") // Specify theoutput slew rate
) OBUFDS_DQS (
.IO (nand_dqs_p ),
.OB (nand_dqs_n ),
.O (nand_dqsin ),
.I (nand_dqs_ddr ),
.T (io_ctrl )
);
always @( posedge nand_dqsin or posedge rst )begin
if ( rst )begin
dqs_cnt <= {8{1'b0}} ;
end
else if(cnt_clr) begin
dqs_cnt <= {8{1'b0}} ;
end
else if(wr_dqs_en) begin
dqs_cnt <= dqs_cnt+ 1;
end
end
wr_dqs_en信号是我根据dqs回来的时间进行设置的,防止毛刺的,是没有问题的。
注:dqs是差分型,管脚类型为IO,电平电平属性为DIFF_SSTL18_II,dqs是83MHz的脉冲。
IOBUFDS 模块的各种参数都试过,最后我把IOBUFDS换成单端的,问题也一样。
最后我降频一半(dqs频率变为41.5MHz),上述问题没有了,但是实际dqs就是需要跑83MHz。