親自實(shí)踐項(xiàng)目:(下篇) 系統(tǒng)性能加速的自動(dòng)化
自動(dòng)化如何使沒(méi)有硬件背景的設(shè)計(jì)師能實(shí)現(xiàn)定制硬件的加速。
越來(lái)越多的產(chǎn)品正在使算法模型和軟件代碼轉(zhuǎn)換成硬件這一過(guò)程自動(dòng)化,從而使沒(méi)有具體硬件背景的設(shè)計(jì)師能夠?qū)崿F(xiàn)定制硬件加速。這些工具并不改變?cè)O(shè)計(jì)或工具流程,但可使這一流程中的一些手工步驟自動(dòng)化(圖 1)。這些工具要達(dá)到的目標(biāo)是:要比其他方法縮短實(shí)現(xiàn)一項(xiàng)設(shè)計(jì)所花的時(shí)間,使設(shè)計(jì)師能探索更多的設(shè)計(jì)配置,使整個(gè)設(shè)計(jì)小組在完成某個(gè)項(xiàng)目期間能依靠單獨(dú)資源工作,使用自動(dòng)的“按結(jié)構(gòu)校正”方法來(lái)提高流程可靠性,并確保驗(yàn)證流程與原始規(guī)范相聯(lián)系。
正如這篇連載文章的上篇(見(jiàn)本刊2005年第2期 )所描述的,把定制硬件作為加速軟件性能的指令或協(xié)處理器)來(lái)創(chuàng)造的各種可選方案正在演進(jìn)之中。不過(guò),上篇描述的過(guò)程假設(shè):硬件工程師以人工方法把軟件轉(zhuǎn)換成硬件。雖然各種新型工具能使這一過(guò)程自動(dòng)化,但大多數(shù)根據(jù)軟件描述生成 RTL(寄存器傳輸語(yǔ)言)的工具都要求設(shè)計(jì)師至少了解一些要考慮的硬件因素(見(jiàn)附文《把軟件移植到硬件》)。
根據(jù)某一算法規(guī)范或軟件規(guī)范創(chuàng)建硬件并非沒(méi)有挑戰(zhàn)。設(shè)計(jì)師把某種算法作為軟件來(lái)探索和實(shí)現(xiàn)所需要的技能,不同于用 FPGA 或 ASIC 來(lái)實(shí)現(xiàn)該算法所需的技能。軟件設(shè)計(jì)師很少需要考慮系統(tǒng)時(shí)鐘的偏斜、總線的容量和加載、模擬信號(hào)的處理和特性、溫度、功耗以及電磁干擾,而所有這些都會(huì)影響硬件設(shè)計(jì)師優(yōu)化設(shè)計(jì)的方法。軟件采用一種順序計(jì)算模型,而硬件一般處理設(shè)計(jì)師以很高的并行度來(lái)實(shí)現(xiàn)的狀態(tài)機(jī)和組合邏輯。
傳統(tǒng)的 EDA 工具處理的是如何在更高的程度上對(duì)硬件進(jìn)行抽象,以提高設(shè)計(jì)師的工作效率。根據(jù)軟件代碼自動(dòng)生成 RTL 的各種工具都有一個(gè)不同的重點(diǎn)。據(jù) CriticalBlue 公司首席執(zhí)行官 David Stewart 說(shuō):“挑戰(zhàn)在于如何抽象各種軟件概念,以便工具能把它們作為硬件來(lái)實(shí)現(xiàn)?!边@些工具是供沒(méi)有硬件背景的設(shè)計(jì)師而不是供精通 Verilog 或 VHDL 的硬件設(shè)計(jì)師使用的。這些工具允許在整個(gè)設(shè)計(jì)過(guò)程中堅(jiān)持使用軟件開(kāi)發(fā)方法。它們使算法模型或軟件代碼在整個(gè)項(xiàng)目期間仍然是一個(gè)絕佳的資源,所以,對(duì)它所做的種種修改就能迅速、可靠、自動(dòng)地傳遞到下游的動(dòng)作中。
設(shè)計(jì)師在算法級(jí)要比在硬件級(jí)更容易了解總體情況。與 RTL 級(jí)仿真器相比,算法仿真器和軟件仿真器能在寬得多的時(shí)間段內(nèi)描述相關(guān)系統(tǒng)行為的特性,因此設(shè)計(jì)師就能探索并勾勒出更多的使用環(huán)境。鑒別高級(jí)別行為優(yōu)化所帶來(lái)的總系統(tǒng)性能提高要比鑒別低級(jí)別硬件優(yōu)化大得多。軟件轉(zhuǎn)換成硬件這一過(guò)程實(shí)現(xiàn)自動(dòng)化,也使設(shè)計(jì)師能探索更多其它的芯片實(shí)現(xiàn)方法,這是因?yàn)檫@些工具可簡(jiǎn)化這種轉(zhuǎn)換工作,并可減少對(duì)設(shè)計(jì)修改所造成影響進(jìn)行評(píng)估的時(shí)間。
這些工具通常通過(guò)對(duì)資源的報(bào)告、調(diào)度和顯式映射,支持對(duì)處理速度和面積之間的折衷方案的分析和執(zhí)行。除了生成RTL代碼以外,這些工具還能在驗(yàn)證過(guò)程期間節(jié)省設(shè)計(jì)師的時(shí)間,這是因?yàn)樗鼈兡茏詣?dòng)生成的測(cè)試臺(tái)可利用來(lái)自各種算法探索工具的促進(jìn)因素。這些工具幾乎都不是獨(dú)立的;當(dāng)它們針對(duì)特定的FPGA器件或工藝技術(shù)時(shí),便可與芯片制造商的工具接口,或直接集成到這些工具中。
正是因?yàn)橐恍┕ぞ吣芨鶕?jù)軟件自動(dòng)生成 RTL 代碼并不意味著把它們用于所有代碼是合理的。一般來(lái)說(shuō),與軟件相比,硬件實(shí)現(xiàn)方法并不能以更好的成本和性能指標(biāo)來(lái)執(zhí)行復(fù)雜的順序操作。適合轉(zhuǎn)換成硬件的候選算法或功能有:能執(zhí)行并行操作,并能受益于運(yùn)行多個(gè)實(shí)例的算法或功能;能利用非標(biāo)準(zhǔn)的數(shù)據(jù)位寬度的算法或功能;能流水線操作的算法或功能;能完成那些執(zhí)行時(shí)間比數(shù)據(jù)傳輸時(shí)間大得不成比例的數(shù)據(jù)處理的算法或功能。
從軟件到 RTL
AccelChip 公司提供各種算法綜合和驗(yàn)證工具及服務(wù),可用來(lái)支持適用于FPGA、結(jié)構(gòu)化 ASIC、普通 ASIC 的自頂向下 DSP 設(shè)計(jì)。今年,該公司推出了 AccelChip DSP Synthesis 工具,這是 AccelFPGA 的第二代替代產(chǎn)品,能直接根據(jù)MathWorks公司的 Matlab工具(用于DSP算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析)自動(dòng)生成可綜合的RTL模型。該公司還推出了 AccelWare,這是一種參數(shù)化DSP IP(知識(shí)產(chǎn)權(quán))構(gòu)件塊,用以完成普通 Matlab工具箱功能。AccelWare塊使用與Matlab功能和Simulink塊相同的參數(shù),并允許設(shè)師規(guī)定諸如定時(shí)等各種實(shí)現(xiàn)參數(shù),以達(dá)到設(shè)計(jì)目標(biāo)。AccelChip DSP Synthesis工具可為 整個(gè)算法生成RTL,其中包括 AccelWare 塊。
AccelChip公司 的各種工具能使 Matlab工具在整個(gè)設(shè)計(jì)過(guò)程中仍然是絕佳的資源,這全在于它們能通過(guò) MathWorks公司的Simulink接口支持系統(tǒng)級(jí)驗(yàn)證,并能集成到Synopsys公司的ASIC和Xilinx公司的System Generation工具流程中。AutoQuantizer工具能利用原始的浮點(diǎn)源和設(shè)計(jì)模型來(lái)確定每個(gè)變量的動(dòng)態(tài)范圍,由此使浮點(diǎn)模型變成定點(diǎn)設(shè)計(jì)這種轉(zhuǎn)換自動(dòng)化。AccelChip公司 的各種工具產(chǎn)生根據(jù)位真實(shí)的、周期精確的定點(diǎn)Matlab模型生成Simulink S 函數(shù)所必需的文件。AccelChip DSP Synthesis工具自動(dòng)生成設(shè)計(jì)師用來(lái)驗(yàn)證布局后定點(diǎn)設(shè)計(jì)的仿真測(cè)試臺(tái)。
Synplicity 公司的綜合、驗(yàn)證和物理實(shí)現(xiàn)三種軟件工具都是以實(shí)現(xiàn)FPGA、結(jié)構(gòu)化 ASIC、平臺(tái) ASIC、單元基 ASIC、COT(客戶自有的工具) ASIC 為目標(biāo)的。該公司今年推出的Synplify DSP,能根據(jù) Matlab 模型和 Simulink 模型生成可馬上綜合的 RTL 代碼。Synplify DSP 工具使用系統(tǒng)級(jí)重定時(shí)等算法,以便在生成 RTL 之前在系統(tǒng)級(jí)優(yōu)化 Simulink 模型,從而提高 DSP 實(shí)現(xiàn)性能。設(shè)計(jì)師只要根據(jù)一個(gè)單通道規(guī)范自動(dòng)生成的一個(gè)多通道系統(tǒng),就能對(duì)線程容量進(jìn)行模擬分析。該工具能在規(guī)定的性能預(yù)算內(nèi)共享器件上的資源,如乘法器,并且它支持在實(shí)現(xiàn)之前進(jìn)行針對(duì)面積和性能的折衷分析,從而減少設(shè)計(jì)迭代。
評(píng)論