簡介
作為國內(nèi)唯一一家具有完全自主知識產(chǎn)權的FPGA與可配置應用平臺CAP(Configurable Application Platform)產(chǎn)品供應商,京微雅格一直在快節(jié)奏的改進與產(chǎn)品配套的軟件開發(fā)環(huán)境。最近,新一代FPGA/CAP設計套件Primace5.0正式發(fā)布了。Primace5.0完整的支持了基于時序驅動的布局布線實現(xiàn)流程(Timing-Driven Placement&Routing Flow),提高了布局布線的成功率,減少了設計與驗證時間。此外,Primace5.0還配套改進了Synopsys SDC兼容的設計約束輸入界面, 方便用戶更加準確高效的輸入時序約束。配合新型的自動尋找最佳實現(xiàn)的優(yōu)化工具iXplorer,Primace 5.0可以極大的加速用戶設計時序收斂過程。為了方便用戶準確描述設計,改善RTL 代碼質(zhì)量,Primace5.0新增了RTL Template功能,其中包括了常用的Verilog設計元素。Primace5.0還第一次完整支持了8051MCU的SoC仿真以及時序仿真(Timing Simulation)。相對上一代版本,新一代Primace顯著改進了用戶信息提示以及流程的穩(wěn)定性。本文將簡要介紹這些改進以及對用戶使用體驗的影響,并推薦幾種可以有效改進設計流程,加速設計過程的方法。
Primace5.0主要新增/改善的功能
Primace5.0中基本設計流程保持了一貫的簡潔的特點,如圖1所示,主要包括設計輸入(RTL編輯等),設計實現(xiàn)(綜合、布局布線等),時序收斂(以靜態(tài)時序分析為基礎的設計、實現(xiàn)調(diào)整),以及碼流下載和片上調(diào)試(DebugWare等)。
圖1: Primace中FPGA/CAP開發(fā)流程
基于時序驅動的布局布線
時序驅動的布局布線是一種已經(jīng)被廣泛證明與接受的設計方法,設計人員通過描述設計的時序約束(包括核心頻率約束,I/O約束,例外約束,特定路徑約束,跨時鐘域約束等)可以有效指導布局布線程序高效、高質(zhì)量的完成設計實現(xiàn)。Primace5.0中接受的時序約束包括:
Basic Timing Path
Clock Setup/Hold, Falling edge
Tsu/Th, Tco, Tpd
Advanced Timing Path
False path
Generated clock
User edited sdc
時序約束輸入輔助
為了方便用戶可以準確高效的輸入時序約束,Primace5.0還配套改進了兼容Synopsys SDC的設計約束輸入界面。如下圖所示:
圖2: 選擇時鐘界面
圖3:時鐘約束設置界面
各類SDC最終匯總在統(tǒng)一的SDC約束文件里,用戶可以集中編輯:
圖4:SDC編輯界面
時序收斂工具iXplorer
配合新型的自動尋找最佳實現(xiàn)的優(yōu)化工具iXplorer,用戶可以極大的加速設計時序收斂過程。
圖5:iXplorer配置界面
Primace5.0對iXplorer進行了多項重要改進。首先,引入了支持并行執(zhí)行流程的新一代流程控制引擎,充分的利用了主流多核系統(tǒng)的計算資源。其次,新開發(fā)的新型fMAX掃描算法Range-Scan,在充分利用了并行計算優(yōu)勢的基礎上,可以智能掃描時序約束(目前主要是時鐘頻率約束),用最短的時間尋找不同時序約束下設計實現(xiàn)的最佳fMAX。此外,iXplorer支持多種掃描結束條件,方便用戶在多種需求下的靈活使用。最后,當用戶得到最佳fMAX結果后,iXplorer提供了便捷的方式讓用戶把相應的約束條件設置到用戶環(huán)境,從而可以得到相應的結果。
RTL模板
為了方便用戶準確描述設計,改善RTL 代碼質(zhì)量,Primace5.0新增了RTL Template功能,其中包括了常用的Verilog設計元素。通過使用RTL Template,用戶可以方便快捷的在設計中插入經(jīng)過Primace軟件驗證的RTL代碼,簡化了用戶設計輸入過程并提高了設計代碼質(zhì)量。目前Primace RTL Template主要支持了以下幾類設計元素:
通用語法(注釋,編譯器控制語法等)
可綜合語法(目前僅支持Verilog可綜合子集,以及Memory, Multiplier等可以自動推斷的代碼模式)
用戶自定義模板
圖6:RTL模板瀏覽界面
SoC仿真與時序仿真
Primace5.0還第一次完整支持了8051MCU的SoC仿真,以及時序仿真(Timing Simulation)。首先,通過簡明易用的工程文件管理,方便用戶對設計文件和測試平臺文件進行編輯和管理;其次,引入了對8051MCU的SoC仿真支持,完全改變了過去調(diào)試8051MCU需要依賴第三方工具的調(diào)試模式,大大提升了用戶SoC設計的調(diào)試效率,加快了用戶SoC設計的整個驗證和調(diào)試流程。最后,引入了對時序仿真的支持,為解決用戶設計中遇到的時序收斂問題提供了一條全新的分析和調(diào)試的途徑,加快了用戶設計時序收斂的過程。
圖7:仿真調(diào)用界面
流程及信息提示
相對上一代版本,新一代Primace顯著改進了用戶信息提示以及流程的穩(wěn)定性。Primace 5.0對用戶設計實現(xiàn)中各個階段的流程信息重新進行了劃分,將所有信息分為4類:命令信息,執(zhí)行信息,警告信息和錯誤信息,對每一類信息逐條進行了編號,并引入了同類信息的折疊顯示,方便用戶通過流程信息了解設計實現(xiàn)的實時情況。此外,良好的用戶信息分類和顯示也提升了流程日志的可用性,進一步方便用戶了解設計實現(xiàn)的過程。
圖8:信息提示界面
使用技巧
時序約束設置方法
時序約束設置基本可以遵循先整體后局部,先高層后低層的規(guī)律分階段、分步驟的逐步細化設置。用戶可以按照以下順序設置時序約束:
核心頻率約束
通過約束每個時鐘的時鐘頻率以及相位關系,可以完成基礎的核心頻率約束。目前Priamce5.0支持的這類約束包括Clock Setup,Clock Hold,F(xiàn)alling edge, Generated Clock。
I/O約束
I/O約束包括引腳分配位置、空閑引腳驅動方式、外部走線延時(InputDelay、OutputDelay)、上下拉電阻、驅動電流強度等。加入I/O約束后的時序約束,才是完整的時序約束。FPGA作為PCB上的一個器件,是整個PCB系統(tǒng)時序收斂的一部分。FPGA作為PCB設計的一部分,是需要PCB設計工程師像對待所有COTS器件一樣,閱讀并分析其I/O Timing Diagram的。FPGA不同于COTS器件之處在于,其I/O Timing是可以在設計后期在一定范圍內(nèi)調(diào)整的;雖然如此,最好還是在PCB設計前期給與充分的考慮并歸入設計文檔。正因為FPGA的I/O Timing會在設計期間發(fā)生變化,所以準確地對其進行約束是保證設計穩(wěn)定可控的重要因素。許多在FPGA重新編譯后,F(xiàn)PGA對外部器件的操作出現(xiàn)不穩(wěn)定的問題都有可能是由此引起的。目前Primace5.0支持的這類約束包括Tsu,Th,Tco,Tpd。
時序例外約束
時序例外約束可以指出在全局約束下的特殊路徑集合,使得最終的時序約束準確,嚴格。正確的應用例外約束可以提高時序分析報告質(zhì)量,加快時序收斂過程。目前Primace5.0通過FalsePath來支持時序例外約束。
“好的時序是設計出來的,不是約束出來的”,好的約束必須以好的設計為前提。沒有好的設計,在約束上下再大的功夫也是沒有意義的。不過,通過正確的約束也可以檢查設計的優(yōu)劣,通過時序分析報告可以檢查出設計上時序考慮不周的地方,從而加以修改。通過幾次“分析-修改-分析”的迭代也可以達到完善設計的目標。應該說,設計是約束的根本,約束是設計的保證,二者是相輔相成的關系。
基于iXplorer的時序收斂方法
時序收斂(Timing Closure)指時序的不斷逼近,原理是采用多次迭代(循環(huán))的技術。因此時序收斂就是一個不斷反復的過程,以確保設計中的每個路徑都滿足時序要求。iXplorer是京微雅格定義的,嵌入在Primace工具中的時序收斂設計流程。Primace有很多選項設置和策略,但是無法保證哪種選項或約束會對所有的設計帶來最佳的效果。iXplorer技術能夠幫助用戶找到最佳的工具選項來實現(xiàn)時序要求或者找到設計的最高性能。iXplorer通過采用不同策略和選項來運行多個布局布線版本并找出滿足時序要求的實現(xiàn)結果。目前iXplorer支持三種搜索算法來滿足不同場景下的使用需求:
Target fMAX,用戶指定期望的fMAX,啟動iXplorer后,iXplorer開始嘗試不同約束與選項,直到達到給定的fMAX停止。
Max Loop Count,用戶指定最多iXplorer嘗試不同約束與選項組合的次數(shù),從給定次數(shù)的運行結果中找到最佳實現(xiàn)結果。
Ending Before Time,用戶給定最晚結束時間,iXplorer會盡可能多的搜索約束與選項的組合,并在給定結束時間時停止。例如,用戶可以設結束時間為第二天早上八點,然后在下班前啟動,第二天上班時去查看結果。
iXplorer會用時序驅動的技術根據(jù)頻率目標是否達到來加強或放松時序目標,這樣就可以判斷出所指定時鐘域的最高頻率限制。在優(yōu)化結束后,用戶可以從iXplorer報告中看到究竟哪種策略和選項對目前的設計是最佳的。
總結
Primace5.0是京微雅格最新發(fā)布的FPGA/CAP設計套件。本文簡要介紹了Primace5.0包括基于時序驅動的布局布線等新功能,并針對時序收斂問題給出了兩種基于Primace5.0的設計方法。限于篇幅,本文不能盡述Primace5.0對用戶設計體驗的改變,如果讀者對Primace5.0有任何問題、意見或建議,請與京微雅格的銷售支持聯(lián)系。