版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 南京郵電大學(xué)通達(dá)學(xué)院</p><p> 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p> 日期: 年 月 日至 年 月 日</p><p> 題 目基于FPGA的FFT算法設(shè)計(jì)與實(shí)現(xiàn)</p><p> 專 業(yè)通信工程</p><p> 學(xué)生姓名</p&
2、gt;<p> 班級學(xué)號</p><p> 指導(dǎo)教師</p><p> 指導(dǎo)單位通信與信息工程學(xué)院</p><p><b> 摘 要</b></p><p> 隨著科學(xué)技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)已廣泛應(yīng)用于通信,衛(wèi)星定位,圖像處理等多個(gè)領(lǐng)域??焖俑道锶~變換(FFT)作為離散傅里葉變換(DFT)的
3、一種快速算法,它是以DFT為基礎(chǔ)的,并且使DFT的運(yùn)算時(shí)間縮短了幾個(gè)數(shù)量級,使得數(shù)字信號處理的實(shí)現(xiàn)和運(yùn)用變得更加的容易?,F(xiàn)場可編程門陣列是近年來出現(xiàn)的一種新的可編程邏輯器件,它具有運(yùn)行速度快,儲存容量大,管腳多等特點(diǎn)。</p><p> 本文主要研究如何利用FPGA實(shí)現(xiàn)FFT處理器,包括算法背景介紹、算法研究、系統(tǒng)結(jié)構(gòu)及各個(gè)模塊設(shè)計(jì)、FPGA實(shí)現(xiàn)和測試。設(shè)計(jì)采用基-2按時(shí)間抽取算法,利用Verilog HDL描
4、述的方式對FFT系統(tǒng)進(jìn)行了設(shè)計(jì)、仿真、測試等工作。仿真結(jié)果表明其計(jì)算結(jié)果達(dá)到了一定的精度,運(yùn)算速度可以滿足一般實(shí)時(shí)信號處理的要求。</p><p> 關(guān)鍵詞:現(xiàn)場可編程門陣列,快速傅里葉變換,Verilog HDL,蝶形算法</p><p><b> ABSTRACT</b></p><p> With the rapid develop
5、ment of science and technology, digital signal processing technology has been widely used in communications, satellite positioning, image processing and other fields. Fast Fourier transform (FFT) as a fast algorithm of d
6、iscrete Fourier transform (DFT) which is based on DFT, shortens the operation time of DFT for several orders of magnitude and makes the implementation and use of digital signal processing more easily. Field programmable
7、gate array (fpga) is a new kind of pro</p><p> This paper, including four parts of background introduction, algorithm research, system structure and design of each module, and the implementation and testing
8、 of FPGA, mainly studies how to use FPGA to realize the FFT processor. Moreover, this design applies the radix-2 decimation in time algorithm and utilizes the way of Verilog HDL description to design, simulate and test F
9、FT system. The simulation result shows that if the calculation result can achieve a certain accuracy, the arithmetic spee</p><p> Keywords: Field Programmable Gate Array, Fast Fourier Transform, Verilog HDL
10、, Butterfly Algorithm</p><p><b> 目 錄</b></p><p> 第一章 緒論...............................................................................................1</p><p> 1.1課
11、題研究背景及意義.............................................................................................1</p><p> 1.2 FFT算法的發(fā)展現(xiàn)狀.................................................................................
12、..1</p><p> 1.3 FFT處理器的發(fā)展現(xiàn)狀...............................................................................2</p><p> 1.4 FPGA實(shí)現(xiàn)FFT的優(yōu)越性...........................................................
13、..........................2</p><p> 1.5本文研究的主要內(nèi)容及主要工作..........................................................................3</p><p> FFT算法研究和FPGA技術(shù).........................................
14、...............4</p><p> 2.1 FFT算法基本原理.................................................................................................4</p><p> 2.2現(xiàn)場可編程門陣列FPGA技術(shù)..............................
15、...............................................6</p><p> 2.2.1 FPGA器件簡介................................................................................................6</p><p> 2.2.2 FPGA的原理及優(yōu)
16、點(diǎn)........................................................................................6</p><p> 2.2.3 FPGA的基本結(jié)構(gòu)............................................................................................
17、7</p><p> FFT算法設(shè)計(jì)與硬件實(shí)現(xiàn)結(jié)構(gòu)....................................................8</p><p> 3.1基于FPGA的系統(tǒng)的開發(fā)......................................................................................8<
18、/p><p> 3.2硬件描述語言Verilog HDL....................................................................................9</p><p> 3.3 FFT的硬件實(shí)現(xiàn)結(jié)構(gòu)...........................................................
19、.................................10</p><p> 3.4 提高FFT運(yùn)算速度和精度的方法......................................................................11</p><p> 3.4.1 提高FFT處理速度的方法..............................
20、.............................................11</p><p> 3.4.2 FFT運(yùn)算精度提高的方法.............................................................................11</p><p> FFT處理器的設(shè)計(jì)與實(shí)現(xiàn)..................
21、........................................13</p><p> 4.1 FFT處理器的設(shè)計(jì)結(jié)構(gòu)與工作過程....................................................................13</p><p> 4.2 蝶形運(yùn)算的設(shè)計(jì)與實(shí)現(xiàn)............................
22、..........................................................14</p><p> 4.2.1 乘法器設(shè)計(jì)...................................................................................................14</p><p> 4.
23、2.2 蝶形運(yùn)算單元設(shè)計(jì).......................................................................................15</p><p> 4.2.3 蝶形運(yùn)算單元實(shí)現(xiàn)..................................................................................
24、.....15</p><p> 4.3 塊浮點(diǎn)單元的結(jié)構(gòu)原理和實(shí)現(xiàn)..........................................................................16</p><p> 4.3.1 塊浮點(diǎn)的結(jié)構(gòu)實(shí)現(xiàn)............................................................
25、...........................16</p><p> 4.3.2 運(yùn)算誤差的分析...........................................................................................17</p><p> 4.4 地址產(chǎn)生單元設(shè)計(jì)...........................
26、...................................................................18</p><p> 4.4.1 蝶形運(yùn)算數(shù)據(jù)的地址設(shè)計(jì)...........................................................................18</p><p> 4.4.2 倒序輸出地
27、址設(shè)計(jì).......................................................................................19</p><p> 4.5 輸入與輸出的RAM模塊設(shè)計(jì)............................................................................20</p>
28、<p> 4.6 蝶形運(yùn)算的數(shù)據(jù)切換模塊的設(shè)計(jì)......................................................................21</p><p> 4.7 旋轉(zhuǎn)因子的ROM模塊設(shè)計(jì)..............................................................................
29、.22</p><p> 4.7.1 旋轉(zhuǎn)因子的計(jì)算...........................................................................................22</p><p> 4.7.2 ROM設(shè)計(jì) .....................................................
30、................................................22</p><p> 4.7.3 減少旋轉(zhuǎn)因子的讀取操作...........................................................................22</p><p> 4.8 時(shí)序控制單元設(shè)計(jì)..................
31、............................................................................23</p><p> 4.9 數(shù)字時(shí)鐘管理器的設(shè)計(jì)......................................................................................24</p><p
32、> 4.10 FFT的系統(tǒng)實(shí)現(xiàn)..................................................................................................24</p><p> 4.11 快速傅里葉變換(FFT)和逆變換的實(shí)現(xiàn)......................................................
33、25</p><p> FFT系統(tǒng)的聯(lián)合仿真..................................................................28</p><p> 5.1 FFT系統(tǒng)的性能分析................................................................................
34、............28</p><p> 5.1.1 系統(tǒng)的資源利用情況...................................................................................28</p><p> 5.1.2 系統(tǒng)的速度運(yùn)行情況.............................................
35、......................................28</p><p> 5.2 FPGA聯(lián)合仿真驗(yàn)證.............................................................................................29</p><p> 5.3 仿真測試結(jié)果及分析............
36、..............................................................................29</p><p> 結(jié)束語.........................................................................................................32</p&
37、gt;<p> 致謝.............................................................................................................33</p><p> 參考文獻(xiàn)................................................................
38、.....................................34</p><p><b> 第一章 緒論</b></p><p> 1.1 課題研究背景及意義</p><p> 隨著數(shù)字技術(shù)、電子集成電路技術(shù)等各方面技術(shù)的全面發(fā)展,數(shù)字信號處理技術(shù)已深入到各個(gè)科學(xué)領(lǐng)域并得到廣泛的運(yùn)用,將信號處理的發(fā)展發(fā)展到了一個(gè)新的高度
39、。但是數(shù)字信號處理基本上是運(yùn)用時(shí)域和頻域兩種方法來解決信號處理的問題,時(shí)域方法即為數(shù)字濾波,而頻域方法即為頻域分析,他們同時(shí)處理的任務(wù)可分為三類:變換、卷積和相關(guān)。</p><p> 其中,DFT的快速算法快速傅里葉變換(FFT)就變成了數(shù)字信號處理的最基本的技術(shù)之一,它通過將長序列的DFT分解為多個(gè)短序列的DFT進(jìn)行計(jì)算,從而可以使運(yùn)算量大大減少,并且把DFT的運(yùn)算速度提升了1~2個(gè)數(shù)量級,使得數(shù)字信號處理技
40、術(shù)在應(yīng)用于各種信號的實(shí)時(shí)處理時(shí)變得更加的效率。因此,對FFT及其實(shí)現(xiàn)方式的研究很有意義。目前,F(xiàn)FT已廣泛運(yùn)用在圖像處理、語音識別、雷達(dá)處理、遙感遙測、數(shù)字通信、頻譜分析等眾多領(lǐng)域,在不通的應(yīng)用場合中,需要不同性能要求的FFT處理器。在很多應(yīng)用領(lǐng)域都要求FFT處理器具有高精度、高速度、容量大和實(shí)時(shí)處理的性能。因此,使FFT變得更迅捷、更靈活也變得越來越重要。</p><p> 近年來,現(xiàn)場可編程門列陣(FPGA
41、)以其高性能、高靈活性、友好的開發(fā)環(huán)境、在線可編程等特點(diǎn),使得基于FPGA的設(shè)計(jì)可以實(shí)時(shí)滿足數(shù)字信號處理的要求,在市場競爭中具有很大的優(yōu)勢。這也使得采用并行度更大、速度更快的FPGA芯片來實(shí)現(xiàn)FFT成為了必然趨勢。因此,自主研發(fā)基于FPGA芯片的FFT,把FFT實(shí)時(shí)性的要求和FPGA芯片設(shè)計(jì)的靈活性集合起來,實(shí)現(xiàn)并行算法與硬件結(jié)構(gòu)的優(yōu)化配置,提高FFT的處理速度,使其滿足現(xiàn)代信號處理的高速度、高可靠性的要求,成為了現(xiàn)如今我國數(shù)字信號處理
42、的一個(gè)研究點(diǎn)。鑒于這種趨勢,作者將給予FPGA的FFT設(shè)計(jì)與實(shí)現(xiàn)作為研究課題進(jìn)行研究[1]。</p><p> 1.2 FFT算法的發(fā)展現(xiàn)狀</p><p> 快速傅里葉變換(FFT)作為離散傅里葉變換(DFT)的一種快速算法,他并不是一種新的變換。由于直接計(jì)算DFT時(shí),DFT的計(jì)算量和變換區(qū)間長度N的平方成正比,因此當(dāng)N較大時(shí),計(jì)算量也會變得很大,所以在FFT出現(xiàn)之前,直接用DFT算
43、法進(jìn)行實(shí)時(shí)處理是很不切實(shí)際的。直到1965年美國庫利(J. W. Cooley)和圖基(J. W. Tukey)提出FFT快速算法,這種情況才得到了相應(yīng)的解決,自算法突出到現(xiàn)在也已有四十多年的歷史,F(xiàn)FT已有了多種算法,其算法理論也已經(jīng)非常成熟。從FFT算法理論的發(fā)展上看,主要有兩個(gè)方向[2]:</p><p> 組合數(shù)FFT算法,針對FFT變換點(diǎn)數(shù)N等于2的整數(shù)次冪,如基-2算法、基-4算法、基-8算法、實(shí)因
44、子算法、分裂基算法及任何組合因子算法,利用系數(shù)的周期性和對稱性,使長序列的DFT分解成更小點(diǎn)數(shù)的DFT,從而大大減少了運(yùn)算的工作量。</p><p> ?。?)N不等于2的整數(shù)次冪的算法,以維諾格蘭德(S. Winograd)為代表一類傅里葉變換算法,利用下標(biāo)映射和數(shù)論以及近代數(shù)學(xué)的只是,去掉級間的旋轉(zhuǎn)因子,從而減少運(yùn)算量。</p><p> 1.3 FFT處理器的發(fā)展現(xiàn)狀</p&
45、gt;<p> FFT處理器是FFT算法的硬件實(shí)現(xiàn),針對其硬件實(shí)現(xiàn)方案,主要有三種途徑:</p><p> ?。?)利用通用數(shù)字信號處理芯片來實(shí)現(xiàn)(DSP處理器)</p><p> 針對一般數(shù)字信號處理算法的實(shí)現(xiàn),采用通過可編程硬件處理器技術(shù)來實(shí)現(xiàn)FFT。這種方法具有軟件設(shè)計(jì)的多用性的優(yōu)點(diǎn),能夠適用于各種需要FFT運(yùn)算來進(jìn)行信號處理的應(yīng)用場合,靈活方便。但是,通用DSP處
46、理器構(gòu)成的FFT處理機(jī)采用循環(huán)編碼算法,程序量小,但存在大量的冗余運(yùn)算,,需要許多的跳轉(zhuǎn)操作,處理速度較慢,因此難以滿足現(xiàn)代數(shù)字信號處理高速、實(shí)時(shí)性和大規(guī)模的要求[3]。</p><p> ?。?)利用專用的FFT芯片或用戶定制的專用的集成電路來實(shí)現(xiàn)(ASIC)</p><p> 針對FFT的特有算法,用專用的硬件組成專用的FFT芯片來實(shí)現(xiàn)FFT。ASIC在一些特殊功能上表現(xiàn)的相當(dāng)好,這
47、種實(shí)現(xiàn)方式速度快,可靠性高,非常符合實(shí)時(shí)處理和可靠性要求高的信號處理系統(tǒng),但專用的FFT芯片不能重新組態(tài),且可編程能力有限。</p><p> (3)利用可編程邏輯器件來實(shí)現(xiàn)(以FPGA為代表)</p><p> 隨著FPGA技術(shù)的全面普及,以及FFT算法在各個(gè)科學(xué)領(lǐng)域的廣泛應(yīng)用,使用FPGA芯片設(shè)計(jì)FFT算法正在世界范圍內(nèi)興起。FPGA芯片具有在線可編程能力、硬件結(jié)構(gòu)可重構(gòu)的特點(diǎn),適
48、合于算法固定、運(yùn)算量大的數(shù)字信號處理。新近推出的FPGA產(chǎn)品都可采用多層布線結(jié)構(gòu),更低的核心電壓,更豐富的輸入\輸出管腳,更大容量的邏輯單元,內(nèi)置嵌入式RAM資源,內(nèi)部集成多個(gè)數(shù)字鎖相環(huán),嵌入多個(gè)硬件乘法器,所有的這些特點(diǎn)都使得FPGA在數(shù)字信號處理領(lǐng)域中顯示出自己獨(dú)有的優(yōu)勢。</p><p> 因此,利用FPGA來實(shí)現(xiàn)FFT變得更有意義。</p><p> 1.4 FPGA實(shí)現(xiàn)FFT
49、的優(yōu)越性</p><p> 由于成本、系統(tǒng)功耗和面市時(shí)間等各種原因,許多視頻、通訊和圖像系統(tǒng)已無法簡單的利用DSP處理器來實(shí)現(xiàn),基于FPGA的信號處理器已廣泛應(yīng)用于各種信號處理領(lǐng)域。FPGA所固有的靈活性和性能可以讓設(shè)計(jì)者緊跟新時(shí)代、新標(biāo)準(zhǔn)的變化,并且能提供可行的方法來滿足不斷變化的要求。</p><p> 與DSP相比,F(xiàn)PGA實(shí)現(xiàn)FFT的主要優(yōu)越性有:</p><
50、;p> ?。?)利用FPGA實(shí)現(xiàn)數(shù)字信號處理最顯著的特點(diǎn)就是高速性能好。FPGA有內(nèi)置的高速乘法和加法器,尤其適用于乘法和累加等重復(fù)性的DSP任務(wù)。</p><p> ?。?)FPGA的儲存量大。目前,高檔的FPGA中有大量的高速存儲器,不需要外接存儲器便可以實(shí)現(xiàn)FFT的實(shí)時(shí)處理運(yùn)算,其速度更快,電路也更簡單穩(wěn)定,集成度和可靠性野大幅提高[4]。</p><p> ?。?)FPGA是
51、硬件可編程的,因此也比DSP更加靈活。DSP往往需要外部的接口和控制芯片配合工作,F(xiàn)PGA則不需要,這樣使得硬件更簡單和小型化。</p><p> ?。?)在對FPGA和DSP進(jìn)行比較時(shí),一個(gè)及其重要的系統(tǒng)參數(shù)是輸入\輸出帶寬。除了一些專用引腳外,F(xiàn)PGA上幾乎所有的引腳均可供用戶使用,這使得FPGA信號處理方案具有非常高性能的輸入\輸出帶寬。大量的輸入\輸出引腳和多塊存儲器可讓系統(tǒng)在設(shè)計(jì)中獲得優(yōu)越的并行處理性能
52、。</p><p> 1.5本文研究的主要內(nèi)容及主要工作</p><p> 本文主要針對基-2順序處理的FFT處理器的FPGA實(shí)現(xiàn)進(jìn)行了研究,涉及算法</p><p> 選取、處理器結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)仿真、FPGA實(shí)現(xiàn)和系統(tǒng)測試。本論文共5章,各章的</p><p><b> 具體內(nèi)容如下:</b></p>
53、;<p> 第1章闡述了FFT的發(fā)展現(xiàn)狀及選題的意義和論文內(nèi)容。</p><p> 第2章主要討論了FFT算法的基本原理、FPGA技術(shù)和FPGA主要結(jié)構(gòu)的相關(guān)內(nèi)容。</p><p> 第3章探討了硬件描述語言Verilog HDL和FFT處理器的硬件實(shí)現(xiàn)結(jié)構(gòu),并在處理速度、硬件消耗和精度方面提出了優(yōu)化措施。</p><p> 第4章闡述了應(yīng)用F
54、PGA實(shí)現(xiàn)FFT的具體設(shè)計(jì),包括蝶形運(yùn)算單元設(shè)計(jì)、塊浮</p><p> 點(diǎn)單元設(shè)計(jì)、地址產(chǎn)生單元設(shè)計(jì)、輸入與輸出RAM模塊設(shè)計(jì)、蝶形運(yùn)算數(shù)據(jù)功數(shù)據(jù)切換模塊設(shè)計(jì)、旋轉(zhuǎn)因子的ROM模塊設(shè)計(jì)、減少ROM讀取操作設(shè)計(jì)、時(shí)序控制單元設(shè)計(jì)和數(shù)字時(shí)鐘管理器的設(shè)計(jì)。最后設(shè)計(jì)出512點(diǎn)數(shù)復(fù)數(shù)的FFT處理系統(tǒng)。</p><p> 第5章介紹了FFT系統(tǒng)的仿真測試,給出了反映對芯片資源利用情況的實(shí)現(xiàn)報(bào)&l
55、t;/p><p> 告。對信號進(jìn)行測試并與MATLAB計(jì)算的理論結(jié)果進(jìn)行了比較。</p><p> 最后對整篇論文進(jìn)行了總結(jié)和討論。</p><p> 第二章 FFT算法研究和FPGA技術(shù) </p><p> 2.1 FFT算法基本原理</p><p> 有限長序列{x(n)}及其頻域表示{X(k)}可由以
56、下離散傅里葉變換得出:</p><p> , (0≤k≤N-1) (2.1.1)</p><p> (0≤n≤N-1) (2.1.2)</p><p> 其中,。式(2.1.1)成為離散傅里葉正變換,式(2.1.2)成為離散傅里葉反變換,x(n)與X(k)構(gòu)成了離散傅里葉變換對。</p>
57、<p> 為減少運(yùn)算量,提高運(yùn)算速度,就必須改進(jìn)算法。計(jì)算DFT過程中需要完成的運(yùn)算的系數(shù)里,存在相當(dāng)多的對稱性。通過研究這種對稱性,可以簡化計(jì)算過程中的運(yùn)算,從而減少計(jì)算DFT的時(shí)間。</p><p><b> 具有以下固有特性:</b></p><p> 的周期性: (2.1.3)</p&g
58、t;<p> 的對稱性: (2.1.4) </p><p> 的可約性: (2.1.5)</p><p><b> 另外,。</b></p><p> 利用的上述特性,將x(n)或X(k)序列按一定規(guī)律分解成短序列進(jìn)行運(yùn)算,這樣
59、可以避免大量的重復(fù)運(yùn)算,提高計(jì)算DFT的運(yùn)算速度。算法形式有很多種,但基本上可以分為兩大類,即按時(shí)間抽?。―ecimation In Time,DIT)FFT算法和按頻率抽?。―ecimation In Frequency,DIF)FFT算法。本文選用按時(shí)間抽?。―IT)的基-2FFT算法。</p><p> 先設(shè)序列點(diǎn)數(shù)為N=2L,L為整數(shù)。如果不滿足這個(gè)條件,可以人為地加上若干個(gè)零值點(diǎn),使之達(dá)到這一要求,這
60、種N為2的整數(shù)冪的FFT也稱基-2 FFT。</p><p> 式(2.1.1)中,采用基-2按時(shí)域抽選(DIT)分解辦法,在時(shí)域上按照奇偶關(guān)系的抽選分解可以得到:</p><p><b> ?。?.1.6)</b></p><p><b> 令,則:</b></p><p><b>
61、 ?。?.1.7)</b></p><p><b> 再令,則:</b></p><p><b> ?。?.1.8)</b></p><p><b> ?。?.1.9)</b></p><p> 根據(jù)基-2 分解方法,運(yùn)用數(shù)值的計(jì)算方法表示的蝶形運(yùn)算公式如下:&
62、lt;/p><p><b> (2.1.10)</b></p><p><b> ?。?.1.11)</b></p><p> 以上兩式中物理意義為:l為級數(shù)表示運(yùn)算到第幾級;m為分組數(shù)表示每一級內(nèi)運(yùn)算到了第幾組;k為每組內(nèi)的運(yùn)算次數(shù)。由此得到16點(diǎn)時(shí)域抽取FFT運(yùn)算流圖如圖所示[5]:</p><p&
63、gt; 圖2.1 16點(diǎn)DIT-FFT運(yùn)算流程圖</p><p> 從按時(shí)間抽選法FFT的流圖可見,當(dāng)時(shí),共有L級蝶形,每級都有個(gè)蝶形運(yùn)算,每個(gè)蝶形有一次復(fù)乘、二次復(fù)加,因而每級運(yùn)算都需次復(fù)乘和N次復(fù)加,這樣L級運(yùn)算總共需要</p><p> 復(fù)乘數(shù) (2.1.12)</p><p> 復(fù)加
64、數(shù) (2.1.13) </p><p> 可見,直接DFT復(fù)數(shù)乘法次數(shù)是,F(xiàn)FT復(fù)數(shù)乘法次數(shù)。直接計(jì)算DFT與FFT算法的計(jì)算量之比為</p><p><b> ?。?.1.14)</b></p><p> 2.2 現(xiàn)場可編程門陣列FPGA技術(shù)</p>&
65、lt;p> 2.2.1 FPGA器件簡介</p><p> 隨著半導(dǎo)體技術(shù)的飛躍發(fā)展,數(shù)字系統(tǒng)應(yīng)用基本經(jīng)歷了分立元件、小規(guī)模集成電路(SSI)、中規(guī)模集成電路(MSI)和大規(guī)模集成電路(LSI)乃至超大規(guī)模集成電路(VLSI)的應(yīng)用過程。數(shù)字系統(tǒng)應(yīng)用的基本特征乃由中小規(guī)模集成度的標(biāo)準(zhǔn)通用集成電路、向用戶定制的專用集成電路(ASIC)過渡。特別對于現(xiàn)代較復(fù)雜的數(shù)字系統(tǒng),若采用SSI/MSI器件來設(shè)計(jì)某個(gè)特
66、定的用,不僅要占用很大的物理空間,反而功耗較大,可靠性差;而采用LSI/VLSI器件的專用電路設(shè)計(jì),則具有相當(dāng)高的系統(tǒng)集成度和相對小的功耗,但其開發(fā)周期長,開發(fā)費(fèi)用高,具有較大的投資風(fēng)險(xiǎn)性,且有時(shí)仍需SSI/MSI器件來設(shè)計(jì)實(shí)現(xiàn)相應(yīng)的接口邏輯。80年代出現(xiàn)的可編程邏輯器件(PLD-Programmable Logic Devices),在一定的程度上,為數(shù)字系統(tǒng)技術(shù)工程師的快捷、靈活設(shè)計(jì)提供了可能性,PLD器件的應(yīng)用,使一系列功能強(qiáng)、速
67、度高、靈活性大的積木式系統(tǒng)設(shè)計(jì)得以成功[6]。</p><p> 隨著現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的發(fā)展,PLD器件無論在集成容量,功耗,速度乃至邏輯設(shè)計(jì)的靈活性上、均不能滿足現(xiàn)代數(shù)字系統(tǒng)的大容量、高速度、現(xiàn)場靈活編程設(shè)計(jì)的要求?,F(xiàn)場可編程門陣列器件的產(chǎn)生正是由此而來,起源于美國Xilinx公司的創(chuàng)造,它的英文是Field Programmable Gate Array,簡寫為FPGA。它是在PAL、GAL、EPLD等可編
68、程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,從而顯示了誘人的應(yīng)用前景。同時(shí),F(xiàn)PGA即現(xiàn)場可編程門陣列,F(xiàn)PGA作為ASIC領(lǐng)域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。</p><p> 2.2.2 FPGA的原理及優(yōu)點(diǎn)</p><p> FPGA運(yùn)用了邏輯單元陣列LCA(Logic Cell Array)這個(gè)概念,其中包括可配置邏輯模塊 CLB(Co
69、nfigurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。工作時(shí),首先將配置數(shù)據(jù)放于熔絲上或片內(nèi)SRAM上?;赟TAM的FPGA器件,在器件工作之前先要將配置的數(shù)據(jù)從芯片外部加載,在芯片外部的EPROM或者其他存儲體上可以將配置數(shù)據(jù)進(jìn)行存儲。用戶可以自行的對加載過程給予控制,同時(shí)對器件的邏輯功能進(jìn)行現(xiàn)場的修改,這就是所謂的現(xiàn)場編程[1,7]
70、。</p><p> FPGA芯片從某種角度來看可以說是一種特殊的ASIC芯片,它除了具有ASIC的特點(diǎn)之外,還具備了以下優(yōu)點(diǎn)[1,8]。</p><p> ?。?)采用FPGA設(shè)計(jì)ASIC電路,用戶不用投片,就可以得到可用的芯片。</p><p> ?。?)FPGA可用作其他全定制或半定制ASIC電路中的試樣片。</p><p> ?。?
71、)FPGA內(nèi)部具有豐富的觸發(fā)器和輸入\輸出引腳資源。</p><p> ?。?)FPGA是ASIC中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最低的器件之一。</p><p> ?。?)FPGA采用高速CHMOS工藝,功耗低,可與CMOSTTL電平兼容。</p><p> ?。?)用戶可以反復(fù)的進(jìn)行編程、擦出、使用,或者在外圍電路不變的情況下用不同的軟件來實(shí)現(xiàn)不同的功能。&l
72、t;/p><p> 2.2.3 FPGA的基本結(jié)構(gòu)</p><p> FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一種新概念,內(nèi)部通常是由可配置邏輯模塊CLB(Configurable Logic Block)、可編程輸入\輸出模塊IOB(Input/Output Block)和互連資源ICR(Interconnect Capital Resource)及一個(gè)用
73、于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM(Static Random Access Memory)組成[9]。</p><p> ?。?)CLB是實(shí)現(xiàn)用戶功能的基本單元,打個(gè)邏輯塊通常規(guī)則的排成一個(gè)陣列結(jié)構(gòu),分布于整個(gè)芯片。</p><p> ?。?)IOB連接芯片內(nèi)部邏輯與外部管腳之間的接口,圍繞在邏輯單元陣列的四周。</p><p> ?。?)ICR包括這種長度的連線
74、線段和一些可編程連接的開關(guān),它們將各個(gè)CLB或IOB連接起來,構(gòu)成特定功能的電路。</p><p> ?。?)SRAM型FPGA的比較突出的優(yōu)點(diǎn)是可以反復(fù)編程。</p><p> 隨著制作工藝的進(jìn)步和應(yīng)用系統(tǒng)需求的發(fā)展,F(xiàn)PGA除了上述基本結(jié)構(gòu)的四中資源外,一般還可能包含以下可選資源:存儲器資源(塊RAM、分布式RAM、ROM);數(shù)字時(shí)鐘管理單元(分頻/倍頻、數(shù)字延遲、時(shí)鐘鎖定);算術(shù)運(yùn)
75、算單元(高速硬件乘法器、乘加器);多電平標(biāo)準(zhǔn)兼容高速串行的I/O接口;特殊功能模塊(以太網(wǎng)等硬IP核);微處理器(PowerPC405等硬處理器IP核)。</p><p> 第三章 FFT的算法設(shè)計(jì)與硬件實(shí)現(xiàn)結(jié)構(gòu)</p><p> 3.1 基于FPGA的系統(tǒng)的開發(fā)</p><p> FPGA的設(shè)計(jì)步驟主要包括系統(tǒng)功能的設(shè)計(jì)定義、設(shè)計(jì)輸入、功能仿真、邏輯綜
76、合、前仿真、設(shè)計(jì)實(shí)現(xiàn)(包括翻譯、映射、布局布線)、時(shí)序仿真與驗(yàn)證、下載配置與期間編程、測試驗(yàn)證等幾個(gè)主要的步驟。</p><p> 其主要的設(shè)計(jì)流程圖如下[1,8]:</p><p> 圖 3.1 FPGA 設(shè)計(jì)流程</p><p> 圖中各步驟的簡要分析如下:</p><p> 系統(tǒng)功能定義:在進(jìn)行設(shè)計(jì)之前,應(yīng)該對設(shè)計(jì)的整體有一個(gè)全
77、面的認(rèn)識,分析項(xiàng)目完成的功能和總體方案以及對整個(gè)項(xiàng)目初步的規(guī)劃。</p><p> 設(shè)計(jì)輸入:功能仿真沒有器件內(nèi)部邏輯單元和連線的實(shí)際延時(shí)信息,只是初步的對系統(tǒng)的邏輯功能進(jìn)行驗(yàn)證。</p><p> 功能仿真:主要對FPGA的功能進(jìn)行仿真。</p><p> 邏輯綜合:將設(shè)計(jì)描述變換成滿足要求的電路設(shè)計(jì)方案,并產(chǎn)生網(wǎng)表,供布局布線所使用。</p>
78、<p> 前仿真:是接近真實(shí)器件運(yùn)行的仿真,在布局布線之后,提取有關(guān)的器件延時(shí)、連線延時(shí)等時(shí)序參數(shù),在此基礎(chǔ)上進(jìn)行的仿真。</p><p> 設(shè)計(jì)實(shí)現(xiàn):實(shí)現(xiàn)包括轉(zhuǎn)換、布局布線、映射、時(shí)間參數(shù)提取、配置,同事產(chǎn)生各種報(bào)告和文件。</p><p> 后仿真:是接近真實(shí)器件運(yùn)行的仿真,在布局布線之后,提取有關(guān)的器件延時(shí)、連線延時(shí)等時(shí)序參數(shù),在此基礎(chǔ)上進(jìn)行的仿真。</p&g
79、t;<p> 靜態(tài)時(shí)序分析:分析時(shí)序關(guān)系,檢查和消除競爭毛線、并對器件的實(shí)際工作性能進(jìn)行評估。</p><p> 期間編程與測試:設(shè)計(jì)實(shí)現(xiàn)以后,創(chuàng)建FPGA的可識別相應(yīng)文件,并且把編程的數(shù)據(jù)載入器件中。</p><p> 不同的FPGA公司針對自己的產(chǎn)品的各種環(huán)節(jié)都會提供與之對應(yīng)的EDA工具。通常是由FPGA的廠家體統(tǒng)自己高集成度的開發(fā)環(huán)境,如Xilinx的ISE開發(fā)平
80、臺和Altera的開發(fā)平臺Quartos II。為了使設(shè)計(jì)的效率提高,優(yōu)化設(shè)計(jì)的結(jié)果,各個(gè)廠家都提供了針對自己產(chǎn)品的配套專業(yè)軟件,加以配合FPGA/CPLD(Complex Programmable Logic Device)廠家提供的工具,使設(shè)計(jì)更加高效的運(yùn)行。其中較為常用的方式為:專業(yè)的邏輯綜合與專業(yè)的邏輯仿真軟件一起聯(lián)合使用,結(jié)合集成的開發(fā)環(huán)境,進(jìn)行各種EDA工具協(xié)同設(shè)計(jì)。本設(shè)計(jì)運(yùn)用ISE和ModelSim與Matlab聯(lián)合仿真的
81、設(shè)計(jì)方法。</p><p> ISE的簡稱為集成綜合的環(huán)境,是Xilinx公司的配套設(shè)計(jì)軟件,這種工具可完成上述FPGA/CPLD的整個(gè)開發(fā)過程;ModelSim作為Verilog的仿真工具,由Modeltech公司研發(fā),ModelSim作為一種很好的仿真軟件,強(qiáng)大的防震功能和有好的界面圖形化操作等是其特有的優(yōu)點(diǎn);Matlab是Math Works公司強(qiáng)大的數(shù)值計(jì)算與分析軟件,目前Matlab在FPGA設(shè)計(jì)中的
82、應(yīng)用主要分為三種形式:一種是利用Matlab來進(jìn)行FPGA設(shè)計(jì)時(shí)的前期系統(tǒng)算法仿真,最后一種是利用Matlab軟件將系統(tǒng)級的FPGA設(shè)計(jì)模型轉(zhuǎn)換成硬件描述語言。</p><p> 3.2 硬件描述語言Verilog HDL</p><p> HDL是硬件描述語言(Hardware Description Language)的縮寫,是一種用形式方法來描述數(shù)字電路和系統(tǒng)的語言。利用這種語言
83、,數(shù)字電路系統(tǒng)的設(shè)計(jì)可以從抽到具體逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字統(tǒng)。隨著EDA技術(shù)的發(fā)展,使用HDL設(shè)計(jì)FPGA已成為一種趨勢。</p><p> 硬件描述語言Verilog HDL具有以下特點(diǎn)[8,10]。</p><p> 支持多級建模方式。數(shù)字系統(tǒng)設(shè)計(jì)是一種分層的設(shè)計(jì)方式,即從系統(tǒng)的算法到行為的描述,從行為描述到寄存器(RTL)級描述,最后由RT
84、L級再到門級、甚至開關(guān)電路級的描述。Verilog支持幾乎所有的數(shù)字系統(tǒng)設(shè)計(jì)層次的建模,包括算法、行為級建模、寄存器傳輸(RTL)級建模、門級建模、開關(guān)級建模。其中各抽象級分別構(gòu)造不同的模型。</p><p> 支持多種建模方式,Verilog支持行為功能建模方式、結(jié)構(gòu)建模方式、數(shù)據(jù)流建模方式。</p><p> Verilog語言是并發(fā)的,基具有在同一時(shí)刻執(zhí)行多任務(wù)的能力。</
85、p><p> Verilog語言有時(shí)序的概念。由于在硬件電路中從輸入到輸出總會有延遲的存在,Verilog通過建立時(shí)序這一概念,來敘述這些特征。</p><p> 3.3 FFT的硬件實(shí)現(xiàn)結(jié)構(gòu)</p><p> 選擇合適的系統(tǒng)結(jié)構(gòu),是提高FFT處理器性能的關(guān)鍵。根據(jù)蝶形單元的不同,算法的FFT處理器的實(shí)現(xiàn)形式大致分為四種:順序處理形式、并行迭代處理形式、級聯(lián)處理形
86、式和陣列處理形式 [11]。</p><p><b> ?。?)順序處理形式</b></p><p> 順序處理作為專用FFT處理器最基本的形式之一,蝶形運(yùn)算單元通過控制器的指令,以及FFT信號的標(biāo)準(zhǔn)流圖,按照時(shí)間的順序逐個(gè)進(jìn)行運(yùn)算。即從第1級開始,從上至下依次進(jìn)行,先算第1個(gè)蝶形結(jié),再算第2個(gè),第3個(gè)…直至第個(gè)蝶形結(jié),就完成了第一級的運(yùn)算,之后開始第2級,第3級,
87、…,第級,直至算完,總共需要計(jì)算個(gè)蝶形結(jié)。</p><p><b> (2)級聯(lián)處理方式</b></p><p> 若將N點(diǎn)FFT的每一級(列)的個(gè)蝶形結(jié)用一個(gè)獨(dú)立運(yùn)算單元來處理,就構(gòu)成級聯(lián)處理,也稱為流水線處理。流水線處理是把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,每個(gè)子過程可以與其他子過程并行進(jìn)行.對一個(gè)N點(diǎn)的FFT變換,每一級的次蝶形運(yùn)算安排一個(gè)獨(dú)立的蝶形處理器按
88、順序完成,總共采用個(gè)蝶形運(yùn)算單元同時(shí)進(jìn)行工作。</p><p> (3)并行迭代的處理形式</p><p> 并行迭代的處理形式是對一級中的個(gè)蝶形結(jié)用個(gè)蝶形運(yùn)算單元進(jìn)行并行運(yùn)算。例如,對于N=16,采用8個(gè)蝶形運(yùn)算單元,同時(shí)首先計(jì)算第一級的個(gè)蝶形結(jié),再依次算第二級、第三級和第四級的8個(gè)蝶形結(jié),也就是說,每一列中的運(yùn)算并行的進(jìn)行,一列迭代至另一列是按順序的,故名并行迭代運(yùn)算。</p
89、><p> ?。?)把級聯(lián)處理形式和并行迭代的處理形式相結(jié)合起來,實(shí)現(xiàn)全并行工作采用的蝶形運(yùn)算單元數(shù)為個(gè),稱為陣列處理。</p><p> 從空間復(fù)雜度和設(shè)備使用量上看,順序處理最小,流水線處理次之,并行迭代和陣列處理則設(shè)備量最大,成本最昂貴。從處理速度上看,順序處理最慢,流水線次之,并行迭代和陣列處理速度最快,可應(yīng)用于實(shí)時(shí)性要求很高的場合(如雷達(dá)信號處理系統(tǒng))。綜上所述,處理速度的提高是以
90、設(shè)備量和成本的增加為代價(jià)的。因此,在具體設(shè)計(jì)中,必須綜合考慮和適當(dāng)采用上述的各種形式的處理器,根據(jù)實(shí)際需求確定具體的實(shí)現(xiàn)方案,以取得“速度/成本”的最佳值。本設(shè)計(jì)采用最基本的順序處理方案來實(shí)現(xiàn)512點(diǎn)16位復(fù)數(shù)的FFT運(yùn)算系統(tǒng)。</p><p> 3.4 提高FFT運(yùn)算速度和精度的方法</p><p> 3.4.1 提高FFT處理速度的方法</p><p>
91、實(shí)現(xiàn)形式不同的FFT處理器具有不同的運(yùn)算速度,提高運(yùn)算的速度要以硬件量的付出作為代價(jià),當(dāng)輸入數(shù)據(jù)點(diǎn)數(shù)較多的時(shí)候更是如此。在對處理速度要求比較高的應(yīng)用中,可以考慮通過提高并行度來獲取速度。主要的幾種方法如下[11,12]:</p><p> 采用多個(gè)乘法器和加法器并行運(yùn)算</p><p> 基-2時(shí)間抽取FFT的蝶形運(yùn)算可分解成4次實(shí)數(shù)乘法和6次實(shí)數(shù)加(減)法運(yùn)算,共分3步完成。如果將4
92、個(gè)乘法器和6個(gè)加(減)法器集中在一個(gè)蝶形運(yùn)算單元內(nèi)進(jìn)行并行工作,這樣3個(gè)時(shí)鐘周期內(nèi)就可完成一次蝶形運(yùn)算。</p><p> ?。?)流水線結(jié)構(gòu)的蝶形單元運(yùn)算流程</p><p> 按順序執(zhí)行蝶形運(yùn)算的過程中,蝶形運(yùn)算單元開始工作經(jīng)過三個(gè)步驟:遵循讀數(shù)、進(jìn)行計(jì)算與輸出。在蝶形運(yùn)算進(jìn)行時(shí),存儲器的狀態(tài)一直處在暫停狀態(tài);反之,在存儲器讀取數(shù)據(jù)或者將運(yùn)算結(jié)果存入其中時(shí),蝶形運(yùn)算單元中的加法器與乘
93、法器都相繼停止工作。由于處理結(jié)構(gòu)工作的效率較低,為了使運(yùn)算時(shí)間進(jìn)一步的減少,使處理速度提高,可以使加法器與乘法器等運(yùn)算單元和存儲器在工作時(shí)處于“匹配”狀態(tài)。因此蝶形運(yùn)算單元采用流水線(Pipeline)工作方式,使運(yùn)算結(jié)果連續(xù)輸出。</p><p> (3)采用兩組雙口RAM乒乓結(jié)構(gòu)</p><p> RAM是存儲輸入數(shù)據(jù)及中間運(yùn)算結(jié)果的單元。每個(gè)蝶形單元運(yùn)算的輸入、輸出數(shù)據(jù)均要經(jīng)過R
94、AM的讀寫操作,因此,RAM的頻繁讀寫操作對FFT處理器影響很大。為了加快FFT的運(yùn)算速度,需要構(gòu)造雙口RAM來加快數(shù)據(jù)傳輸?shù)耐掏铝?。同時(shí),兩組雙口RAM采用乒乓結(jié)構(gòu)。在計(jì)算的過程中,兩組RAM始終保持一組讀一組寫,同步進(jìn)行。FPGA芯片內(nèi)部集成大量的RAM,ROM等存儲器結(jié)構(gòu),這種內(nèi)置結(jié)構(gòu)速度比任何片外存儲器都要快,并且擴(kuò)展容易;其次,不需要占用片外電路板面積,可提高系統(tǒng)的可靠性。</p><p><b&
95、gt; ?。?)采用高基結(jié)構(gòu)</b></p><p> 在FFT算法中,除了采用最簡單最常用的基-2算法,還可以采用基-4、基-8、分裂基等算法。隨著基數(shù)的增大,對于點(diǎn)數(shù)相同的輸入序列,需要處理的級數(shù)減少,每次蝶形運(yùn)算中同時(shí)處理的數(shù)據(jù)量增加,可以縮短系統(tǒng)運(yùn)算時(shí)間。但是,這樣會導(dǎo)致蝶形運(yùn)算單元的復(fù)雜程度增大,系統(tǒng)的運(yùn)算量和存儲的設(shè)備量增大。因此,必須在性能和成本之間進(jìn)行折中考慮。目前,使用最多的高基結(jié)
96、構(gòu)也只是基-4處理。</p><p> 本文采用多個(gè)乘法器和加法器并行運(yùn)算的結(jié)構(gòu),只需設(shè)計(jì)一個(gè)乘法器和一個(gè)加法器,就可以組合成一個(gè)蝶形運(yùn)算單元。沒有采用高基算法結(jié)構(gòu),而是采用了最簡單的基-2算法結(jié)構(gòu)來實(shí)現(xiàn)FFT。同時(shí),蝶形運(yùn)算單元中的乘法器采用FPGA內(nèi)嵌硬件資源實(shí)現(xiàn),這樣既可合理利用芯片資源,并可簡化設(shè)計(jì),提高設(shè)計(jì)的成功率。</p><p> 3.4.2 FFT運(yùn)算精度提高的方法&l
97、t;/p><p> 在進(jìn)行FFT的運(yùn)算時(shí),主要的誤差為:量化誤差、舍入誤差以及溢出誤差。因此,F(xiàn)FT運(yùn)算中數(shù)據(jù)范圍和系統(tǒng)誤差有著十分緊密的聯(lián)系,數(shù)據(jù)動態(tài)范圍的擴(kuò)大可以減少系統(tǒng)的誤差,從而將運(yùn)算精度提高。</p><p> 為了使FFT的運(yùn)算精度提高,在具體實(shí)現(xiàn)過程中,需要處理數(shù)據(jù)動態(tài)范圍這一問題。因此,為了處理這一問題可以運(yùn)用下面幾種不同的方案[2]:</p><p&g
98、t; ?。?)運(yùn)用定點(diǎn)的運(yùn)算方法;</p><p> ?。?)運(yùn)用浮點(diǎn)的運(yùn)算方法;</p><p> (3)運(yùn)用塊浮點(diǎn)的運(yùn)算方法。</p><p> 從FFT的處理器來看,運(yùn)用定點(diǎn)運(yùn)算方法時(shí),為了防止溢出,可以給每一級蝶形單元運(yùn)算的輸入處加入的衰減系數(shù)。此類防止溢出方法的缺點(diǎn)為不論信號強(qiáng)度的大小,都一律會被衰減。運(yùn)用浮點(diǎn)運(yùn)算方法時(shí),將嚴(yán)重占用系統(tǒng)資源,浮點(diǎn)尾數(shù)的
99、處理較為復(fù)雜。和定點(diǎn)系統(tǒng)比較,從量化誤差上來看,塊浮點(diǎn)誤差較小,但是塊浮點(diǎn)每一步的運(yùn)算之后都要對溢出進(jìn)行判斷,系統(tǒng)設(shè)備量被成倍的增加;和浮點(diǎn)系統(tǒng)比較,從運(yùn)算精度上來看,塊浮點(diǎn)精度降低,但其特點(diǎn)可以滿足信號處理尤其是高性能處理方面的要求,并且結(jié)構(gòu)相對較為簡單。</p><p> 本文將會采用定點(diǎn)運(yùn)算的方法來完成整個(gè)系統(tǒng)設(shè)計(jì)。為了提高運(yùn)算精度,進(jìn)行數(shù)據(jù)處理時(shí),將蝶形運(yùn)算的輸出固定縮小2倍,即相當(dāng)于在第一級后每級蝶形
100、運(yùn)算的輸入處插入的衰減系數(shù),每級結(jié)果固定縮小2倍,從而防止溢出。</p><p> 第四章 FFT處理器的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 在分析了基-2DIT-FFT算法原理,數(shù)據(jù)流動特點(diǎn)以及實(shí)現(xiàn)方案的基礎(chǔ)上,采用順序處理結(jié)構(gòu),塊浮點(diǎn)運(yùn)算方案,利用FPGA完成16位字長512點(diǎn)復(fù)數(shù)FFT處理器的設(shè)計(jì)。整個(gè)設(shè)計(jì)分成多個(gè)功能模塊,采用Verilog HDL和IP核描述,并在virtex
101、-II系列器件上實(shí)現(xiàn)。</p><p> 4.1 FFT處理器的設(shè)計(jì)結(jié)構(gòu)與工作過程</p><p> 基-2FFT模塊設(shè)計(jì)主要由6部分組成:蝶形運(yùn)算單元,存儲單元,地址產(chǎn)生單元,功能切換單元,塊浮點(diǎn)單元和時(shí)序控制單元,如圖所示。</p><p> 圖4.1 FFT處理器結(jié)構(gòu)圖</p><p> 各模塊的功能概述如下:</p>
102、;<p> ?。?)蝶形運(yùn)算單元:采用DIT方式完成基-2蝶形運(yùn)算,若數(shù)據(jù)從雙口RAM1中讀出,則計(jì)算結(jié)果存入雙口RAM2中,反之亦然;</p><p> ?。?)存儲單元:主要用來存儲輸入數(shù)據(jù)、中間結(jié)果(RAM),預(yù)置旋轉(zhuǎn)因子(ROM),以及最后的計(jì)算結(jié)果(RAM);</p><p> ?。?)地址產(chǎn)生單元:產(chǎn)生RAM的讀、寫地址和ROM的讀地址;</p>&
103、lt;p> (4)功能切換單元:完成RAM1與RAM2間數(shù)據(jù)讀寫功能的切換;</p><p> ?。?)塊浮點(diǎn)單元:記錄蝶算單元輸出數(shù)據(jù)的位信息,并完成蝶算單元輸入數(shù)據(jù)的截位;</p><p> ?。?)時(shí)序控制單元:產(chǎn)生各模塊的使能、控制信號,使整個(gè)流程正常工作。</p><p> FFT處理器工作過程描述如下:</p><p>
104、 ?。?)當(dāng)收到來自片外控制模塊發(fā)出的啟動命令后,即進(jìn)入正常工作狀態(tài)。</p><p> ?。?)進(jìn)入FFT工作狀態(tài)后,首先啟動時(shí)序控制單元,產(chǎn)生讀數(shù)據(jù)地址及讀使能信號,讀取雙口RAM1中的2路18bits原始數(shù)據(jù)。</p><p> ?。?)將從RAM1中讀出的2路數(shù)據(jù)經(jīng)過數(shù)據(jù)切換模塊轉(zhuǎn)化為4路并行數(shù)據(jù)。</p><p> ?。?)在進(jìn)行本級蝶形運(yùn)算之前,塊浮點(diǎn)運(yùn)
105、算單元會對上一級的18bits數(shù)據(jù)進(jìn)行截位處理,取出16bits有效數(shù)據(jù)。同時(shí),時(shí)序控制單元產(chǎn)生ROM的讀數(shù)據(jù)地址及讀使能信號,讀取旋轉(zhuǎn)因子的實(shí)部和虛部值。兩路數(shù)據(jù)一起輸出至蝶形運(yùn)算單元。</p><p> ?。?)此時(shí)啟動FFT蝶形運(yùn)算單元,3個(gè)時(shí)鐘周期后,蝶算結(jié)果輸出。</p><p> ?。?)將4路運(yùn)算結(jié)果經(jīng)過數(shù)據(jù)切換模塊轉(zhuǎn)化為2路,然后寫入另一組雙口RAM中。同時(shí),將每次蝶算結(jié)果
106、送入塊浮點(diǎn)的溢出檢測單元,由此判斷溢出狀態(tài)。</p><p> ?。?)在進(jìn)行第2次蝶形運(yùn)算的同時(shí),參加下一次蝶形運(yùn)算的數(shù)據(jù)正從存儲器中讀取,使蝶形運(yùn)算結(jié)果連續(xù)輸出。</p><p> ?。?)當(dāng)一級中所有蝶形運(yùn)算結(jié)束后,延遲7個(gè)時(shí)鐘周期再進(jìn)行下一級的操作。在下一級操作中,兩組RAM的讀寫功能交換。</p><p> (9)當(dāng)最后一級運(yùn)算結(jié)束后,產(chǎn)生輸出地址和輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的fft算法的設(shè)計(jì)與實(shí)現(xiàn)(論文和源碼)
- 基于FPGA的FFT算法的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于FPGA的FFT算法設(shè)計(jì)與研究.pdf
- 基于FPGA的32點(diǎn)FFT算法的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于FPGA的FFT設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于FPGA的FFT設(shè)計(jì)與實(shí)現(xiàn).pdf
- OFDM系統(tǒng)中FFT算法的設(shè)計(jì)與FPGA實(shí)現(xiàn).pdf
- 基于FPGA的FFT算法研究與實(shí)現(xiàn).pdf
- OFDM中FFT算法FPGA設(shè)計(jì)與實(shí)現(xiàn)方法研究.pdf
- 畢業(yè)設(shè)計(jì)kmp算法的fpga實(shí)現(xiàn)
- 基于fpga的高性能fft算法實(shí)現(xiàn)研究
- 基于FPGA的FFT硬件架構(gòu)設(shè)計(jì)與實(shí)現(xiàn).pdf
- FFT算法FPGA實(shí)現(xiàn).doc
- 基于FPGA的OFDM系統(tǒng)的FFT設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于FFT的快速卷積算法的FPGA實(shí)現(xiàn).pdf
- 基于FPGA的1024點(diǎn)FFT算法實(shí)現(xiàn).pdf
- 基于matlab的fft算法實(shí)現(xiàn)(論文)
- 基于FPGA的高性能FFT算法實(shí)現(xiàn)研究.pdf
- 基于fpga的任意波形發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)開題報(bào)告(時(shí)間抽取fft的dsp實(shí)現(xiàn))
評論
0/150
提交評論