在一些應用中,有些特定的信號我們需要保留,用于進行采集檢測,而綜合器會自動優化把它綜合掉,那么,應該怎樣告訴綜合器,不讓它優化掉我們需要保留的信號呢?
對這種情況的處理是增加約束,共有2種情況:
1、需要保留的信號是引線
Verilog HDL—定義的時候在后面增加/* synthesis keep */。
例如:wire keep_wire /* synthesis keep */;
2、需要保留是的寄存器
跟reg相關的synthesis attribute,共有兩種,分別是/*synthesis noprune*/和/*synthesis preserve*/,兩者的差別如下:
/*synthesis noprune*/ 避免 Quartus II 優化掉沒output的reg。
/*synthesis preserve*/避免 Quartus II 將reg優化為常數,或者合并重復的reg。
定義的時候在后面增加相關的約束語句。
例如:reg reg1 /* synthesis noprune*/;或者 reg reg1 /* synthesis preserve */;
將/*synthesis noprune*/等synthesis attribute 語句放在module后面,這樣整個module的reg將不被最佳化,從而不用再一一寄存器指定。
注意:以上所提到的synthesis attribute必須寫在結束分號前面,寫在分號后面只相當于注釋:
正確:reg reg1 /* synthesis preserve */;
錯誤:reg reg1 ;/* synthesis preserve */
-
FPGA
+關注
關注
1630文章
21799瀏覽量
606144 -
FPGA設計
+關注
關注
9文章
428瀏覽量
26634
原文標題:FPGA設計中如何保持信號不被綜合
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論