完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
使用7系列FPGA,ISERDES的新时钟方法出现了,至少我以前从未见过它:
由BUFG驱动的CLK,由不同的BUFG驱动的CLKDIV 您可以查看这两个文档以获得更好的解释: 7系列:http://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf(p.148) Virtex 6:http://www.xilinx.com/support/documentation/user_guides/ug361.pdf(p.131) 在我的设计中,我首先尝试使用我已经使用过的BUFIO / BUFR策略,但CLKDIV被大部分设计使用,而这个时钟上的扇出非常重要,无法通过区域时钟解决。 这就是为什么我对这个新的BUFG战略感兴趣。 我的第一个问题是如何通过简单的BUFG用分频器替换BUFR? 我尝试以下电路: ibufds_clk_inst:IBUFGDS 通用地图(IOSTANDARD =>“LVDS_25”) 港口地图( I => onyx_clk_p, IB => onyx_clk_n, O => onyx_clk_int); bufg_inst:BUFG 港口地图( 我=> onyx_clk_int, O => onyx_clk); bufr_inst:BUFR 通用地图(SIM_DEVICE =>“7SERIES”,BUFR_DIVIDE =>“4”) 港口地图( 我=> onyx_clk_int, CE =>'1', CLR =>重置, O => clk_div_int); bufg_div_inst:BUFG 港口地图( I => clk_div_int, O => clk_div); ISE似乎没问题,但我不确定是否采用推荐的方式。 你觉得怎么样? 我可以这样保留吗? 提前致谢.... |
|
相关推荐
5个回答
|
|
|
|
|
|
我认为这不会起作用。
第三种时钟方法是CLK和CLKDIV都来自MMCM / PLL的两个不同输出,每个输出都通过一个BUFG。 MMCM / PLL产生与适当频率同相的时钟(具有正确的分频)。 BUFG是平衡的,因此时钟恰好到达ISERDES。 我很确定你提议的是非法的(不会路由)或者需要使用结构路由从BUFIO-> BUFG获取。 即使它是合法的,来自BUFIO-> BUFG的路径将具有与来自BUFR-> BUFG的路径大不相同的延迟,因此两个时钟将不会充分同步以便ISERDES传输数据。 您唯一的另一个选择是使用“常规”反馈从IBUFG直接转到MMCM。 然后你可以使用MMCM的两个输出,每个输出由一个BUFG驱动,以驱动CLK和CLKDIV。 但是,通过这种配置,ISERDES输入的建立/保持要求是Tpsmmcmcc / Tphmmcmcc(如果您使用的是Kintex-7,则来自数据表 - ds182)。 它的要求比较宽泛; 速度等级为2.72ns。 即使使用“理想”的源设备,这也不会超过350Mbps,而实际接口会慢得多(200MHz-ish)。 相比之下,直接从IBUF使用BUFIO / BUFR有一个1.34ns的建立/保持窗口(Tpscs / Tphcs)...... Avrum |
|
|
|
感谢Avrum的帮助,
avrumw写道: 第三种时钟方法是CLK和CLKDIV都来自MMCM / PLL的两个不同输出,每个输出都通过一个BUFG。 Virtex6已经可以实现这个方案,我认为这是第二种计时方法(仍在同一文件中)。 我仍然对我不太清楚的第三个感到好奇。下面是用户指南的摘录: avrumw写道: 我很确定你提议的是非法的(不会路由)或者需要使用结构路由从BUFIO-> BUFG获取。 即使它是合法的,来自BUFIO-> BUFG的路径将具有与来自BUFR-> BUFG的路径大不相同的延迟,因此两个时钟将不会充分同步以便ISERDES传输数据。 ISE接受路由并且路线后时序分析是可以的。但是,我不喜欢这种不平衡的方案,一边是BUFG,另一边是BUFR + BUFG。 我坚持这样做是因为对我来说,这是一种在各种频率下使用设计的解决方案,无需重新配置MMCM分频器以保持VCO频率在规格范围内。 对于其他项目,我曾经使用第二种方法(MMCM + BUFGs),但我不得不重新配置PLL,重置它并取回锁定。 没有PLL的解决方案对我来说更好。 9链路上的400Mbps对我来说已经足够了。 再次感谢, 罗曼。 |
|
|
|
在7系列中,BUFIO / BUFR将连接到一个时钟区域。
如果需要在1个以上的时钟区域内达到IO,则必须将CCIO连接到BUFMRCE。 然后,BUFMRCE将允许您连接到同一区域,上方区域或下方区域(3个相邻区域)中的BUFIO / BUFR。 这与6系列和早期设备中可用的类似。 这仍然是您的最佳选择。 可以将CCIO直接连接到BUFR(仅在1个时钟区域内加载),并将同一个CCIO连接到BUFG。 我还强调CCIO,BUFR和BUFG必须在相同的时钟区域内使用专用时钟资源进行路由。 这通常是放置在设备中心的银行中的CCIO。 您必须验证是否已选择将使用专用资源路由到BUFR然后再路由到BUFG的CCIO。 如果CCIO到BUFR到BUFG不会使用专用时钟路由,那么您的时序将非常难以预测,并且可能会导致电路性能不稳定。 不要设置CLOCK_DEDICATED_ROUTE = FALSE来使其工作。 设置该约束告诉工具不关心时钟的时间是什么样的。 如果您不能将CCIO和BUFR放在与BUFG相同的区域,那么您可以将其放置在BUFG下方的一个区域或一个区域上方。 如果你这样做,那么你必须将CCIO连接到BUFMRCE然后连接到BUFR,最后连接到BUFG。 这个BUFMRCE不会被建议,因为它会使我建议的下一个解决方案大大复杂化。 为了匹配2个时钟路径上的延迟,您可以将CCIO连接到具有DIV1设置的BUFR并连接到BUFG,然后将相同的CCIO连接到具有所需DIV设置的BUFR并连接到BUFG。 如果您按照我在上一段中描述的那样保留专用资源,则两条路径将在延迟时紧密匹配。 如果您没有按照我的建议使用专用资源,那么就没有延迟匹配的可能性。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2423 浏览 7 评论
2824 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2465 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1194浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
590浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
452浏览 1评论
2006浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 11:20 , Processed in 1.879115 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号