自上而下直到物理實(shí)現(xiàn)的DSP設(shè)計(jì)流程
掃描二維碼
隨時(shí)隨地手機(jī)看文章
圖1 通用DSP處理器的性能與通信領(lǐng)域需要的DSP處理性能的比較
速度的需要
現(xiàn)在,對(duì)電子系統(tǒng)的性能要求已經(jīng)超過(guò)了通用DSP處理器的能力。圖1顯示了由寬帶網(wǎng)絡(luò)市場(chǎng)驅(qū)動(dòng)的對(duì)DSP算法的性能需求與通用DSP處理器性能的差異。可以看出通用DSP的性能容量與新的寬帶通信技術(shù)的需求之間的差距正以指數(shù)速率擴(kuò)大。
傳統(tǒng)上DSP開(kāi)發(fā)者可以獲得的改變通用DSP處理器性能的唯一方法就是將DSP算法注入到ASIC中,以達(dá)到加速硬件的目的。然而這種ASIC的解決方法實(shí)現(xiàn)起來(lái)非常困難,而且在ASIC上實(shí)現(xiàn)DSP算法是以犧牲可重編程的靈活性為代價(jià)的,同時(shí)還需要大量的非重復(fù)設(shè)計(jì)費(fèi)用、漫長(zhǎng)的原型初始化,以及購(gòu)買(mǎi)大量昂貴的集成電路設(shè)計(jì)工具等。
隨著先進(jìn)的FPGA架構(gòu)如Xilinx Virtex-II和Altera Stratix-II的引入,DSP設(shè)計(jì)者可以獲得一種把通用DSP處理器的所有優(yōu)點(diǎn)與ASIC的先進(jìn)性能綜合在一起的新型硬件。這些新型的FPGA架構(gòu)可以?xún)?yōu)化DSP的實(shí)現(xiàn),并能提供滿(mǎn)足現(xiàn)今電子系統(tǒng)所必需的處理能力。
FPGA的優(yōu)越性表現(xiàn)在它能允許DSP設(shè)計(jì)者做到“使結(jié)構(gòu)適應(yīng)算法”,設(shè)計(jì)者能夠根據(jù)實(shí)現(xiàn)系統(tǒng)性能的需要最大限度地使用FPGA內(nèi)部的并行資源。而在通用DSP處理器中資源是固定的,因?yàn)槊總€(gè)處理器只包含一些數(shù)量有限的類(lèi)似乘法器一樣的基本運(yùn)算功能,設(shè)計(jì)者必須做到“使算法適應(yīng)結(jié)構(gòu)”,因而無(wú)法達(dá)到在FPGA中能夠獲得的性能。
圖2 全球DSP收入預(yù)測(cè)
半導(dǎo)體工業(yè)的亮點(diǎn)
圖2顯示了整個(gè)DSP市場(chǎng)和片內(nèi)算法市場(chǎng)(由FPGA、結(jié)構(gòu)化ASIC和ASIC幾部分組成)的年收入預(yù)測(cè)。其中,DSP片內(nèi)算法市場(chǎng)今后三年內(nèi)將以高于42%的年增長(zhǎng)率增長(zhǎng),是整個(gè)半導(dǎo)體領(lǐng)域增長(zhǎng)最快的部分。
現(xiàn)在DSP的設(shè)計(jì)團(tuán)隊(duì)所面臨的挑戰(zhàn)和二十世紀(jì)九十年代ASIC的設(shè)計(jì)者所面臨的類(lèi)似—DSP開(kāi)發(fā)組如何用目標(biāo)FPGA的設(shè)計(jì)方法代替通用DSP;如何去開(kāi)發(fā)所需要的新的設(shè)計(jì)技巧;如何完善公司的設(shè)計(jì)流程;怎樣才能提出新的DSP算法的實(shí)現(xiàn)方法,同時(shí)又不危及當(dāng)前產(chǎn)品的開(kāi)發(fā)計(jì)劃。或許更重要的是,管理者怎樣才能夠使災(zāi)難性結(jié)果發(fā)生的可能性降低到最小。
AccelChip公司認(rèn)為DSP的未來(lái)取決于新型設(shè)計(jì)方法的采用,而這種方法必須能使公司滿(mǎn)足DSP市場(chǎng)對(duì)上市時(shí)間、成本的苛刻要求。和ASIC、FPGA的產(chǎn)生一樣,對(duì)DSP變革的方式就是采用真正的、自上而下的設(shè)計(jì)流程。
圖3 傳統(tǒng)的DSP設(shè)計(jì)流程
傳統(tǒng)自上而下的設(shè)計(jì)流程
傳統(tǒng)上,DSP設(shè)計(jì)被分為兩種類(lèi)型的工作:系統(tǒng)/算法的開(kāi)發(fā)和軟/硬件的實(shí)現(xiàn)。這兩類(lèi)工作是由完全不同的兩組工程師完成,通常這兩個(gè)組在各自的接口之間被相對(duì)分開(kāi)。算法開(kāi)發(fā)者在不考慮系統(tǒng)的結(jié)構(gòu)或軟/硬件實(shí)現(xiàn)細(xì)節(jié)的情況下使用數(shù)學(xué)分析工具來(lái)創(chuàng)建、分析和提煉所需要的DSP算法;系統(tǒng)設(shè)計(jì)者則主要考慮功能的定義和結(jié)構(gòu)的設(shè)計(jì),并保持與產(chǎn)品說(shuō)明及接口標(biāo)準(zhǔn)相一致。軟/硬件設(shè)計(jì)組采用系統(tǒng)工程師和算法開(kāi)發(fā)人員所建立的規(guī)范進(jìn)而完成DSP設(shè)計(jì)的物理實(shí)現(xiàn)。
一般來(lái)講,細(xì)則規(guī)范可劃分成很多小的模塊,每個(gè)小模塊分配給各個(gè)成員,他們必須首先理解屬于自己的模塊的功能。
如果DSP算法的目標(biāo)是FPGA、結(jié)構(gòu)化ASIC或SoC,那么首要任務(wù)就是用Verilog或VHDL等硬件描述語(yǔ)言來(lái)建立一個(gè)RTL模型。這就需要實(shí)現(xiàn)工程師了解通信理論和信號(hào)處理以便明白系統(tǒng)工程師提出的細(xì)則規(guī)范。建立一個(gè)RTL模型和仿真測(cè)試平臺(tái)常常需要花費(fèi)一至兩個(gè)月的時(shí)間,這主要是因?yàn)樾枰斯を?yàn)證RTL文件和MATLAB模型的準(zhǔn)確匹配。RTL模型仿真環(huán)境一經(jīng)建立,實(shí)現(xiàn)工程師就要同系統(tǒng)工程師和算法開(kāi)發(fā)人員進(jìn)行交流,共同分析DSP系統(tǒng)硬件實(shí)現(xiàn)的性能、范圍和功能。
由于系統(tǒng)工程師在算法開(kāi)發(fā)階段無(wú)法看到物理層設(shè)計(jì),因此通常會(huì)需要修改原來(lái)的算法和系統(tǒng)結(jié)構(gòu)、更新文字性規(guī)范、修改RTL模型和測(cè)試平臺(tái)以及重新仿真,這些過(guò)程往往需要連續(xù)進(jìn)行多次,直到DSP系統(tǒng)的性能要求能夠由硬件實(shí)現(xiàn)為止。接著,實(shí)現(xiàn)工程師使用邏輯綜合執(zhí)行一種標(biāo)準(zhǔn)的FPGA/ASIC自上而下的設(shè)計(jì)流程,從而將RTL模型映射到門(mén)級(jí)網(wǎng)表,并且使用物理設(shè)計(jì)工具在給定的FPGA/ASIC器件中設(shè)置布局網(wǎng)表。圖3給出了基本的片內(nèi)DSP算法的設(shè)計(jì)流程,主要由算法開(kāi)發(fā)和硬件實(shí)現(xiàn)兩個(gè)相對(duì)分開(kāi)的部分組成。
如上所述,只有花費(fèi)很長(zhǎng)的時(shí)間人工建立基于文字規(guī)范的RTL模型,才能避免因兩個(gè)設(shè)計(jì)域(design domains)之間缺乏聯(lián)系而造成設(shè)計(jì)開(kāi)發(fā)進(jìn)程的延遲,然而對(duì)這一設(shè)計(jì)工程更大的擔(dān)心是DSP算法的物理設(shè)計(jì)是基于硬件工程師對(duì)文字規(guī)范主觀的理解。
硬件工程師中缺乏DSP專(zhuān)家,因此常常會(huì)因?yàn)閷?duì)要求功能的曲解而造成災(zāi)難性的后果。隨著DSP復(fù)雜度的增加,在人工建立RTL模型的過(guò)程中,產(chǎn)生錯(cuò)誤已司空見(jiàn)慣。由于相同的錯(cuò)誤被寫(xiě)入仿真測(cè)試平臺(tái)中,因此仿真中即便出現(xiàn)多次錯(cuò)誤也無(wú)法被捕捉到,只有到了原型設(shè)計(jì)階段,硬件設(shè)計(jì)錯(cuò)誤才會(huì)被發(fā)現(xiàn)。
改進(jìn)方法
FPGA/ASIC設(shè)計(jì)人員采用真正意義上的自上而下的設(shè)計(jì)方法,最重要的好處之一就是設(shè)計(jì)數(shù)據(jù)管理的改善。但是當(dāng)ASIC和FPGA采用和現(xiàn)有DSP設(shè)計(jì)相同的自下而上的設(shè)計(jì)方法時(shí),由于缺乏單一且有效的設(shè)計(jì)數(shù)據(jù)源,將會(huì)引入許多錯(cuò)誤。因此,在當(dāng)今的DSP設(shè)計(jì)中,各個(gè)獨(dú)立的設(shè)計(jì)部門(mén)有義務(wù)使MATLAB模型和人工創(chuàng)建的RTL模型及測(cè)試平臺(tái)保持同步。可是如前所述,這兩個(gè)團(tuán)隊(duì)很少交流,而且通常在地理位置上也相距很遠(yuǎn)。所以管理這些數(shù)據(jù)變得非常困難。
CoWare在其SPW工具包里提供了一種模塊同步問(wèn)題的解決方案:將輔助模擬設(shè)計(jì)方法的概念引入硬件設(shè)計(jì)系統(tǒng)中,從而達(dá)到從細(xì)則規(guī)范到實(shí)現(xiàn)的轉(zhuǎn)變。在這種方法中,CoWare 建議DSP設(shè)計(jì)組使用他們具有DSP硬件模型庫(kù)的硬件設(shè)計(jì)系統(tǒng)創(chuàng)建一個(gè)可以執(zhí)行的規(guī)范,從而取代對(duì)DSP規(guī)范和算法進(jìn)行詮釋的編程語(yǔ)言。[!--empirenews.page--]
這種方法在消除硬件工程師開(kāi)發(fā)RTL模型時(shí)造成的曲解方面很有優(yōu)勢(shì),但是,它對(duì)確保設(shè)計(jì)數(shù)據(jù)同步方面還存在不足。由于每次修正模塊都需要人工修改可執(zhí)行規(guī)范,特別在現(xiàn)今復(fù)雜度不斷增加和產(chǎn)品上市時(shí)間越來(lái)越短的雙重壓力下,發(fā)生錯(cuò)誤的可能性將會(huì)大幅增加。
真正自上而下的
DSP設(shè)計(jì)方法
Accelchip公司的DSP合成工具使用VHDL或Verilog硬件描述語(yǔ)言能夠直接讀出MATLAB模型并自動(dòng)輸出可以合成的RTL模型和仿真測(cè)試平臺(tái)。通過(guò)連接DSP的兩個(gè)設(shè)計(jì)域,給DSP設(shè)計(jì)小組在設(shè)計(jì)的人力和時(shí)間、曲解的消除、高成本的重復(fù)工作、硬件實(shí)現(xiàn)的自動(dòng)驗(yàn)證,以及系統(tǒng)設(shè)計(jì)人員和算法開(kāi)發(fā)人員在開(kāi)發(fā)的初期階段進(jìn)行結(jié)構(gòu)探索時(shí)所需要的能力等方面帶來(lái)了很大的簡(jiǎn)化。
Accelchip使硬件設(shè)計(jì)人員不需要人工創(chuàng)建RTL模型和仿真測(cè)試平臺(tái),從而縮短了開(kāi)發(fā)周期,減少了硬件實(shí)現(xiàn)所需要設(shè)計(jì)人員的數(shù)量。而且自動(dòng)建立的RTL模型是目標(biāo)FPGA器件的“結(jié)構(gòu)化意識(shí)”,而不是簡(jiǎn)單的、繼承下來(lái)的RTL模型。建立RTL模型后,其高級(jí)綜合工具將創(chuàng)建一個(gè)邏輯綜合的最佳實(shí)現(xiàn),以確保所產(chǎn)生的門(mén)級(jí)網(wǎng)表具有FPGA器件的優(yōu)點(diǎn)。
例如,DSP算法在不同供應(yīng)商提供的FPGA器件列中實(shí)現(xiàn),其性能和范圍有很大的差異,這是因?yàn)閷?duì)于不同設(shè)備來(lái)講,結(jié)構(gòu)、邏輯資源、布局資源以及布局方法都是不同的。通過(guò)“結(jié)構(gòu)化意識(shí)”,Accelchip為DSP設(shè)計(jì)小組的目標(biāo)FPGA器件提供了很好的物理實(shí)現(xiàn)。同時(shí)通過(guò)提供容易使用的、自動(dòng)的從MATLAB到硬件實(shí)現(xiàn)的直接路徑,使得DSP系統(tǒng)設(shè)計(jì)人員和算法開(kāi)發(fā)人員能夠在設(shè)計(jì)開(kāi)發(fā)初期定義他們的算法。進(jìn)而算法開(kāi)發(fā)人員能夠很快地將MATLAB設(shè)計(jì)轉(zhuǎn)換成綜合了性能、范圍、成本和功率優(yōu)點(diǎn)的目標(biāo)FPGA的門(mén)級(jí)網(wǎng)表。有了來(lái)自算法物理實(shí)現(xiàn)的初期或開(kāi)發(fā)周期中的反饋,就意味著設(shè)計(jì)流程后期所做的重復(fù)更少,再一次節(jié)省了寶貴的時(shí)間和人力。
結(jié)語(yǔ)
DSP技術(shù)的重要性日益增加,對(duì)其算法的性能要求遠(yuǎn)遠(yuǎn)超過(guò)了通用性DSP處理器的能力,從而促使DSP實(shí)現(xiàn)小組去尋找硬件的解決方法。FPGA給DSP實(shí)現(xiàn)提供了理想的平臺(tái),Accelchip提供的真正的自上而下的設(shè)計(jì)方案無(wú)縫地融入了DSP的設(shè)計(jì)環(huán)境,從而確保了在轉(zhuǎn)向真正的自上而下的DSP設(shè)計(jì)方法時(shí)管理風(fēng)險(xiǎn)的最小化。