SoC設(shè)計(jì)復(fù)雜度不斷增加但設(shè)計(jì)周期卻顯著縮短,設(shè)計(jì)的軟件可編程特性要求越來(lái)越明顯。作為可自由配置和靈活擴(kuò)展的嵌入式微處理器,Xtensa LX處理器不但能滿(mǎn)足控制任務(wù)的要求,而且能夠完成密集計(jì)算型數(shù)據(jù)任務(wù)。該處理器具有獨(dú)特的設(shè)計(jì)流程,含括了從處理器配置到具體硬件實(shí)現(xiàn)的完整過(guò)程。本設(shè)計(jì)針對(duì)Xtensa LX處理器的強(qiáng)大功能,利用Tensilica提供的設(shè)計(jì)技術(shù)完成對(duì)根升余弦濾波器的設(shè)計(jì)實(shí)現(xiàn),并且對(duì)不同實(shí)現(xiàn)方法進(jìn)行比較。
當(dāng)今,在通信與多媒體領(lǐng)域,SoC設(shè)計(jì)越來(lái)越復(fù)雜,設(shè)計(jì)周期越來(lái)越短,而且為了適應(yīng)市場(chǎng)需求及各種應(yīng)用協(xié)議標(biāo)準(zhǔn)不斷變化的要求,SoC設(shè)計(jì)必須靈活且性能優(yōu)越,這就使SoC朝著軟件可編程化發(fā)展,保證在激烈的競(jìng)爭(zhēng)中把產(chǎn)品迅速推向市場(chǎng),滿(mǎn)足消費(fèi)者的不同需求。
圖1:Xtansa LX處理器開(kāi)發(fā)流程。 |
然而,針對(duì)以密集計(jì)算性數(shù)據(jù)處理為目標(biāo)的應(yīng)用,如圖象處理、語(yǔ)音識(shí)別、包交換通信等領(lǐng)域,通用的數(shù)字信號(hào)處理器(DSP)往往缺乏足夠的靈活性來(lái)執(zhí)行復(fù)雜且高帶寬要求的數(shù)據(jù)處理任務(wù),因?yàn)橥ㄓ肈SP有固定大小和帶寬的指令結(jié)構(gòu)集和寄存器,不能針對(duì)不同的應(yīng)用而靈活地調(diào)整,使得這種DSP的運(yùn)行非常緩慢達(dá),不到設(shè)計(jì)要求。并且,一些應(yīng)用領(lǐng)域并不能夠充分利用通用DSP提供的全部特性,這樣導(dǎo)致DSP的資源不必要的浪費(fèi)。但是,如果針對(duì)專(zhuān)有應(yīng)用而開(kāi)發(fā)專(zhuān)用集成電路(AISC),其靈活性也受到很大的限制,而且這種設(shè)計(jì)方法開(kāi)發(fā)周期長(zhǎng)、風(fēng)險(xiǎn)高,并不適合于算法復(fù)雜且靈活變化的應(yīng)用。
不同于傳統(tǒng)的嵌入式通用DSP,Tensilica的Xtensa LX處理器可以自由配置、可以靈活擴(kuò)展并且能夠自動(dòng)生成。設(shè)計(jì)者能夠根據(jù)特殊的應(yīng)用靈活配置處理器,即對(duì)處理器結(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)的完整過(guò)程。其中,基于Xtensa LX處理器設(shè)計(jì)的一個(gè)重要特點(diǎn)就是需要借助Tensilica提供的處理器生成器(XPG)來(lái)自動(dòng)產(chǎn)生用戶(hù)自定義的處理器軟件和硬件開(kāi)發(fā)環(huán)境。該生成器位于Tensilica公司的服務(wù)器上,用戶(hù)在設(shè)計(jì)過(guò)程中需要與其交互才能開(kāi)發(fā)出滿(mǎn)意的專(zhuān)有應(yīng)用處理器。
Xtensa LX處理器完整設(shè)計(jì)流程包括軟件開(kāi)發(fā)與硬件實(shí)現(xiàn)階段,即處理器探索、生成以及實(shí)現(xiàn)三個(gè)步驟。并且針對(duì)不同的設(shè)計(jì)階段,Tensilica提供統(tǒng)一的開(kāi)發(fā)環(huán)境Xtensa Xplorer,設(shè)計(jì)者利用該工具能夠進(jìn)行單處理器與多處理器的開(kāi)發(fā)。圖1顯示了利用XPG和Xtensa Xplorer開(kāi)發(fā)專(zhuān)用應(yīng)用處理器的完整設(shè)計(jì)流程。
首先,根據(jù)算法的特點(diǎn)和復(fù)雜度,設(shè)計(jì)者可靈活配置處理器并生成處理器配置文件(Xtensa Configuration File, XCF),該文件除了包括Xtensa LX處理器的基本指令集結(jié)構(gòu)以外,還含有針對(duì)特殊算法所用到的配置功能,如乘累加運(yùn)算模塊、各種調(diào)試接口以及外圍總線(xiàn)接口等。然后,設(shè)計(jì)者需要把該文件上傳給XPG作自動(dòng)處理,經(jīng)過(guò)一段時(shí)間XPG把處理的結(jié)果又自動(dòng)下載給設(shè)計(jì)者。在該階段,XPG根據(jù)用戶(hù)選擇的硬件實(shí)現(xiàn)技術(shù)(目前130或180nm)來(lái)估計(jì)該配置處理器的面積、功耗以及運(yùn)算頻率等,方便用戶(hù)設(shè)計(jì)。同時(shí),XPG根據(jù)XCF還能自動(dòng)生成適合于自定義處理器的各種軟件開(kāi)發(fā)工具,包括編譯器、匯編器、連接器、調(diào)試器以及指令集仿真器等。
在這些工具基礎(chǔ)之上,設(shè)計(jì)者就能實(shí)現(xiàn)算法的各種編譯、調(diào)試和仿真等軟件開(kāi)發(fā)工作。在軟件開(kāi)發(fā)階段的另外一項(xiàng)重要工作就是設(shè)計(jì)者根據(jù)處理器指令集的特殊結(jié)構(gòu)以及算法的特點(diǎn),利用指令擴(kuò)展技術(shù)開(kāi)發(fā)出設(shè)計(jì)者自定義的執(zhí)行單元,輔助處理器的運(yùn)算,大規(guī)模提高處理器的處理性能。如果該自定義處理器的性能、面積、功耗以及運(yùn)算頻率等滿(mǎn)足用戶(hù)的設(shè)計(jì)要求,配置文件XCF和TIE文件就固定下來(lái),利用它們完成處理器的硬件實(shí)現(xiàn)。如果該處理器不滿(mǎn)足設(shè)計(jì)要求,則可重新開(kāi)始設(shè)計(jì)流程的第一步,不斷反復(fù)設(shè)計(jì)優(yōu)化,直至開(kāi)發(fā)出設(shè)計(jì)者滿(mǎn)意的自定義處理器內(nèi)核。
圖2:RRC濾波器實(shí)現(xiàn)結(jié)構(gòu)。 |
對(duì)于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)濾波器來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送。在終端系統(tǒng)中,RRC濾波器需要處理大量數(shù)據(jù),通常其算法的實(shí)現(xiàn)都是用硬件來(lái)完成的。而Xtensa
表1:RRC濾波器特性。 |
1. 根升余弦濾波器算法
根升余弦濾波器的沖擊響應(yīng)可表示為
其中Tc表示碼片周期,(為滾降因子。通過(guò)大量仿真可以得到,用矩形窗函數(shù)法實(shí)現(xiàn)的RRC濾波器就能夠充分滿(mǎn)足TD-SCDMA通信系統(tǒng)的要求。該濾波器的特性見(jiàn)表1。
通過(guò)公式1和表1,可以先計(jì)算出濾波器的65點(diǎn)沖擊響應(yīng)值,在實(shí)現(xiàn)輸入數(shù)據(jù)的濾波時(shí)就可以直接通過(guò)查表法快速地提取該響應(yīng),方便計(jì)算。
2. 根升余弦濾波器實(shí)現(xiàn)
RRC濾波器對(duì)輸入數(shù)據(jù)的濾波可用下式表示:





