2012-06-20 72 views
3

我在問和回答這個問題,以便我可以在將來再次找到它...如何讓Xilinx XST從我的設計中合併網絡?

如何讓XST將兩個邏輯上等效的網絡合併爲一個(這通常是一個節約資源的好主意,但從時間視角看可能不是個好主意)?

我有一個設計與2個計數器是由相同的時鐘驅動。 XST將計數器的最低位合併到一個計數器中,但這是一個問題,因爲由於IOB放置約束,計數器需要在設計中分離。我需要計數器(特別是計數器的最低位)是不同的。

回答

6

您需要在RTL中的網上設置2個約束。檢查你的網絡的綜合報告,以確保XST做你想要的。

用Verilog

(* equivalent_register_removal="no" *) 
(* keep="true" *) 
reg signal_name ; 

在VHDL

signal signal_name : std_logic; 
attribute equivalent_register_removal: string; 
attribute equivalent_register_removal of signal_name : signal is "no"; 
attribute keep:string; 
attribute keep of signal_name :signal is "true"; 
+3

作爲一個重要的注意,不同的合成工具有不同的屬性名稱來執行相同的功能。因此,例如,如果您使用Synopsys Synplify進行綜合,則需要使用不同名稱的屬性。這裏的答案適用於XST。 – Josh

相關問題