FPGA和SoC在下一代功能上實現(xiàn)了跨越式發(fā)展。這包括數(shù)百萬個邏輯單元、復(fù)雜的接口協(xié)議,以及PowerPlay技術(shù)、嵌入式硬核模塊和硬核知識產(chǎn)權(quán)(IP)模塊等特性,包括了數(shù)字信號處理器(DSP)和微處理器。設(shè)計人員需要新的軟件工具來幫助縮短設(shè)計總時間,降低下一代可編程器件的風(fēng)險和成本,同時大幅度提高設(shè)計效能,促進產(chǎn)品及時面市。傳統(tǒng)上,F(xiàn)PGA設(shè)計工具重點關(guān)注的是縮短編譯時間。這方面雖然很重要,但是還不足以解決今后十年面臨的產(chǎn)品及時面市難題。
§ Spectra-Q™是進一步提高設(shè)計效能的另一種新措施——減少設(shè)計迭代次數(shù),而且還大幅度縮短了絕對編譯時間。Spectra-Q是一種新引擎,具有:一組新的綜合、布局、布線和時序分析算法。這些算法使用分層數(shù)據(jù)庫和現(xiàn)代計算平臺,將編譯時間縮短了8倍。
§ 一種新的分層數(shù)據(jù)庫支持保留任意階段的設(shè)計實現(xiàn)——從綜合到布線。由于采用了“編譯一次”IP和設(shè)計模塊方法,因此,極大的減少了設(shè)計迭代。
§ 統(tǒng)一的編譯器技術(shù)支持不同的設(shè)計輸入工具。這些設(shè)計輸入工具支持包括OpenCL、C/C++等在內(nèi)的多種設(shè)計語言。由于提供了多種設(shè)計輸入工具,因此,設(shè)計人員可以采用他們習(xí)慣的語言或者設(shè)計環(huán)境以更高的效率進行FPGA設(shè)計。
更短的編譯時間
Spectra-Q引擎將設(shè)計迭代時間縮短了8倍。之所以如此是因為采用了新的分層數(shù)據(jù)庫以及數(shù)據(jù)庫基礎(chǔ)上功能強大的算法。Spectra-Q從三種不同的角度來處理編譯時間問題——一組改進后更快的綜合、布局、布線和時序新算法,這將編譯時間縮短了2倍,漸進式優(yōu)化新流程,編譯總時間縮短了2倍,最后,分布式編譯,使用了先進的多核處理器和計算機群或者云技術(shù),進一步縮短了2倍。
更快的算法
Spectra-Q引擎改進了綜合、布局、布線和時序算法,使用了多核工作站,編譯時間縮短了2倍。重新編寫了每一編譯器級,使其更快、更靈活。例如:
§ 新的綜合引擎增強了語言支持,綜合編譯時間縮短了2倍。
§ 新的布局流程采用了混合布局方法——結(jié)合了最初基于數(shù)學(xué)方程的分析布局,以及精細(xì)粒度布局的仿真退火方法。這一混合布局方法邏輯占用率高,提高了結(jié)果的總體質(zhì)量以及結(jié)果的可預(yù)測性,能夠設(shè)計擴展到5M邏輯單元以上。
§ Spectra-Q更新了布線算法,現(xiàn)在包括了全局布線以及傳統(tǒng)的細(xì)節(jié)布線。這一布線器改善了擁塞設(shè)計的結(jié)果,確保了算法能夠調(diào)整適應(yīng)規(guī)模較大的器件。
§ 最后,更新后的時序算法高度并行,利用了多核CPU,設(shè)計支持16個CPU,甚至更多。這些高度并行的時序算法進一步加速了2倍。
漸進式優(yōu)化
除了以上的算法改進之外,Spectra-Q引擎還支持您運行顆粒式編譯,減少甚至避免了完全重新設(shè)計編譯。如果您需要再次運行編譯的某些階段——綜合、布局、布線或者時序,您只需要對這部分進行編譯即可,而不用進行完整的編譯,編譯流程更加顆粒化,這樣,您可以在每一階段逐步優(yōu)化您的設(shè)計。對編譯過程精細(xì)的控制是通過停止編譯器,對設(shè)計精細(xì)調(diào)整,逐步運行編譯階段來實現(xiàn)的。這些漸進式優(yōu)化方法將編譯時間平均縮短了2倍。
對于非關(guān)鍵通路上很小的設(shè)計改動(改動<5%),Spectra-Q支持您保留其余未改動設(shè)計的布局、布線和時序不變。例如,Spectra-Q引擎支持快速重新編譯特性,重新使用綜合和布局布線信息,流暢的處理很小的漸進式設(shè)計改動。快速重新編譯特性使得預(yù)綜合HDL修改的編譯速度提高了3倍,后適配Signaltap™ II邏輯分析器修改的編譯速度提高了4倍。
分布式編譯
讓我們看一下越來越復(fù)雜,規(guī)模越來越大的FPGA應(yīng)用,只有分布式計算才能解決這些難題。Spectra-Q引擎的分層式數(shù)據(jù)庫支持對一項設(shè)計高效的進行分布式編譯。分布式編譯支持您對設(shè)計進行劃分,在服務(wù)器群的多臺計算機上對每一分區(qū)進行并行編譯,極大的縮短了編譯總時間。
減少了設(shè)計迭代
新的Spectra-Q引擎所含有的工具和功能減少了I/O設(shè)計、調(diào)試和時序收斂過程的設(shè)計迭代次數(shù)。Spectra-Q引擎包括了分層數(shù)據(jù)庫,IP一旦編譯好之后,就可以完全保留不變,從而減少了設(shè)計迭代。減少設(shè)計迭代次數(shù)有助于產(chǎn)品更迅速面市。
BluePrint將迭代減少了10倍
Spectra-Q引擎的頂層是業(yè)界第一款名為BluePrint平臺設(shè)計者的工具,支持您探查體系結(jié)構(gòu),以更高的效率分配接口。過去,您不得不等待一次全面編譯,只有適配器檢查完成后,才能顯示復(fù)雜的錯誤消息,指出非法分配出現(xiàn)在哪里。BluePrint平臺設(shè)計者支持您探查器件外設(shè)體系結(jié)構(gòu),高效的分配接口。它實時進行適配以及合法檢查,防止了非法引腳分配,避免了復(fù)雜的錯誤消息,也不需要等待全編譯,I/O設(shè)計速度提高了10倍。工具還含有時鐘規(guī)劃功能,極大的減少了時序收斂所需要的設(shè)計迭代次數(shù)。
BluePrint支持將芯片平面布局(或者封裝視圖中)中的全部接口(例如:DDR4*72接口)拖放至合法位置,很快就可以計算完成。BluePrint實時進行適配以及合法檢查,對引腳分配進行指導(dǎo)。圖形化的合法布局避免了復(fù)雜的錯誤消息,也不需要等待全編譯,顯著加速了I/O設(shè)計。
分層設(shè)計將迭代減少了3倍
數(shù)百萬個邏輯單元(LE)的設(shè)計提供了相當(dāng)于數(shù)千萬個ASIC邏輯門。如此復(fù)雜的設(shè)計受益于分層方法。一個典型自上而下設(shè)計流程會涉及到將設(shè)計劃分成3至10個模塊,每一模塊采用相關(guān)的時序約束進行物理布局規(guī)劃。在以前的方法中,IP一旦編譯之后,編譯器使用布局布線分配網(wǎng)表來放置IP——經(jīng)常會修改這種布局信息以滿足邏輯單元其他的布局要求,進行一次修改就需要一次完整的重新編譯。采用Spectra-Q分層數(shù)據(jù)庫,每一分區(qū)現(xiàn)在完全可以保留詳細(xì)的布局和后布線信息。當(dāng)分區(qū)被集成到頂層后,新數(shù)據(jù)庫不需要重新編譯。在頂層集成期間或者由于寄存器傳送級(RTL)變化導(dǎo)致其他分區(qū)需要重新編譯時,完全保留了每一分區(qū)的時序。Spectra-Q分層設(shè)計流程將全編譯迭代減少了3倍。[!--empirenews.page--]
更快的設(shè)計輸入
Spectra-Q引擎提供了統(tǒng)一的編譯器技術(shù),可以快速應(yīng)用多種設(shè)計輸入方法。還為硬件、軟件和數(shù)字信號處理(DSP)設(shè)計人員提供了快速跟蹤設(shè)計輸入功能。流程的第一步是把設(shè)計轉(zhuǎn)譯成公共的中間格式,然后是優(yōu)化步驟,為Quartus II軟件生成HDL。通過多個設(shè)計輸入方法,設(shè)計人員采用自己喜歡的語言,更高效的針對FPGA進行設(shè)計。設(shè)計人員可以選擇在他們習(xí)慣的開發(fā)環(huán)境(或者IDE——集成開發(fā)環(huán)境)中進行開發(fā)。
§ 基于C或者C++——Spectra-Q引擎設(shè)計支持Altera為高級綜合提供的A++新編譯器,從C或者C++語言中建立IP內(nèi)核,通過快速體系結(jié)構(gòu)探查、開發(fā)和仿真大幅度提高了效能。
§ 基于C (開放計算語言(OpenCL™))——軟件開發(fā)人員可以使用熟悉的基于C的設(shè)計流程和面向OpenCL的Altera SDK。SDK支持的軟件開發(fā)流程抽象出傳統(tǒng)的FPGA硬件流程。
§ 基于模型——DSP Builder工具支持基于模型的設(shè)計流程,直接在MathWorks Simulink軟件中,從您的DSP算法中生成HDL。
除了上面的這些特性,Spectra-Q還包括了新的HDL綜合引擎,支持所有標(biāo)準(zhǔn)HDL語言,包括SystemVerilog和VHDL-2008。
結(jié)論
Quartus II Spectra-Q引擎為您最復(fù)雜的設(shè)計提供了功能強大的平臺。新工具在設(shè)計規(guī)劃和實施的所有階段都提供了更多的控制功能和預(yù)測功能。Spectra-Q不僅減少了編譯次數(shù),而且還減少了設(shè)計迭代的總次數(shù),因此成功的解決了效能問題。