完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在尝试测试BUFGMUX原语时,我遇到了一个非常奇怪的问题。
基本上我使用PLL创建一个高频时钟(1GHz)和一个“低”频率时钟(500MHz),并将它们发送到BUFGMUX以在它们之间进行选择,一次直接选择,一次通过BUFG原语。 高频时钟(一次直接和一次通过BUFG)以及BUFGMUX输出然后被混合28级异步分频器分频并驱动LED。 四个分频器是相同的,但由于某种原因,前两个总是满足时序要求,但其他两个总是失败,但在分频器内部路径上。 div_led_inst2 / GEN_FAST [1] .stage_reg [1] / C div_led_inst2 / GEN_FAST [1] .stage_reg [1] / D -0.516 div_led_inst2 / GEN_FAST [1] .stage_reg [1] / C div_led_inst2 / GEN_FAST [1] .stage_reg [ 1] / D -0.516 div_led_inst3 / GEN_FAST [1] .stage_reg [1] / C div_led_inst3 / GEN_FAST [1] .stage_reg [1] / D -0.384 div_led_inst3 / GEN_FAST [1] .stage_reg [1] / C div_led_inst3 / GEN_FAST [1] .stage_reg [1] / D -0.384 我完全搞不清楚为什么路由器不会使用相同的路由(或者至少找到类似的路由),这似乎对前两个分频器完全正常,我怀疑我在这里错过了大局。 任何有关这个问题的建议,解释,评论等都将得到真正的赞赏。 提前致谢, 赫伯特 --------------是的,我这样做是为了好玩! bufmux.zip 8 KB 以上来自于谷歌翻译 以下为原文 While trying to test the BUFGMUX primitive, I encountered a very strange problem. Basically I create a high frequency clock (1GHz) and a 'low' frequency clock (500MHz) with the PLL and send both to a BUFGMUX to select between them, once directly and once via BUFG primitives. The high frequency clock (once direcly and once via BUFG) as well as the BUFGMUX outputs are then divided by a hybrid 28stage async divider and which drives an LED. The four dividers are identical, but for some reason, the first two always meet the timing requirements, but the other two always fail them, but on a divider internal path. div_led_inst2/GEN_FAST[1].stage_reg[1]/C div_led_inst2/GEN_FAST[1].stage_reg[1]/D -0.516 div_led_inst2/GEN_FAST[1].stage_reg[1]/C div_led_inst2/GEN_FAST[1].stage_reg[1]/D -0.516 div_led_inst3/GEN_FAST[1].stage_reg[1]/C div_led_inst3/GEN_FAST[1].stage_reg[1]/D -0.384 div_led_inst3/GEN_FAST[1].stage_reg[1]/C div_led_inst3/GEN_FAST[1].stage_reg[1]/D -0.384 I'm totally confused why the router would not use the very same routing (or at least find a similar routing) which seems to work perfectly fine for the first two divider, and I suspect I'm missing the big picture here. Any suggestions, explanations, comments, etc. which shed some light on the issue would be truly appreciated. Thanks in advance, Herbert -------------- Yes, I do this for fun! bufmux.zip 8 KB |
|
相关推荐
10个回答
|
|
嗨赫伯特,
BUFGMUX也存在问题。 这是一个失败的路径FDRE - > FDRE,其中一个时钟间域路径失败: Vivado不理解它,它只传播两个时钟并认为两者都可以同时存在,而实际上在任何给定时间只能存在一个。 您需要使用“set_case_analysis”约束来仅分析两个时钟之一,或使用UG903中概述的“set_clock_groups”技术 - 使用约束: 在您的情况下,解决方案是以下约束: set_clock_groups -asynchronous -group [get_clocks n_2_PLLE2_BASE_inst] -group [get_clocks I] 这将减少故障路径的数量。 然后你的1GHz路径仍然失败。 除了降低时钟速度或选择更快的设备或speedgrade之外,我担心没有简单的解决方案。 -1只是不切断它。 我检查过,当你选择-2时,它符合时间。 顺便说一句,不需要双倍缓冲你的时钟。 只需BUFGMUX即可,无需使用BUFG。 最好的祝福, 德赖斯 -------------------------------------------------- -------------------------------------------------- ----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向 在帖子旁边。 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 Hi Herbert, There is also a problem with the BUFGMUX. Here is one of the failing paths FDRE -> FDRE with an inter-clock domain path failing: Vivado doesn't understand it, it just propagates both clocks and thinks that both can exist at the same time, while in reality only one can exist at any given time. You need to either use the "set_case_analysis" constraint to only analyze one of the two clocks or use the "set_clock_groups" technique as outlined in UG903 - Using constraints: In your case, the solution is the following constraint: set_clock_groups -asynchronous -group [get_clocks n_2_PLLE2_BASE_inst] -group [get_clocks I] This will reduce the amount of failing paths. Then your 1GHz paths are still failing. I'm afraid there is no easy solution other than either reducing the clock speed or picking a faster device or speedgrade. -1 just doesn't cut it. I checked and when you select -2, it meets timing. By the way, no need to double buffer your clocks. Just the BUFGMUX suffices, no need to use the BUFGs. Best regards, Dries -------------------------------------------------------------------------------------------------------------------- Please mark the Answer as "Accept as solution" if the information provided is helpful. Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post. View solution in original post |
|
|
|
您使用的是哪种FPGA器件,它是否支持BUFG上的1 GHz时钟?
----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 Which FPGA device are you using, and does it support a 1 GHz clock on a BUFG? ----------------------------Yes, I do this for a living. |
|
|
|
|
|
|
|
嗨赫伯特,
BUFGMUX也存在问题。 这是一个失败的路径FDRE - > FDRE,其中一个时钟间域路径失败: Vivado不理解它,它只传播两个时钟并认为两者都可以同时存在,而实际上在任何给定时间只能存在一个。 您需要使用“set_case_analysis”约束来仅分析两个时钟之一,或使用UG903中概述的“set_clock_groups”技术 - 使用约束: 在您的情况下,解决方案是以下约束: set_clock_groups -asynchronous -group [get_clocks n_2_PLLE2_BASE_inst] -group [get_clocks I] 这将减少故障路径的数量。 然后你的1GHz路径仍然失败。 除了降低时钟速度或选择更快的设备或speedgrade之外,我担心没有简单的解决方案。 -1只是不切断它。 我检查过,当你选择-2时,它符合时间。 顺便说一句,不需要双倍缓冲你的时钟。 只需BUFGMUX即可,无需使用BUFG。 最好的祝福, 德赖斯 -------------------------------------------------- -------------------------------------------------- ----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向 在帖子旁边。 以上来自于谷歌翻译 以下为原文 Hi Herbert, There is also a problem with the BUFGMUX. Here is one of the failing paths FDRE -> FDRE with an inter-clock domain path failing: Vivado doesn't understand it, it just propagates both clocks and thinks that both can exist at the same time, while in reality only one can exist at any given time. You need to either use the "set_case_analysis" constraint to only analyze one of the two clocks or use the "set_clock_groups" technique as outlined in UG903 - Using constraints: In your case, the solution is the following constraint: set_clock_groups -asynchronous -group [get_clocks n_2_PLLE2_BASE_inst] -group [get_clocks I] This will reduce the amount of failing paths. Then your 1GHz paths are still failing. I'm afraid there is no easy solution other than either reducing the clock speed or picking a faster device or speedgrade. -1 just doesn't cut it. I checked and when you select -2, it meets timing. By the way, no need to double buffer your clocks. Just the BUFGMUX suffices, no need to use the BUFGs. Best regards, Dries -------------------------------------------------------------------------------------------------------------------- Please mark the Answer as "Accept as solution" if the information provided is helpful. Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post. |
|
|
|
|
|
|
|
hpoetzl写道:
有趣的是,它的工作正常,包括现在根据Vivado满足的所有时序要求,但它在优化过程中给出了相当神秘的信息: -------------------------------------------------- -------------------------------文件/ var / opt /第9行“create_generated_clock”的必需参数集不正确 AXIOM / PROJ / ZYBO / BUFGMUX / top.xdc --------------------------------------- ------------------------------用法:create_generated_clock [-help] [-name] [-source] [-edges] [ -divide_by] [-multiply_by] [-edge_shift] [-duty_cycle] [-invert] port_pin_list [-add] [-master_clock] [-combinational] [{> | >>}] ---------- -------------------------------------------------- ---------文件/var/opt/AXIOM/PROJ/ZYBO/bufgmux/top.xdc-----------第10行“create_generated_clock”的必需参数集不正确 - -------------------------------------------------- --------用法:create_generated_clock [-help] [-name] [-source] [-edges] [-divide_by] [-multiply_by] [-edge_shift] [-duty_cycle] [-invert] port_pin_list [ - 添加] [-master_clock] [-combinational] [{> | >>}] -------------------------------- --------------------------- ---------- 请注意,时钟已成功重命名为clk0 / clk1并正确列出这些名称。 再次感谢, 赫伯特 嗨赫伯特, 这是一个已知的“bug”,如果它甚至值得称之为;) 不用担心,这在2014年得到了解决 最好的祝福 德赖斯 -------------------------------------------------- -------------------------------------------------- ----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向 在帖子旁边。 以上来自于谷歌翻译 以下为原文 hpoetzl wrote:Hi Herbert, that's a known "bug" if it's even worth calling that ;) No worries, that's resolved in 2014.1 best regards Dries -------------------------------------------------------------------------------------------------------------------- Please mark the Answer as "Accept as solution" if the information provided is helpful. Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post. |
|
|
|
|
|
|
|
|
|
|
|
嗨赫伯特,
道歉,不知怎的,我没有看到那个消息。 我会针对此提交CR。 目前你可以忽略这一点:我看到在route_design clk0和clk1被识别之后。 最好的祝福 德赖斯 -------------------------------------------------- -------------------------------------------------- ----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向 在帖子旁边。 以上来自于谷歌翻译 以下为原文 Hi Herbert, apologies, somehow I didn't see that message. I will file a CR against this. For the moment you can simply ignore this: I see that after route_design clk0 and clk1 are recognized. Best regards Dries -------------------------------------------------------------------------------------------------------------------- Please mark the Answer as "Accept as solution" if the information provided is helpful. Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post. |
|
|
|
实际上,在提交申请时,我注意到这是Vivado 2014.2中已解决的已知问题。
有一个答案记录:AR60269 Vivado 2014.2计划于6月发布。 最好的祝福 德赖斯 -------------------------------------------------- -------------------------------------------------- ----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向 在帖子旁边。 以上来自于谷歌翻译 以下为原文 Actually, while filing, I noticed that it's a known issue that is resolved in Vivado 2014.2. There is an answer record about it: AR60269 Vivado 2014.2 is scheduled for release in June. Best regards Dries -------------------------------------------------------------------------------------------------------------------- Please mark the Answer as "Accept as solution" if the information provided is helpful. Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post. |
|
|
|
只有小组成员才能发言,加入小组>>
2429 浏览 7 评论
2831 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2298 浏览 9 评论
3378 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2468 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1335浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
595浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
457浏览 1评论
2012浏览 0评论
737浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 11:30 , Processed in 1.674448 second(s), Total 99, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号