FPGA多(5个)个不同相位的时钟选择问题
用过的方法:使用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实现。
