1. 程式人生 > >能綜合和模擬但是不能生成 BIT 流檔案的解決方法

能綜合和模擬但是不能生成 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 的生成嚮導,自動生成的。