《數(shù)字信號(hào)處理》課件1第10章_第1頁
《數(shù)字信號(hào)處理》課件1第10章_第2頁
《數(shù)字信號(hào)處理》課件1第10章_第3頁
《數(shù)字信號(hào)處理》課件1第10章_第4頁
《數(shù)字信號(hào)處理》課件1第10章_第5頁
已閱讀5頁,還剩162頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第10章數(shù)字信號(hào)處理的硬件實(shí)現(xiàn)10.1基于DSP芯片的硬件實(shí)現(xiàn)

10.2基于FPGA芯片的硬件實(shí)現(xiàn)

10.3應(yīng)用舉例

10.1基于DSP芯片的硬件實(shí)現(xiàn)

數(shù)字信號(hào)處理芯片是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,主要用于實(shí)時(shí)快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理的算法。在20世紀(jì)80年代以前,由于受實(shí)現(xiàn)方法的限制,數(shù)字信號(hào)處理的理論還不能得到廣泛的應(yīng)用。直到20世紀(jì)80年代初,世界上第一塊單片可編程DSP芯片的誕生,才使理論研究成果廣泛應(yīng)用到實(shí)際的系統(tǒng)中,并且推動(dòng)了新的理論和應(yīng)用領(lǐng)域的發(fā)展??梢院敛豢鋸埖刂v,DSP芯片的誕生及發(fā)展對(duì)近幾年來通信、計(jì)算機(jī)、控制等領(lǐng)域的技術(shù)發(fā)展起到了十分重要的作用。10.1.1

DSP芯片及其特點(diǎn)

1.DSP芯片的發(fā)展

DSP芯片誕生于20世紀(jì)70年代末,至今已經(jīng)得到了突飛猛進(jìn)的發(fā)展,并經(jīng)歷了以下三個(gè)階段。

第一階段為DSP的雛形階段(1980年前后)。在DSP芯片出現(xiàn)之前,數(shù)字信號(hào)處理只能依靠通用微處理器(MPU)來完成。由于MPU處理速度較低,難以滿足高速實(shí)時(shí)處理的要求。1965年,庫利(Cooley)和圖基(Tukey)發(fā)表了著名的快速傅里葉變換FFT算法,極大地降低了傅里葉變換的計(jì)算量,從而為數(shù)字信號(hào)的實(shí)時(shí)處理奠定了算法的基礎(chǔ)。與此同時(shí),伴隨著集成電路技術(shù)的發(fā)展,各大集成電路廠商都為生產(chǎn)通

用DSP芯片作了大量的工作。1978年,AMI公司生產(chǎn)出第一片DSP芯片S2811。1979年,美國Intel公司發(fā)布了商用可編程DSP器件Intel2920,由于內(nèi)部沒有單周期的硬件乘法器,使芯片的運(yùn)算速度、數(shù)據(jù)處理能力和運(yùn)算精度受到了很大的限制。此階段DSP的運(yùn)算速度約為單指令周期200~250ns,應(yīng)用僅局限于軍事或航空航天領(lǐng)域。這個(gè)時(shí)期的代表性器件主要有Intel2910(Intel)、μPD7720(NEC)、TMS32010(TI)、DSP16(AT&T)、S2811(AMI)、ADSp-21(AD)等。值得一提的是,TI公司的第一代DSP芯片——TMS32010,它采用了改進(jìn)的哈佛結(jié)構(gòu),允許數(shù)據(jù)在程序存儲(chǔ)空間與數(shù)據(jù)存儲(chǔ)空間之間傳輸,大大提高了運(yùn)行速度和編程靈活性,在語音合成和編/解碼器中得到了廣泛的應(yīng)用。第二階段為DSP的成熟階段(1990年前后)。這個(gè)時(shí)期,許多國際上著名集成電路廠家都相繼推出自己的DSP產(chǎn)品。例如,TI公司的TMS320C20、30、40、50系列,Motorola

公司的DSP5600、DSP9600系列,AT&T公司的DSP32等。這個(gè)時(shí)期的DSP器件在硬件結(jié)構(gòu)上更適合于數(shù)字信號(hào)處理的要求,能進(jìn)行乘法、FFT變換和單指令濾波處理,其單指令周期為80~100ns。如TI公司的TMS320C20,它是該公司的第二代DSP器件,采用了CMOS制造工藝,其存儲(chǔ)容量和運(yùn)算速度成倍提高,為語音處理、圖像硬件處理技術(shù)的發(fā)展

奠定了基礎(chǔ)。20世紀(jì)80年代后期,以TI公司的TM5320C30為代表的第三代DSP芯片問世,伴隨著運(yùn)算速度的進(jìn)一步提高,其應(yīng)用范圍逐步擴(kuò)大到通信、計(jì)算機(jī)領(lǐng)域。第三階段為DSP的完善階段(2000年以后)。這一時(shí)期各DSP制造商不僅使信號(hào)處理能力更加完善,而且使系統(tǒng)開發(fā)更加方便,程序編輯調(diào)試更加靈活,功耗進(jìn)一步降低,成本不斷下降。尤其是各種通用外設(shè)集成到片上,大大地提高了數(shù)字信號(hào)處理能力。這一時(shí)期的DSP運(yùn)算速度可達(dá)到單指令周期10ns左右,最快甚至達(dá)到1ns,可在Windows環(huán)境下直接用C語言編程,使用方便靈活,使DSP芯片不僅在通信、計(jì)算機(jī)領(lǐng)域得到了廣泛的應(yīng)用,而且逐漸滲透到了人們的日常消費(fèi)領(lǐng)域。目前,DSP芯片的發(fā)展非常迅速。硬件結(jié)構(gòu)方面主要是向多處理器的并行處理結(jié)構(gòu)、便于外部數(shù)據(jù)交換的串行總線傳輸、大容量片上RAM和ROM、程序加密、增加I/O驅(qū)動(dòng)能力、外圍電路內(nèi)裝化、低功耗等方面發(fā)展。軟件方面主要是綜合開發(fā)平臺(tái)的完善,使DSP的應(yīng)用開發(fā)更加靈活、方便。

2.DSP芯片的特點(diǎn)

數(shù)字信號(hào)處理不同于普通的科學(xué)計(jì)算與分析,它強(qiáng)調(diào)運(yùn)算的實(shí)時(shí)性。因此,DSP除了具備普通微處理器所強(qiáng)調(diào)的高速運(yùn)算和控制能力外,針對(duì)實(shí)時(shí)數(shù)字信號(hào)處理的特點(diǎn),在處理器的結(jié)構(gòu)、指令系統(tǒng)、指令流程上作了很大的改進(jìn),其主要特點(diǎn)如下。

(1)采用哈佛結(jié)構(gòu)。

DSP芯片普遍采用數(shù)據(jù)總線和程序總線分離的哈佛結(jié)構(gòu)或改進(jìn)的哈佛結(jié)構(gòu),比傳統(tǒng)處理器的馮·諾依曼結(jié)構(gòu)具有更快的指令執(zhí)行速度。①馮·諾依曼(VonNeumann)結(jié)構(gòu)。該結(jié)構(gòu)采用單存儲(chǔ)空間,即程序指令和數(shù)據(jù)共用一個(gè)存儲(chǔ)空間,使用單一的地址和數(shù)據(jù)總線,取指令和取操作數(shù)都是通過一條總線分時(shí)進(jìn)行的。當(dāng)進(jìn)行高速運(yùn)算時(shí),不但不能同時(shí)進(jìn)行取指令和取操作數(shù),而且還會(huì)造成數(shù)據(jù)傳輸通道的瓶頸現(xiàn)象,其工作速度較慢。圖10.1.1給出了馮·諾依曼結(jié)構(gòu)。圖10.1.1馮·諾依曼結(jié)構(gòu)②哈佛(Harvard)結(jié)構(gòu)。該結(jié)構(gòu)采用雙存儲(chǔ)空間,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開,有各自獨(dú)立的程序總線和數(shù)據(jù)總線,可獨(dú)立編址和獨(dú)立訪問,可對(duì)程序和數(shù)據(jù)進(jìn)行獨(dú)立傳輸,使得取指令操作、指令執(zhí)行操作、數(shù)據(jù)吞吐并行完成,大大地提高了數(shù)據(jù)處理能力和指令的執(zhí)行速度,非常適合于實(shí)時(shí)的數(shù)字信號(hào)處理。微處理器的哈佛結(jié)構(gòu)如圖10.1.2所示。圖10.1.2哈佛結(jié)構(gòu)③改進(jìn)型的哈佛結(jié)構(gòu)。該結(jié)構(gòu)是采用雙存儲(chǔ)空間和數(shù)條總線,即一條程序總線和多條數(shù)據(jù)總線。其特點(diǎn)如下:允

許在程序空間和數(shù)據(jù)空間之間相互傳送數(shù)據(jù),使這些數(shù)據(jù)可以由算術(shù)運(yùn)算指令直接調(diào)用,增強(qiáng)了芯片的靈活性;提供了存儲(chǔ)指令的高速緩沖器(Cache)和相應(yīng)的指令,當(dāng)重復(fù)執(zhí)行這些指令時(shí),只需讀入一次就可連續(xù)使用,不需要再次從程序存儲(chǔ)器中讀出,從而減少了指令執(zhí)行所需要的時(shí)間。例如,TMS320C6200系列的DSP,整個(gè)片內(nèi)程序存儲(chǔ)器都可以配置成高速緩沖結(jié)構(gòu)。

(2)采用流水線技術(shù)。

DSP芯片中指令的執(zhí)行采用流水線方式,圖10.1.3是三級(jí)流水線的示意圖。DSP在第n個(gè)時(shí)鐘周期內(nèi)完成對(duì)第N條指令取指的同時(shí),還將完成對(duì)第N-1條指令的譯碼,并同時(shí)執(zhí)行第N-2條指令。在下一個(gè)時(shí)鐘周期n+1,將同時(shí)完成對(duì)第N+1條指令的取指,對(duì)第N條指令的譯碼及對(duì)第N-1條指令的執(zhí)行。這樣的執(zhí)行方式將依次進(jìn)行下去,這種在一個(gè)時(shí)鐘內(nèi)同時(shí)完成多個(gè)任務(wù)的流水線工作方式將大大提高運(yùn)算的速度。圖10.1.3

DSP指令執(zhí)行的流水線方式

(3)配有專用的硬件乘法-累加器。

為了適應(yīng)數(shù)字信號(hào)處理的需要,當(dāng)前的DSP芯片都配有專用的硬件乘法-累加器,可在一個(gè)周期內(nèi)完成一次乘法和一次累加操作,從而可實(shí)現(xiàn)數(shù)據(jù)的乘法和累加操作。例如,可實(shí)現(xiàn)卷積計(jì)算、FIR和IIR濾波、FFT變換等專用信號(hào)的處理。

(4)有豐富的片內(nèi)外設(shè)資源。

為了方便數(shù)據(jù)的讀、寫及與片外設(shè)備的通信,DSP芯片上一般都集成有DMA控制器,同時(shí)片上還集成有串行通信口、定時(shí)器及中斷處理器等。由于DSP通常具有較高的速度,外設(shè)的速度相對(duì)較慢,因此片上還集成有和不同速度存儲(chǔ)器相連接的硬件和軟件等待狀態(tài)發(fā)生器。

(5)具有特殊的DSP指令。

為了滿足數(shù)字信號(hào)處理的需要,在DSP指令系統(tǒng)中,設(shè)計(jì)了一些完成特殊功能的指令。如TMS320C54x中的FIRS和LMS指令,專門用于完成系數(shù)對(duì)稱的FIR濾波器和LMS算法。

為了實(shí)現(xiàn)FFT、卷積等運(yùn)算,當(dāng)前的DSP大多在指令系統(tǒng)中設(shè)置了“循環(huán)尋址”、“碼位倒置”和其它特殊指令,使得在進(jìn)行這些運(yùn)算時(shí),其尋址、排序及計(jì)算速度大大地提高。

(6)快速的指令周期。

由于采用哈佛結(jié)構(gòu)、流水線操作、專用的硬件乘法器、特殊的指令及集成電路的優(yōu)化設(shè)計(jì),DSP芯片一般具有很高的時(shí)鐘速度和極快的運(yùn)算能力。例如,TI公司推出的TMS320C6000T系列的DSP最大時(shí)鐘速度可達(dá)1GHz,因此時(shí)鐘周期僅為1ns,其并行運(yùn)算能力可達(dá)8000MIPS(MIPS是指每秒百萬條指令)。

總之,先進(jìn)周密的硬件設(shè)計(jì)、方便完整的指令系統(tǒng)、配套的開發(fā)工具以及高速、實(shí)時(shí)信號(hào)處理市場的巨大需要,使得DSP微處理器在飛速發(fā)展的通信、計(jì)算機(jī)等領(lǐng)域中異軍突起,大放光彩。

3.定點(diǎn)與浮點(diǎn)DSP

按計(jì)算機(jī)中數(shù)的表示方式,DSP可分為定點(diǎn)和浮點(diǎn)兩種。早期的DSP大都為定點(diǎn)的,一般為16bit或32bit。采用定點(diǎn)數(shù)來實(shí)現(xiàn)數(shù)值運(yùn)算時(shí),其操作數(shù)大都采用整型數(shù)來表示。整型數(shù)的大小取決于所用的字長,字的位數(shù)越多,所能表示的數(shù)的范圍越大。例如,對(duì)16bit字長,其表示的數(shù)的最大范圍是-32768~32767。在運(yùn)算過程中,如果兩個(gè)數(shù)的和或積超過這一范圍,就要產(chǎn)生數(shù)據(jù)的溢出,從而帶來較大的誤差。當(dāng)然,定點(diǎn)DSP也可以實(shí)現(xiàn)小數(shù)運(yùn)算,不過小數(shù)點(diǎn)的位置是由編程人員指定的。一個(gè)32bit定點(diǎn)制格式如圖10.1.4(a)所示,與此相對(duì)應(yīng),IEEE754標(biāo)準(zhǔn)定義的單精度浮點(diǎn)格式如圖10.1.4(b)所示。圖10.1.4數(shù)的表示圖10.1.4中,s是符號(hào)位,為第31位。s=0表示正數(shù),s=1表示負(fù)數(shù)。對(duì)定點(diǎn)制,一個(gè)數(shù)x可表示為

x=(-1)s×.f

f為第0位至第30位,共31位,至于小數(shù)點(diǎn)在什么位置,由使用者指定。例如,一個(gè)正的十六進(jìn)制數(shù)40000000H,若小數(shù)點(diǎn)在第0位后面,則x=1073741824,這時(shí)表示的數(shù)最大,但“分辨率”為1;若小數(shù)點(diǎn)在第31位后面,則x=0.5,表示的數(shù)最小,“分辨率”為1/231。若小數(shù)點(diǎn)在其它位置,同一個(gè)十六進(jìn)數(shù)將又會(huì)是另一個(gè)十進(jìn)制數(shù)。總之,在定點(diǎn)制中,小數(shù)點(diǎn)越靠近高位,能表示的數(shù)的范圍越小,但精度越高;反之,小數(shù)點(diǎn)越靠近低位,能表示的數(shù)的范圍越大,但精度越低。一個(gè)浮點(diǎn)數(shù)x可以表示為指數(shù)和尾數(shù)的形式:

x=m×2e

式中,e稱為指數(shù),m稱為尾數(shù)。尾數(shù)通常用歸一化數(shù)表示。

對(duì)圖10.1.4(b)的浮點(diǎn)制,e是指數(shù),為第23~30位,共8位,因此其取值范圍為0~255。m是尾數(shù)的分?jǐn)?shù)部分,為第0~22位,共23位。因此,一個(gè)浮點(diǎn)數(shù)x可以表示如下:

(1)若0<e<255,則x=(-1)s×2(e-127)×(1+.m)。

(2)若e=0,m≠0,則x=(-1)s×2-126×(0.m)。

(3)若e=0,m=0,則x=0。同樣對(duì)十六進(jìn)制數(shù)x=40000000H,s=0,e=27=128,m的23位全為零,所以十進(jìn)制的x=2。當(dāng)s=0,e=254,且m全為1時(shí),該浮點(diǎn)制表示的數(shù)最大,這時(shí)x=2128。由此可以看出,對(duì)同樣的字長,浮點(diǎn)制所能表示的數(shù)的范圍大大擴(kuò)大,從而有效地避免了溢出。此外,在浮點(diǎn)制中,數(shù)的精度是一樣的,且數(shù)的表示相當(dāng)容易,因此采用浮點(diǎn)制非常有利于編程。但浮點(diǎn)制CPU的結(jié)構(gòu)要比定點(diǎn)制復(fù)雜,因此價(jià)格也高,這就是目前的DSP多是以定點(diǎn)制為主的原因。另外需要指出的是,不同廠家的DSP所采用的浮點(diǎn)格式不盡相同。在TI公司的產(chǎn)品中,C1X、C2X、C5X與C2000中的C20X、C24X以及C5000系列都是16bit定點(diǎn)DSP;而C3X、C4X是32bit浮點(diǎn)DSP。C2000中的C28X以及C6000中的C62X、C64X是32bit的定點(diǎn)DSP,而C67X是浮點(diǎn)DSP,它可工作在32bit/64bit兩種狀態(tài)。10.1.2典型DSP芯片的結(jié)構(gòu)及其主要性能

盡管不同系列的DSP產(chǎn)品具有不同的特點(diǎn),但在內(nèi)部結(jié)構(gòu)、工作方式等方面具有相似性。下面就以IT公司的TMS320C54x系列為例,對(duì)DSP芯片的結(jié)構(gòu)及主要性能進(jìn)行介紹。TMS320C54x是TI公司為實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)DSP芯片,目前在國內(nèi)外被廣泛應(yīng)用。TMS320C54x芯片為典型的改進(jìn)型哈佛結(jié)構(gòu),圖10.1.5為其結(jié)構(gòu)圖。圖10.1.5

TMS320C54x的結(jié)構(gòu)圖

C54x芯片的主要特點(diǎn)及性能如下:

·操作性能高達(dá)100MIPS,其中TMS320VC5416高達(dá)160MIPS;

·25/20/15/12.5/10/6.25ns機(jī)器指令周期;

·整合維特比操作;

·備有3個(gè)掉電模式;

·整合隨機(jī)存儲(chǔ)器及只讀存儲(chǔ)器配置;

·自動(dòng)緩沖串口;

·HPI接口;

·超薄包裝(100腳、128腳、144腳TQFP及144腳BGA包裝);

·1.8V、2.5V、3.3V及5V操作;

·40bit加法器及兩個(gè)40bit累加器,用于支持并行指令;

·40bit算術(shù)邏輯單元;

·17bit×17bit乘法器,允許16bit帶符號(hào)或不帶符號(hào)的乘法;

·采用多總線結(jié)構(gòu),內(nèi)部共有8組總線;

·8個(gè)輔助寄存器及一個(gè)軟件棧,允許使用定點(diǎn)DSPC語言編譯器。

1.中央處理單元

C54x芯片的CPU包括:

(1)40bit的算術(shù)邏輯單元(ALU)。

TMS320C54x使用了40bit的ALU和兩個(gè)40bit的累加器(ACCA和ACCB)來完成二進(jìn)制補(bǔ)碼的運(yùn)算,同時(shí)ALU可完成邏輯運(yùn)算。在狀態(tài)寄存器ST1中的C16位置1時(shí),可同時(shí)完成兩個(gè)16bit的運(yùn)算。

(2)40bit的累加器(ACCA和ACCB)。

如圖10.1.6所示,累加器ACCA和ACCB存放從ALU或乘法器/加法器單元輸出的數(shù)據(jù),另外它也能輸出到ALU或乘法器/加法器中。累加器可分為三個(gè)部分:

·保護(hù)位:bit39~32。

·高位字:bit31~16。

·低位字:bit15~0。圖10.1.6累加器保護(hù)位用來作為計(jì)算的前部留空,防止在迭代運(yùn)算中產(chǎn)生溢出,

(3)桶形移位寄存器。

C54x的桶形移位寄存器主要用于累加器或數(shù)據(jù)區(qū)操作數(shù)的定標(biāo)。有一個(gè)與累加器或數(shù)據(jù)存儲(chǔ)器(CB、DB)相連接的40bit輸入,和一個(gè)與ALU或數(shù)據(jù)存儲(chǔ)器(EB)相連接的40bit輸出,能把輸入的數(shù)據(jù)進(jìn)行0~31bit的左移和0~16bit右移,所移位數(shù)由ST1中的移位數(shù)域(ASM)或暫存寄存器(TREG)決定。移位輸出的最低位填0,最高位可以填0或進(jìn)行符號(hào)擴(kuò)展,由ST1中的符合擴(kuò)展方式位(SXM)決定。

(4)乘累加單元MAC。

乘累加單元MAC包括1個(gè)17bit×17bit乘法器和1個(gè)40bit專用加法器。MAC在一個(gè)流水線周期內(nèi)可以完成1次乘法運(yùn)算和1次加法運(yùn)算。

(5)比較、選擇和存儲(chǔ)單元CSSU。

CSSU單元完成累加器的高位字和低位字之間的最大值比較,即選擇累加器中較大的字并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,不改變狀態(tài)寄存器ST0中的測試/控制位和傳送寄存器(TRN)的值,專門用于Viterbi譯碼操作中的相加、比較、選擇操作。

(6)狀態(tài)和控制寄存器。

C54x有3個(gè)狀態(tài)和控制寄存器,分別為:狀態(tài)寄存器ST0和ST1,處理器方式狀態(tài)寄存器PMST。其中ST0和ST1包括了各種條件和方式的狀態(tài),PMST包括了存儲(chǔ)器配置狀態(tài)和控制信息。

2.C54x的存儲(chǔ)器組織

C54x存儲(chǔ)器由3個(gè)獨(dú)立的可選擇空間組成:程序、數(shù)據(jù)和I/O空間。所有芯片均有隨機(jī)訪問存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM),RAM分為雙訪問RAM和單訪問RAM,ROM是用來存放固化程序的。

(1)片內(nèi)ROM。

標(biāo)準(zhǔn)的C54x片內(nèi)ROM中有一個(gè)引導(dǎo)程序,它可以將用戶代碼調(diào)入到程序存儲(chǔ)器的任何一個(gè)位置,若MP/MC在硬件復(fù)位時(shí)為低電平,執(zhí)行從單元FF80H開始,此單元存有轉(zhuǎn)移到引導(dǎo)程序開始處的轉(zhuǎn)移指令。

(2)片內(nèi)RAM。

片內(nèi)分為雙訪問RAM(DARAM)和單訪問的RAM(SARAM)。DARAM存儲(chǔ)器在一個(gè)周期里能被訪問兩次,在復(fù)位時(shí),DARAM被映射到數(shù)據(jù)存儲(chǔ)器空間,DARAM也可以通過設(shè)置PMST中的OVLY位映射到程序/數(shù)據(jù)空間。片內(nèi)的SARAM由幾塊組成,每塊在一個(gè)機(jī)器周期里只能訪問一次,SARAM優(yōu)先存儲(chǔ)數(shù)據(jù),也可以映射到程序空間來存儲(chǔ)程序代碼。

3.C54x的總線結(jié)構(gòu)

C54x的總線結(jié)構(gòu)由8組16bit總線(4組程序/數(shù)據(jù)總線,4組地址總線)構(gòu)成。

(1)程序總線(PB)傳送從程序存儲(chǔ)器來的指令代碼和立即數(shù)。

(2)3組數(shù)據(jù)總線(CB、DB及EB),CB和DB總線傳送從數(shù)據(jù)存儲(chǔ)器讀出的操作數(shù),EB總線傳送寫入到存儲(chǔ)器中的數(shù)據(jù)。

(3)4組地址總線(PAB、CAB、DAB和EAB)傳送執(zhí)行指令所需的地址。

4.C54x的寄存器

C54x擁有眾多的寄存器,有輔助寄存器、暫存寄存器、過渡寄存器、堆棧指針寄存器、循環(huán)緩沖大小寄存器、塊

循環(huán)寄存器、中斷寄存器等。

(1)輔助寄存器(AR0~AR7)。

8個(gè)16bit的輔助寄存器能被ALU訪問,也能被輔助寄存器算術(shù)單元(ARAUs)修改,其主要功能是產(chǎn)生16bit的數(shù)據(jù)空間,但也能用來作為通用寄存器和計(jì)數(shù)器。

(2)暫存寄存器(TREG)。

暫存寄存器為乘法指令和乘/累加指令存放一個(gè)乘數(shù),帶移位操作的指令,如ADD、LD或SUB指令中存放一個(gè)動(dòng)態(tài)的移位計(jì)數(shù),也可作為BITT指令存放一個(gè)動(dòng)態(tài)位地址。EXP指令把計(jì)算出的數(shù)值存入TREG,而NORM指令將TREG的值歸一化。

(3)過渡寄存器(TRN)。

過渡寄存器是一個(gè)16bit的寄存器,用來得到新的度量值存放中間結(jié)果,以完成Viterbi算法,CMPS(比較、選擇和存儲(chǔ))指令在累加器高位字和低位字進(jìn)行比較的基礎(chǔ)上修改TRN的內(nèi)容。

(4)堆棧指針寄存器(SP)。

堆棧指針寄存器是存放棧頂?shù)刂返?6bit寄存器,SP總是指向壓入堆棧的最后一個(gè)數(shù)據(jù),中斷、調(diào)用、返回、PUSHED、PUSHM、POPD、POPM等指令都要進(jìn)行堆棧處理。

(5)循環(huán)緩沖大小寄存器(BK)。

循環(huán)緩沖大小寄存器由ARAUs用來在循環(huán)尋址中確定數(shù)據(jù)塊的大小。

(6)塊循環(huán)寄存器(BRC、RSA、REA)。

塊循環(huán)寄存器(BRC)在塊循環(huán)時(shí)確定一代碼所需循環(huán)的次數(shù),塊循環(huán)開始地址(RSA)是需要循環(huán)的程序的開始地址,塊循環(huán)尾地址(REA)是循環(huán)程序塊的結(jié)束地址。

(7)中斷寄存器(IMR、IFR)。

中斷寄存器(IMR)在需要的時(shí)候獨(dú)立地屏蔽特定的中斷,中斷標(biāo)志寄存器(IFR)用來指明各個(gè)中斷的當(dāng)前狀態(tài)。

5.C54x的片內(nèi)外設(shè)

C54x芯片有以下外設(shè):通用I/O引腳(BIO和XF)、軟件可編程等待狀態(tài)發(fā)生器、可編程的塊切換邏輯、主機(jī)接口(HPI)、硬件定時(shí)器、時(shí)鐘發(fā)生器和串口等。

(1)通用I/O引腳。

每一種C54x芯片都有兩個(gè)通用I/O引腳BIO和XF。BIO是用來監(jiān)測外部設(shè)備狀態(tài)的輸入管腳。在對(duì)時(shí)間要求很嚴(yán)格的循環(huán)不能被外部中斷所打斷的時(shí)候,可以用BIO腳來代替中斷與外設(shè)相連,根據(jù)BIO輸入的狀態(tài)來執(zhí)行一個(gè)轉(zhuǎn)移。XF用于發(fā)信號(hào)給外部設(shè)備,可以通過編程控制。

(2)軟件可編程等待狀態(tài)發(fā)生器。

軟件可編程等待狀態(tài)發(fā)生器可以把外部總線周期擴(kuò)展到7個(gè)機(jī)器周期,從速度上和較慢的片外存儲(chǔ)器和I/O設(shè)備相匹配,它不需要任何的外部硬件,只由軟件控制。

(3)可編程塊切換邏輯。

可編程塊切換邏輯在訪問越過存儲(chǔ)器塊邊界,或從程序存儲(chǔ)器跨越到數(shù)據(jù)存儲(chǔ)器時(shí),能自動(dòng)插入一個(gè)周期,此額外的周期允許存儲(chǔ)器器件在其它器件開始驅(qū)動(dòng)總線之前釋放總線,以此來防止總線競爭。用于存儲(chǔ)器塊切換的塊大小由切換控制寄存器(BSRC)確定。

(4)主機(jī)接口。

主機(jī)接口(HPI)是一個(gè)8bit的并口,提供C54x與主處理器的接口,C54x和主處理機(jī)都可以訪問C54x的片內(nèi)存儲(chǔ)器,并且通過它進(jìn)行信息交換。

(5)硬件定時(shí)器。

C54x有一個(gè)帶有4bit預(yù)分頻器的16bit的定時(shí)電路,定時(shí)計(jì)數(shù)器在每一個(gè)時(shí)鐘周期中減1,每當(dāng)計(jì)數(shù)器減至0時(shí)產(chǎn)生一個(gè)定時(shí)中斷,可以通過設(shè)置特定的狀態(tài)來使定時(shí)器停止,恢復(fù)運(yùn)行、復(fù)位或禁止。

(6)時(shí)鐘發(fā)生器。

時(shí)鐘發(fā)生器由一個(gè)內(nèi)部振蕩器和一個(gè)鎖相環(huán)電路組成,可以通過晶振或外部的時(shí)鐘驅(qū)動(dòng)。鎖相環(huán)電路能使時(shí)鐘源乘上一個(gè)特定的系數(shù),得到一個(gè)內(nèi)部CPU時(shí)鐘,故可以選擇一個(gè)頻率比CPU時(shí)鐘低的時(shí)鐘源。

(7)串口。各種C54x的芯片配有不同的串口,但不外乎以下三種:同步、緩沖和時(shí)分多路。同步串行I/O口:高速、全雙工串口,提供與編碼器、A/D轉(zhuǎn)換器等串行設(shè)備之間的通信。當(dāng)一個(gè)C54x芯片有多個(gè)同步串口時(shí),它們是相互獨(dú)立的,每個(gè)串口都能工作到1/4的時(shí)鐘頻率(CLKOUT)。同步串口為收、發(fā)雙向緩沖的,單獨(dú)由可屏蔽的外部中斷信號(hào)控制,數(shù)據(jù)可以按字節(jié)或字傳送。

緩沖串口(BSP):在同步串口的基礎(chǔ)上增加了一個(gè)自動(dòng)緩沖單元,最大以CLKOUT頻率工作。它也是全雙工和雙緩沖的,能提供靈活的數(shù)據(jù)串長度,自動(dòng)緩沖單元支持高速傳送并降低服務(wù)中斷開銷。

時(shí)分多路串口(TDM):允許數(shù)據(jù)時(shí)分多路的同步串口,既能工作于同步方式,也能工作于TDM方式下,在多處理器中得到廣泛的應(yīng)用。

6.外部總線接口

