剛寫了一段 Verilog代碼,辛辛苦苦花了很長時間綜合,在debug的過程中,卻找不到需要debug的信號了,查看網表發現沒有?
這種情況是因為我們的某些中間信號被優化掉了。
被優化掉的原因有可能是你這個信號確實對后面的輸出沒用,我寫的這個項目由于還在中間過程,功能還沒有完善,所以不想把大量的中間信號作為輸出,所以被優化掉了,以至于在debug過程中找不到這些信號。
如何解決這個問題呢?
很簡單,最常用的就是在變量定義的時候添加語句:
(* keep = "true" *)
例如:

這樣即可,從網表中可以找到這些變量了。

當然還有其他辦法,例如:
1、 信號前面將keep hierarchy選擇yes ,或者選擇soft(在綜合時保持層次),這樣有利于你從模塊中找到你想抓取的信號和信號名不被更改。
(* keep_hierarchy = "yes" *)module fre( a, b, c, d);
or
(* keep_hierarchy = "yes" *)fre fre_inst( a, b, c, d);
2、 信號前面使用(* DONT_TOUCH= “{TRUE|FALSE}” *),可以防止信號在綜合,以及布局布線的時候被優化掉。
(* dont_touch = "true" *) wire a;
不在話下。
-
信號
+關注
關注
12文章
2914瀏覽量
80122 -
DEBUG
+關注
關注
3文章
95瀏覽量
21378 -
Vivado
+關注
關注
19文章
857瀏覽量
71102
原文標題:Vivado中如何避免信號被優化掉?
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Vivado時序約束中invert參數的作用和應用場景
程序運行速度很慢如何優化?
開源RISC-V處理器(蜂鳥E203)學習(二)修改FPGA綜合環境(移植到自己的Xilinx FPGA板卡)
弱信號樣品在比表面與孔徑分析中的數據處理與增強技巧
如何使用Nexys Video開發板移植e203
在vivado上進行benchmark跑分(微架構優化之前)
vcs和vivado聯合仿真
Vivado浮點數IP核的握手信號
Vivado浮點數IP核的一些設置注意點
Nucleistudio+Vivado協同仿真教程
信號發生器如何與波束賦形算法配合優化?
Vivado無法選中開發板的常見原因及解決方法
如何使用One Spin檢查AMD Vivado Design Suite Synth的結果
Vivado怎么避免信號被優化掉
評論