【正文】
位數(shù)據(jù)輸出 END REG16B; ARCHITECTURE RTL OF REG16B IS SIGNAL R16S: STD_LOGIC_VECTOR(15 DOWNTO 0); 16 位寄存器設(shè)置 BEGIN 33 PROCESS (CLK, CLR) BEGIN IF CLR = 39。 THEN 34 IF LOAD = 39。139。 A; 將 4 位加數(shù)矢量擴(kuò)為 5 位,為進(jìn)位提供空間 BB=39。 END CASE 。 WHEN 001 = ROM_DATA = 00000000 。 ROMADD : IN STD_LOGIC_VECTOR(2 DOWNTO 0) 。 END PROCESS。 END PROCESS 。039。 END ENTITY RAM。 USE 。希望此次畢業(yè)設(shè)計(jì)為以后的學(xué)習(xí)起到一定的促進(jìn)作用。0039。0039。因此,可以利用此乘法器或相同原理構(gòu)成的更高位乘法器完成一些數(shù)字信號處理方面的運(yùn)算。當(dāng)為 1 時(shí),與門 ANDARITH 打開, 8位乘數(shù) B[7..0]在同一節(jié)拍進(jìn)入 8位加法器,與上一次鎖存在 16位鎖存器 REG16B 中的高 8 位進(jìn)行相加,其和在下一時(shí)鐘節(jié)拍的上升沿被鎖進(jìn)此鎖存器。本設(shè)計(jì)中的8 位二進(jìn)制并行加法器即是由兩個(gè) 4 位二進(jìn)制并行加法器級聯(lián)而成的,電路原理圖如下。 8 位加法器設(shè)計(jì) 20 加法器是基本邏輯器件,減法器和硬件乘法器都可由加法器來構(gòu)成。當(dāng) IO_MODE=39。針對這種快速信號處理的要求及可編程邏輯器件的特點(diǎn),可以采用可編程邏輯器件實(shí)現(xiàn)數(shù)字信號處理中的一些算法。由于其優(yōu)越性大現(xiàn)在普遍被人們接受為新的計(jì)算機(jī)體系結(jié)構(gòu)原則 。 數(shù)字信號處理的實(shí)現(xiàn)方法 FFT算法大都用于實(shí)時(shí)場合,實(shí)時(shí) DSP系統(tǒng)要求硬件的處理器速度滿足抽樣率。我們注意到,對于已經(jīng)討論過的 8 點(diǎn)流圖,只需要用三位二進(jìn)制碼來標(biāo)注整個(gè)數(shù)據(jù)。 FFT 運(yùn)算的核心是蝶形運(yùn)算,通過順 序計(jì)算全部蝶形實(shí)現(xiàn) FFT 算法的實(shí)現(xiàn)。 FFT 算法基本思想 FFT 算法的基本思想:將長度為 N 的序列的離散傅里葉變換逐次分解為較短的離散傅里葉變換,直到兩點(diǎn)的 FFT 為止,使得總的運(yùn)算次數(shù)比直接計(jì)算 DFT運(yùn)算量少得多,從而提高了運(yùn)算速度。 N 個(gè)值總共需要 2N 次復(fù)數(shù)乘法和 ? ?1NN? 次復(fù)數(shù)加法。 離散傅立葉變換算法 聲音圖像等各種信號大都為模擬信號,要用計(jì)算機(jī)對這些信號進(jìn)行數(shù)字信號處理,這些信號必須通過采樣量化編碼變成有限長的數(shù)字信號序列。 QuartusⅡ提供了原理圖輸入、文本輸入和波形輸入等多種設(shè)計(jì)輸入,并可以把這些輸入方式任意組合使用。要描述一個(gè)復(fù)雜的系統(tǒng),很難用單一的描述方法實(shí)現(xiàn),通常三種描述方法混合使用。 BEGIN X:=A XOR B。 END ARCHITECTURE BEHAVIOR。 LIBRARY IEEE。 END COMPONENT OR2。 ENTITY F_ADDER IS PORT( AIN,BIN,CIN: IN STD_LOGIC。 END IF。 END ENTITY REG8。 ( 6)編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中。 ( 3) VHDL 的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。除了含有許多具有硬件特征的語句外, VHDL 語言形式、描述風(fēng)格與句法與一般的計(jì)算機(jī)高級語言十分相似。自 IEEE公布了 VHDL的標(biāo)準(zhǔn)版本( IEEE std 10761987)之后,各 EDA 公司相繼推出了自己的 VHDL 設(shè)計(jì)環(huán)境。 4 2 硬件描述語言及 Quartus II 平臺 HDL 概述 硬件描述語言( Hardware Description Language, HDL)是描述硬件電路的功能、信號連接 關(guān)系及時(shí)序關(guān)系的語言。 FPGA 具有高密度,運(yùn)行速度快 ,并行 邏輯運(yùn)算能力強(qiáng),容易實(shí)現(xiàn)流水線 的特點(diǎn)。 一類是遞歸型算法,是將一維 DFT 轉(zhuǎn)化為容易計(jì)算的二維或多維 DFT,分裂基算法、基 基 基 基 16 及任意組合因子等的組合數(shù) FFT 算法,利用 nkNW的周期性 、 對稱性,使長序列的 DFT 分解為更小點(diǎn)數(shù)的 DFT,減少運(yùn)算量。 便于存儲、處理和交換。 因?yàn)槲覀冄芯康男盘栔辉谝欢ǚ秶鷥?nèi)才 有實(shí)際意義,當(dāng)然采樣頻率也不可能無限高也不需要無限高。s speed and integration, it39。 FPGA(Field Programmable Gate Array)即現(xiàn)場可編程門陣列,是大規(guī)模可編程邏輯 器件。由于 FPGA在速度和集成度方面的飛速提高,使得利用硬件來實(shí)現(xiàn)數(shù)字信號處理找到了新的方法。s possible to realize digital signal processing by hardware. FPGA use lookup table(LUT) structure,with a static random access memory SRAM constitutes a logic function generator,the using of FPGA technology can improve the using of highquality ponents to reduce design risk,reduce capital investment,shorten the development cycle, and the ability to parallel processing of data, easy to implement pipeline easy to upgrade and improve design flexibility,coupled with the VHDL description of a flexible approach and hardwareindependent features,all of which are very suitable for implementation of FFT algorithm,which make it to be a research problem that using VHDL achieves FFT based on FPGA. The hardware structure including FFT butterfly processing unit, data memory RAM, the control module, the twiddle factor memory ROM, address generator. By a 8 point plex, 8bit data bit wide as an example the design and logic synthesis. Using Altera39。為解決頻率混疊現(xiàn)象,對模擬信號采樣前,用低通濾波器濾除高于 1/2 采樣頻率的成份。數(shù)字信號形式和計(jì)算機(jī)所用信號一致,都是二進(jìn)制代碼,因此便于與計(jì)算機(jī)聯(lián)網(wǎng),也便于用計(jì)算機(jī)對數(shù)字信號進(jìn)行存儲、處理和交換,可使通信網(wǎng)的管 理、維護(hù)實(shí)現(xiàn)自動化、智能化。 另一類是將 DFT 轉(zhuǎn)變?yōu)榫矸e,利用計(jì)算卷積的方法計(jì)算 。用 FPGA 設(shè)計(jì)數(shù)字電路可以簡化系統(tǒng)設(shè)計(jì),提高系統(tǒng)的穩(wěn)定性。常用的硬件描述語言有 VHDL和 Verilog。 1993 年, IEEE對 VHDL 進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展 VHDL 的內(nèi)容,公布了新版本的 VHDL。 VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部和內(nèi)部兩個(gè)基本部分,其中外部為可見部分,即系統(tǒng)的端口,而內(nèi)部則是不可視部分,即設(shè)計(jì)實(shí)體的邏輯部分。 ( 4) VHDL 語言標(biāo)準(zhǔn)、規(guī)范,易于共享和復(fù)用。 VHDL 設(shè)計(jì)單元模型 VHDL 設(shè)計(jì)可由 4 個(gè)分立的設(shè)計(jì)單元組成,這 4個(gè)可編輯的源設(shè)計(jì)單元分別是:實(shí)體( ENTITY)、結(jié)構(gòu)體( ARCHITECTURE)、配置( CONFIGURATION)和程序包( PACKAGE),下面就實(shí)體和結(jié)構(gòu)體加以說明。 圖 8 位寄存器 結(jié)構(gòu)體 結(jié)構(gòu)體定義了硬件設(shè)計(jì)的輸入端口和輸出端口之間的映射關(guān)系,用來說明相應(yīng)的硬件的行為。 END PROCESS。 SUM,COUT: OUT STD_LOGIC )。 SIGNAL S1,S2,S3:STD_LOGIC。 USE 。 9 行為描述方式 行為描述方式是描述輸入與輸出的行為,不涉及具體電路的結(jié)構(gòu),大多數(shù)情況是用數(shù)學(xué)建模的手段描述設(shè)計(jì)實(shí)體,下面程序描述半加器的行為描述。 Y:=A AND B。 VHDL 語言開發(fā)環(huán)境 QuartusⅡ介紹 10 Altera公司的 CPLD/FPGA設(shè)計(jì)工具軟件 QuartusⅡ是適合單芯片可編程系統(tǒng)(SOPC)的設(shè)計(jì)環(huán)境。利用該工具所配備的編輯、編譯、仿真、綜合、芯片編程等功能,可將設(shè)計(jì)電路圖或電路描述程序變成基本的邏輯單元寫入到可編程的芯片中(如 FPGA 芯片),做成 ASIC 芯片。 對于有限長序列,可以得出另外一種傅立葉變換,稱為離散傅立葉變換(DFT)。每個(gè)復(fù)數(shù)乘法需要 4 次實(shí)數(shù)乘法和 2 次實(shí)數(shù)加法。 快速傅立葉變換就是利用 nkNW 的特性,逐步地將 N 點(diǎn)序列分解成較短的序列,計(jì)算短序列的 DFT,然后組合成原序列的 DFT,使運(yùn)算量明顯減少。下面給出 8N? 時(shí)的按時(shí)間抽取 FFT 流圖。 若 2 1 0( , , )n n n 為序列 ??xn中標(biāo)號的二進(jìn)制表示,則序列值 ? ?2 1 0,x n n n 存放在數(shù)列 ? ?0 0 1 2,X n n n 的位置上。如語音處理系統(tǒng)抽樣頻率低,對 DSP系統(tǒng)的處理速度要求相應(yīng)也較低。 18 陣列結(jié)構(gòu) 陣列結(jié)構(gòu)處理器的出現(xiàn)標(biāo)志著實(shí)時(shí)信號處理技術(shù)發(fā)展到了一個(gè)新的階段,陣列處理最大限度地利用了超大規(guī)模集成電路( Very Large Scale Integrated Circuits ,VLSI)技術(shù)的特點(diǎn),采用高度并行 流水的結(jié)構(gòu),相當(dāng)適合完成數(shù)據(jù)處理量大、運(yùn)算規(guī)整、具有局部模塊特性的實(shí)時(shí)信號處理和圖像處理任務(wù),陣列結(jié)構(gòu)主要有脈動 (Systolic)陣和波前 (Wavefront)陣 兩種形式。可編程邏輯器件允許設(shè)計(jì)人員利用并行處理技術(shù)實(shí)現(xiàn)高速信號處理算法,并且只需單個(gè)器件就能實(shí)現(xiàn)期望的性能。039。多位加法器的構(gòu)成有兩種方式:并行進(jìn)位和串行進(jìn)位方式。 圖 8位加法器原理圖 圖 4位加法器功能仿真圖 圖 8位加法器功能仿真圖 21 8 位乘法器設(shè)計(jì) 純組合邏輯電路的乘法器雖然速度比較快,但占用硬件資源多,難以實(shí)現(xiàn)寬位乘法器。而當(dāng)被乘數(shù)移出位為 0時(shí),與門全零輸出。 地址產(chǎn)生單元 地址產(chǎn)生單元的目的提供 RAM 和 ROM 正確的地址,還能夠保持蝶形計(jì) 算到哪級的軌跡, 8點(diǎn)復(fù)數(shù) FFT 共 3級,每級 4個(gè)蝶形。時(shí)每個(gè)蝶形運(yùn)算均讀取第一個(gè)旋轉(zhuǎn)因子,當(dāng) STAGE=39。 23 圖 級地址產(chǎn)生單元 (3).RAM 地址產(chǎn)生單元 RAM 地址產(chǎn)生單元提供讀取 RAM 中數(shù)據(jù)的地址。 首先感謝我的導(dǎo)師 老師 。 USE 。 ARCHITECTURE RTL OF RAM IS TYPE MEM IS ARRAY (0 TO 15) OF STD_LOGIC_VECTOR(7 DOWNTO 0)。) THEN RAMTMP (CONV_INTEGER (WADDRESS)) = DATA_FFT 。 READ FUNCTIONAL SECTION PROCESS (CLOCK,RADDRESS,RE) BEGIN IF (CLOCK=39。 END RTL。 ROM_DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ) 。 WHEN 010 = ROM_DATA = 00111111 。 END IF 。039。 THEN 時(shí)鐘到來時(shí),鎖存輸入值 R16S(6 DOWNTO 0)=R16S(7 DOWNTO 1); 右移低 8 位 R16S(15 DOWNTO 7)=D; 將輸入鎖到高能位 END IF; END PROCESS; Q=R16S; END RTL; LIBRARY IEEE; USE ; 8 位右移寄存器 ENTITY SREG8B IS PORT (CLK: IN STD_LOGIC; LOAD : IN STD _LOGIC; BIN: IN STD_LOGIC_VECTOR(7DOWNTO 0); QB: OUT STD_LOGIC