完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
技术信息:董事会:ZCU104 Vivado 2018.1 附加日志文件 约束文件附加 确切的问题: 将以下两行添加到我的XDC文件中没有做任何事情来防止组合循环错误[DRC LUTLP-1]阻止比特流创建。 请提供更多方法来覆盖此错误。 set_property SEVERITY {警告} [get_drc_checks LUTLP-1] set_property ALLOW_COMBINATORIAL_LOOPS是的 扩展说明: 我正在研究一个使用环形振荡器产生异步应力的研究项目,因此我无意去除组合环(环形振荡器)。 我尝试生成比特流时收到以下错误。 [DRC LUTLP-1]组合循环警报:10001 LUT细胞形成组合循环。 这可能会造成竞争条件。 时序分析可能不准确。 首选的解决方案是修改设计以移除组合逻辑循环。 如果循环已知并被理解,则可以通过确认条件并在循环中的任何一个网络上设置以下XDC约束来绕过此DRC:'set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets]'。 循环中的一个网络是rings_inst / temp8 [0] _1。 请评估您的设计......(继续)我搜索了Xilinx论坛,并按照下面链接的线程中的建议进行了搜索, 1. [Drc 23-20]规则违规(LUTLP-1) 2. [DRC 23-20]违反规则(LUTLP-1)(同一标题的第二个) 3.AR#58828 4.调试组合循环 5.AR#60591 6. [DRC 23-20]规则违规(LUTLP-1)组合循环 7. [Drc 23-20]规则违规(LUTLP-1)组合循环(同一标题的第二个) 这些都没有解决我的问题。 我想知道我可以采取哪些其他步骤来覆盖此错误。 我试过进去 set_property SEVERITY {警告} [get_drc_checks LUTLP-1] set_property ALLOW_COMBINATORIAL_LOOPS TRUE直接进入Vivado TcL控制台,而不是XDC文件,但这没有任何效果。 错误消息本身表明我使用以下语法, set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets] 所以我尝试将以下行插入到我的XDC文件中,以便传递所有可能的环形振荡器实例。 set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets ring_basys / rings_inst / temp *] 也许以上是正确的方法,但我的语法不正确? ring_basys是我的顶级模块,rings_inst是包含环形振荡器的实体。 我再次重申,我不会删除这些组合循环,而只是试图找到一个可行的解决错误的方法。 谢谢, 标记 runme.log 171 KB Constraints.txt 41 KB 以上来自于谷歌翻译 以下为原文 Hello, Technical Info:Board: ZCU104 Vivado 2018.1 log file attached constraints file attached Exact Problem: Adding the follow two lines to my XDC file has done nothing to prevent the combinatorial loop error [DRC LUTLP-1] from preventing bit stream creation. Please suggest more ways to override this error. set_property SEVERITY {Warning} [get_drc_checks LUTLP-1]set_property ALLOW_COMBINATORIAL_LOOPS TRUE Expanded Explanation: I am working on a research project that uses ring oscillators to create asynchronous stress so I have no intention of removing the combinatorial loops (ring oscillators). I receive the following error when I attempt to generate a bit-stream. [DRC LUTLP-1] Combinatorial Loop Alert: 10001 LUT cells form a combinatorial loop. This can create a race condition. Timing analysis may not be accurate. The preferred resolution is to modify the design to remove combinatorial logic loops. If the loop is known and understood, this DRC can be bypassed by acknowledging the condition and setting the following XDC constraint on any one of the nets in the loop: 'set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets One net in the loop is rings_inst/temp8[0]_1. Please evaluate your design... (Continues) I searched the Xilinx forums and followed the advice found in the threads linked below, 1. [Drc 23-20] Rule violation (LUTLP-1) 2. [DRC 23-20] Rule Violation (LUTLP-1) (second of same title) 3. AR# 58828 4. Debugging combinatorial loop 5. AR# 60591 6. [DRC 23-20] Rule violation (LUTLP-1) Combinatorial Loop 7. [Drc 23-20] Rule violation (LUTLP-1) Combinatorial Loop (second of same title) None of these has resolved my problem. I would like to know what other steps I can take to override this error. I have tried entering set_property SEVERITY {Warning} [get_drc_checks LUTLP-1]set_property ALLOW_COMBINATORIAL_LOOPS TRUEdirectly into the Vivado TcL console as opposed to in the XDC file but this had no effect. The error message itself suggests that I use the following syntax, set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets So I tried inserting the following line into my XDC file in order to pass all possible ring oscillator instances. set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets ring_basys/rings_inst/temp*] Maybe the above is the correct approach but my syntax is incorrect? ring_basys is my top module and rings_inst is the entity that contains the rings oscillators. Once again I would like to repeat that I will not be removing these combinatorial loops and am simply trying to find a viable work around for the error. Thank you, Mark runme.log 171 KB Constraints.txt 41 KB |
|
相关推荐
5个回答
|
|
你好@ mmusil。
我建议尝试使用Tcl而不是XDC文件。 存在XDC限制,其中在编写设计检查点时不保存DRC对象(get_drc_checks),例如用于write_bitstream的设计检查点。 set_property USED_IN write_bitstream [get_files /sev.xdc] https://www.xilinx.com/support/answers/71393.html 此外,将-segments选项添加到get_nets可能会有所帮助。 set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets -segments] -------------------------------------------------- -----------------------不要忘记回答,kudo,并接受为解决方案.------------- -------------------------------------------------- ---------- 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 Hi @mmusil. I would suggest trying a Tcl instead of an XDC file. There is an XDC limitation where DRC objects (get_drc_checks) are not saved when writing design checkpoints, like the one used for write_bitstream. set_property USED_IN write_bitstream [get_files https://www.xilinx.com/support/answers/71393.html Also, adding the -segments option to get_nets could help. set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets -segments ------------------------------------------------------------------------- Don’t forget to reply, kudo, and accept as solution. ------------------------------------------------------------------------- View solution in original post |
|
|
|
嗨,@ mmusil,
1.您可以尝试以下链接中描述的方法:(在源代码中添加属性) https://forums.xilinx.com/t5/Implementation/Allow-Combinatorial-Loops/m-p/846193#M20427 2.或者使用另一种命令格式: set_property ALLOW_COMBINATORIAL_LOOPS true [get_nets -of_objects [get_cells]] -------------------------------------------------- -----------------------不要忘记回答,kudo,并接受为解决方案.------------- -------------------------------------------------- ---------- 以上来自于谷歌翻译 以下为原文 Hi, @mmusil , 1. You can try the method described in the below link: (add the property in the source code) https://forums.xilinx.com/t5/Implementation/Allow-Combinatorial-Loops/m-p/846193#M20427 2. Or use another format of the command: set_property ALLOW_COMBINATORIAL_LOOPS true [get_nets -of_objects [get_cells ------------------------------------------------------------------------- Don't forget to reply, kudo, and accept as solution. ------------------------------------------------------------------------- |
|
|
|
在我看来,问题是组合循环中有大量的细胞 - 报告显示10001个细胞。
似乎Vivado希望您在该循环中将该属性应用于每个网络。 这将需要更大的set_property命令集,或者可能是对正则表达式的创造性使用。 人们想知道您是否可以将该属性应用于整个设计 - 即每个网络。 运行可能需要一段时间。 它基本上会关闭全局检查。 但它可能会奏效。 当然,这是用火箭筒杀死蚊子。 我的两分钱,值得一试。 机器时间比工程时间便宜.... 如果这确实有效,那么它可能会让Xilinx有一些动力来添加一个全局开关以转换该检查,而不是仅仅具有网络精确版本。 祝你好运 标记 以上来自于谷歌翻译 以下为原文 Looks to me the problem is that there's a LARGE number of cells in the combinatorial loop - the report indicates 10001 cells. It appears that Vivado wants you to apply that property to EVERY net on that loop. That'll take a rather larger set of set_property commands, or perhaps a rather creative use of regular expressions. One wonders if you could just apply the property to the WHOLE design - i.e. every net. It may take a while to run. It basically turns off that check globally. But it might work. Sure, this is using a bazooka to kill a mosquito. My two cents, it's worth a shot. Machine time is cheaper than engineering time.... If that does work, it might give Xilinx some motivation to add a global switch to turn of that check, instead of only having the net-precise only version. Good Luck Mark |
|
|
|
你好@ mmusil。
我建议尝试使用Tcl而不是XDC文件。 存在XDC限制,其中在编写设计检查点时不保存DRC对象(get_drc_checks),例如用于write_bitstream的设计检查点。 set_property USED_IN write_bitstream [get_files /sev.xdc] https://www.xilinx.com/support/answers/71393.html 此外,将-segments选项添加到get_nets可能会有所帮助。 set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets -segments] -------------------------------------------------- -----------------------不要忘记回答,kudo,并接受为解决方案.------------- -------------------------------------------------- ---------- 以上来自于谷歌翻译 以下为原文 Hi @mmusil. I would suggest trying a Tcl instead of an XDC file. There is an XDC limitation where DRC objects (get_drc_checks) are not saved when writing design checkpoints, like the one used for write_bitstream. set_property USED_IN write_bitstream [get_files https://www.xilinx.com/support/answers/71393.html Also, adding the -segments option to get_nets could help. set_property ALLOW_COMBINATORIAL_LOOPS TRUE [get_nets -segments ------------------------------------------------------------------------- Don’t forget to reply, kudo, and accept as solution. ------------------------------------------------------------------------- |
|
|
|
我认为你是正确的,它与XDC文件DRC对象没有在设计检查点保存。
但是,我之前尝试将命令直接输入控制台,但没有成功。 最终有效的是将命令直接输入TcL控制台并使用控制台命令编写位流。 我还将覆盖命令放在XDC文件中。 我重新创建成功的比特流生成的步骤如下所述。 我确信其中一些步骤是多余的/不必要的,但现在已经足够了。 如果我在项目结束时有时间,我会在这里发布一个TcL脚本,可以更简洁地重新创建。 1.将以下行添加到XDC文件中 set_property SEVERITY {警告} [get_drc_checks LUTLP-1] set_property ALLOW_COMBINATORIAL_LOOPS TRUE2。 使用Vivado GUI,运行综合和实现。 运行后,使用Vivado GUI中的交互项打开实现的设计。 3.使用以下命令从TcL控制台运行位流生成。 set_property SEVERITY {警告} [get_drc_checks LUTLP-1] set_property IS_ENABLED 0 [get_drc_checks {CSCL-1}] write_bitstream c: my path to project design1.bit 感谢你的帮助, 马克M. 以上来自于谷歌翻译 以下为原文 I think you are correct that it is related to the XDC file DRC objects not being saved at design check points. However, I had tried entering the commands directly into the console before to no success. What worked in the end was both entering the commands directly into the TcL console and writing the bit-stream using the console commands. I also put the override commands in the XDC file. My steps to recreate a successful bit-stream generation are described below. I am certain that some of these steps are redundant/ unnecessary but they are sufficient for now. If I have time at the end of my project I will post a TcL script here that recreates this more succinctly. 1. Add the following lines to the XDC file set_property SEVERITY {Warning} [get_drc_checks LUTLP-1] set_property ALLOW_COMBINATORIAL_LOOPS TRUE2. Using the Vivado GUI, run synthesis and implementation. Once ran, open the implemented design using the interactive item in the Vivado GUI. 3. Run the bit stream generation from the TcL console using the following commands. set_property SEVERITY {Warning} [get_drc_checks LUTLP-1] set_property IS_ENABLED 0 [get_drc_checks {CSCL-1}]write_bitstream c:mypathtoprojectdesign1.bit Thanks for all your help, Mark M. |
|
|
|
只有小组成员才能发言,加入小组>>
2384 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2431 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
757浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
547浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
369浏览 1评论
1965浏览 0评论
684浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 13:16 , Processed in 1.357670 second(s), Total 56, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号