教你如何利用Veril—ogHDL設(shè)計(jì)小波濾波器
現(xiàn)代計(jì)算機(jī)和通信系統(tǒng)中廣泛采用數(shù)字信號(hào)處理的技術(shù)和方法,其基本思路是先把信號(hào)用一系列的數(shù)字來(lái)表示,然后對(duì)這些數(shù)字信號(hào)進(jìn)行各種快速的數(shù)學(xué)運(yùn)算。其目的是多種多樣的,有的是為了加密,有的是為了去掉噪聲等無(wú)關(guān)的信息,稱為濾波;有時(shí)也把某些種類的數(shù)字信號(hào)處理運(yùn)算成為變換,如離散的傅里葉變換,小波變換等。VerilogHDL是目前應(yīng)用最廣泛的一種硬件描述語(yǔ)言,用于數(shù)字電子系統(tǒng)的設(shè)計(jì)??捎盟M(jìn)行各種級(jí)別的邏輯設(shè)計(jì),并進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證,時(shí)序分析,邏輯綜合。小波濾波器的設(shè)計(jì)屬于復(fù)雜算法的電路設(shè)計(jì),因此利用Veril—ogHDL對(duì)雙正交小波濾波器進(jìn)行建模、仿真,實(shí)現(xiàn)電路的自動(dòng)化設(shè)計(jì),將是一種較為理想的方法。
Verilog HDL介紹
Verilog HDL是一種硬件描述語(yǔ)言,是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。 Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語(yǔ)言,都是在20世紀(jì)80年代中期開(kāi)發(fā)出來(lái)的。前者由Gateway Design Automation公司開(kāi)發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。
Verilog HDL就是在用途最廣泛的C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的一種硬件描述語(yǔ)言,它是由GDA公司的PhilMoorby在1983年末首創(chuàng)的,最初只設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開(kāi)發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorby推出它的第三個(gè)商用仿真器Verilog-XL,獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣應(yīng)用。1989年CADENCE公司收購(gòu)了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開(kāi)發(fā)表了Verilog HDL,并成立LVI組織以促進(jìn)Verilog HDL成為IEEE標(biāo)準(zhǔn),即IEEE Standard 1364-1995.
Verilog HDL的最大特點(diǎn)就是易學(xué)易用,如果有C語(yǔ)言的編程經(jīng)驗(yàn),可以在一個(gè)較短的時(shí)間內(nèi)很快的學(xué)習(xí)和掌握,因而可以把Verilog HDL內(nèi)容安排在與ASIC設(shè)計(jì)等相關(guān)課程內(nèi)部進(jìn)行講授,由于HDL語(yǔ)言本身是專門面向硬件與系統(tǒng)設(shè)計(jì)的,這樣的安排可以使學(xué)習(xí)者同時(shí)獲得設(shè)計(jì)實(shí)際電路的經(jīng)驗(yàn)。與之相比,VHDL的學(xué)習(xí)要困難一些。但Verilog HDL較自由的語(yǔ)法,也容易造成初學(xué)者犯一些錯(cuò)誤,這一點(diǎn)要注意。
l 小波濾波器的設(shè)計(jì)
對(duì)于小波函數(shù),要求它具有正交性、緊支集、對(duì)稱性和平滑性。正交性可以使變換無(wú)冗余;緊支集則帶來(lái)優(yōu)良的空間分辨率;對(duì)稱性保證了與其對(duì)應(yīng)濾波器的相位為線性;平滑性可以產(chǎn)生較小的失真。這樣使離散二進(jìn)小波變換受到很大的限制,為此,人們提出一種雙正交的小波變換。本文設(shè)計(jì)小波濾波器正是基于雙正交小波變換的一種雙通道完全重構(gòu)濾波器,因此可以對(duì)信號(hào)進(jìn)行分解后實(shí)現(xiàn)精確重構(gòu),所以對(duì)信號(hào)的濾波有很好的作用。由于它具有正變換二元上抽樣采樣和反變換二元下抽樣采樣特性,在進(jìn)行濾波器設(shè)計(jì)時(shí)可以將雙正交小波濾波器設(shè)計(jì)成具有多相結(jié)構(gòu)的雙通道完全重構(gòu)濾波器。雙正交小波變換可以看成原始信號(hào)通過(guò)一系列高低通濾波器濾波并經(jīng)過(guò)抽樣后所得到的結(jié)果,重構(gòu)過(guò)程與此相反。為了使變換后的信號(hào)能夠完全重建,須滿足Y(n)=x-kX(n),在這里取k=1。雙正交小波濾波器分解和重構(gòu)過(guò)程如圖1所示。
設(shè)G(z),H(z)分別為分解低通,高通濾波器,下采樣后用H(z)濾波等價(jià)于先用H(z2)濾波,然后下采樣,所以:
其中:Ge和Go分別是G(z)的偶數(shù)項(xiàng)和奇數(shù)項(xiàng),He和H。分別是H(z)的偶數(shù)項(xiàng)和奇數(shù)項(xiàng)。根據(jù)式(1),式(2)可以建立雙正交小波濾波器的多相結(jié)構(gòu)模型如圖2所示。
下面對(duì)雙正交小波濾波器用VerilogHDL進(jìn)行頂層設(shè)計(jì):
對(duì)于雙正交小波濾波器的部件Ge,Go,He,Ho設(shè)計(jì),采用行為描述方式進(jìn)行設(shè)計(jì)。VerilogHDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。在Veril—ogHDL語(yǔ)言中行為描述分為算法和RTL兩種。算法級(jí):用語(yǔ)言提供的高級(jí)結(jié)構(gòu)能夠?qū)崿F(xiàn)算法的運(yùn)行模型。RTL級(jí):描述數(shù)據(jù)在寄存器之間的流動(dòng)和如何處理,控制這些數(shù)據(jù)的流動(dòng),采用改進(jìn)的DA算法(如圖3所示)。DA算法完成一次濾波所需要B次的累加也就是B個(gè)時(shí)鐘周期完成一次運(yùn)算,B位輸入數(shù)據(jù)的位寬。它的查找表(LUT)的大小是由濾波器的階數(shù)N決定的,共需要2N個(gè)查找表單元,如果系數(shù)N過(guò)多,用單個(gè)LUT不能夠執(zhí)行全字查找則可把系數(shù)分組,利用部分表并將結(jié)果相加,為了簡(jiǎn)單的闡述算法,在此系數(shù)只分了2組,每個(gè)單元的位寬是由濾波器的系數(shù)的量化決定的。Ge,Go,He,Ho四個(gè)濾波器雖然長(zhǎng)度不同,但具有相同的電路結(jié)構(gòu),如圖4所示。
計(jì)算控制器用于控制濾波單元中移位寄存器移位,累加器的循環(huán)周期和計(jì)算輸出,并控制移位寄存器的數(shù)據(jù)輸入。
2 利用VerilogHDL語(yǔ)言實(shí)現(xiàn)以上功能
2.1 用VerilogHDL語(yǔ)言進(jìn)行算法建模
計(jì)算機(jī)控制器的veril—ogHDL模型:
寄存器組中每個(gè)寄存器的位數(shù)為0,1,…,num一1。
2.2 定制ROM
QuartusⅡ包含有許多有用的LPM模塊,它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,可以與QuartusⅡ普通設(shè)計(jì)文件一起使用,該文使用“Tools”菜單下的MegaWizardPlug—In Manager命令定制ROM的元件。如圖5所示。
2.3 用VerilogHDL進(jìn)行數(shù)據(jù)流建模
濾波器的建模過(guò)程如下:
3 驗(yàn)證仿真
利用Altera公司的QuartusⅡ7.2軟件內(nèi)部帶有仿真器對(duì)濾波器的VerilogHDL模型進(jìn)行波形仿真,通過(guò)建立正確的Vector Waveform File就可以開(kāi)始仿真了。如圖6所示。
通過(guò)QuartusⅡ的波形仿真功能,對(duì)輸入輸出進(jìn)行波形仿真,對(duì)其結(jié)果進(jìn)行定量分析。通過(guò)時(shí)序分析和功能分析結(jié)果,對(duì)設(shè)計(jì)進(jìn)行進(jìn)一步的完善。在仿真中,in—put濾波器輸入數(shù)據(jù),output濾波器輸入數(shù)據(jù)x0,x1,x2,x3,x4為移位寄存器組中寄存器,count為控制計(jì)數(shù)器,table-in為流水線寄存器。所得結(jié)果如圖6所示。經(jīng)驗(yàn)證,仿真結(jié)果和實(shí)際運(yùn)算結(jié)果一致。所以對(duì)于大多數(shù)連續(xù)的LTI系統(tǒng)都可以采用以上方法進(jìn)行分析,但是他也有局限性:對(duì)于時(shí)變系統(tǒng),非線性系統(tǒng)分析,它無(wú)能為力;只適合分析一維變量,對(duì)于多維變量,它無(wú)能為力;可采用狀態(tài)變量分析方法;就精確度來(lái)說(shuō),這種分析方法不是很高。
盡管連續(xù)LTI系統(tǒng)有很多缺點(diǎn),但是通過(guò)對(duì)LTI系統(tǒng)的分析可以培養(yǎng)系統(tǒng)建模和求解能力,為以后分析其他系統(tǒng)作參考。