华丽的转身 发表于 2014-7-25 09:01:59

一个关于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手册,望各位能指导一下小白

华丽的转身 发表于 2014-7-28 11:27:58

唉~配置没啥大问题,最后还是自己解决了
页: [1]
查看完整版本: 一个关于IODELAY2可变延时的问题