基于FPGA的調(diào)制信號(hào)發(fā)生器設(shè)計(jì)研究
《基于FPGA的調(diào)制信號(hào)發(fā)生器設(shè)計(jì)研究》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于FPGA的調(diào)制信號(hào)發(fā)生器設(shè)計(jì)研究(49頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
I基于 FPGA 的調(diào)制信號(hào)發(fā)生器設(shè)計(jì)研究摘 要直接數(shù)字頻率合成技術(shù)在通信系統(tǒng)中被廣泛采用。在研究直接數(shù)字頻率合成技術(shù)的基本原理的基礎(chǔ)上,利用 FPGA 的 DSP 開(kāi)發(fā)工具 DSP Builder 對(duì)直接數(shù)字頻率合成器進(jìn)行了建模設(shè)計(jì),仿真結(jié)果顯示該 DDS 頻率及相位可靈活調(diào)整,具有較高的頻率分辨率,能夠?qū)崿F(xiàn)頻率及相位的快速切換,并將其應(yīng)用在模擬調(diào)制和數(shù)字調(diào)制系統(tǒng)中。通過(guò)仿真分析證明設(shè)計(jì)方法的正確性和實(shí)用性。本文對(duì)通信信號(hào)中的 AM 信號(hào)、FM 信號(hào)、ASK 信號(hào)、FSK 信號(hào)、PSK 信號(hào)等根據(jù) DDS 的基本原理,利用 Matlab/DSP Builder 進(jìn)行建模,然后用 Altera 公司提供的 Signal Compiler 工具對(duì)其進(jìn)行編譯,產(chǎn)生 Quartus II 能夠識(shí)別的VHDL 源程序,并且給出了采用 Altera 公司的 Cyclone 系統(tǒng)的 FGPA 芯片EP1C3T144C8 進(jìn)行仿真,并用 ModelSim 進(jìn)行功能仿真及用 Quartus II 進(jìn)行時(shí)序仿真,以驗(yàn)證所設(shè)計(jì)的信號(hào)滿足要求,通過(guò)仿真分析設(shè)計(jì)方法的正確性和實(shí)用性,并用 EDA 實(shí)驗(yàn)設(shè)備實(shí)現(xiàn),在示波器上觀測(cè)所設(shè)計(jì)的信號(hào)。文中還簡(jiǎn)單應(yīng)用了 DSP Builder 設(shè)計(jì)中的層次化設(shè)計(jì)來(lái)完成調(diào)制集成系統(tǒng)的研究,有助于設(shè)計(jì)復(fù)雜的 DSP Builder 模型。關(guān)鍵字 現(xiàn)場(chǎng)可編程門陣列,直接數(shù)字頻率合成,模擬調(diào)制,數(shù)字調(diào)制,DSP BuilderIIIIABSTRACTDirect digital synthesizer technology is widely applied in communication system. Based on studying the basic theory of direct digital synthesizer technology, this passage makes model design of DDS with DSP Builder of FPGA and applies DDS to digital modulation system. This DDS’s parameters can be adjusted flexibly, simulation result shows DDS has high resolution and fast setting time. The correctness and feasibility of DDS will be proved through simulation analysis.This article to signals in the signal corresponds which is AM、 FM、ASK 、 FSK、PSK signal is according to the DDS basic principle, established the DDS basic model using Matlab/DSP Builder, then the Signal Compiler tool which provided using the Altera Corporation to it carries on the translation, has VHDL source program which Quartus II could distinguish and produce uses Altera Corporation cyclone series FPGA chip EP1C3T144C8 carries the simulation. Using ModelSim makes the simulation of function, and using Quartus II makes the simulation of order when carries on verify the signal design meet the requirement. Correctness and practicality to design method is analyzed by the simulation And test with EDA the equipment realize and observe and analyze on the oscilloscope signal design. In the article also simply applied DSP Builder design hierarchical design to complete the modulation integrative system's research. it was helpful in design complex DSP the Builder model.Keywords FPGA, DDS,Analog Modulation,Digital Modulation,DSP Builder1目 錄摘要 .IABSTRACTII1 緒論 11.1 課題背景 11.2 設(shè)計(jì)要求 22 DDS 的基本原理 .43 設(shè)計(jì)工具 73.1 FPGA 性能結(jié)構(gòu) .73.2 基于 EDA 工具的 FPGA 設(shè)計(jì)流程 .93.2.1 EDA 技術(shù) .93.2.2 基于 EDA 的 FPGA 開(kāi)發(fā)流程 103.3 基于 FPGA 的 DSP 系統(tǒng)設(shè)計(jì)流程 123.4 DSP Builder 及其設(shè)計(jì)流程 .123.4.1 DSP Builder 概述 .123.4.2 現(xiàn)代 DSP Builder 設(shè)計(jì)流程 .133.5 QuartusII 簡(jiǎn)述 .164 模擬調(diào)制信號(hào)發(fā)生器設(shè)計(jì) 184.1 DDS 模塊設(shè)計(jì) .184.2 幅度調(diào)制(AM)信號(hào)發(fā)生器的設(shè)計(jì) .194.2.1 AM 的調(diào)制原理 .194.2.2 AM 設(shè)計(jì)模型 .204.2.3 Simulink 仿真 .204.2.4 使用 Modelsim 實(shí)現(xiàn)功能仿真 214.2.5 使用 QuartusII 實(shí)現(xiàn)時(shí)序仿真 224.3 頻率調(diào)制信號(hào)(FM)的設(shè)計(jì) 224.3.1 調(diào)頻信號(hào)(FM)的原理 224.3.2 FM 設(shè)計(jì)模型 .234.3.3 仿真 235 數(shù)字調(diào)制信號(hào)發(fā)生器設(shè)計(jì) 255.1 振幅鍵控(ASK)信號(hào)發(fā)生器的設(shè)計(jì) .2525.1.1 振幅鍵控(ASK)的基本原理 255.1.2 ASK 設(shè)計(jì)模型 .265.1.3 仿真圖 265.2 頻移鍵控(FSK)信號(hào)發(fā)生器的設(shè)計(jì) 275.2.1 FSK 調(diào)制基本原理 .275.2.2 FSK 設(shè)計(jì)模型 .285.2.3 仿真結(jié)果 285.3 相移鍵控(PSK)信號(hào)發(fā)生器設(shè)計(jì) 295.3.1 PSK 調(diào)制基本原理 .295.3.2 PSK 設(shè)計(jì)模型 .305.3.3 仿真 306 調(diào)制集成設(shè)計(jì) .336.1 DSP Builder 的子系統(tǒng) .336.1.1 模擬調(diào)制集成系統(tǒng) 336.1.2 數(shù)字調(diào)制集成系統(tǒng) 346.2 調(diào)制集成系統(tǒng) 347 結(jié)束語(yǔ) .35參 考 文 獻(xiàn) 36致謝 3811 緒 論1.1 課題背景無(wú)線電技術(shù)進(jìn)行信息傳輸在現(xiàn)代電子應(yīng)用中占有及其重要的地位,無(wú)線電通信,電視,雷達(dá),遙控遙測(cè)等,都是利用無(wú)線電技術(shù)傳輸各種不同信息的方式。在這些信息的傳遞過(guò)程中,都要用到調(diào)制技術(shù)。所謂調(diào)制是在傳送信號(hào)的一方將所要傳送的信號(hào)“附加”在高頻振蕩波上,再由發(fā)送裝置進(jìn)行傳送。本設(shè)計(jì)對(duì)通信信號(hào)中的 AM 信號(hào)、FM 信號(hào)、ASK 信號(hào)、FSK 信號(hào)、PSK 信號(hào)、正交幅度調(diào)制電路等進(jìn)行設(shè)計(jì),在設(shè)計(jì)中選用 ALTERA 公司現(xiàn)場(chǎng)可編程門陣列CYCLONE 系列的器件。通過(guò)近 20 年的發(fā)展,通信己成為市場(chǎng)最活躍、份額最高的產(chǎn)業(yè),也成為國(guó)際上市場(chǎng)競(jìng)爭(zhēng)最激烈的部分。隨著調(diào)制技術(shù)在儀表和通信系統(tǒng)中的廣泛應(yīng)用,一種從參考頻率源生成多種頻率的數(shù)字控制方法應(yīng)運(yùn)而生,這種技術(shù)就是 DDS (即直接數(shù)字合成)。DDS 技術(shù)是一種從相位概念出發(fā)直接合成所需波形的一種新的全數(shù)字頻率合成技術(shù)。目前, 各大芯片制造廠商都相繼推出采用先進(jìn) CMOS 工藝生產(chǎn)的高性能、多功能 DDS 芯片,為電路設(shè)計(jì)者提供了多種選擇。然而在某些場(chǎng)合,專用 DDS 芯片在控制方式、置頻速率等方面與系統(tǒng)的實(shí)際要求存在很大差距,這時(shí)可以采用高性能 FPGA 來(lái)設(shè)計(jì)符合具體需要的 DDS 電路。DDS (直接數(shù)字合成) 是近年來(lái)迅速發(fā)展起來(lái)的一種新的頻率合成方法。這種方法簡(jiǎn)單可靠、控制方便,且具有很高的頻率分辨率和轉(zhuǎn)換速度,非常適合快速跳頻通信的要求。 目前不斷發(fā)展的數(shù)字信號(hào)處理(DSP,Digital Signal Processing)技術(shù)迅速地?cái)U(kuò)展到了其應(yīng)用領(lǐng)域,如 3 G 移動(dòng)通信、網(wǎng)絡(luò)會(huì)議、多媒體系統(tǒng)、雷達(dá)衛(wèi)星系統(tǒng)、醫(yī)學(xué)儀器、實(shí)時(shí)圖像識(shí)別與處理、聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng)、智能基站以及民用電器等。所有這一切在功能實(shí)現(xiàn)、性能指標(biāo)與成本方面都在不斷增加其要求。 在過(guò)去很長(zhǎng)一段時(shí)間,DSP 處理器(如 TI 的 TMS320 系列)是 DSP 應(yīng)用系統(tǒng)核心器件的惟一選擇。盡管 DSP 處理器具有通過(guò)軟件設(shè)計(jì)能適用于實(shí)現(xiàn)不同功能的靈活性,但面對(duì)當(dāng)今迅速變化的 DSP 應(yīng)用市場(chǎ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í)變更的應(yīng)用場(chǎng)合,即所謂面向用戶型的 DSP 系統(tǒng),或者說(shuō)是用戶可定制型,或可重配置型的 DSP 應(yīng)用系統(tǒng)(Customized DSP 或 Reconfigurable 2DSP 等),如軟件無(wú)線電、醫(yī)用設(shè)備、導(dǎo)航、工業(yè)控制等方面。至于在滿足速度要求方面,由于采用了順序執(zhí)行的 CPU 架構(gòu),DSP 處理器則更加不堪重負(fù)。FPGA 器件集成度高、體積小,具有通過(guò)用戶編程實(shí)現(xiàn)專門應(yīng)用的功能。使用 FPGA 器件可以大大縮短系統(tǒng)的研制周期,減少資金投入,更吸引人的是,采用 FPGA 器件可以將原來(lái)的電路板級(jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品,從而降低了功耗,提高了可靠性,同時(shí)還可以很方便地對(duì)設(shè)計(jì)進(jìn)行在線修改,因此有時(shí)人們也把FPGA 稱為可編程的 ASIC 在這些 FPGA 中,一般都內(nèi)嵌有可配置的高速RAM、PLL、LVDS、LVTTL 以及硬件乘法累加器等 DSP 模塊。今天大容量、高速度的 FPGA 的出現(xiàn),克服了上述方案的諸多不足。它允許電路設(shè)計(jì)者利用基于計(jì)算機(jī)的開(kāi)發(fā)平臺(tái),經(jīng)過(guò)設(shè)計(jì)輸入、仿真、測(cè)試和校驗(yàn),知道達(dá)到預(yù)期的結(jié)果。用 FPGA 來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理可以很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性,使得 FPGA 構(gòu)成的 DSP 系統(tǒng)非常易于修改、易于測(cè)試及硬件升級(jí)。在利用 FPGA 進(jìn)行 DSP 系統(tǒng)的開(kāi)發(fā)應(yīng)用上,已有了全新的設(shè)計(jì)工具和設(shè)計(jì)流程。DSP Builder 就是 Altera 公司推出的一個(gè)面向 DSP 開(kāi)發(fā)的系統(tǒng)級(jí)工具。它是作為 MATLAB 的一個(gè) Simulink 工具箱(Tool Box)出現(xiàn)的。MATLAB 是功能強(qiáng)大的數(shù)學(xué)分析工具,廣泛應(yīng)用于科學(xué)計(jì)算和工程計(jì)算,可以進(jìn)行復(fù)雜的數(shù)字信號(hào)處理系統(tǒng)的建模、參數(shù)估計(jì)、性能分析。Simulink 是 MATLAB 的一個(gè)組成部分,用于圖形化建模仿真。 隨著數(shù)字技術(shù)在儀表和通信系統(tǒng)中的廣泛應(yīng)用,一種從參考頻率源生成多種頻率的數(shù)字控制方法應(yīng)運(yùn)而生,這種技術(shù)就是DDS(即直接數(shù)字合成)。DDS技術(shù)是一種從相位概念出發(fā)直接合成所需波形的一種新的全數(shù)字頻率合成技術(shù)。目前,各大芯片制造廠商都相繼推出采用先進(jìn)CMOS工藝生產(chǎn)的高性能、多功能DDS芯片,為電路設(shè)計(jì)者提供了多種選擇。然而在某些場(chǎng)合,專用DDS芯片在控制方式、置頻速率等方面與系統(tǒng)的實(shí)際要求存在很大差距,這時(shí)可以采用高性能FPGA來(lái)設(shè)計(jì)符合具體需要的DDS電路。現(xiàn)場(chǎng)可編程門陣列(FPGA)設(shè)計(jì)無(wú)線電和調(diào)制解調(diào)器與 DSP 芯片比較,雖然FPGA 可輕而易舉地實(shí)現(xiàn)如卷積編碼器等復(fù)雜邏輯功能,但在實(shí)現(xiàn)大量復(fù)雜計(jì)算方面卻有很大的缺陷。FPGA 在通信領(lǐng)域的應(yīng)用,大大改善了現(xiàn)代通信系統(tǒng)的性能,F(xiàn)PGA 的應(yīng)用也極大的推動(dòng)了 SOC 的發(fā)展,隨著 DSP 和 FPGA 技術(shù)的不斷發(fā)展,無(wú)線電技術(shù)必將成為移動(dòng)通信中的主流技術(shù),其發(fā)展遠(yuǎn)景非??捎^。1.2 設(shè)計(jì)要求課題根據(jù)直接數(shù)字頻率合成原理對(duì)通信信號(hào)中的 AM 信號(hào)、FM 信號(hào)、ASK信號(hào)、FSK 信號(hào)、PSK 信號(hào)、用 DSP Builder 進(jìn)行建摸,并用 ModelSim 進(jìn)行功3能仿真及用 Quartus II 進(jìn)行時(shí)序仿真,以驗(yàn)證所設(shè)計(jì)的信號(hào)滿足要求,并用EDA 實(shí)驗(yàn)設(shè)備實(shí)現(xiàn),在示波器上觀測(cè)所設(shè)計(jì)的信號(hào)。基于 FPGA 的調(diào)制信號(hào)發(fā)生器的設(shè)計(jì)主要采用了 FPGA 的硬件設(shè)計(jì)和 DSP Builder 系統(tǒng)級(jí)(或算法級(jí))設(shè)計(jì)工具來(lái)實(shí)現(xiàn)。利用 DSP Builder 進(jìn)行建摸, 同時(shí)又通過(guò) Signal Compiler 可以把 Matlab/Simulink 的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語(yǔ)言 VHDL 設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的 TCL腳本,而對(duì)后者的處理可以由 FPGA/CPLD 開(kāi)發(fā)工具 QuartusII 來(lái)完成。這樣我們就可以用 ModelSim 進(jìn)行功能仿真及用 QuartusII 進(jìn)行時(shí)序仿真,以驗(yàn)證所設(shè)計(jì)的信號(hào)滿足要求。并用 EDA 實(shí)驗(yàn)設(shè)備實(shí)現(xiàn),在示波器上觀測(cè)所設(shè)計(jì)的信號(hào)。452 DDS 的基本原理實(shí)現(xiàn)調(diào)幅調(diào)頻信號(hào)的核心是正弦波信號(hào)的產(chǎn)生。頻率控制、模擬幅度調(diào)制信號(hào)、模擬頻率調(diào)制信號(hào)等功能都是圍繞該信號(hào)展開(kāi)的。在設(shè)計(jì)中采用 DDS 技術(shù)產(chǎn)生不同頻率的正弦波,以實(shí)現(xiàn)調(diào)幅調(diào)頻信號(hào)。DDS(Direct Digital Synthesizer)即直接數(shù)字合成器,是一種新型頻率合成技術(shù),具有較高的頻率分辨率,可以實(shí)現(xiàn)快速的頻率切換,并且在頻率改變時(shí)能夠保持相位的連續(xù),很容易實(shí)現(xiàn)頻率、相位和幅度的數(shù)控調(diào)制。以正弦信號(hào)發(fā)生器為例進(jìn)行討論,它的輸出可以用下式來(lái)描述: 式(2.1)其中 是指該信號(hào)發(fā)生器的輸出信號(hào)波形, 指輸出信號(hào)對(duì)應(yīng)的頻率。outS outf上式的表述對(duì)于時(shí)間 t 是連續(xù)的,為了用數(shù)字邏輯實(shí)現(xiàn)該表達(dá)式,必須進(jìn)行離散化處理。用基準(zhǔn)時(shí)鐘 進(jìn)行抽樣,令正弦信號(hào)的相位:clkf式(2.2)在一個(gè) 周期 內(nèi),相位的變化量為:clkfclkT式(2.3)其中 指基準(zhǔn)時(shí)鐘頻率,對(duì)于 ,可以理解成“滿”相位。為了 對(duì)進(jìn)clkf 2πΔ?行數(shù)字量化,把切割成 2N 份,由此,每個(gè) 周期的相位增量可用量化值來(lái)表clkf述為:式(2.4)且 為整數(shù),可得:B??式(2.5)信號(hào)發(fā)生器的輸出可描述為: out outsini(2π).Atf??out2πf??outoutclkclΔffT2πNB????outclk2NfB????6式(2.6)其中, 指前一個(gè) clk 周期的相位值,同樣可以得出:1k??式(2.7)由上面的推導(dǎo)可以看出,只要對(duì)相位的量化值進(jìn)行簡(jiǎn)單的累加運(yùn)算,就可以得到正弦信號(hào)的當(dāng)前相位值,而用于累加的相位增量量化值 決定了信號(hào)B??的輸出頻率 ,并呈現(xiàn)簡(jiǎn)單的線性關(guān)系。直接數(shù)字合成器 DDS 就是根據(jù)上述原outf理而設(shè)計(jì)的數(shù)字控制頻率合成器。DDS 是以數(shù)控的方式產(chǎn)生頻率、相位和幅度可以控制的正弦波,圖 2.1 所示是一個(gè)基本的 DDS 結(jié)構(gòu),主要由相位累加器、相位調(diào)制器、正弦 ROM 查找表和D/A 構(gòu)成。圖中的相位累加器、相位調(diào)制器、正弦 ROM 查找表是 DDS 結(jié)構(gòu)中的數(shù)字部分,由于具有數(shù)控頻率合成的功能,又合稱為 NCO(Numerically Controlled Oscillators)。++頻 率控 制 字相 位控 制 字同 步寄 存 器相 位 累 加 器寄 存 器相 位 調(diào) 制 器正 弦R O M查 找 表同 步寄 存 器D / A信 號(hào)輸 出圖 2.1 基本 DDS 結(jié)構(gòu)DDS 系統(tǒng)的核心是相位累加器,它由一個(gè)累加器和一個(gè) N 位相位寄存器組成。每來(lái)一個(gè)時(shí)鐘脈沖 fr,相位寄存器以步長(zhǎng) M 增加。相位寄存器的輸出與相位控制字相加,其結(jié)果作為正(余)弦查找表地址。當(dāng)相位累加器累加滿量程,就會(huì)產(chǎn)生一次溢出,完成一個(gè)周期性的動(dòng)作,這個(gè)周期就合成信號(hào)的一個(gè)周期,累加器的溢出頻率也就是 DDS 的合成信號(hào)頻率。在原理框圖中,正(余)弦查找表由 ROM 構(gòu)成,內(nèi)部存有一個(gè)完整周期正(余)弦波的數(shù)字幅度信息,每個(gè)查找表的地址對(duì)應(yīng)正(余)弦波幅度信號(hào),同時(shí)輸出到數(shù)模轉(zhuǎn)換器(DAC)輸入端,DAC輸出的模擬信號(hào)經(jīng)過(guò)低通濾波器(LPF)可以得到一個(gè)頻譜純凈的正(余)弦波。相位累加器是整個(gè) DDS 的核心,在這里完成上文原理推導(dǎo)中的相位累加功能。相位累加器的輸入是相位增量 ,又由于與輸出頻率 是簡(jiǎn)單的線性關(guān)B??outf????1 1out1 Δsin2πsin(Δ)sink kkNSAABAfB???? ?? ??????????????12πkN????7系:式(2.8)故相位累加器的輸入又可稱為頻率字輸入,事實(shí)上,當(dāng)系統(tǒng)基準(zhǔn)時(shí)鐘 是clkf時(shí), 就等于 。頻率字輸入還經(jīng)過(guò)了一組同步寄存器,使得當(dāng)頻率字改2NB??outf變時(shí)不會(huì)干擾相位累加器的正常工作。相位調(diào)制器接收相位累加器的相位輸出,在這里加上一個(gè)相位偏移值,主要用于信號(hào)的相位調(diào)制,如 PSK(相移鍵控)等。在不使用時(shí)可以去掉該部分,或者加一個(gè)固定的相位字輸入。相位字輸入也需要用同步寄存器保持同步。需要注意的是,相位字輸入的數(shù)據(jù)寬度 M 與頻率字輸入 N 往往是不相等的,一般MN。正弦 ROM 查找表完成 的查表轉(zhuǎn)換,也可以理解成相位到幅度的轉(zhuǎn)換,sin()fB?它的輸入是相位調(diào)制器的輸出,事實(shí)上就是 ROM 的地址值,輸出送往 D/A,轉(zhuǎn)化成模擬信號(hào)。由于相位調(diào)制器的輸出數(shù)據(jù)位寬 M 也是 ROM 的地址位寬,因此在實(shí)際的 DDS 結(jié)構(gòu)中 N 往往很大,而 M 總為 10 位左右。 M 太大會(huì)導(dǎo)致 ROM 容量的成倍上升,而輸出精度受 D/A 位數(shù)的限制未有很大改善。因此,在實(shí)際應(yīng)用中,對(duì)于 ROM 容量的縮小,人們提出了很多解決方法?;?DDS 結(jié)構(gòu)的常用參量計(jì)算。1) DDS的輸出頻率由 DDS 工作原理推導(dǎo)的公式中很容易得出輸出頻率的計(jì)算:式(2.9)是頻率輸入字, 是系統(tǒng)基準(zhǔn)時(shí)鐘的頻率值, N 是相位累加器的數(shù)據(jù)B??clkf位寬,也是頻率輸入字的數(shù)據(jù)位寬。2) DDS 的頻率分辨率或稱頻率最小步進(jìn)值,即 為1時(shí),可用頻率輸入值步進(jìn)一個(gè)最小間隔B??對(duì)應(yīng)的頻率輸出變化量來(lái)衡量。 式(2.10)3) DDS的頻率輸入字的計(jì)算的計(jì)算公式如下: B??式(2.11)outclk2/NBf????outclk2NBff????clkout2Nf?outclk2NfB????873 設(shè)計(jì)工具3.1 FPGA 性能結(jié)構(gòu)隨著微電子技術(shù)的飛速發(fā)展,可編程邏輯器件的發(fā)展取得了長(zhǎng)足的進(jìn)步,F(xiàn)PGA(現(xiàn)場(chǎng)可編程門陣列)與CPLD(復(fù)雜可編程邏輯器件)都是可編程邏輯器件。CPLD(Complex Programmable Logic Device)和FPGA (Field Programmable Gate Array)已成為目前在電子系統(tǒng)設(shè)計(jì)中應(yīng)用最廣泛的可編程邏輯器件。它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點(diǎn)。與同門陣列等其它ASIC(Application Specific Integrated Circuit)相比,它們又具有設(shè)計(jì)開(kāi)發(fā)周期短、設(shè)計(jì)制造成本低、開(kāi)發(fā)工具先進(jìn)、可實(shí)時(shí)在線檢驗(yàn)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)之中。本文的設(shè)計(jì)中用到了Altera公司的FPGA芯片,因此以下將主要介紹FPGA的結(jié)構(gòu)、原理及設(shè)計(jì)。FPGA 器件是由大量邏輯宏單元構(gòu)成的。通過(guò)配置可以使這些邏輯宏單元形成不同的硬件結(jié)構(gòu),從而構(gòu)成不同的電子系統(tǒng),完成不同的功能。正是 FPGA 的這種硬件重構(gòu)的靈活性,使得設(shè)計(jì)者能夠?qū)⒂布枋稣Z(yǔ)言(如 VHDL 或 Verilog)描述的電路在 FPGA 中實(shí)現(xiàn)。這樣以來(lái),同一塊 FPGA 能實(shí)現(xiàn)許多完全不同的電路結(jié)構(gòu)和功能。如 DSL 布線器、數(shù)字調(diào)制解調(diào)器、JPEG 編碼器、數(shù)字通信系統(tǒng)以及網(wǎng)絡(luò)接口等等。簡(jiǎn)化的FPGA的結(jié)構(gòu)由4部分組成:輸入/輸出模塊、二維邏輯陣列模塊、連線資源和內(nèi)嵌存儲(chǔ)器模塊。輸入/輸出模塊是芯片與外界的接口,完成不同電氣特性下的輸入輸出功能要求。二維邏輯陣列模塊是可編程邏輯的主體,可以根據(jù)設(shè)計(jì)靈活地改變連接與配置,以完成不同的邏輯功能,F(xiàn)PGA的二維邏輯陣列模塊是基于可編程的查找表(Look Up Table, LUT)結(jié)構(gòu)的,LUT是可編程的最小邏輯構(gòu)成單元,連線資源連接所有的二維陣列模塊和輸入輸出模塊線長(zhǎng)度和工藝決定著信號(hào)在連線上驅(qū)動(dòng)能力和傳輸速度。內(nèi)嵌存儲(chǔ)器結(jié)構(gòu)可以在芯片內(nèi)部存儲(chǔ)數(shù)據(jù)?,F(xiàn)場(chǎng)可編程門陣列(FPGA)是由掩膜可編程門陣列(MPGA)和可編程邏輯器件二者演變而來(lái)的,將它們的特性結(jié)合在一起,既有門陣列的高邏輯和通用性,又有可編程邏輯器件的用戶可編程特性。FPGA 通常由布線資料分隔的可編程邏輯單元(或宏單元)構(gòu)成陣列,又由可編程 YO 單元圍繞陣列構(gòu)成整個(gè)芯片。其內(nèi)部資源是分段互連的,因而延時(shí)是不可預(yù)測(cè)的,只有編程完畢后才能實(shí)際測(cè)量。FPGA 建立內(nèi)部可編程邏輯連接關(guān)系的編程技術(shù)有三種:81)基于反熔絲技術(shù)的器件只允許對(duì)器件編程一次, 編程后不能修改。 其優(yōu)點(diǎn)是集成度、工作頻率和可靠性都很高,適用于電磁輻射干擾比較強(qiáng)的惡劣環(huán)境。2)基于 EEPROM 存儲(chǔ)器技術(shù)的可編程邏輯芯片能夠重復(fù)編程 100 次以上,系統(tǒng)掉電后編程信息也不會(huì)丟失,編程方法分為在編程器上編程和用下載電纜編程。用下載電纜編程的器件,只要先將器件裝焊在印刷電路板上,通過(guò)PC、SUN 工作站、ATE(自動(dòng)測(cè)試儀)或嵌入式微處理系統(tǒng),就能產(chǎn)生編程所用的標(biāo)準(zhǔn) 5V、3.3V 或 2.5V 的邏輯電平信號(hào),也稱為 ISP(In System Programmable)方式編程,其調(diào)試和維護(hù)也很方便。3)基于 SRAM 技術(shù)的器件編程數(shù)據(jù)存儲(chǔ)于器件的 RAM 中,具有用戶設(shè)計(jì)的功能。在系統(tǒng)不加電時(shí),編程數(shù)據(jù)存儲(chǔ)在 EPROM、硬盤或軟盤中;系統(tǒng)加電時(shí)將這些編程數(shù)據(jù)即時(shí)寫入可編程器件中,從而實(shí)現(xiàn)板級(jí)或系統(tǒng)級(jí)的動(dòng)態(tài)配置。FPGA作為新一代的可編程邏輯器件,由于其基本原理的特殊性,除了具有一般可編程邏輯器件的特點(diǎn)之外,在電子系統(tǒng)設(shè)計(jì)中還具有一些自己的特點(diǎn):1)編程方式簡(jiǎn)便靈活。對(duì)于基于SRAM LUT結(jié)構(gòu)的FPGA器件由于SRAM 的掉電易失性, 其編程采用ICR方式即在線可重配置方式。對(duì)于ICR方式的實(shí)現(xiàn)有多種選擇,在調(diào)試時(shí)可使用PC機(jī)并行口實(shí)現(xiàn),在實(shí)際應(yīng)用中可使用專用配置器件或者微處理器等來(lái)實(shí)現(xiàn)ICR。2)開(kāi)發(fā)工具和設(shè)計(jì)語(yǔ)言標(biāo)準(zhǔn)化,開(kāi)發(fā)周期短。由于EDA開(kāi)發(fā)工具的通用性、設(shè)計(jì)語(yǔ)言的標(biāo)準(zhǔn)化以及設(shè)計(jì)過(guò)程幾乎與所用的FPGA器件的硬件結(jié)構(gòu)沒(méi)有關(guān)系,所以從而使得片上系統(tǒng)的產(chǎn)品設(shè)計(jì)效率大幅度提高,開(kāi)發(fā)周期大大縮短。3)功能強(qiáng)大,應(yīng)用廣闊。目前,F(xiàn)PGA可供選擇范圍很大,可根據(jù)不同的應(yīng)用選用不同容量的芯片。利用它們可實(shí)現(xiàn)幾乎任何形式的數(shù)字電路或數(shù)字系統(tǒng)得設(shè)計(jì)。隨著達(dá)數(shù)百萬(wàn)門高密度的 FPGA 的出現(xiàn),F(xiàn)PGA 在原有的高密度的邏輯宏單元的基礎(chǔ)上嵌入了許多面向 DSP 的專用硬核模塊,結(jié)合大量可配置于 FPGA 硬件結(jié)構(gòu)中的參數(shù)化的 DSP IP 軟核,DSP 開(kāi)發(fā)者能十分容易地將整個(gè) DSP 應(yīng)用系統(tǒng)實(shí)現(xiàn)在一片 FPGA 中,從而實(shí)現(xiàn)了所謂的可編程 SOC 系統(tǒng),即 SOPC?,F(xiàn)代大容量、高速度的 FPGA 的出現(xiàn),克服了上述方案的諸多不足。FPGA器件集成度高、體積小,具有通過(guò)用戶編程實(shí)現(xiàn)專門應(yīng)用的功能。它允許電路設(shè)計(jì)者利用基于計(jì)算機(jī)的開(kāi)發(fā)平臺(tái),經(jīng)過(guò)設(shè)計(jì)輸入、仿真、測(cè)試和校驗(yàn),知道達(dá)到預(yù)期的結(jié)果。使用 FPGA 器件可以大大縮短系統(tǒng)的研制周期,減少資金投入。更吸引人的是,采用 FPGA 器件可以將原來(lái)的電路板級(jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品,從而降低了功耗,提高了可靠性,同時(shí)還可以很方便地對(duì)設(shè)計(jì)進(jìn)行在線修改,9因此有時(shí)人們也把 FPGA 稱為可編程的 ASIC 在這些 FPGA 中,一般都內(nèi)嵌有可配置的高速 RAM、PLL、LVDS、LVTTL 以及硬件乘法累加器等 DSP 模塊。用 FPGA 來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理可以很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性,使得 FPGA 構(gòu)成的 DSP 系統(tǒng)非常易于修改、易于測(cè)試及硬件升級(jí)。在利用 FPGA 進(jìn)行 DSP 系統(tǒng)的開(kāi)發(fā)應(yīng)用上,已有了全新的設(shè)計(jì)工具和設(shè)計(jì)流程。DSP Builder 就是美國(guó) Altera 公司推出的一個(gè)面向 DSP 開(kāi)發(fā)的系統(tǒng)級(jí)工具。它是作為 MATLAB 的一個(gè) Simulink 工具箱(Tool Box)出現(xiàn)的。MATLAB是功能強(qiáng)大的數(shù)學(xué)分析工具,廣泛應(yīng)用于科學(xué)計(jì)算和工程計(jì)算,可以進(jìn)行復(fù)雜的數(shù)字信號(hào)處理系統(tǒng)的建模、參數(shù)估計(jì)、性能分析。Simulink 是 MATLAB的一個(gè)組成部分,用于圖形化建模仿真。 現(xiàn)場(chǎng)可編程門陣列(FPGA)設(shè)計(jì)無(wú)線電和調(diào)制解調(diào)器與 DSP 芯片比 較,雖然 FPGA 可輕而易舉地實(shí)現(xiàn)如卷積編碼器等復(fù)雜邏輯功能,但在實(shí)現(xiàn)大量復(fù)雜計(jì)算方面卻有很大的缺陷。FPGA 在通信領(lǐng)域的應(yīng)用,大大改善了現(xiàn)代通信系統(tǒng)的性能,F(xiàn)PGA 的應(yīng)用也極大的推動(dòng)了 SOC 的發(fā)展,隨著 DSP 和 FPGA 技術(shù)的不斷發(fā)展,無(wú)線電技術(shù)必將成為移動(dòng)通信中的主流技術(shù)。FPGA 在通信領(lǐng)域的應(yīng)用,大大改善了現(xiàn)代通信系統(tǒng)的性能,F(xiàn)PGA 的應(yīng)用也極大的推動(dòng)了 SOC 的發(fā)展。FPGA 在通信領(lǐng)域的應(yīng)用,大大改善了現(xiàn)代通信系統(tǒng)的性能,F(xiàn)PGA 的應(yīng)用也極大的推動(dòng)了 SOC 的發(fā)展。FPGA 中的面向 DSP 的嵌入式模塊有可配置 RAM、DSP 乘加模塊和嵌入式處理器等,使 FPGA 能很好地適用于 DSP 功能的實(shí)現(xiàn)。乘法器的帶寬決定了整個(gè)DSP 的帶寬,而 FPGA 的 DSP 帶寬比 DSP 處理器要寬得多。此外,絕大部分的DSP 處理器應(yīng)用系統(tǒng)是用外部存儲(chǔ)器來(lái)解決大數(shù)據(jù)量的處理的。然而 FPGA 的嵌入式高速可配置存儲(chǔ)器在大多數(shù)情況下都能滿足相類似的數(shù)據(jù)處理要求。FPGA中的嵌入式處理器進(jìn)一步提高了 FPGA 的系統(tǒng)集成和靈活性,使之成為一個(gè)軟件與硬件聯(lián)合開(kāi)發(fā)和靈活定制的結(jié)合體,可使設(shè)計(jì)者既能在嵌入式處理器中完成系統(tǒng)軟件模塊的開(kāi)發(fā)和利用,也能利用 FPGA 的通用邏輯宏單元完成硬件功能模塊的開(kāi)發(fā)。Altera 的 FPGA 器件還為用戶提供了嵌入式處理器軟核與硬核的選擇?,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)硬件功能。3.2 基于 EDA 工具的 FPGA 設(shè)計(jì)流程3.2.1 EDA技術(shù)現(xiàn)代電子技術(shù)的核心是EDA (Electronic Design Automation電子設(shè)計(jì)自動(dòng)10化)技術(shù)。 EDA技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合、結(jié)構(gòu)綜合(布局布線)以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使得設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語(yǔ)言和EDA軟件來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn)。EDA技術(shù)在硬件實(shí)現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù):IC版圖設(shè)計(jì)技術(shù)、ASIC測(cè)試和封裝技術(shù)、FPGA/CPLD編程下載技術(shù)、自動(dòng)測(cè)試技術(shù)等。在計(jì)算機(jī)輔助工程方面融合了計(jì)算機(jī)輔助設(shè)計(jì)(CAD),計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)、計(jì)算機(jī)輔助工程(CAE)技術(shù)以及多種計(jì)算機(jī)語(yǔ)言的設(shè)計(jì)概念,而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容,如電子線路設(shè)計(jì)理論、數(shù)字信號(hào)處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長(zhǎng)線技術(shù)理論等等。因此EDA技術(shù)為現(xiàn)代電子理論和設(shè)計(jì)的表達(dá)與實(shí)現(xiàn)提供了可能性。當(dāng)然,這里的所謂EDA主要是指數(shù)字系統(tǒng)的自動(dòng)化設(shè)計(jì),因?yàn)檫@一領(lǐng)域的軟硬件方面的技術(shù)已比較成熟,應(yīng)用的普及程度也比較高。而模擬電子系統(tǒng)的EDA正在進(jìn)入實(shí)用,其初期的EDA工具不一定需要硬件描述語(yǔ)言。此外,從應(yīng)用的廣度和深度來(lái)說(shuō),由于電子信息領(lǐng)域的全面數(shù)字化,基于EDA的數(shù)字系統(tǒng)的設(shè)計(jì)技術(shù)具有更大的應(yīng)用市場(chǎng)和更緊迫的需求性。EDA技術(shù)的發(fā)展歷程同天規(guī)模集成電路設(shè)計(jì)技術(shù)、計(jì)算機(jī)輔助工程、可編程邏輯器件以及電子設(shè)計(jì)技術(shù)和工藝的發(fā)展是同步的。20世紀(jì)80年代,集成電路設(shè)計(jì)進(jìn)入了CMOS(互補(bǔ)場(chǎng)效應(yīng)管)時(shí)代,復(fù)雜可編程邏輯器件已進(jìn)入商用階段,而在80年代末,出現(xiàn)了FPGA(Field programmable Gate Array現(xiàn)場(chǎng)可編程門陣列)和CPLD(Complex Programmable Logic Device復(fù)雜可編程邏輯器件),其特點(diǎn)是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測(cè)試和實(shí)現(xiàn)快捷,開(kāi)發(fā)效率高,電子系統(tǒng)設(shè)計(jì)工程師可以在實(shí)驗(yàn)室中設(shè)計(jì)出專用的IC, 實(shí)現(xiàn)系統(tǒng)的集成,從而大大縮短了產(chǎn)品上市時(shí)間,降低了開(kāi)發(fā)成本。進(jìn)入20世紀(jì)90年代,集成電路設(shè)計(jì)工藝步入了超深亞微米階段,百萬(wàn)門以上的大規(guī)??删幊踢壿嬈骷懤m(xù)面世,促進(jìn)了FDA技術(shù)的形成。更為重要的是各EDA公司致力于推出兼容各種硬件實(shí)現(xiàn)方案和支持標(biāo)準(zhǔn)硬件描述語(yǔ)言的EDA工具軟件的研究,這些都有效地將EDA技術(shù)推向成熟。3.2.2 基于 EDA 的 FPGA 開(kāi)發(fā)流程圖 3.1 基于 EDA 工具的 FPGA 開(kāi)發(fā)流程框圖,對(duì)于目前流行的 EDA 工具軟件,其設(shè)計(jì)流程具有一般性,以下將依次各部分的功能。11圖3.1 基于EDA的FPGA設(shè)計(jì)流程設(shè)計(jì)輸入是設(shè)計(jì)者將所要設(shè)計(jì)的電路以開(kāi)發(fā)軟件要求的某種形式表達(dá)出來(lái),并輸入到相應(yīng)軟件中的過(guò)程。設(shè)計(jì)輸入有多種表達(dá)方式,最常用的是圖形輸入中的原理圖輸入方式和HDL文本輸入方式兩種。原理圖輸入方式的特點(diǎn)是適合描述連接關(guān)系和接口關(guān)系,而描述邏輯功能則比較繁瑣;而用HDL文本來(lái)描述設(shè)計(jì),其邏輯描述能力強(qiáng),但描述接口和連接關(guān)系則不如圖形方式直觀。目前有些EDA輸入工具可以把圖形的直觀與HDL的優(yōu)勢(shì)結(jié)合起來(lái)。但總體上看,純粹的HDL文本輸入設(shè)計(jì)仍然是最基本、最有效和最通用的輸入方法。綜合(Synthesis)指的是將行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實(shí)現(xiàn)的模塊組合裝配而成的過(guò)程。整個(gè)綜合過(guò)程就是將設(shè)計(jì)者在EDA平臺(tái)上編輯輸入的HDL文本、原理圖描述,依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級(jí)電路甚至更底層的電路描述網(wǎng)表文件。適配器也稱為結(jié)構(gòu)綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件,如對(duì)FPGA器件,產(chǎn)生Bit stream位流數(shù)據(jù)文件。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA供應(yīng)商提供。仿真就是讓計(jì)算機(jī)根據(jù)一定的算法和一定的仿真庫(kù)對(duì)EDA設(shè)計(jì)進(jìn)行模擬,以驗(yàn)證設(shè)計(jì),排除錯(cuò)誤。仿真是在EDA設(shè)計(jì)過(guò)程中的重要步驟,它包括功能仿真和時(shí)序仿真。不考慮信號(hào)時(shí)延等因素、不涉及任何具體器件的硬件特性的仿真稱12為功能仿真,又叫前仿真;時(shí)序仿真又稱后仿真,它是在選擇了具體器件并完成了布局布線后進(jìn)行的包含定時(shí)關(guān)系的仿真。把適配后生成的下載或配置文件,通過(guò)編程器或編程電纜裝入FPGA中的過(guò)程稱為下載。通常將對(duì)基于SRAM工藝結(jié)構(gòu)的FPGA器件的下載稱為配置(Configure)。如上一小節(jié)所述,F(xiàn)PGA器件的配置方式靈活,有多種的方式可供選擇。3.3 基于 FPGA 的 DSP 系統(tǒng)設(shè)計(jì)流程在早些時(shí)候,DSP 開(kāi)發(fā)者只能直接使用 VHDL 或 Verilog HDL 語(yǔ)言進(jìn)行FPGA 的 DSP 系統(tǒng)設(shè)計(jì),難度比較大?,F(xiàn)在已經(jīng)出現(xiàn)了許多新的基于 FPGA 的 DSP開(kāi)發(fā)工具。如 DSP Builder、SOPC Builder、System Generator 等,以及完整的軟件開(kāi)發(fā)平臺(tái)。從而使得設(shè)計(jì)者能遵循一條類似于軟件設(shè)計(jì)流程的開(kāi)發(fā)方法進(jìn)行 FPGA 的 DSP 設(shè)計(jì),設(shè)計(jì)效率大為提高。圖 3.2 所示的流程則表明基于 FPGA 的 DSP 開(kāi)發(fā)流程中,頂層的開(kāi)發(fā)工具就是 MATLAB /Simulink,整個(gè)開(kāi)發(fā)流程幾乎完全可以在同一環(huán)境中完成。真正實(shí)現(xiàn)了自頂向下的設(shè)計(jì)流程,包括 DSP 系統(tǒng)的建模、系統(tǒng)級(jí)仿真、設(shè)計(jì)模型向VHDL 硬件描述語(yǔ)言代碼的轉(zhuǎn)換、RTL 級(jí)功能仿真測(cè)試、編譯適配和布局布線、時(shí)序?qū)崟r(shí)仿真,直至對(duì) DSP 目標(biāo)器件的編程配置。整個(gè)設(shè)計(jì)流程一氣呵成地將系統(tǒng)描述和硬件實(shí)現(xiàn)有機(jī)地融為一體,充分顯示了現(xiàn)代電子設(shè)計(jì)自動(dòng)化開(kāi)發(fā)的特點(diǎn)與優(yōu)勢(shì)。圖 3.2 基于 FPGA 的系統(tǒng)級(jí)開(kāi)發(fā)流程MATLB/Simulink建 模 /仿 真VHD轉(zhuǎn) 換 邏 輯 綜 合 功 能 仿 真 /編 譯 適 配 /時(shí) 序 實(shí) 時(shí) 仿 真 /硬 件 配 置DSP系 統(tǒng) 建 模DSP Buildet綜 合 、 適 配布 線 、 布 局( QuartsⅡ )基 于 IP核 的DS庫(kù)FPGADS系 統(tǒng) 實(shí) 現(xiàn)133.4 DSP Builder 及其設(shè)計(jì)流程3.4.1 DSP Builder 概述DSP Builder 是一個(gè)系統(tǒng)級(jí)(或算法級(jí))設(shè)計(jì)工具,它架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級(jí)和 RTL 級(jí)兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來(lái),最大程度地發(fā)揮了兩種工具的優(yōu)勢(shì)。DSP Builder 依賴于 Math Works 公司的數(shù)學(xué)分析工具M(jìn)ATLAB/Simulink,以 Simulink 的 Blockset 出現(xiàn),可以在 Simulink 中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過(guò) Signal Compiler 可以把 MATLAB/Simulink 的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語(yǔ)言 VHDL 設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的 TCL 腳本。而對(duì)后者的處理可以由 FPGA/CPLD 開(kāi)發(fā)工具 QuartusII來(lái)完成。由于在 FPGA 上設(shè)計(jì)一個(gè) DSP 模塊的復(fù)雜性,設(shè)計(jì)的性能(包括面積、速度、可靠性、設(shè)計(jì)周期)對(duì)于不同的應(yīng)用目標(biāo)將有不同的要求,涉及的軟件工具也不僅僅是 Simulink 和 Quartus II。DSP Builder 針對(duì)不同情況提供了兩套設(shè)計(jì)流程,即自動(dòng)流程和手動(dòng)流程。DSP Builder 設(shè)計(jì)流程的第一步是在 MATLAB/Simulink 中進(jìn)行設(shè)計(jì)輸入,即在 MATLAB 的 Simulink 環(huán)境中建立一個(gè).mdl 模型文件,用圖形方式調(diào)用Altera DSP Builder 和其它 Simulink 庫(kù)中的圖形模塊(Block),構(gòu)成系統(tǒng)級(jí)或算法級(jí)設(shè)計(jì)框圖(或稱 Simulink 設(shè)計(jì)模型)。第二步是利用 Simulink 強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計(jì)模型的正確性,完成模型仿真。在這兩步中,與一般的 MATLAB Simulink 建模過(guò)程幾乎沒(méi)有什么區(qū)別,所不同的是設(shè)計(jì)模型庫(kù)采用 Altera DSP Builder 的 Simulink 庫(kù),也不涉及到其它 EDA 軟件,沒(méi)有自動(dòng)流程和手動(dòng)流程的區(qū)別。第三步是 DSP Builder 設(shè)計(jì)實(shí)現(xiàn)的關(guān)鍵一步,通過(guò) Signal Compiler 把Simulink 的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語(yǔ)言 VHDL 文件(后綴為.vhd)。由于 EDA 工具軟件(諸如 QuartusII、ModelSim)不能直接處理 MATLAB的.mdl 文件,這就需要一個(gè)轉(zhuǎn)換過(guò)程。轉(zhuǎn)換獲得的 HDL 文件是基于 RTL 級(jí)(寄存器傳輸級(jí))的 VHDL 描述。3.4.2 現(xiàn)代 DSP Builder 設(shè)計(jì)流程設(shè)計(jì)流程從利用 MATLAB 建立 DSP 電路模型開(kāi)始。電路模型的建立可以是圖形化的,可以方便地利用 Simulink 與 DSP Builder 中提供的豐富的功能塊和IP 核進(jìn)行設(shè)計(jì)。DSP Builder 包括比特和周期精度的 Simulink 模塊,還涵蓋了諸如算術(shù)和存儲(chǔ)功能的基本設(shè)計(jì)模塊以及 IP 庫(kù)中的許多復(fù)雜的功能模塊。電路中的功能塊和 IP 的技術(shù)參數(shù)、數(shù)據(jù)格式、數(shù)據(jù)類型和總線寬度等都可以直接設(shè)14置。電路模型設(shè)計(jì)完成后,可以進(jìn)行系統(tǒng)級(jí)的模型仿真,屬于系統(tǒng)功能仿真,與目標(biāo)器件和硬件系統(tǒng)沒(méi)有關(guān)系,是基于算法的仿真。接下去是利用置于 Simulink 電路模型界面的 DSP Builder 的 Signal Compiler,將電路模型文件即 Simulink 模塊文件轉(zhuǎn)換成 RTL 級(jí)的 VHDL 代碼表述和 Tcl 腳本。這種轉(zhuǎn)換是基于 Simulink 模型的結(jié)構(gòu)化分析的。RTL 級(jí) VHDL代碼通俗的解釋就是在 FPGA 中完成硬件電路實(shí)現(xiàn)的 VHDL 程序。Tcl 腳本主要是用于對(duì)后續(xù)的 VHDL 綜合與仿真的控制與規(guī)范。 一旦獲得了轉(zhuǎn)換好的 VHDL 描述,在 Simulink 中即可調(diào)用 VHDL 綜合器了。目前可選擇的綜合器主要有 Quartus II、Synplify 和 Leonardo Spectrum。由它們生成底層網(wǎng)表文件。注意,只有在此時(shí)才能真正確定 DSP 硬件實(shí)現(xiàn)的目標(biāo)器件的選擇,包括 FPGA 器件的系列和型號(hào)。因?yàn)閷?duì) RTL 級(jí)的 VHDL 綜合,必須確定底層元件的工藝特性和結(jié)構(gòu)特性,但不必了解硬件時(shí)序特性,只有在適配時(shí)才需要時(shí)序信息。下一步是調(diào)用 Quartus II 中的編譯器,根據(jù)網(wǎng)表文件及設(shè)置的優(yōu)化約束條件進(jìn)行布線布局和優(yōu)化設(shè)計(jì)的適配操作。最后生成編程文件和仿真文件,即生成 POF 和 SOF FPGA 配置文件,可用于對(duì)目標(biāo)器件的編程配置和硬件實(shí)現(xiàn);同時(shí)生成可分別用于 Quartus II 的門級(jí)仿真文件和 ModelSim 的 VHDL 時(shí)序仿真文件,以及配套的 VHDL 仿真激勵(lì)文件,可用于實(shí)時(shí)測(cè)試 DSP 系統(tǒng)的工作性能。上面的 Signal Compiler 生成的 VHDL,在進(jìn)入 ModelSim 仿真流程獲得的結(jié)果與硬件時(shí)序沒(méi)有關(guān)系,屬于功能仿真結(jié)果;而當(dāng)由 Quartus II 生成的VHDL 仿真文件,進(jìn)入 ModelSim 仿真流程后獲得的仿真結(jié)果屬于時(shí)序仿真,即是對(duì)系統(tǒng)的實(shí)時(shí)測(cè)試結(jié)果。圖 3.3 是 DSP Builder 的設(shè)計(jì)流程圖:M a t l a bS i m u l i n k建立模型S i m u l i n k模型仿真m d l 轉(zhuǎn)成v h d lH D L 仿真( M o d e l S i m )綜合 ( Q u a r t u s Ⅱ ,L e o n a r d o S p e c t r u m, S y n p l i f y )綜合( Q u a r t u s Ⅱ , L e o n a r d o S p ec t r u m , S y n p l i f y )A T O M N e t l i s t 產(chǎn)生Q u a r t u s ⅡQ u a r t u s Ⅱ生成編程文件 ( . p o f , . s o f )下載至硬件自動(dòng)流程15圖 3.3 DSP Builder 設(shè)計(jì)流程再接下來(lái)的幾個(gè)步驟是對(duì)以上設(shè)計(jì)產(chǎn)生的 VHDL 的 RTL 代碼和仿真文件進(jìn)行綜合、編譯適配以及仿真。為了針對(duì)不同用戶的設(shè)計(jì)目的和設(shè)計(jì)要求,DSP Builder 提供了兩種不同的設(shè)計(jì)流程,主要可以分為自動(dòng)流程和手動(dòng)流程。如果采用 DSP Builder 的自動(dòng)流程,幾乎可以忽略硬件的具體實(shí)現(xiàn)過(guò)程,可以選擇讓 DSP Builder 自動(dòng)調(diào)用 Quartus II 等 EDA 設(shè)計(jì)軟件,完成綜合(Synthesis)、網(wǎng)表(ATOM Netlist)生成和 Quartus II 適配,甚至在 Matlab 中完成 FPGA 的配置下載過(guò)程。如果希望使用其它第三方的 VHDL 綜合器和仿真器(除 Synplify、Leonardo Spectrum 和 Quartus II 綜合器及 ModelSim 外) ,或是希望完成特定的適配設(shè)置,如邏輯鎖定、時(shí)序驅(qū)動(dòng)編譯、ESB 特定功能應(yīng)用等,可以選用手動(dòng)流程設(shè)計(jì)。在手動(dòng)流程中,設(shè)計(jì)者可以靈活地指定綜合、適配條件。不過(guò),需要手動(dòng)地調(diào)用 VHDL 綜合器進(jìn)行綜合,調(diào)用 Quartus II 進(jìn)行適配,調(diào)用 ModelSim 或者Quartus II 進(jìn)行仿真,最后用 Quartus II 產(chǎn)生相應(yīng)的編程文件用于 FPGA 的配置。采用手動(dòng)流程時(shí),除了行為級(jí)仿真驗(yàn)證和設(shè)計(jì)輸入外,其它過(guò)程與標(biāo)準(zhǔn)的基于 VHDL 的 EDA 設(shè)計(jì)流程是完全一致的。由上一步 DSP Builder 設(shè)計(jì)流程得到VHDL 文件(由 Simulink 模型文件*.mdl 通過(guò) Signal Compilder 轉(zhuǎn)換而成),送入綜合器進(jìn)行綜合。綜合器可以是 Synplify Pro,也可以是 Leonardo Spectrum,或者采用 Altera 自己的 Quartus II。在綜合時(shí),可能需要對(duì)綜合器進(jìn)行配置或者提供綜合的約束條件。由于這個(gè)過(guò)程操作可能比較繁瑣,所以DSP Builder 的 Signal Compiler 相應(yīng)提供了一個(gè)接口,針對(duì)設(shè)計(jì),自動(dòng)產(chǎn)生一個(gè) TCL 腳本與綜合器 Synplify 或者 Leonardo Spectrum 相接。 綜合器在綜合操作后會(huì)產(chǎn)生一個(gè)網(wǎng)表文件,以供下一個(gè)流程使用。這里產(chǎn)生的網(wǎng)表文件稱為 ATOM 網(wǎng)表文件(如圖 3.3 所示),主要是 EDIF 網(wǎng)表文件(.edf 電子設(shè)計(jì)交換格式文件)或 VQM(.vqm Verilog Quartus Mapping File),它們是一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏單元 LCs、I/O單元、乘積項(xiàng)、嵌入式系統(tǒng)塊 ESB 等)的網(wǎng)表文件。Quartus II 可以利用這些ATOM 網(wǎng)表文件針對(duì)選定的具體器件進(jìn)行適配,包括布線、布局、結(jié)構(gòu)優(yōu)化等操作,最后產(chǎn)生時(shí)序仿真文件和 FPGA 目標(biāo)器件的編程與配置文件。在這一步,設(shè)計(jì)者可以在 Quartus II 中完成對(duì) Pin(引腳)的鎖定,更改一些約束條件。如果用 DSP Builder 產(chǎn)生的 DSP 模型只是龐大設(shè)計(jì)中的一個(gè)子模塊,則可16以在設(shè)計(jì)中調(diào)用 DSP Builder 產(chǎn)生的 VHDL 文件,以構(gòu)成完整的設(shè)計(jì)。同時(shí),一樣可以使用 Quartus II 強(qiáng)大的 Logic Lock 功能和 Signal Tap 測(cè)試技術(shù)。在 DSP Builder 設(shè)計(jì)流程的最后一步,可以在 DSP Builder 中直接下載到FPGA 用戶開(kāi)發(fā)板上,或者通過(guò) Quartus II 完成硬件的下載、測(cè)試。其中有個(gè)流程在 DSP 設(shè)計(jì)中是不可或缺的,那就是 HDL 仿真。與 DSP Builder 可以配合使用的 HDL 仿真器是 ModelSim。DSP Builder 在生成 VHDL 代碼時(shí),可以同時(shí)生成用于測(cè)試 DSP 模塊的 Test Bench(測(cè)試平臺(tái))文件,DSP Builder 生成的 Test Bench 文件采用 VHDL 語(yǔ)言,測(cè)試向量與該 DSP 模塊在Simulink 中的仿真激勵(lì)相一致。通過(guò) ModelSim 仿真生成的 Test Bench 可以驗(yàn)證生成的 VHDL 代碼與 Simulink 中 DSP 模型的一致性。另外,DSP Builder 在產(chǎn)生 Test Bench 的同時(shí),還產(chǎn)生了針對(duì) ModelSim 仿真的 Tcl 腳本來(lái)簡(jiǎn)化用戶的操作,掩蓋 ModelSim 仿真時(shí)的復(fù)雜性。在大部分情況下,Quartus II 對(duì) DSP 模塊適配后,需要再次驗(yàn)證適配后網(wǎng)表與 Simulink 中建立的 DSP 模型的一致性。這就需要再次使用 ModelSim 進(jìn)行仿真,這時(shí)仿真采用 Quartus II 適配后帶延時(shí)信息的網(wǎng)表文件(EDIF 格式或者VHDL、Verilog 格式)。3.5 Quartus II 簡(jiǎn)述設(shè)計(jì)中用到 QuartusⅡ來(lái)實(shí)現(xiàn)時(shí)序仿真,這里對(duì)其做一個(gè)簡(jiǎn)單的闡述,以便在掌握了其原理后運(yùn)用起來(lái)更得心應(yīng)手。QuartusⅡ?yàn)?Altera DSP 開(kāi)發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。QuartusⅡ是 Altera 提供的 FPGA/CPLD 開(kāi)發(fā)集成環(huán)境, Altera 是世界最大可編程邏輯器件供應(yīng)商之一。QuartusⅡ在 21 世紀(jì)初推出,是 Altera 前一代FPGA/CPLD 集成開(kāi)發(fā)環(huán)境 MAX+plusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在 QuartusⅡ上可以完成圖 3.1 所示的整個(gè)基于 EDA 的 FPGA 設(shè)計(jì)流流程,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。QuartusⅡ設(shè)計(jì)工具完全支持 VHDL、Verilog 的設(shè)計(jì)流程,其內(nèi)部嵌有VHDL、Verilog 邏輯綜合器。QuartusⅡ也可以利用第三方的綜合工具,如Leonardo Spectrum、Synplify Pro、FPGA CompilerⅡ,并能直接調(diào)用這些工具。同樣,QuartusⅡ具備仿真功能,同時(shí)也支持第三方的仿真工具,如ModelSim。此外,QuartusⅡ與 MATLAB 和 DSP Builder 結(jié)合,可以進(jìn)行基于FPGA 的 DSP 系統(tǒng)開(kāi)發(fā),是 DSP 硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵 EDA 工具。QuartusⅡ包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器17(Analysis &Synthesis) 、適配器(Fitter) 、裝配器(Assembler) 、時(shí)序分析器(Timing Analyzer) 、設(shè)計(jì)輔助模塊(Design Assistant) 、EDA 網(wǎng)表文件生成器(EDA Netlist Writer)和編輯數(shù)據(jù)接口(Compiler Database Interface)等??梢酝ㄟ^(guò)選擇 Start Compilation 來(lái)運(yùn)行所有的編譯器模塊,也可以通過(guò)選擇 Start 單獨(dú)運(yùn)行各個(gè)模塊。還可以通過(guò)選擇 Compiler Tool(Tools 菜單) ,在 Compiler Tool 窗口中運(yùn)行該模塊來(lái)啟動(dòng)編譯器模塊。在 Compiler Tool 窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,或打開(kāi)其他相關(guān)窗口。此外,QuartusⅡ還包含許多十分有用的 LPM(Library of Parameterized Modules)模塊,它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,在 SOPC 設(shè)計(jì)中被大量使用,也可在 QuartusⅡ普通設(shè)計(jì)文件一起使用。Altera 提供的 LPM 函數(shù)均基于 Altera 器件的結(jié)構(gòu)做了優(yōu)化設(shè)計(jì)。在許多實(shí)用情況中,必須使用宏功能模塊才可以使用一些 Altera 特定器件的硬件功能。例如各類片上存儲(chǔ)器、DSP 模塊、LVDS 驅(qū)動(dòng)器、PLL 以及 SERDES 和 DDIO 電路模塊等。圖 3.4 所示是 QuartusⅡ開(kāi)發(fā)設(shè)計(jì)流程。圖 3.4 QuartusⅡ設(shè)計(jì)流程圖 3.4 上排是 QuartusⅡ編譯設(shè)計(jì)主控界面,它顯示了 QuartusⅡ自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編(裝配) 、時(shí)序參數(shù)提取以及編程下載幾個(gè)步驟。圖 3.4 下排的流程框圖,是與上面的 QuartusⅡ設(shè)計(jì)流程相對(duì)照的標(biāo)準(zhǔn)的 EDA 開(kāi)發(fā)流程。QuartusⅡ編譯器支持的硬件描述語(yǔ)言有 VHDL(支持 VHDL’87 及 VHDL’97標(biāo)準(zhǔn)) 、Verilog HDL 及 AHDL(Altera HDL) ,AHDL 是 Altera 公司自己設(shè)計(jì)、制定的硬件描述語(yǔ)言,是一種- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 FPGA 調(diào)制 信號(hào)發(fā)生器 設(shè)計(jì) 研究
鏈接地址:http://www.hcyjhs8.com/p-442660.html