C54x有64K的16bit并行I/O尋址,對(duì)外部存儲(chǔ)器或I/O的訪問則通過外部總線進(jìn)行,獨(dú)立的空間選擇信號(hào)DS、PS和IS允許進(jìn)行物理上分開的空間選擇。接口的外部ready輸入信號(hào)和軟件產(chǎn)生的等待狀態(tài)允許處理器與各種不同速度的存儲(chǔ)器和I/O設(shè)備相連,接口的保持模式使外部設(shè)備能控制C54x的總線。10.1.3基于DSP芯片系統(tǒng)的設(shè)計(jì)與調(diào)試

1.DSP軟件開發(fā)工具

隨著運(yùn)算能力的不斷增強(qiáng)以及片上集成外設(shè)的不斷豐富,DSP芯片的功能變得越來越強(qiáng)大,以前需要多塊DSP芯片共同完成的工作現(xiàn)在可能只需要一塊DSP芯片就能勝任。隨著DSP芯片性能的提升,運(yùn)行在每一塊DSP芯片上的軟件也變得越來越復(fù)雜?,F(xiàn)在,軟件系統(tǒng)的開發(fā)與調(diào)試工作會(huì)占整個(gè)系統(tǒng)開發(fā)大約80%的工作量,遠(yuǎn)遠(yuǎn)超過了硬件系統(tǒng)設(shè)計(jì)與開發(fā)所耗費(fèi)的時(shí)間。在這種情況下,軟件開發(fā)工具的重要性就凸顯出來,選擇一個(gè)優(yōu)秀的軟件開發(fā)工具將大大加快整個(gè)開發(fā)的進(jìn)度。TI公司DSP軟件工具也經(jīng)歷了由基于匯編語言到基于高級(jí)語言,由分散到集成的一個(gè)發(fā)展過程。

1)TI早期的軟件開發(fā)工具

TI早期的DSP軟件開發(fā)工具主要可以分為三類:①代碼生成工具(codegenerationtools),如編譯器(compiler)、匯編器(assembler)和連接器(linker);②代碼調(diào)試工具,如Csourcedebugger;③仿真工具,如simulator等。

(1)TMS320宏匯編編輯器/編譯器/連接器。

凡是從事過單片CPU開發(fā)的讀者都知道,匯編語言程序一般都是用助記符編寫的,因此需要有一個(gè)匯編語言的編輯器,即assembler。當(dāng)將編輯好的匯編語言程序在CPU上執(zhí)行時(shí),需要將該程序編譯、連接后才能生成可執(zhí)行的機(jī)器碼,也即目標(biāo)文件,這時(shí)需要宏匯編的編譯器/連接器,即compiler/linker。TI公司提供兩類宏匯編的編輯器/編譯器/連接器,一類用于定點(diǎn)DSP芯片,一類用于浮點(diǎn)DSP芯片,它們統(tǒng)稱為代碼生成工具。

(2)TMS320系列最佳的ANSIC編譯器(ANSICcompiler)。

眾所周知,用高級(jí)語言編程可讀性強(qiáng),便于檢查。為此,TI公司提供了對(duì)其DSP的C語言編譯器,它可將用標(biāo)準(zhǔn)ANSIC語言編寫的原文件轉(zhuǎn)換成高效的TMS320系列的匯編語言源文件,該源文件再經(jīng)TMS320的編譯器/連接器后即可生成可執(zhí)行的目標(biāo)文件。TI的C編譯器也分為兩類,一類適用于定點(diǎn)的DSP,另一類適用于浮點(diǎn)的DSP。

(3)代碼調(diào)試工具(debugger)。

C語言或匯編語言調(diào)試器是一類工作在PC機(jī)上的軟件工具,它通過后面要介紹的硬件調(diào)試工具(如DSK、EVM板等)實(shí)現(xiàn)對(duì)所編程序的調(diào)試。

(4)軟件仿真器(simulator)。

TMS320系列的軟件仿真器是一個(gè)程序軟件,它運(yùn)行在PC上,可模擬TMS320的整個(gè)指令系統(tǒng),從而達(dá)到程序檢驗(yàn)和開發(fā)的目的。其特點(diǎn)如下:

·在主機(jī)上非實(shí)時(shí)地執(zhí)行用戶編寫的DSP程序;

·可檢查和改寫寄存器的內(nèi)容;

·對(duì)數(shù)據(jù)和程序存儲(chǔ)器的內(nèi)容可顯示及讀寫;

·可跟蹤累加器(ACC)、程序計(jì)數(shù)器(PC)及輔助寄存器(AR0~AR7);

·可單步執(zhí)行,可在程序中設(shè)置斷點(diǎn),可設(shè)置及響應(yīng)用戶的中斷;

·可仿真外圍設(shè)備及緩沖區(qū)。

可見,該軟件仿真器可在普通的PC機(jī)上模擬DSP芯片的工作,方便了程序的調(diào)試。該仿真器在PC的MSDOS環(huán)境下,每秒鐘可執(zhí)行幾百條指令。以上4個(gè)軟件開發(fā)工具都是各自獨(dú)立的工作,并且基本上都不具備友好的人機(jī)交互界面。因此,在使用時(shí)開發(fā)者往往需要輸入很長的命令行,同時(shí)經(jīng)常需要在不同的應(yīng)用之間頻繁切換,這就給軟件的編寫與調(diào)試帶來極大的不便。另外,使用這些開發(fā)工具也為實(shí)時(shí)系統(tǒng)的調(diào)試帶來了很多麻煩,因?yàn)殚_發(fā)者必須在應(yīng)用程序中設(shè)置斷點(diǎn),也就是必須中斷DSP上正在運(yùn)行的程序才能從DSP獲取程序運(yùn)行的數(shù)據(jù),而通過這種方式獲取的信息實(shí)際上只是應(yīng)用程序的一些孤立的靜態(tài)運(yùn)行結(jié)果,它們無法真實(shí)地反映系統(tǒng)在連續(xù)的、實(shí)時(shí)的情況下的運(yùn)行狀況。這樣,很多隱藏的問題在調(diào)試階段不會(huì)被發(fā)現(xiàn),但在實(shí)際運(yùn)行中就可能表現(xiàn)出來。以上所述的種種不足就為DSP的應(yīng)用帶來了不少的困難。為了滿足日益復(fù)雜的DSP應(yīng)用需求,TI公司推出了eXpressDSP的框架。eXpressDSP是一個(gè)開放式的、集成的軟件開發(fā)環(huán)境,它不但包含了上述的常用工具軟件,并且在功能上大大擴(kuò)展,而且為使用者提供了良好的人機(jī)交互界面。它包含如下4個(gè)部分:

·集成開發(fā)環(huán)境(CodeComposerStudio,CCS);

·實(shí)時(shí)基礎(chǔ)軟件DSP/BIOS;

·算法標(biāo)準(zhǔn)(eXpressDSPalgorithmstandard,XDAIS);

·由第三方公司提供的模塊,包括插件和算法模塊等。

eXpressDSP技術(shù)提供的簡單、易用且功能強(qiáng)大的工具可以大大縮短DSP產(chǎn)品的開發(fā)時(shí)間,從而使開發(fā)者將精力集中到更新應(yīng)用的發(fā)展中。

2)集成開發(fā)環(huán)境CCS

CCS是一個(gè)為TMS320系列DSP設(shè)計(jì)的高度集成的軟件開發(fā)和調(diào)試環(huán)境,它將DSP工程項(xiàng)目管理、源代碼的編輯、目標(biāo)代碼的生成、調(diào)試和分析都打包在一個(gè)環(huán)境中提供給用戶。CCS軟件調(diào)試窗口如圖10.1.7所示,主要包括以下工具:

·C編譯器、匯編優(yōu)化器和連接器(代碼生成工具);

·指令集仿真器(simulator);

·實(shí)時(shí)的基礎(chǔ)軟件(DSP/BIOS);

·主機(jī)和目標(biāo)機(jī)之間的實(shí)時(shí)數(shù)據(jù)交換(RTDX);

·實(shí)時(shí)分析和數(shù)據(jù)可視化。圖10.1.7

CCS軟件調(diào)試窗口

CCS提供了一個(gè)圖形化的DSP工程項(xiàng)目管理工具,用戶可以方便地瀏覽或管理諸如源文件、庫文件和配置文件等。利用源代碼編輯器,開發(fā)人員可以在CCS中直接采用C語言或者匯編語言來編寫源文件。CCS高效的代碼編譯和優(yōu)化工具可以有效地減少目標(biāo)代碼的長度,提高目標(biāo)代碼的執(zhí)行效率。在CCS中,所有源文件的編譯、匯編和連接只需要一個(gè)按鈕就可以完成,用戶不必再輸入冗長的命令行來完成這些操作。經(jīng)過編譯連接產(chǎn)生的目標(biāo)代碼可以在CCS的環(huán)境下通過硬件仿真工具,如XDS510等,下載到用戶目標(biāo)系統(tǒng)中進(jìn)行調(diào)試和運(yùn)行。如果沒有用戶目標(biāo)系統(tǒng),還可以將目標(biāo)代碼裝載到仿真器中運(yùn)行。仿真器利用計(jì)算機(jī)的資源模擬DSP的運(yùn)行情況,可以幫助用戶熟悉DSP的內(nèi)部結(jié)構(gòu)和指令,并對(duì)程序進(jìn)行簡單的調(diào)試。在應(yīng)用開發(fā)的初期,可能目標(biāo)系統(tǒng)尚未搭建起來,在這種情況下可以利用仿真器對(duì)部分程序功能進(jìn)行非實(shí)時(shí)驗(yàn)證,使得系統(tǒng)的軟件開發(fā)工作和硬件開發(fā)工作可以同步進(jìn)行。在CCS中,用戶可以利用所提供的數(shù)據(jù)可視化工具按照數(shù)據(jù)的自然格式來觀察數(shù)據(jù),如眼圖、星座圖、FFT運(yùn)算結(jié)果圖等,CCS還提供了多種格式(如YUV格式或RGB格式等)來讀取內(nèi)存中的原始圖像數(shù)據(jù)并加以顯示,這些工具使得位于DSP存儲(chǔ)器中的數(shù)據(jù)得以形象地表現(xiàn),從而可以大大加速分析與測試的速度。

2.DSP系統(tǒng)的基本設(shè)計(jì)流程

