SoC設(shè)計(jì)復(fù)雜度不斷增加但設(shè)計(jì)周期卻顯著縮短,設(shè)計(jì)的軟件可編程特性要求越來越明顯。作為可自由配置和靈活擴(kuò)展的嵌入式微處理器,Xtensa LX處理器不但能滿足控制任務(wù)的要求,而且能夠完成密集計(jì)算型數(shù)據(jù)任務(wù)。該處理器具有獨(dú)特的設(shè)計(jì)流程,含括了從處理器配置到具體硬件實(shí)現(xiàn)的完整過程。本設(shè)計(jì)針對Xtensa LX處理器的強(qiáng)大功能,利用Tensilica提供的設(shè)計(jì)技術(shù)完成對根升余弦濾波器的設(shè)計(jì)實(shí)現(xiàn),并且對不同實(shí)現(xiàn)方法進(jìn)行比較。
當(dāng)今,在通信與多媒體領(lǐng)域,SoC設(shè)計(jì)越來越復(fù)雜,設(shè)計(jì)周期越來越短,而且為了適應(yīng)市場需求及各種應(yīng)用協(xié)議標(biāo)準(zhǔn)不斷變化的要求,SoC設(shè)計(jì)必須靈活且性能優(yōu)越,這就使SoC朝著軟件可編程化發(fā)展,保證在激烈的競爭中把產(chǎn)品迅速推向市場,滿足消費(fèi)者的不同需求。

圖1:Xtansa LX處理器開發(fā)流程。
然而,針對以密集計(jì)算性數(shù)據(jù)處理為目標(biāo)的應(yīng)用,如圖象處理、語音識別、包交換通信等領(lǐng)域,通用的數(shù)字信號處理器(DSP)往往缺乏足夠的靈活性來執(zhí)行復(fù)雜且高帶寬要求的數(shù)據(jù)處理任務(wù),因?yàn)橥ㄓ肈SP有固定大小和帶寬的指令結(jié)構(gòu)集和寄存器,不能針對不同的應(yīng)用而靈活地調(diào)整,使得這種DSP的運(yùn)行非常緩慢達(dá),不到設(shè)計(jì)要求。并且,一些應(yīng)用領(lǐng)域并不能夠充分利用通用DSP提供的全部特性,這樣導(dǎo)致DSP的資源不必要的浪費(fèi)。但是,如果針對專有應(yīng)用而開發(fā)專用集成電路(AISC),其靈活性也受到很大的限制,而且這種設(shè)計(jì)方法開發(fā)周期長、風(fēng)險(xiǎn)高,并不適合于算法復(fù)雜且靈活變化的應(yīng)用。
不同于傳統(tǒng)的嵌入式通用DSP,Tensilica的Xtensa LX處理器可以自由配置、可以靈活擴(kuò)展并且能夠自動(dòng)生成。設(shè)計(jì)者能夠根據(jù)特殊的應(yīng)用靈活配置處理器,即對處理器結(jié)構(gòu)進(jìn)行相應(yīng)的裁減,使處理器性能和特殊應(yīng)用達(dá)到完美的匹配。同時(shí),利用Tensilica指令擴(kuò)展(TIE)技術(shù),加入設(shè)計(jì)者自定義的硬件輔助執(zhí)行單元,可以得到與硬件設(shè)計(jì)相媲美的性能、面積和功率特性。
Xtensa LX處理器設(shè)計(jì)流程
作為面向特殊應(yīng)用的可靈活配置和擴(kuò)展的嵌入式微處理器,Xtensa LX處理器有其獨(dú)特的設(shè)計(jì)流程,該流程包括從處理器配置到具體硬件實(shí)現(xiàn)的完整過程。其中,基于Xtensa LX處理器設(shè)計(jì)的一個(gè)重要特點(diǎn)就是需要借助Tensilica提供的處理器生成器(XPG)來自動(dòng)產(chǎn)生用戶自定義的處理器軟件和硬件開發(fā)環(huán)境。該生成器位于Tensilica公司的服務(wù)器上,用戶在設(shè)計(jì)過程中需要與其交互才能開發(fā)出滿意的專有應(yīng)用處理器。
Xtensa LX處理器完整設(shè)計(jì)流程包括軟件開發(fā)與硬件實(shí)現(xiàn)階段,即處理器探索、生成以及實(shí)現(xiàn)三個(gè)步驟。并且針對不同的設(shè)計(jì)階段,Tensilica提供統(tǒng)一的開發(fā)環(huán)境Xtensa Xplorer,設(shè)計(jì)者利用該工具能夠進(jìn)行單處理器與多處理器的開發(fā)。圖1顯示了利用XPG和Xtensa Xplorer開發(fā)專用應(yīng)用處理器的完整設(shè)計(jì)流程。
首先,根據(jù)算法的特點(diǎn)和復(fù)雜度,設(shè)計(jì)者可靈活配置處理器并生成處理器配置文件(Xtensa Configuration File, XCF),該文件除了包括Xtensa LX處理器的基本指令集結(jié)構(gòu)以外,還含有針對特殊算法所用到的配置功能,如乘累加運(yùn)算模塊、各種調(diào)試接口以及外圍總線接口等。然后,設(shè)計(jì)者需要把該文件上傳給XPG作自動(dòng)處理,經(jīng)過一段時(shí)間XPG把處理的結(jié)果又自動(dòng)下載給設(shè)計(jì)者。在該階段,XPG根據(jù)用戶選擇的硬件實(shí)現(xiàn)技術(shù)(目前130或180nm)來估計(jì)該配置處理器的面積、功耗以及運(yùn)算頻率等,方便用戶設(shè)計(jì)。同時(shí),XPG根據(jù)XCF還能自動(dòng)生成適合于自定義處理器的各種軟件開發(fā)工具,包括編譯器、匯編器、連接器、調(diào)試器以及指令集仿真器等。
在這些工具基礎(chǔ)之上,設(shè)計(jì)者就能實(shí)現(xiàn)算法的各種編譯、調(diào)試和仿真等軟件開發(fā)工作。在軟件開發(fā)階段的另外一項(xiàng)重要工作就是設(shè)計(jì)者根據(jù)處理器指令集的特殊結(jié)構(gòu)以及算法的特點(diǎn),利用指令擴(kuò)展技術(shù)開發(fā)出設(shè)計(jì)者自定義的執(zhí)行單元,輔助處理器的運(yùn)算,大規(guī)模提高處理器的處理性能。如果該自定義處理器的性能、面積、功耗以及運(yùn)算頻率等滿足用戶的設(shè)計(jì)要求,配置文件XCF和TIE文件就固定下來,利用它們完成處理器的硬件實(shí)現(xiàn)。如果該處理器不滿足設(shè)計(jì)要求,則可重新開始設(shè)計(jì)流程的第一步,不斷反復(fù)設(shè)計(jì)優(yōu)化,直至開發(fā)出設(shè)計(jì)者滿意的自定義處理器內(nèi)核。

圖2:RRC濾波器實(shí)現(xiàn)結(jié)構(gòu)。
對于Xtensa LX處理器的硬件實(shí)現(xiàn),XPG需要利用設(shè)計(jì)者確定的配置文件XCF和TIE文件,自動(dòng)生成后端實(shí)現(xiàn)所需要的各種參數(shù)和模塊,包括:RTL仿真模型、處理器網(wǎng)表、各種實(shí)現(xiàn)腳本、靜態(tài)時(shí)序模型、硬件設(shè)計(jì)接口、指令集仿真器、軟硬件協(xié)同仿真模型等等。當(dāng)然,處理器的仿真以及實(shí)現(xiàn)還需要借助各種EDA工具,如NC-Verilog、Design Compiler、PrimeTime、Seamless等。
根升余弦濾波器的設(shè)計(jì)實(shí)現(xiàn)
根據(jù)第三代合作伙伴計(jì)劃(3GPP)規(guī)定,在TD-SCDMA終端通信系統(tǒng)中需要使用根升余弦(Root Raised Cosine, RRC)濾波器來實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送。在終端系統(tǒng)中,RRC濾波器需要處理大量數(shù)據(jù),通常其算法的實(shí)現(xiàn)都是用硬件來完成的。而Xtensa





