《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 新的工具可簡化FPGA綜合

新的工具可簡化FPGA綜合

2013-08-05
關鍵詞: 開發(fā)工具 FPGA EDA RTL

大多數 FPGA 設計人員都充滿熱情地開展專業(yè)化問題解決和創(chuàng)造性工作,當然,他們工作壓力也相當大,工作流程也非常單調乏味。幸運的是,EDA 公司和 FPGA 廠商不斷開發(fā)新的工具和方法,推進繁瑣任務的自動化,幫助設計團隊集中精力做好創(chuàng)造性工作。下面我們就來看看 FPGA 工具流程的演進發(fā)展,了解一下現代 FPGA 團隊是如何利用 RTL分析、約束生成和綜合導向來減少設計迭代的。

如果您已經是一名 FPGA 設計專業(yè)人士,那么將擁有輝煌的職業(yè)發(fā)展前景,因為越來越多傳統上需要 ASIC 實現的設計
現已改用 FPGA。隨著新一代芯片工藝技術的推出,設計 ASIC的成本正呈幾何級數增加。與此同時,FPGA 廠商則能利用最新工藝技術實現新一代產品,且不會讓客戶承擔過重的成本負擔。

但不容樂觀的是,FPGA 設計相當復雜,需要跟 ASIC 流程一樣復雜的工具流程,這往往需要整個設計團隊的共同努力才能完成,而不能光靠一名設計人員。因此,FPGA 設計團隊在著手ECO 或新項目之前應認真分析現有的工具套件。那么好消息呢?就是新一代EDA 工具如雨后春筍般涌出,可助他們一臂之力。設計人員可選擇采用標準數據格式且易于安裝和使用的工具,簡化流程集成工作,而且能夠在選定的平臺(不管是 Windows 還是 Linux)上實現本機運行。

FPGA 工具流程的發(fā)展演進
這些年來,FPGA 設計日趨復雜,工具流程也隨之發(fā)展,而且越來越像 ASIC流程。上世紀 90 年代,FPGA 流程(見
圖 1 的流程 A)跟當時的簡易 ASIC 流程一樣,最初以 RTL 為基礎,并采用綜合及布局布線工具。隨著設計變得進一步復雜化,FPGA 團隊在流程中增加了時序分析功能,幫助客戶確保設計能按指定的頻率運行。今天的 FPGA已經發(fā)展為龐大的系統平臺,設計團隊通常要通過 RTL 分析來最小化設計迭代,并確保設計能夠實現相應的性能目標。

圖 1 - FPGA 工具流程隨時間不斷發(fā)展,越來越像 ASIC

進而言之,由于今天的 FPGA 設計項目非常龐大復雜,所以設計人員需要想盡一切辦法更好地了解設計的規(guī)模和復雜性,以便更好地控制流程中的工具,加速設計上市進程。現代FPGA 設計團隊正在采用一種新型方法,那就是在整個設計流程中貫穿約束機制。我們不妨看看當下最流行的、現已得到賽靈思最新 Vivado ™ 流程支持的一種約束方法——Synopsys 設計約束 (SDC) 格式,以及了解如何通過 SDC 讓設計項目受益。

什么是 SDC ?
SDC 是一款基于 Tcl 的格式,可用來設定設計目標,包括設計的時序、功耗和面積約束。一些產品能讀取或寫入 SDC。一些示例 SDC 約束包括時序約束(如創(chuàng)建時鐘、創(chuàng)建生成時鐘、設置輸入延遲和設置輸出延遲)和時序例外(如設置錯誤路徑、設置最大延遲、設置最小延遲以及設置多周期路徑)。這些 SDC 約束通常應用于寄存器、時鐘、端口、引腳和網絡(連線)等設計對象。

需要指出的是,盡管 SDC 是標準化格式,但生成的 SDC 和讀取 SDC之間還是略有差異(不同工具之間有差異)。了解這些差異并積極采取措施,有助于避免意外情況的發(fā)生。

SDC 不應過于復雜
SDC 最常見的應用就是約束綜合。一般說來,設計人員要考慮設計的哪些方面需要約束,并為其編寫 SDC。設計人員通常要執(zhí)行流程 B 中描述的流程,首次肯定無法進行時序收斂。隨后要反復手動盲目嘗試添加 SDC,以實現時序收斂,或讓設計能在指定的頻率上工作。許多從事過上述工作的設計人員都抱怨說設計迭代要花好幾個星期,往往會拖延設計進程。