與其它系統(tǒng)設(shè)計(jì)工作一樣,在進(jìn)行DSP系統(tǒng)設(shè)計(jì)之前,設(shè)計(jì)者首先要明確自己所設(shè)計(jì)的系統(tǒng)用于什么目的,應(yīng)具有什么樣的技術(shù)指標(biāo)。對(duì)于一個(gè)實(shí)際的DSP系統(tǒng),設(shè)計(jì)者應(yīng)考慮的技術(shù)指標(biāo)主要包括:

·由信號(hào)的頻率范圍確定系統(tǒng)的最高采樣頻率;

·由采樣頻率及所要進(jìn)行的最復(fù)雜算法所需的最大時(shí)間來判斷系統(tǒng)能否實(shí)時(shí)工作;

·由以上因素確定何種類型的DSP芯片的指令周期可滿足需求;

·由數(shù)據(jù)量的大小確定所使用的片內(nèi)RAM及需要擴(kuò)展的RAM的大?。?/p>

·由系統(tǒng)所需要的精度確定是采用定點(diǎn)運(yùn)算還是浮點(diǎn)運(yùn)算;

·根據(jù)系統(tǒng)是作計(jì)算用還是控制用來確定輸入輸出端口的需求。由以上因素可大體決定應(yīng)該選TMS320系列中哪一代的產(chǎn)品來實(shí)現(xiàn)自己的任務(wù),根據(jù)選用的DSP芯片及上述技術(shù)指標(biāo),還可以初步確定A/D、D/A、RAM的性能指標(biāo)及可供選擇的產(chǎn)品。當(dāng)然,在產(chǎn)品選型時(shí),還必須考慮成本、供貨能力、技術(shù)支持、開發(fā)系統(tǒng)、體積、功耗、工作環(huán)境溫度等。

具體進(jìn)行DSP系統(tǒng)設(shè)計(jì)時(shí),其一般設(shè)計(jì)流程圖如圖10.1.8所示。圖10.1.8

DSP系統(tǒng)設(shè)計(jì)流程圖

DSP系統(tǒng)的設(shè)計(jì)步驟可大致分為如下幾個(gè)階段:

(1)根據(jù)需求寫出任務(wù)說明書。

(2)算法模擬階段。

在這一階段主要是根據(jù)設(shè)計(jì)任務(wù)確定系統(tǒng)的技術(shù)指標(biāo)。首先應(yīng)根據(jù)系統(tǒng)需求進(jìn)行算法仿真和高級(jí)語言(如MATLAB)模擬實(shí)現(xiàn),以確定最佳算法,并初步確定相應(yīng)的參數(shù)。

(3)DSP芯片及外圍芯片的確定階段。

根據(jù)算法的運(yùn)算速度、運(yùn)算精度和存儲(chǔ)等要求選擇DSP芯片及外圍芯片。

(4)軟硬件設(shè)計(jì)階段。

首先按照選定的算法和DSP芯片,對(duì)系統(tǒng)的哪些功能用軟件實(shí)現(xiàn),哪些功能用硬件實(shí)現(xiàn)進(jìn)行初步分工,如FFT、數(shù)字上/下變頻器、RAKE分集接收是否需要專門芯片或FPGA芯片實(shí)現(xiàn),譯碼判決算法是用軟件判決還是硬件判決等等;然后,根據(jù)系統(tǒng)技術(shù)指標(biāo)要求著手進(jìn)行硬件設(shè)計(jì),完成DSP芯片外圍電路和其它電路(如轉(zhuǎn)換、控制、存儲(chǔ)、輸出、輸入等電路)的設(shè)計(jì);根據(jù)系統(tǒng)技術(shù)指標(biāo)要求和所確定的硬件編寫相應(yīng)的DSP程序,完成軟件設(shè)計(jì)。

(5)硬件和軟件調(diào)試階段。

硬件調(diào)試一般采用硬件仿真器進(jìn)行。軟件調(diào)試一般借助DSP開發(fā)工具如軟件模擬器、DSP開發(fā)系統(tǒng)或仿真器進(jìn)行。通過比較在DSP上進(jìn)行的實(shí)時(shí)程序和模擬程序執(zhí)行情況來判斷軟件設(shè)計(jì)是否正確。

(6)系統(tǒng)集成和測試階段。

硬件和軟件調(diào)試完成后,將軟件脫離開發(fā)系統(tǒng),裝入所設(shè)計(jì)的系統(tǒng),形成所謂的樣機(jī),并在實(shí)際系統(tǒng)中運(yùn)行,以評(píng)估樣機(jī)是否達(dá)到了所要求的技術(shù)指標(biāo)。若系統(tǒng)測試符合指標(biāo),則樣機(jī)的設(shè)計(jì)完畢。但這種情況并不常見,實(shí)際上由于軟硬件調(diào)試階段的環(huán)境是模擬的,因此在系統(tǒng)測試中往往可能會(huì)出現(xiàn)諸如精度、穩(wěn)定性不好等問題。當(dāng)出現(xiàn)這類問題時(shí),一般要重新檢查軟硬件設(shè)計(jì),對(duì)其進(jìn)行修改,以達(dá)到系統(tǒng)設(shè)計(jì)要求。

3.系統(tǒng)調(diào)試和評(píng)估工具

在DSP系統(tǒng)開發(fā)的不同階段需要不同的開發(fā)系統(tǒng),如初學(xué)者使用的學(xué)習(xí)系統(tǒng),供對(duì)所選用的DSP及其它器件進(jìn)行評(píng)估的評(píng)估系統(tǒng),供最后調(diào)試的開發(fā)系統(tǒng)。TI公司針對(duì)這些不同的應(yīng)用推出了不同類型、不同價(jià)位的硬件開發(fā)系統(tǒng),它們是DSP入門套件DSK(DSPStarterKit)、評(píng)估模塊EVM(EvaluationModule)和擴(kuò)展的開發(fā)系統(tǒng)XDS(ExtendedDevelopmentSystem)等。

1)DSP入門套件DSK

DSK是TI公司提供給TMS320系列DSP的初學(xué)者的開發(fā)工具,用戶可以用DSK來作DSP的實(shí)驗(yàn)并進(jìn)行語音信號(hào)的采樣、還原及系統(tǒng)控制等的應(yīng)用,并可編寫和運(yùn)行實(shí)時(shí)源代碼。

DSK是一塊開發(fā)板,對(duì)不同的系列,其上面有一塊對(duì)應(yīng)的TMS320系列DSP芯片,同時(shí)板上集成有A/D、D/A,有擴(kuò)展到RAM,有時(shí)鐘、電源、各種接插件,它可以通過串行/并行或USB方式和PC機(jī)連接。因此,在PC機(jī)端可實(shí)現(xiàn)對(duì)DSK的加載、調(diào)試與運(yùn)行,DSK可通過A/D實(shí)現(xiàn)對(duì)模擬信號(hào)的采集、處理并輸出到PC機(jī)上。可見該開發(fā)工具對(duì)學(xué)習(xí)、研發(fā)DSP是非常方便的。

2)評(píng)估模塊EVM

TMS320的評(píng)估模塊也是一種較為低價(jià)的開發(fā)板,用于器件評(píng)估、標(biāo)準(zhǔn)程序檢查以及有限的系統(tǒng)調(diào)試。EVM是一個(gè)簡單的PC插件,包括目標(biāo)處理器、小容量的高速RAM、有限的外設(shè)等。

TMS320EVM所提供的基本功能有:

·存儲(chǔ)器和寄存器的顯示和修改;

·匯編器/鏈接器;

·軟件單步運(yùn)行和斷點(diǎn)功能;

·主機(jī)裝入/卸裝功能;

·I/O功能;

·高級(jí)語言調(diào)試接口等。

3)擴(kuò)展的TMS320開發(fā)系統(tǒng)XDS

擴(kuò)展的開發(fā)系統(tǒng)XDS是可以用來進(jìn)行系統(tǒng)級(jí)的集成調(diào)試,是進(jìn)行DSP硬件和軟件開發(fā)的最佳工具。

XDS510是TI公司推出的用戶DSP系統(tǒng)仿真和調(diào)試的主要工具,它具有仿真器用戶界面友好,以普通PC為基礎(chǔ)的開發(fā)系統(tǒng),可以對(duì)C2xx、C3x、C4x、C5x、C54xx、C8x、C6x等進(jìn)行全速掃描仿真。用戶可以使用XDS510來調(diào)試C程序、匯編語言程序或是兩者的結(jié)合。因此,在DSP的開發(fā)上該仿真器得到了廣泛的應(yīng)用,目前國內(nèi)大部分使用的均為該種仿真器。

(1)XDS510的主要指標(biāo)。

·通過一個(gè)14腳(C3x為12腳)的目標(biāo)連接器,全速執(zhí)行目標(biāo)代碼和監(jiān)視目標(biāo)系統(tǒng)中的器件;

·并行處理DSP的全局運(yùn)行/停止/斷點(diǎn);

·高級(jí)語言調(diào)試接口;

·最多可達(dá)200個(gè)斷點(diǎn)的軟件斷點(diǎn)/跟蹤和定時(shí);

·對(duì)所有程序和數(shù)據(jù)地址作硬件斷點(diǎn)/跟蹤;

·單步執(zhí)行;

·與C/匯編源代碼接口與調(diào)試;

·所有寄存器和存儲(chǔ)器的裝入、檢查和修改;

·時(shí)鐘周期執(zhí)行時(shí)間的標(biāo)準(zhǔn)程序檢查。

(2)仿真器接口及仿真線的定義。

除TMS320c3x其仿真頭為12線之外,如圖10.1.9(a)所示,其它仿真器的仿真信號(hào)均采用IEEE1194.1定義的JTAG標(biāo)準(zhǔn)。仿真頭一般采用14根信號(hào)線,如圖10.1.9(b)所示,表10.1.1為其仿真頭的定義。其中TDO信號(hào)與時(shí)鐘的下降沿對(duì)齊,TMS和TDI在TCK時(shí)鐘的上升沿取樣。圖10.1.9

JTAG仿真口的定義表10.1.1

JTAG仿真信號(hào)定義 10.2基于FPGA芯片的硬件實(shí)現(xiàn)

