<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 親自實踐項目:(下篇) 系統(tǒng)性能加速的自動化

          親自實踐項目:(下篇) 系統(tǒng)性能加速的自動化

          ——
          作者:Robert Cravotta 時間:2005-09-02 來源:EDN電子設(shè)計技術(shù) 收藏
          親自實踐項目:(下篇) 系統(tǒng)性能加速的自動化
           本文是上下連載的下篇,探討的內(nèi)容是:
            自動化如何使沒有硬件背景的設(shè)計師能實現(xiàn)定制硬件的加速。

            越來越多的產(chǎn)品正在使算法模型和軟件代碼轉(zhuǎn)換成硬件這一過程自動化,從而使沒有具體硬件背景的設(shè)計師能夠?qū)崿F(xiàn)定制硬件加速。這些工具并不改變設(shè)計或工具流程,但可使這一流程中的一些手工步驟自動化(圖 1)。這些工具要達(dá)到的目標(biāo)是:要比其他方法縮短實現(xiàn)一項設(shè)計所花的時間,使設(shè)計師能探索更多的設(shè)計配置,使整個設(shè)計小組在完成某個項目期間能依靠單獨(dú)資源工作,使用自動的“按結(jié)構(gòu)校正”方法來提高流程可靠性,并確保驗證流程與原始規(guī)范相聯(lián)系。

          本文引用地址:http://www.ex-cimer.com/article/8175.htm

            正如這篇連載文章的上篇(見本刊2005年第2期 )所描述的,把定制硬件作為加速軟件性能的指令或協(xié)處理器)來創(chuàng)造的各種可選方案正在演進(jìn)之中。不過,上篇描述的過程假設(shè):硬件工程師以人工方法把軟件轉(zhuǎn)換成硬件。雖然各種新型工具能使這一過程自動化,但大多數(shù)根據(jù)軟件描述生成 RTL(寄存器傳輸語言)的工具都要求設(shè)計師至少了解一些要考慮的硬件因素(見附文《把軟件移植到硬件》)。
            根據(jù)某一算法規(guī)范或軟件規(guī)范創(chuàng)建硬件并非沒有挑戰(zhàn)。設(shè)計師把某種算法作為軟件來探索和實現(xiàn)所需要的技能,不同于用 FPGA 或 ASIC 來實現(xiàn)該算法所需的技能。軟件設(shè)計師很少需要考慮系統(tǒng)時鐘的偏斜、總線的容量和加載、模擬信號的處理和特性、溫度、功耗以及電磁干擾,而所有這些都會影響硬件設(shè)計師優(yōu)化設(shè)計的方法。軟件采用一種順序計算模型,而硬件一般處理設(shè)計師以很高的并行度來實現(xiàn)的狀態(tài)機(jī)和組合邏輯。
            傳統(tǒng)的 EDA 工具處理的是如何在更高的程度上對硬件進(jìn)行抽象,以提高設(shè)計師的工作效率。根據(jù)軟件代碼自動生成 RTL 的各種工具都有一個不同的重點。據(jù) CriticalBlue 首席執(zhí)行官 David Stewart 說:“挑戰(zhàn)在于如何抽象各種軟件概念,以便工具能把它們作為硬件來實現(xiàn)?!边@些工具是供沒有硬件背景的設(shè)計師而不是供精通 Verilog 或 VHDL 的硬件設(shè)計師使用的。這些工具允許在整個設(shè)計過程中堅持使用軟件開發(fā)方法。它們使算法模型或軟件代碼在整個項目期間仍然是一個絕佳的資源,所以,對它所做的種種修改就能迅速、可靠、自動地傳遞到下游的動作中。
            設(shè)計師在算法級要比在硬件級更容易了解總體情況。與 RTL 級仿真器相比,算法仿真器和軟件仿真器能在寬得多的時間段內(nèi)描述相關(guān)系統(tǒng)行為的特性,因此設(shè)計師就能探索并勾勒出更多的使用環(huán)境。鑒別高級別行為優(yōu)化所帶來的總系統(tǒng)性能提高要比鑒別低級別硬件優(yōu)化大得多。軟件轉(zhuǎn)換成硬件這一過程實現(xiàn)自動化,也使設(shè)計師能探索更多其它的芯片實現(xiàn)方法,這是因為這些工具可簡化這種轉(zhuǎn)換工作,并可減少對設(shè)計修改所造成影響進(jìn)行評估的時間。
            這些工具通常通過對資源的報告、調(diào)度和顯式映射,支持對處理速度和面積之間的折衷方案的分析和執(zhí)行。除了生成RTL代碼以外,這些工具還能在驗證過程期間節(jié)省設(shè)計師的時間,這是因為它們能自動生成的測試臺可利用來自各種算法探索工具的促進(jìn)因素。這些工具幾乎都不是獨(dú)立的;當(dāng)它們針對特定的FPGA器件或工藝技術(shù)時,便可與芯片制造商的工具接口,或直接集成到這些工具中。
            正是因為一些工具能根據(jù)軟件自動生成 RTL 代碼并不意味著把它們用于所有代碼是合理的。一般來說,與軟件相比,硬件實現(xiàn)方法并不能以更好的成本和性能指標(biāo)來執(zhí)行復(fù)雜的順序操作。適合轉(zhuǎn)換成硬件的候選算法或功能有:能執(zhí)行并行操作,并能受益于運(yùn)行多個實例的算法或功能;能利用非標(biāo)準(zhǔn)的數(shù)據(jù)位寬度的算法或功能;能流水線操作的算法或功能;能完成那些執(zhí)行時間比數(shù)據(jù)傳輸時間大得不成比例的數(shù)據(jù)處理的算法或功能。


            從軟件到 RTL
            AccelChip 提供各種算法綜合和驗證工具及服務(wù),可用來支持適用于FPGA、結(jié)構(gòu)化 ASIC、普通 ASIC 的自頂向下 DSP 設(shè)計。今年,該推出了 AccelChip DSP Synthesis 工具,這是 AccelFPGA 的第二代替代產(chǎn)品,能直接根據(jù)MathWorks公司的 Matlab工具(用于DSP算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析)自動生成可綜合的RTL模型。該公司還推出了 AccelWare,這是一種參數(shù)化DSP IP(知識產(chǎn)權(quán))構(gòu)件塊,用以完成普通 Matlab工具箱功能。AccelWare塊使用與Matlab功能和Simulink塊相同的參數(shù),并允許設(shè)師規(guī)定諸如定時等各種實現(xiàn)參數(shù),以達(dá)到設(shè)計目標(biāo)。AccelChip DSP Synthesis工具可為 整個算法生成RTL,其中包括 AccelWare 塊。
            AccelChip公司 的各種工具能使 Matlab工具在整個設(shè)計過程中仍然是絕佳的資源,這全在于它們能通過 MathWorks公司的Simulink接口支持系統(tǒng)級驗證,并能集成到Synopsys公司的ASIC和Xilinx公司的System Generation工具流程中。AutoQuantizer工具能利用原始的浮點源和設(shè)計模型來確定每個變量的動態(tài)范圍,由此使浮點模型變成定點設(shè)計這種轉(zhuǎn)換自動化。AccelChip公司 的各種工具產(chǎn)生根據(jù)位真實的、周期精確的定點Matlab模型生成Simulink S 函數(shù)所必需的文件。AccelChip DSP Synthesis工具自動生成設(shè)計師用來驗證布局后定點設(shè)計的仿真測試臺。
             公司的綜合、驗證和物理實現(xiàn)三種軟件工具都是以實現(xiàn)FPGA、結(jié)構(gòu)化 ASIC、平臺 ASIC、單元基 ASIC、COT(客戶自有的工具) ASIC 為目標(biāo)的。該公司今年推出的Synplify DSP,能根據(jù) Matlab 模型和 Simulink 模型生成可馬上綜合的 RTL 代碼。Synplify DSP 工具使用系統(tǒng)級重定時等算法,以便在生成 RTL 之前在系統(tǒng)級優(yōu)化 Simulink 模型,從而提高 DSP 實現(xiàn)性能。設(shè)計師只要根據(jù)一個單通道規(guī)范自動生成的一個多通道系統(tǒng),就能對線程容量進(jìn)行模擬分析。該工具能在規(guī)定的性能預(yù)算內(nèi)共享器件上的資源,如乘法器,并且它支持在實現(xiàn)之前進(jìn)行針對面積和性能的折衷分析,從而減少設(shè)計迭代。



          關(guān)鍵詞: Synplicity 公司

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();