能综合和仿真但是不能生成 BIT 流文件的解决方法

能综合和仿真但是不能生成 BIT 流文件的解决方法

生成流文件时老是报错:

错误信息:
[Drc 23-20] Rule violation (LUTLP-1) Combinatorial Loop - 1 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. To allow bitstream creation for designs with combinatorial logic loops (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks LUTLP-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. led_OBUF_inst_i_1.

ERROR: PhysDesignRules:10— The network <shuju_2<12>>is completely unrouted.
这样的错误共有 8332 个。报了三十个,还有 8292 个没报。

1:试了一下,把上升沿或者下降沿敏感的关键词去掉就会出现这个问题,,使用边沿敏感应该需要指出上升沿还是下降沿吧:

2:我遇到过这个问题,原因是因为有些脚管已经在代码中屏蔽掉,但是在约束文件里还存在着对应的约束。

3:这个过程有问题应该是 P&R 的时候资源不够,因为 bitgen 开始的时候会做 DRC。你可以把错误贴出来看看

4:以前我一直按把没用过的多余约束注释掉的法子去做,也能解决问题

5:可是 DRC 会报错是因为 P&R 的结果不满足 FPGA 的 rules,去掉的话可能会导致莫名其妙的问题。
    比如 routing 不够的时候,去掉 DRC,虽然是可以生成 BIT 文件,但是又有什么用处呢,设计哪怕是有一条线没有 routing 好,那么和他相关的功能就完全不工作。
    屏蔽错误是不明智的行为。除非有些明显不影响正常功能或性能的才可以屏蔽。这些都需要仔细再仔细的分析

6:从 error 报告来看,就是资源不够,有信号没有 completly routed。就是表明有信号线没完成布线,8 千多条。看来你是要好好优化代码了。
    block ram 可以用 coregen,从里面找到 blockram 的生成向导,自动生成的。

猜你喜欢

转载自blog.csdn.net/weixin_32087301/article/details/81781898
BIT