一个关于IODELAY2可变延时的问题
小白最近想用Spartan6搞一个端口可变延时,之前试了一下IDELAY_TYPE=FIXED模式的延时可以的,但IDELAY_TYPE = VARIABLE的时候各种不对啊,根据S6的手册,说是延时数据的更新要在输出BUSY位为低的时候,对INC与CE引脚操作,小白在testbench中编写了一段:always@(posedge CLK)begin
if(BUSY == 0)begin
INC = 1;
CE = 1;
end
else
begin
INC = 0;
CE = 0;
end
end
但也不不行(延时的值没有变化),刚开始有延时值,但是FIXED延时值(看手册说是 VARIABLE模式下初始值是FIXED值),三次延时之后就没有延时了。
具体配置:
IODELAY2 #(
.COUNTER_WRAPAROUND("WRAPAROUND"), // "STAY_AT_LIMIT" or "WRAPAROUND"
.DATA_RATE("SDR"), // "SDR" or "DDR"
.DELAY_SRC("IDATAIN"), // "IO", "ODATAIN" or "IDATAIN" IOB中的PAD
.IDELAY2_VALUE(0), // Delay value when IDELAY_MODE="PCI" (0-255)
.IDELAY_MODE("NORMAL"), // "NORMAL" or "PCI" 所以IDELAY2_VALUE的值没有意义
.IDELAY_TYPE("VARIABLE_FROM_ZERO"), // "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX"
// or "DIFF_PHASE_DETECTOR"
.IDELAY_VALUE(100), // Amount of taps for fixed input delay (0-255)
.ODELAY_VALUE(0), // Amount of taps fixed output delay (0-255)
.SERDES_MODE("NONE"), // "NONE", "MASTER" or "SLAVE"
.SIM_TAPDELAY_VALUE(75) // Per tap delay used for simulation in ps
)
在这里附上Spartan6原语与SelcetIO手册,望各位能指导一下小白 唉~配置没啥大问题,最后还是自己解决了
页:
[1]