在過去很長一段時(shí)間,DSP處理器(如TI的TMS320系列)是DSP應(yīng)用系統(tǒng)核心器件的唯一選擇。盡管DSP處理器具有通過軟件設(shè)計(jì)能適應(yīng)于不同功能的靈活性,但面對(duì)當(dāng)今迅速變化的DSP應(yīng)用市場,特別是面對(duì)現(xiàn)代通信技術(shù)的發(fā)展,DSP處理器已顯得力不從心。例如其硬件結(jié)構(gòu)的不可變性導(dǎo)致了其總線的不可改變性,而固定的數(shù)據(jù)總線寬度,已成為DSP處理器一個(gè)難以突破的瓶頸。DSP處理器的這種固定的硬件結(jié)構(gòu)特別不適合于當(dāng)前許多要求能進(jìn)行結(jié)構(gòu)特性隨時(shí)變更的場合,即所謂面向用戶型的DSP系統(tǒng),或者說是用戶可定制型,或可重配置型的DSP應(yīng)用系統(tǒng)(CustomizedDSP或ReconfigurableDSP),如軟件無線電、醫(yī)用設(shè)備、導(dǎo)航、工業(yè)控制等方面。至于在滿足速度要求方面,由于采用了順序執(zhí)行的CPU架構(gòu),DSP處理器則更加不堪重負(fù)。面向DSP的各類專用ASIC芯片雖然可以解決并行性和速度的問題,但是高昂的開發(fā)設(shè)計(jì)費(fèi)用、耗時(shí)的設(shè)計(jì)周期及不靈活的純硬件結(jié)構(gòu),使得DSP的ASIC解決方案日益失去其實(shí)用性。

大容量、高速度的FPGA的出現(xiàn),克服了上述方案的諸多不足。在這些FPGA中,一般都內(nèi)嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器等DSP模塊。用FPGA來實(shí)現(xiàn)數(shù)字信號(hào)處理可以很好地解決并行性和速度問題,而且其靈活的可配置特性,使得FPGA構(gòu)成的DSP系統(tǒng)非常易于修改、易于測試及硬件升級(jí)。10.2.1

FPGA芯片及其特點(diǎn)

FPGA芯片是由大量邏輯宏單元構(gòu)成的。通過配置,可以使這些邏輯宏單元形成不同的硬件結(jié)構(gòu),從而構(gòu)成不同的電子系統(tǒng),完成不同的功能。正是FPGA的這種硬件重構(gòu)的靈活性,使得設(shè)計(jì)者能夠?qū)⒂布枋稣Z言(如VHDL或Verilog)描述的電路在FPGA中實(shí)現(xiàn)。這樣以來,同一個(gè)FPGA能實(shí)現(xiàn)許多完全不同的電路結(jié)構(gòu)和功能。如DSL布線器、數(shù)字調(diào)制解調(diào)器、JPEG編碼器、數(shù)字通信系統(tǒng)以及網(wǎng)絡(luò)接口等。隨著達(dá)數(shù)百萬門高密度的FPGA的出現(xiàn),F(xiàn)PGA在原有的高密度的邏輯宏單元的基礎(chǔ)上嵌入了許多面向DSP的專用硬核模塊,結(jié)合大量可配置于FPGA硬件結(jié)構(gòu)中的參數(shù)化IP核,DSP開發(fā)者能十分容易地將整個(gè)DSP應(yīng)用系統(tǒng)實(shí)現(xiàn)在一片F(xiàn)PGA中,從而實(shí)現(xiàn)了所謂的可編程SOC系統(tǒng),即SOPC。

FPGA中的面向DSP的嵌入式模塊有可配置的RAM、DSP乘加模塊和嵌入式處理器等,使FPGA能很好地適用于DSP功能的實(shí)現(xiàn)。例如Xilinx公司的Virtex系列器件中含有豐富的數(shù)字信號(hào)處理部件DSP48模塊,該模塊支持多種數(shù)字信號(hào)處理的功能,包括乘法器、乘累加器(MAC)、后接加法器的乘法器、三輸入加法器、桶形移位器、寬總線多路復(fù)用器、比較器和計(jì)數(shù)器等。該結(jié)構(gòu)還支持多個(gè)DSP48模塊的連接,以形成多種算術(shù)函數(shù)、DSP濾波器以及不使用通用FPGA結(jié)構(gòu)的復(fù)雜算法。此外,絕大部分的DSP處理器應(yīng)用系統(tǒng)是用外部存儲(chǔ)器來解決大數(shù)據(jù)量的處理的。然而FPGA的嵌入式高速可配置存儲(chǔ)器,在大多數(shù)情況下都能滿足相類似的數(shù)據(jù)處理要求。例如,Virtex5系列內(nèi)部集成了11.6Mb的塊狀RAM,以及3.2Mb的分布式RAM,塊狀RAM的最高速率可達(dá)550MHz。

FPGA中的嵌入式處理器進(jìn)一步提高了FPGA的系統(tǒng)集成和靈活性,使之成為一個(gè)軟件與硬件聯(lián)合開發(fā)和靈活定制的結(jié)合體,可使設(shè)計(jì)者既能在嵌入式處理器中完成系統(tǒng)軟件模塊的開發(fā)和利用,也能利用FPGA的通用邏輯宏單元完成硬件功能模塊的開發(fā)。Altera的FPGA器件還為用戶提供了嵌入式處理器軟核與硬核的選擇。嵌入式處理器軟核是由網(wǎng)表文件表達(dá)的硬件結(jié)構(gòu),當(dāng)同其它設(shè)計(jì)一同配置于FPGA中后,就成為FPGA芯片中的一個(gè)硬處理器核。高效率的SOPC設(shè)計(jì)能很容易地將軟核連同與該核相關(guān)的外圍接口系統(tǒng)一同編程下載進(jìn)同一片F(xiàn)PGA中。設(shè)計(jì)者能根據(jù)實(shí)際應(yīng)用的需要定制軟核,使之滿足不同的總線數(shù)量、總線寬度和總線功能要求,優(yōu)化總線設(shè)計(jì),排除傳統(tǒng)DSP中許多常見的問題。硬核處理器主要指在Excalibur系列FPGA中的ARM核。這種核已預(yù)先嵌入在FPGA中,含有完整的外圍接口系統(tǒng),如SDRAM、存儲(chǔ)器控制單元、UART等?,F(xiàn)代的FPGA中含有十分靈活的、針對(duì)特定算法的加速器模塊。與傳統(tǒng)的DSP處理器中的加速器模塊不同,F(xiàn)PGA中實(shí)現(xiàn)的硬件加速器是可以針對(duì)不同應(yīng)用的,這可以使設(shè)計(jì)者針對(duì)不同的DSP任務(wù)實(shí)現(xiàn)硬件功能。設(shè)計(jì)者針對(duì)具體任務(wù)在FPGA中實(shí)現(xiàn)硬件加速器模塊的途徑很多,主要有下述幾種:

·用硬件描述語言HDL完成;

·基于通用邏輯宏單元LCs的HDL設(shè)計(jì);

·基于可配置的DSP硬核模塊:存儲(chǔ)器、乘法器、并行加法器、累加器等;

·基于全參數(shù)可設(shè)置的DSP軟IP核的應(yīng)用;

·Nois軟核處理器

·ARM硬核處理器等。

在基于FPGA的DSP開發(fā)中,面向DSP的IP核的應(yīng)用是最方便的設(shè)計(jì)方案。XilinxCOREGenerator軟件生成針對(duì)XilinxFPGA優(yōu)化的可參數(shù)化算法,作為完全支持的IP核提供。利用這些參數(shù)在性能與硅片面積之間進(jìn)行權(quán)衡,實(shí)現(xiàn)高密度的設(shè)計(jì),在獲得高性能結(jié)果的同時(shí)還能縮短設(shè)計(jì)時(shí)間。XilinxCOREGenerator提供的IP核包括:

·基本元素IP核(如比較器、計(jì)數(shù)器、移位寄存器、存儲(chǔ)器等);

·通信與網(wǎng)絡(luò)IP核(如調(diào)制器、糾錯(cuò)編碼、以太網(wǎng)、DDS、串口等);

·數(shù)字信號(hào)處理IP核(濾波器、卷積器、乘累加器、FFT、CORDIC等);

·圖像處理IP核(如JPEG、DCT等);

·算術(shù)函數(shù)IP核(如乘法器、除法器、平方根、三角函數(shù)等)。以上的每一個(gè)IP核都可以利用ISEFoundation中的COREGenerator進(jìn)行參數(shù)設(shè)置,以構(gòu)成針對(duì)特定應(yīng)用的硬件功能模塊。這種通過軟件設(shè)置能隨意改變專用硬件模塊功能的技術(shù),極大地提高了FPGA在DSP設(shè)計(jì)方面的靈活性。IP核的利用,可以使設(shè)計(jì)者將IP核加入到任何標(biāo)準(zhǔn)硬件描述語言中,完成特定的功能而不改變?cè)瓉淼脑O(shè)計(jì)程序;即使在設(shè)計(jì)中和設(shè)計(jì)完成后,都能根據(jù)實(shí)際需要改變嵌入到IP核的技術(shù)參數(shù),而不改變整體設(shè)計(jì)綜合得來的代碼,從而改變DSP系統(tǒng)的技術(shù)指標(biāo)和硬件功能。此外,IP核本身基本不依賴于某種特定的FPGA硬件結(jié)構(gòu),即具有硬件通用性,這一點(diǎn)與DSP處理器相比有很大不同,為應(yīng)用設(shè)計(jì)提供了更大的靈活性。10.2.2典型FPGA芯片的結(jié)構(gòu)及主要性能

FPGA的組成部分主要有可編程輸入/輸出單元、基本可編程邏輯單元、內(nèi)嵌SRAM、豐富的布線資源、底層嵌入功能單元、內(nèi)嵌專用單元等,主要設(shè)計(jì)和生產(chǎn)廠家有Xilinx、Altera、Lattice、Actel、Atmel和QuickLogic等公司,其中最大的是Xilinx、Altera、Lattice三家,本節(jié)以Xilinx公司的產(chǎn)品為例,介紹FPGA芯片結(jié)構(gòu)及主要性能。

1.總體結(jié)構(gòu)

FPGA簡化的結(jié)構(gòu)如圖10.2.1所示。FPGA內(nèi)部最主要的、設(shè)計(jì)過程中最需要關(guān)注的部件是CLB(ConfigurableLogicBlock,可配置邏輯塊)、IOB(Input/OutputBlock,輸入/輸出塊)和BlockRAM(塊RAM)。圖10.2.1

