微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA多(5个)个不同相位的时钟选择问题

FPGA多(5个)个不同相位的时钟选择问题

时间:10-02 整理:3721RD 点击:
现在用时钟管理模块生成了五个相位的时钟,用这五个驱动同一个模块,在不同时刻,通过时钟选择使每次只输出一个时钟并作为驱动时钟,不同时刻采用的是开关选择,用了很多方式来选择,都不能完全正常工作。
用过的方法:使用assign ckl_out=(flag1)?clk0:((flag2)?clk1(flag3)?clk2.......);
另外还使用过BUFGMUX,这种方法将使用多个BUFGMUX,而且将导致时钟延迟,相位改变了!
大神们有什么好的方法,请多给小弟指点指点,非常感谢!

把要驱动的模块复制成5分,一个时钟驱动一个,最后再在输出结果中选择输出,行不?

时钟频率是同一个吗?建议直接使用PLL吧
如需FPGA设计,请联系qq827492034

不同相位的时钟选择,也属于时钟切换问题。你怎么保证选择信号和5个时钟信号的相位关系,切换出来没有毛刺?这个设计肯定是有问题的,换个实现方式吧

建议尝试2#兄弟的做法,另外推荐你看篇文章:http://wenku.baidu.com/link?url= ... qq-pf-to=pcqq.group

建议尝试2#兄弟的做法,另外推荐你看篇文章:"http://wenku.baidu.com/link?url=_8s_JNfNjroHG3joBrmRPWh_hz7VJ47zlpdZU0qikRkcAHm-3MY8ee-fHw7MstOGH4-JQ5x4NEm0aPS_Sl5WJvww8_5clmz37eufNItxmLy&qq-pf-to=pcqq.group"

好多年没做FPGA了,下面的理解仅供参考:
DCM出来的5个时钟, 最后通过一个BUFG上全局时钟网络,你可以试试手动调节delay line,把5条路到同一个点的delay均衡好。FPGA 好像有ECO模式,还是在PR阶段?这个我不确定了。
至于切换的时钟毛刺,你完全关掉该路clk再切。

个人建议:做个nco,每次切换通过改变频率控制字和相位控制字



    谢谢,试过了,我是想用这五个相位的时钟去采样同一个数据,选出最优采样时钟!


谢谢



    是同一个频率!



    谢谢



    有毛刺,而且选择出来的时钟根本没法用,采样出来的数据偶尔对偶尔错,我的目的是要不失去实时性的切换,假设我输入数据相位变了,那采样时钟也随之改变,保证每次时钟都采到数据的中间位置,这样来实现最优采样,降低数据传输的误码率!


   想要时钟根据数据相位进行实时性切换,这种做法不行的,因为直接切换毛刺无法避免,去毛刺切换又损失了实时性。有人说用PLL也是不可取的,因为PLL稳定是需要时间的,PLL没有稳定之前不能用作时钟,无法实现你的实时性要求。
   你可以把问题说详细些,比如输入数据的相位为什么会实时变化呢?相位变化范围和规律如何?输入数据归根到底也是由某个时钟拍出来的,这个时钟相位也在实时变化?

你这设计太草率了,时钟切换是不能用?:简单切换的,要用专门的时钟切换mux。
或者PLL单路输出,需要切换时钟的时候,调整PLL的输入参数。

自己控制PLL的反馈时钟输入,将BUFG的延迟考虑进去进行相位补偿。

有纯数字的时钟切换电路,你可以从网上搜一下。

露珠是否可以考虑用比数据采样率高5倍的时钟去做采样,然后1~5轮询保存数据,再做后面的优化选择。如果是5个相位的时钟,不停做使能选择想象应该确实比较难在FPGA实现。

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

网站地图

Top