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