FPGA簡化結(jié)構(gòu)示意圖

CLB是FPGA具有可編程能力的主要承擔(dān)者。一個(gè)大規(guī)模的FPGA可能含有數(shù)量巨大的CLB,例如XilinxVirtex-5的XC5VLX330有20000多個(gè)CLB,通過配置這些CLB可以讓FPGA實(shí)現(xiàn)各種不同的邏輯功能。IOB分布在FPGA的周邊,也具有可編程特性,可以配置支持各種不同的接口標(biāo)準(zhǔn),如LVTTL、LVCMOS、PCI和LVDS等,使FPGA可以方便地應(yīng)用在各種場合。BlockRAM是成塊的RAM,可以在設(shè)計(jì)中用于存儲(chǔ)數(shù)據(jù),是重要的設(shè)計(jì)資源。為大規(guī)模的設(shè)計(jì)選擇FPGA時(shí),RAM資源是否夠用是重要的因素。除了CLB、IOB和BlockRAM以外,F(xiàn)PGA還有很多其它的功能單元,例如布線資源、DCM(DigitalClockManager,數(shù)字時(shí)鐘管理器)和Multiplier(乘法器)等。布線資源在FPGA內(nèi)部占用的硅片面積很大,為FPGA部件提供靈活可配的連接;DCM模塊提供各種時(shí)鐘資源,包括多種分頻、移相后的時(shí)鐘;Multiplier為18bit×18bit硬件乘法器,是高性能的乘法單元,可以在一個(gè)時(shí)鐘周期內(nèi)完成乘法運(yùn)算,對(duì)需要大

量數(shù)字信號(hào)處理的應(yīng)用(如3G基帶、圖像處理等)至關(guān)重要。在高級(jí)的FPGA中,還包含了嵌入式處理器、DSP模塊、以太網(wǎng)MAC、高速串行I/O收發(fā)器等。例如XilinxVirtex-4包含了PowerPC處理器、XtremeDSP模塊、吉比特以太網(wǎng)MAC和速度高達(dá)6.5Gb/s的RocketIO串行收發(fā)器。這些都是硬件模塊,性能非常高,而且不占用FPGA內(nèi)部CLB資源。Xilinx為這些模塊的應(yīng)用提供了完善的開發(fā)環(huán)境,使用非常方便。

2.可配置邏輯塊(CLB)

XilinxVirtex-5FPGA的一個(gè)CLB包含兩個(gè)Slice,如圖10.2.2所示。Slice內(nèi)部包括4個(gè)LUT(查找表)、4個(gè)觸發(fā)器、多路開關(guān)及進(jìn)位鏈等資源。部分Slice還包括分布式RAM和32bit移位寄存器,這種Slice稱為SLICEM,其它Slice稱為SLICEL。圖10.2.2

Virtex-5CLB結(jié)構(gòu)示意圖

CLB內(nèi)部的兩個(gè)Slice是相互獨(dú)立的,各自分別連接開關(guān)陣列(SwitchMatrix),以便與通用布線陣列(GeneralroutingMatrix)相連。圖10.2.2中,CIN為進(jìn)位鏈的輸入,COUT為進(jìn)位鏈的輸出。

Virtex-5FPGA內(nèi)部多個(gè)CLB和Slice的位置及連接關(guān)系如圖10.2.3所示。在XilinxFPGA設(shè)計(jì)工具中,Slice的位置用“XmYn”表示,其中m為Slice所在橫坐標(biāo),一個(gè)CLB的兩個(gè)Slice的橫坐標(biāo)分別是m和m+1;n為CLB的縱坐標(biāo),一個(gè)CLB的兩個(gè)Slice有相同的n。Virtex-5FPGA左下角的Slice編號(hào)為X0Y0。圖10.2.3

CLB和Slice位置及連接關(guān)系示意圖為了方便理解,這里給出SLICEL的部分結(jié)構(gòu),如圖10.2.4所示。從圖中可以看出,一個(gè)Slice的主要組成單元包括4個(gè)6輸入查找表(輸入端為A1至A6)、4個(gè)觸發(fā)器和若干選擇器等。

實(shí)際上,查找表類似于一個(gè)ROM,容量是64bit,6個(gè)輸入作為地址輸入,存儲(chǔ)的內(nèi)容作為布爾運(yùn)算的結(jié)果。顯然,6輸入查找表可以實(shí)現(xiàn)任何6輸入的布爾函數(shù)。查找表中的內(nèi)容由開發(fā)工具ISE生成并在FPGA配置時(shí)加載進(jìn)去。圖10.2.4

SLICEL內(nèi)部結(jié)構(gòu)示意圖

Slice中的觸發(fā)器可以配置成多種工作方式,例如觸發(fā)器或鎖存器,同步復(fù)位或異步復(fù)位、復(fù)位高有效或低有效等。

CLB內(nèi)部包含多個(gè)選擇器,這些選擇器與一般的不同,它們沒有選擇端。通路的選擇在FPGA配置后固定下來,例如圖10.2.4中左下角與CLK相連的選擇器包含兩個(gè)輸入,一個(gè)是CLK,另一個(gè)是反相后的CLK。如果設(shè)計(jì)要求觸發(fā)器在時(shí)鐘下降沿觸發(fā),那么經(jīng)過綜合、布局布線、生成配置文件并配置到FPGA之后,反相后的CLK將作為該選擇器的輸出。

CLB內(nèi)部還包含了一個(gè)重要的資源——進(jìn)位鏈,其作用是方便加法器的實(shí)現(xiàn)。加法運(yùn)算是FPGA設(shè)計(jì)中很常用的功能,最常用且消耗資源最少的是行波加法器。這種加法器的關(guān)鍵路徑(即延遲最大的路徑)在進(jìn)位鏈上,因此為了提高加法器的工作頻率,XilinxFPGA提供了專用的進(jìn)位鏈。進(jìn)位鏈貫穿CLB陣列的每一列,以保證相互之間的連線最短。同時(shí)ISE在給加法器布局時(shí),會(huì)自動(dòng)布在一列上,以便使用進(jìn)位鏈資源,使加法器實(shí)現(xiàn)最短關(guān)鍵路徑,獲得最高的工作頻率。

SLICEM的結(jié)構(gòu)與SLICEL的結(jié)構(gòu)類似,最大的區(qū)別是使用了一個(gè)新的單元代替SLICEL中的查找表,這個(gè)新單元可以配置為LUT、RAM、ROM或移位寄存器,從而可以實(shí)現(xiàn)LUT的邏輯功能,也能作存儲(chǔ)單元(多個(gè)單元組合起來可以提供更大的容量)和移位寄存器(提供延遲等功能)。

CLB內(nèi)部查找表、觸發(fā)器、多路器等基本單元的配置由ISE自動(dòng)完成,一般情況下不需要設(shè)計(jì)者干預(yù)。但是,如果認(rèn)為有必要,設(shè)計(jì)者可以通過ISE中集成的FPGA底層編輯器(FPGAEditor)直接編輯CLB內(nèi)部觸發(fā)器和多路器的配置。

3.輸入/輸出模塊(IOB)

IOB是FPGA主要組成部分之一,其作用是為FPGA提供內(nèi)部資源與外圍電路之間的接口,提供輸入緩沖、輸出驅(qū)動(dòng)、接口電平轉(zhuǎn)換、阻抗匹配、延遲控制等功能。高端FPGA的輸入/輸出模塊還提供了DDR輸入/輸出接口、高速串行接口等功能。輸入/輸出模塊的功能非常豐富,它可以靈活配置成各種工作方式以實(shí)現(xiàn)不同的功能,可與CLB一起構(gòu)成FPGA的主要功能載體,是基本的、必不可少的單元。

XilinxFPGA的輸入/輸出模塊采用SelectIO技術(shù),提供多達(dá)960個(gè)用戶I/O,支持20多個(gè)單端和差分電平I/O標(biāo)準(zhǔn),如LVTTL、LVCMOS、PCI和LVDS等。單端I/O的速度可以達(dá)到600Mb/s,差分I/O的速度可以達(dá)到1Gb/s,還支持DDR、DDR-2、SDRAM、QDR-Ⅱ和RLDRAM-Ⅱ等存儲(chǔ)器接口標(biāo)準(zhǔn)。SelectIO具有DCI(DigitallyControlledImpedence,數(shù)字控制阻抗),提供有源I/O終端以實(shí)現(xiàn)阻抗匹配,這是高速PCB布線不可缺少的。使用片上有源I/O終端代替外部終端電阻,提高了信號(hào)的完整性,節(jié)省了PCB空間。

4.塊RAM(BlockRAM)

XilinxFPGA內(nèi)部有成塊的RAM資源,以供用戶存儲(chǔ)數(shù)據(jù),RAM資源的多少是FPGA評(píng)估、選型的重要考慮因素之一。

XilinxFPGA內(nèi)部成塊的RAM資源稱為BlockRAM,根據(jù)器件系列不同,BlockRAM大小有4096b(Virtex、VirtexE和Spartan系列)、18kb(Virtex-Ⅱ、Spartan-3和Virtex-4系列)和38kb等3種(Virtex-5)。BlockRAM是真正的雙口RAM結(jié)構(gòu),有兩套讀/寫數(shù)據(jù)、地址和控制總線。兩套總線的操作是完全獨(dú)立的,共享同一組存儲(chǔ)單元。BlockRAM的雙口RAM結(jié)構(gòu)對(duì)于邏輯設(shè)計(jì)至關(guān)重要,它有兩套獨(dú)立的接口,可以方便地連接兩個(gè)其它設(shè)計(jì)單元,允許一個(gè)端口寫入數(shù)據(jù)的同時(shí),另一個(gè)端口讀出數(shù)據(jù),提高了數(shù)據(jù)吞吐率。如果使用單口RAM,很多時(shí)候不得不使用三態(tài)總線,致使控制復(fù)雜且速度減慢。

BlockRAM中的內(nèi)容除了在電路運(yùn)行中重寫以外,也可以通過配置文件在FPGA上電配置時(shí)清零或初始化為特定數(shù)值。寫B(tài)lockRAM時(shí),數(shù)據(jù)輸出端可以輸出新寫入的數(shù)據(jù)、被覆蓋的數(shù)據(jù)或保持不變。FIFO是邏輯設(shè)計(jì)中常用的功能單元,Virtex-5的BlockRAM具有FIFO專用邏輯,因此實(shí)現(xiàn)FIFO時(shí)將不需要額外的CLB資源,也不需要設(shè)計(jì)者自行設(shè)計(jì)FIFO邏輯控制電路,只需對(duì)BlockRAM進(jìn)行配置即可。

