|
小白最近想用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手册,望各位能指导一下小白 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|