在賽靈思FPGA設計中保留可重復結果
高扇出信號
本文引用地址:http://www.104case.com/article/119148.htm高扇出信號通常會成為設計中的決定因素。即使大部分綜合工具支持扇出控制,在 HDL 中復用這些信號來得到可重復性更高的結果也是明智之舉。設計人員應該把這種策略和指令結合起來,以確保綜合工具不會移除這些重復信號。如果一個高扇出信號位于邏輯頂層,則可以復用該信號,然后用單獨信號驅動每一個頂層模塊。
如果綜合工具扇出控制不能得到預期結果并且無法修改 HDL,那么在BRAM 的 MAP 邏輯中采用寄存器復用約束條件以及最高扇出約束條件,往往會產生比綜合更好的寄存器復用選擇。更多相關信息,請參閱 《約束條件指南》(UG625) 中的 MAX_FANOUT。做為一個常見的調試問題,跨越層級時保持一致的信號名稱更便于追蹤存在問題的路徑。如果信號名稱經常改變,則很難追蹤時序報告和其它調試輸出。把信號方向放入所有模塊或實體的端口定義中也有所裨益。
綜合優化
綜合會對可重復結果產生巨大影響。如果從綜合過程得不到最佳輸出網表,就無法在實施工具中產生理想條件。設計人員可以采用多種綜合技術幫助改善實施結果。
在執行綜合時采用時序約束條件至關重要。用戶往往會在綜合過程中過度約束,然后在賽靈思實施工具中放寬時序約束條件。這樣可以增加綜合工具負擔, 從而減輕實施工具的負擔。
接下來使用綜合工具產生的時序報告。如果一條路徑在綜合與實施過程中無法滿足時序要求,則可以修改 HDL或綜合選項,以便在綜合之后滿足時序要求。這樣可以在實施階段節約時間。
在綜合過程中得到可重復結果是在實施工具中得到可重復結果的最佳途徑。大多數綜合工具支持自下而上的流程,其為設計的頂層以及各個下層模塊建立了獨立綜合項目。用戶可以根據HDL 變更情況控制更新網表。大多數商用綜合工具都具有增量流程。
平面布局規劃的重要性
平面布局規劃把組件定位到設計中的一個具體位置或者范圍。這可以減少布局變化,從而提高設計的可重復性。通過平面布局規劃或者采用位置約束 (或兼而用之)通常可以實現更高的性能。
也就是說,糟糕的平面布局規劃或位置約束會導致無法達到時序要求。平面布局規劃有一定技術含量,要求具備工具和設計方面的高級知識。你可以采用符合時序要求的實施結果做為指導原則來創建理想的布局。
如果主板需求是選擇引腳布局的
主要因素,FPGA 實施工具可能很難獲得時序維持可重復結果。但是設計人員可以借助多種有助于實現可重復性的技巧。
首先要清楚數據流。比如,數據會從中心 I/O 流向側 I/O。可以把與總線相關的所有引腳保持在 FPGA 的同一領域,以此限制控制信號的布線距離。I/O總線控制信號布置在相關地址與數據總線附近。需要一起優化的信號應當布置在一起。如果更關注主板布線,則在 I/O上利用流水線技術優化寄存器有助于改進引腳布局差強人意的 FPGA 布線。
區域組平面布局規劃
區域組平面布局規劃是一種高級平面布局規劃技術,其定義了模塊在FPGA 之內的位置。雖然該技術易于使用, 但常常被誤用, 從而導致所解決的問題比所造成問題更多這一糟糕平面布局結果。有一些出色平面布局規劃的總體指導原則可以幫助您避免走入上述誤區。應當使所有區域組保持相似的利用率。比如,應避免讓一個分組利用率達到 60% 而讓另一個達到 99%。不要重疊區域組。唯一的例外情況是,如果兩個不同的區域組具有需要布置在一起的某些邏輯單元 , 則允許重疊 CLB 的一、兩行或列。此時用戶負責確保為兩個區域組約束提供足夠資源。
如果需要把設計的兩個不同邏輯部分放在相同物理位置,則應當把它們放入同一個區域組。一般允許一層嵌套,也就是父區域組中的一個子區域組。如果一個大區域組里的一小部分需要布置到某個狹窄區域, 則需要上述分層。僅對設計中的關鍵部分進行平面布局規劃而讓相關工具決定非關鍵邏輯的布局非常重要。連接到固定資源 (如 I/O、收發器或處理器塊)的邏輯可能會從平面布局規劃中受益。可以采用順利實施的結果做為準則來確定布局或時序問題。諸如賽靈思 PlanAhead ™軟件 (圖 1)和時序分析器等工具有助于可視化顯示相關問題。
盡可能減少各個全局時鐘所用區域數量以及各個區域的時鐘 (區域與全局)數量一般會有所裨益。如果您準備為某個時鐘域的增加更多邏輯,切勿過度約束,而應當進行相應規劃。如果某個時鐘域的時鐘全部投入使用,則很難找到有效布局。而 PlanAhead 軟件所提供的對齊時鐘域功能可以簡化上述平面布局規劃工作。對于擁有 10 多個時鐘域的Virtex® FPGA 設計而言,當前實施方案所用的時鐘域位于 .map 報告文件中, 同時還附帶了 UCF 約束條件。
評論