5.DSP48E模塊

Virtex-5系列FPGA具有出色的DSP性能,與先前FPGA中的DSP模塊相比,所有Virtex-5系列中的DSP48E模塊都便于使用新的DSP算法,并有更高的DSP集成度,同時(shí)也提供很低的功耗、很高的性能和高效率芯片利用。DSP48E模塊結(jié)構(gòu)示意圖如圖10.2.5所示,它可以工作在550MHz頻率,而且一片F(xiàn)PGA(XC5VLX330T)可以擁有多達(dá)192個(gè)DSP48E模塊,總的數(shù)字信號(hào)處理能力達(dá)到驚人的105吉次每秒(乘累加運(yùn)算),讓設(shè)計(jì)者可以輕松應(yīng)對(duì)數(shù)字信號(hào)處理的各種設(shè)計(jì)挑戰(zhàn),例如大量中頻-基帶下變頻通道、用于3G擴(kuò)頻系統(tǒng)的128倍碼片速率處理和高分辨率H.264以及MPEG-4編碼/解碼算法等。圖10.2.5

DSP48E內(nèi)部結(jié)構(gòu)示意圖

DSP48E模塊的特點(diǎn)介紹如下:

·24bit×18bit乘法器:在更大的動(dòng)態(tài)范圍內(nèi)實(shí)現(xiàn)了更高的精度,能夠以較少的邏輯資源(Slice數(shù))實(shí)現(xiàn)單精度浮點(diǎn)運(yùn)算和多種濾波器。

·增強(qiáng)型二級(jí)功能:使用帶寄存器的累加反饋功能,實(shí)現(xiàn)了3輸入、靈活的48bit加法器/減法器;設(shè)計(jì)了模式檢測器,以支持用于飽和算法的收斂性舍入、下溢/上溢檢測以及自動(dòng)復(fù)位計(jì)數(shù)器/累加器;支持單指令多數(shù)據(jù)(SIMD)功能。

·40多種用戶控制器操作模式:DSP48E在時(shí)鐘周期改變時(shí)可以調(diào)整功能。

·8bitB輸入級(jí)聯(lián)布線:支持輸入采樣傳輸。

·新型30bitA輸入級(jí)聯(lián)布線:支持先進(jìn)的濾波器設(shè)計(jì),并降低了功耗。

·獨(dú)立的48bitC輸入:具有乘法、加法、大型三操作數(shù)加法或靈活的舍入模式。在整個(gè)Slice上消除了C輸入共享,從而提高了利用率,簡化了設(shè)計(jì),提升了性能。

·級(jí)聯(lián)的48bitP總線,支持部分結(jié)果的輸出傳輸。

DSP48E模塊是多用途DSP架構(gòu)的基礎(chǔ),使設(shè)計(jì)者可以在系統(tǒng)中有效地增加基于FPGA的DSP功能。芯片中的DSP48E經(jīng)過定制,可以獨(dú)立達(dá)到550MHz的性能,或整列組合在一起可以實(shí)現(xiàn)DSP功能。DSP48E模塊支持40多種可動(dòng)態(tài)控制的運(yùn)算模式,包括乘法器、累加器、乘加器/乘減器、3輸入加法器、桶形移位器、多種總線多路復(fù)用器、多種計(jì)數(shù)器和比較器等。DSP48E支持有效的加法鏈結(jié)構(gòu),能夠高效地執(zhí)行高性能濾波器和復(fù)雜算術(shù)運(yùn)算。10.2.3基于FPGA芯片系統(tǒng)的設(shè)計(jì)與調(diào)試

進(jìn)行FPGA開發(fā)需要專用的FPGA工具軟件,它們的功能包括FPGA程序的編寫、綜合、仿真及下載等。就整體而言,目前的FPGA開發(fā)工具可以分為兩類:一類是FPGA芯片生產(chǎn)商直接提供的集成開發(fā)環(huán)境,如Xilinx公司的FoundationSeriesISE(簡稱ISE)、Altera公司的QuartusⅡ,以及Lattice公司為ispLSI器件提供的ispDesignExpert軟件等,另一類是其它專業(yè)的EDA軟件公司提供的輔助軟件工具,統(tǒng)稱為第三方軟件。一般來說,第三方軟件支持多個(gè)公司的芯片。這里以Xilinx公司FPGA設(shè)計(jì)為例,介紹常用的軟件和硬件開發(fā)工具,如Xilinx集成開發(fā)環(huán)境ISE、DSP設(shè)計(jì)工具SystemGenerator、AccelDSP等,對(duì)大多數(shù)FPGA設(shè)計(jì)者來說,掌握這些工具就可以方便地進(jìn)行FPGA開發(fā)和設(shè)計(jì)。

1.FPGA軟件開發(fā)工具

1)集成開發(fā)環(huán)境

使用Xilinx的FPGA時(shí),ISE是必備的設(shè)計(jì)工具。ISE可以完成FPGA開發(fā)的全部流程,包括設(shè)計(jì)輸入、仿真、綜合、布局布線、生成BIT文件、配置以及在線調(diào)試等,其功能非常強(qiáng)大。對(duì)大多數(shù)FPGA設(shè)計(jì)者來說,使用ISE就可以完成設(shè)計(jì)任務(wù),取得滿意的效果。

ISE是一個(gè)集成的開發(fā)環(huán)境,集成了大量實(shí)用工具,包括HDL編輯器(HDLEditor)、IP核生成器(CoreGeneratorSystem)、約束編輯器(ConstraintsEditor)、靜態(tài)時(shí)序分析工具(StaticTimingAnalyzer)、布局規(guī)劃器(FloorPlanner)、FPGA編輯工具(FPGAEditor)和功耗分析工具(Xpower)等。表10.2.1列出了ISE一些實(shí)用的工具的用途,這些工具可以幫助設(shè)計(jì)人員完成設(shè)計(jì)任務(wù),提高工作效率。使用這些工具可以方便地實(shí)現(xiàn)不同復(fù)雜程度的設(shè)計(jì),對(duì)于初學(xué)者來說不需要一次都掌握,只需要先掌握ISE集成環(huán)境(即ProjectNavigator)、仿真工具ISESimulatorLite(第三方工具M(jìn)odelSim)、綜合工具XST以及配置工具iMPACT,其它工具可以隨著學(xué)習(xí)和工作的深入慢慢掌握。

ISE還可以把第三方工具方便地集成起來,如仿真工具M(jìn)odelSim、綜合工具Synplify等。雖然ISE已經(jīng)自帶仿真工具ISESimulatorLite和綜合工具XST,但是對(duì)于習(xí)慣使用ModelSim和Synplify的設(shè)計(jì)人員,只要在ISE中進(jìn)行簡單的設(shè)置,就可以在ISE開發(fā)環(huán)境中直接調(diào)用第三方工具,非常方便。表10.2.1I

SE集成的工具

2)DSP開發(fā)工具

SystemGenerator是Xilinx公司用于DSP設(shè)計(jì)開發(fā)的高級(jí)工具,在利用FPGA設(shè)計(jì)高性能DSP系統(tǒng)時(shí)非常有用。工具的提取功能使設(shè)計(jì)者能利用高性能的FPGA開發(fā)高度并行的系統(tǒng),Simulink與MATLAB提供了系統(tǒng)建模與自動(dòng)代碼生成。SystemGenerator是XilinxXtremeDSP解決方案的關(guān)鍵組成,集成了先進(jìn)的FPGA、設(shè)計(jì)工具、知識(shí)產(chǎn)權(quán)核、合作伙伴及設(shè)計(jì)與教育培訓(xùn)服務(wù)等。

SystemGenerator工具軟件的功能包括:

·與XilinxEDK緊密集成,以便向DSP硬件添加嵌入式處理器;

·定點(diǎn)RTL生成;

·FPGA資源估計(jì);

·與第三方ESLC綜合工具集成;

·通過硬件協(xié)同仿真將仿真性能提高1000倍;

·Xilinx的優(yōu)化DSP模塊集,通過AccelDSP支持SimulinkMATLAB語言;

·FIR濾波器編譯器;

·生成RTL測試平臺(tái)。

3)AccelDSP綜合工具

AccelDSP綜合工具是基于高級(jí)MATLAB語言的工具,用于設(shè)計(jì)針對(duì)XilinxFPGA的DSP塊。工具可自動(dòng)地進(jìn)行浮點(diǎn)或定點(diǎn)轉(zhuǎn)換,生成可綜合的VHDL或Verilog,并創(chuàng)建用于驗(yàn)證的測試平臺(tái),還可以生成定點(diǎn)C++模型或由MATLAB算法得到SystemGenerator塊。AccelDSP綜合工具是XilinxXtremeDSP解決方案的關(guān)鍵組成,同樣集成了先進(jìn)的FPGA、設(shè)計(jì)工具、知識(shí)產(chǎn)權(quán)核、合作伙伴以及設(shè)計(jì)與教育培訓(xùn)服務(wù)等。

AccelDSP工具軟件的功能包括:

·基于MATLAB的算法綜合可生成技術(shù)優(yōu)化的RTL;

·浮點(diǎn)到定點(diǎn)自動(dòng)轉(zhuǎn)換;

·IP-Explorer技術(shù)允許在算法級(jí)對(duì)硬件架構(gòu)進(jìn)行啟發(fā)式選擇;

·全自動(dòng)驗(yàn)證流程,可以自動(dòng)生成測試平臺(tái);

·硬件優(yōu)化,包括循環(huán)折疊/展開、矩陣乘法擴(kuò)展、RAM/ROM存儲(chǔ)器映射、流水線插入和移位寄存器映射;

·用于Simulink和SystemGeneratorforDSP的模型生成器;

·易用型圖形用戶界面與工具集成。

2.FPGA的基本設(shè)計(jì)流程

FPGA的設(shè)計(jì)流程就是利用EDA開發(fā)軟件和編程工具對(duì)FPGA芯片進(jìn)行開發(fā)的過程。FPGA的開發(fā)流程如圖10.2.6所示,包括電路設(shè)計(jì)、設(shè)計(jì)輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實(shí)現(xiàn)與布局布線、時(shí)序仿真

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論