迭代的另一個問題在于,數名設計人員可能在不同的地點為 SDC 設計不同的模塊。這樣設計工作會變得非常復雜,設計團隊必須想辦法驗證SDC,避免在芯片級封裝階段出現層級名稱的沖突。要確保進行有效的設計協作,就必須采用適當的工具和方法。

流程 C 是現代化流程,除了流程B 的工具之外還采用了分析、SDC 約束和高層次綜合技術,在解決上述問題方面發(fā)揮了重大作用。

綜合向導
對典型的 FPGA 設計而言,綜合解決方案還處于探索階段,不管是面積、速度還是功耗的優(yōu)化,都存在多個局部最大值和局部最小值。利用智能向導,我們能實現最佳解決方案,避免綜合工具聚集到任意的局部最小值。最有效的向導之一就是采用錯誤路徑和多周期路徑,避免綜合工具為不必要的組件浪費寶貴的優(yōu)化時間。

不過,找到設計中的所有錯誤路徑 (FP) 和多周期路徑 (MCP) 并不容易?;ㄉ献銐虻臅r間,我們能找到一些簡單的 FP 和 MCP,不過一些涉及狀態(tài)機和計數器的復雜 FP 和 MCP(特別是在多個層級中)則很難找到。幸運的是,FPGA 設計人員可采用Blue Pearl Software 等創(chuàng)新公司推出的工具執(zhí)行自動化 FP 和 MCO 生成,從而確保完整性、全面性和準確性。此外,這些工具還能為每個 FP 和MCP 提供不同的機制,包括原理圖、斷言和審核路徑,從而讓用戶驗證其正確性。

由于 FPGA 廠商和商用 EDA 廠商的合作進一步加強,采用通用接口,設計團隊就能夠將 Blue Pearl 軟件套件集成到他們所青睞的工作流程中。既然賽靈思的最新 Vivado 設計套件支持 SDC,那么在不同工具之間溝通設計意圖就變得極其簡單(圖 2)。

圖 2 - Blue Pearl 軟件套件與賽靈思的 Vivado 設計套件如何協同工作。

除了與賽靈思及其他 FPGA 廠商協作外,Blue Pearl 公司還同Synopsys 開展密切合作。這兩家公司共同研究如何讓綜合工具接受盡可能多的自動生成的 SDC,同時避免設計人員進行任何手動修改。由于 SDC 格式對不同工具的使用差異很小,因此工作團隊快速明確命名方案是順利實現互操作性的一大挑戰(zhàn)。

這里的解決方案是在綜合的第一階段(編譯)后截取映射名稱,在 BluePearl 軟件套件的 SDC 生成工具中使用名稱(見圖 3),并為綜合工具的第二階段(優(yōu)化)提供適當的 SDC。該方法給 FPGA 設計人員提供了一個最佳解決方案,無需花時間處理格式化問題。

圖 3 - Blue Pearl 軟件可簡化格式問題。

以下給出非優(yōu)化型約束編寫示例:
set_false_path -from
[get_cells
{i_tv80_core.SP[*]}] -to
[get_cells
{i_tv80_core.i_reg.RegsL}]
優(yōu)化后則為:
set_false_path -from
[get_cells
{i_tv80_core.SP[*]}] -to
[get_cells
{i_tv80_core.i_reg.RegsL_2[
7:0]}]

能取得哪些實際的效果?
Blue Pearl 軟件套件能實現一些任務的自動化, 設計人員對其結果質量(QoR) 很滿意。表 1 顯示了用 Blue Pearl 軟件套件自動生成 SDC,能將示例設計的 QoR 提升 20%,該示例采用多個 IP 核,其中包括 Verilog 的R1200 和 VHDL 的 AES 加密。

表 1 - 兩種運行相比較,反映出工作流程中添加 Blue Pearl 套件的優(yōu)勢

運行 1 未采用 Blue Pearl 軟件,結果沒有實現時序收斂。設計人員用RTL 設計或工具約束進行迭代以滿足60MHz 的要求很容易就要花上好幾個星期的時間。在運行 2 中,Blue Pearl軟件套件幾分鐘就能生成 SDC,而自動生成的SDC 足以指導下游工具滿足時序要求。

顯然,對 FPGA 設計人員來說,降低壓力、簡化工作的一個好辦法就是跟別人一樣添加 RTL 分析、SDC 生成和綜合向導工具。如欲了解更多信息,歡迎訪問: www.bluepearlsoftware.com 。

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。