微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > xilinx对输入信号延时

xilinx对输入信号延时

时间:10-02 整理:3721RD 点击:
xilinx的spartan6如何对一个输入时钟信号进行ns级或者更低的延时?因为我在使用selectIo的时候,采样的帧时钟与我对采样数据的串并转换后的数据不对齐,导致数据锁存出错,我将采样的帧时钟延时和的数据对其锁存。不知道有没有其他的做法!

有没有朋友指导一下方法啊!

1.idelay可以调整延时,每个step是几十ps
2.可以使用动态相位调整技术,idelay自动调整



    我也尝试着加ideley,但是不知道为什么加上会报错,应该是用idelay模块的原语对输入信号进行延时吧,具体的不太会用!



    xilinx 的select io ip核有示例程序



    大师,我现在的问题就在使用模块的时候,串行进入的数据的顺序是不定的,可能进入ISERDES的数据是从串行8位数据中的任何一位,而我从采样过来的数据是从d0,d1,d2....d7,这样的数据,数据是有序的。所以我每次使用的时候,锁存都不一定正确,我如何做能使从串行进来的第一个数据就是d0呢?或者能有什么方法使得我数据从不对齐变对齐呢?然而我现在苦恼的就是没有判定对齐的条件。



   你传输数据的时候加一个字节帧头,iserdes输出并行的数据,紧接着做一个帧同步,找帧头,去掉,后面应该就是d0。不麻烦。

iodelay 以及 iserdes怎么用,可查user guide,讲得很清楚,我只做过virtex5和7的,没做过spartan的,差别应该不大。

   
你好,你说的问题是字边界调整的问题。xilinx的select io有字边界调整的功能,就是bitslip信号,该信号有效一次,字边界就调整一次。
首先输入的信号要有同步字才可以,一般来说,串行输入的数据,应该都会有同步字。



    嗯,谢谢您,是这样的,可以通过bitslip来调节同步,你说的同步字就是发送一个固定的序列将ISERDES输出做同步,但是我现在的串行数据是从ADC采样过来的,难道需要我的ADC发送一个固定的同步序列来训练同步吗?这样需要设置ADC的输出值,这个需要设置一个固定值比较困难吧!有没有同步检测的方法呢!因为我ADC过来的只有串行数据,位时钟,帧时钟。能否从帧时钟考虑判断需要同步的条件能?因为帧时钟输出和串行数据是对齐的!我现在了解的方法就是ADC发送同步数据,完成同步之后,才能正常采样。



    你用的哪一款adc?



    HMCAD1511

HMCAD1511 datasheet v03.0711
Figure 5: Dual channel - LVDS timing 8-bit output
从这幅图可以看出 LCLK是采样时钟,FCLK是周期性的波形,1111000011110000
把FCLK也作为解串的一个通道,当FCLK解串后的数据是11110000时,就认为对齐了



    大师就是大师!只需一句话就可以道破真谛!



    客气,我之前做过类似的。经验而已。

如果是发送串行数据的芯片,芯片本身一定提供了定位边界的方法的,还是要多看芯片手册

问题还在吗?能否贴个波形图看看?



    大师,我现在遇到一个问题,因为我的差分输入有8对,画pcb的设计人员为了不走过孔将8对差分线分二组,分别在同一个bank的上下二个halfbank中,而我的帧对齐信号和一个组差分线在同一个halfbank中,这样我的时钟输入的时候我就通过bufio2生成二个时钟给二组selectIO模块,现在就是我同步过程中和帧对齐信号不在同一个halfbank的差分数据有时候就会没有对齐,但是和帧对齐信号在同一个halfbank的差分线就可以同步,不知道是不是我过bufio2的原因呢/


您好
    1.spartan6的解串有2种方式,第一种是bufpll,第二种是bufio2.
    2.如果是bufio2,则串行数据必须在一个halfbank中,且时钟和数据要在同一个halfbank
    3.如果是bufpll,则串行数据必须在一个bank中,时钟可以在任意bank,但是推荐在同一个bank,因为此时走线最近
    4.你现在的情况,可以考虑bufpll的解串方法,具体的时钟结构可以参考ug382



    刚看到您的回复!谢谢大师!我再去看看!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top