大多數(shù) FPGA 設(shè)計人員都充滿熱情地開展專業(yè)化問題解決和創(chuàng)造性工作,當(dāng)然,,他們工作壓力也相當(dāng)大,,工作流程也非常單調(diào)乏味。幸運的是,,EDA 公司和 FPGA 廠商不斷開發(fā)新的工具和方法,,推進繁瑣任務(wù)的自動化,幫助設(shè)計團隊集中精力做好創(chuàng)造性工作,。下面我們就來看看 FPGA 工具流程的演進發(fā)展,,了解一下現(xiàn)代 FPGA 團隊是如何利用 RTL分析、約束生成和綜合導(dǎo)向來減少設(shè)計迭代的,。
如果您已經(jīng)是一名 FPGA 設(shè)計專業(yè)人士,,那么將擁有輝煌的職業(yè)發(fā)展前景,因為越來越多傳統(tǒng)上需要 ASIC 實現(xiàn)的設(shè)計
現(xiàn)已改用 FPGA,。隨著新一代芯片工藝技術(shù)的推出,,設(shè)計 ASIC的成本正呈幾何級數(shù)增加。與此同時,,F(xiàn)PGA 廠商則能利用最新工藝技術(shù)實現(xiàn)新一代產(chǎn)品,,且不會讓客戶承擔(dān)過重的成本負擔(dān)。
但不容樂觀的是,,F(xiàn)PGA 設(shè)計相當(dāng)復(fù)雜,,需要跟 ASIC 流程一樣復(fù)雜的工具流程,這往往需要整個設(shè)計團隊的共同努力才能完成,,而不能光靠一名設(shè)計人員,。因此,F(xiàn)PGA 設(shè)計團隊在著手ECO 或新項目之前應(yīng)認真分析現(xiàn)有的工具套件,。那么好消息呢,?就是新一代EDA 工具如雨后春筍般涌出,可助他們一臂之力,。設(shè)計人員可選擇采用標(biāo)準(zhǔn)數(shù)據(jù)格式且易于安裝和使用的工具,,簡化流程集成工作,而且能夠在選定的平臺(不管是 Windows 還是 Linux)上實現(xiàn)本機運行,。
FPGA 工具流程的發(fā)展演進
這些年來,,F(xiàn)PGA 設(shè)計日趨復(fù)雜,工具流程也隨之發(fā)展,,而且越來越像 ASIC流程,。上世紀(jì) 90 年代,F(xiàn)PGA 流程(見
圖 1 的流程 A)跟當(dāng)時的簡易 ASIC 流程一樣,,最初以 RTL 為基礎(chǔ),,并采用綜合及布局布線工具,。隨著設(shè)計變得進一步復(fù)雜化,F(xiàn)PGA 團隊在流程中增加了時序分析功能,,幫助客戶確保設(shè)計能按指定的頻率運行,。今天的 FPGA已經(jīng)發(fā)展為龐大的系統(tǒng)平臺,設(shè)計團隊通常要通過 RTL 分析來最小化設(shè)計迭代,,并確保設(shè)計能夠?qū)崿F(xiàn)相應(yīng)的性能目標(biāo),。
進而言之,,由于今天的 FPGA 設(shè)計項目非常龐大復(fù)雜,,所以設(shè)計人員需要想盡一切辦法更好地了解設(shè)計的規(guī)模和復(fù)雜性,以便更好地控制流程中的工具,,加速設(shè)計上市進程?,F(xiàn)代FPGA 設(shè)計團隊正在采用一種新型方法,那就是在整個設(shè)計流程中貫穿約束機制,。我們不妨看看當(dāng)下最流行的,、現(xiàn)已得到賽靈思最新 Vivado ™ 流程支持的一種約束方法——Synopsys 設(shè)計約束 (SDC) 格式,以及了解如何通過 SDC 讓設(shè)計項目受益,。
什么是 SDC ,?
SDC 是一款基于 Tcl 的格式,可用來設(shè)定設(shè)計目標(biāo),,包括設(shè)計的時序,、功耗和面積約束。一些產(chǎn)品能讀取或?qū)懭?SDC,。一些示例 SDC 約束包括時序約束(如創(chuàng)建時鐘,、創(chuàng)建生成時鐘、設(shè)置輸入延遲和設(shè)置輸出延遲)和時序例外(如設(shè)置錯誤路徑,、設(shè)置最大延遲,、設(shè)置最小延遲以及設(shè)置多周期路徑)。這些 SDC 約束通常應(yīng)用于寄存器,、時鐘,、端口、引腳和網(wǎng)絡(luò)(連線)等設(shè)計對象,。
需要指出的是,,盡管 SDC 是標(biāo)準(zhǔn)化格式,但生成的 SDC 和讀取 SDC之間還是略有差異(不同工具之間有差異),。了解這些差異并積極采取措施,有助于避免意外情況的發(fā)生,。
SDC 不應(yīng)過于復(fù)雜
SDC 最常見的應(yīng)用就是約束綜合,。一般說來,,設(shè)計人員要考慮設(shè)計的哪些方面需要約束,并為其編寫 SDC,。設(shè)計人員通常要執(zhí)行流程 B 中描述的流程,,首次肯定無法進行時序收斂。隨后要反復(fù)手動盲目嘗試添加 SDC,,以實現(xiàn)時序收斂,,或讓設(shè)計能在指定的頻率上工作。許多從事過上述工作的設(shè)計人員都抱怨說設(shè)計迭代要花好幾個星期,,往往會拖延設(shè)計進程,。
迭代的另一個問題在于,數(shù)名設(shè)計人員可能在不同的地點為 SDC 設(shè)計不同的模塊,。這樣設(shè)計工作會變得非常復(fù)雜,,設(shè)計團隊必須想辦法驗證SDC,避免在芯片級封裝階段出現(xiàn)層級名稱的沖突,。要確保進行有效的設(shè)計協(xié)作,,就必須采用適當(dāng)?shù)墓ぞ吆头椒ā?/p>
流程 C 是現(xiàn)代化流程,除了流程B 的工具之外還采用了分析,、SDC 約束和高層次綜合技術(shù),,在解決上述問題方面發(fā)揮了重大作用。
綜合向?qū)?/strong>
對典型的 FPGA 設(shè)計而言,,綜合解決方案還處于探索階段,,不管是面積、速度還是功耗的優(yōu)化,,都存在多個局部最大值和局部最小值,。利用智能向?qū)В覀兡軐崿F(xiàn)最佳解決方案,,避免綜合工具聚集到任意的局部最小值,。最有效的向?qū)е痪褪遣捎缅e誤路徑和多周期路徑,避免綜合工具為不必要的組件浪費寶貴的優(yōu)化時間,。
不過,,找到設(shè)計中的所有錯誤路徑 (FP) 和多周期路徑 (MCP) 并不容易?;ㄉ献銐虻臅r間,,我們能找到一些簡單的 FP 和 MCP,不過一些涉及狀態(tài)機和計數(shù)器的復(fù)雜 FP 和 MCP(特別是在多個層級中)則很難找到,。幸運的是,,F(xiàn)PGA 設(shè)計人員可采用Blue Pearl Software 等創(chuàng)新公司推出的工具執(zhí)行自動化 FP 和 MCO 生成,從而確保完整性,、全面性和準(zhǔn)確性,。此外,,這些工具還能為每個 FP 和MCP 提供不同的機制,包括原理圖,、斷言和審核路徑,,從而讓用戶驗證其正確性。
由于 FPGA 廠商和商用 EDA 廠商的合作進一步加強,,采用通用接口,,設(shè)計團隊就能夠?qū)?Blue Pearl 軟件套件集成到他們所青睞的工作流程中。既然賽靈思的最新 Vivado 設(shè)計套件支持 SDC,,那么在不同工具之間溝通設(shè)計意圖就變得極其簡單(圖 2),。
除了與賽靈思及其他 FPGA 廠商協(xié)作外,,Blue Pearl 公司還同Synopsys 開展密切合作,。這兩家公司共同研究如何讓綜合工具接受盡可能多的自動生成的 SDC,同時避免設(shè)計人員進行任何手動修改,。由于 SDC 格式對不同工具的使用差異很小,,因此工作團隊快速明確命名方案是順利實現(xiàn)互操作性的一大挑戰(zhàn)。
這里的解決方案是在綜合的第一階段(編譯)后截取映射名稱,,在 BluePearl 軟件套件的 SDC 生成工具中使用名稱(見圖 3),,并為綜合工具的第二階段(優(yōu)化)提供適當(dāng)?shù)?SDC。該方法給 FPGA 設(shè)計人員提供了一個最佳解決方案,,無需花時間處理格式化問題,。
以下給出非優(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 軟件套件能實現(xiàn)一些任務(wù)的自動化,, 設(shè)計人員對其結(jié)果質(zhì)量(QoR) 很滿意。表 1 顯示了用 Blue Pearl 軟件套件自動生成 SDC,,能將示例設(shè)計的 QoR 提升 20%,,該示例采用多個 IP 核,其中包括 Verilog 的R1200 和 VHDL 的 AES 加密,。
運行 1 未采用 Blue Pearl 軟件,結(jié)果沒有實現(xiàn)時序收斂,。設(shè)計人員用RTL 設(shè)計或工具約束進行迭代以滿足60MHz 的要求很容易就要花上好幾個星期的時間,。在運行 2 中,Blue Pearl軟件套件幾分鐘就能生成 SDC,,而自動生成的SDC 足以指導(dǎo)下游工具滿足時序要求,。
顯然,對 FPGA 設(shè)計人員來說,降低壓力,、簡化工作的一個好辦法就是跟別人一樣添加 RTL 分析,、SDC 生成和綜合向?qū)Чぞ摺H缬私飧嘈畔?,歡迎訪問: www.bluepearlsoftware.com 。