基于NiosII控制的DDS數(shù)字信號(hào)發(fā)生器設(shè)計(jì)說明書_第1頁(yè)
基于NiosII控制的DDS數(shù)字信號(hào)發(fā)生器設(shè)計(jì)說明書_第2頁(yè)
基于NiosII控制的DDS數(shù)字信號(hào)發(fā)生器設(shè)計(jì)說明書_第3頁(yè)
基于NiosII控制的DDS數(shù)字信號(hào)發(fā)生器設(shè)計(jì)說明書_第4頁(yè)
基于NiosII控制的DDS數(shù)字信號(hào)發(fā)生器設(shè)計(jì)說明書_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

XXX(設(shè)計(jì))I1緒論信號(hào)發(fā)生器是一種悠久的測(cè)量工具。直接數(shù)字頻率合成技術(shù)即DDS技術(shù)是一種新型的信號(hào)產(chǎn)生方法,是現(xiàn)代信號(hào)源的發(fā)展方向?;贜iosII控制的DDS數(shù)字信號(hào)發(fā)生器系統(tǒng),以理學(xué)院EL-EDA-VI實(shí)驗(yàn)箱為例,以Altera公司的CycloneⅡ的核心器件EP2C35F484C8為例,運(yùn)用SOPC技術(shù),NiosⅡCPU通過讀取按鍵的值,來實(shí)現(xiàn)不同頻率、不同波形的輸出顯示功能。本章介紹了信號(hào)發(fā)生器的和DDS的一些背景知識(shí),和一些研究?jī)?nèi)容的概述。1.1DDS信號(hào)發(fā)生器背景概述在通訊領(lǐng)域和電子行業(yè)領(lǐng)域,函數(shù)發(fā)生器都是普遍的儀器。它可以生成不同頻率和波形的信號(hào),來對(duì)產(chǎn)品進(jìn)行測(cè)試及其它用途。上個(gè)世紀(jì),第一臺(tái)正弦波發(fā)生器出現(xiàn)之后,信號(hào)發(fā)生器不斷在創(chuàng)新設(shè)計(jì),在當(dāng)代通訊與電子領(lǐng)域中,直接數(shù)字合成(DDS)技術(shù)漸漸主流化。DDS在大部分操作中使用數(shù)字電路,提供了數(shù)字操作擁有的許多優(yōu)勢(shì)。信號(hào)在最后一步轉(zhuǎn)換成模擬的之前,一直保持?jǐn)?shù)字化,大大提高了函數(shù)發(fā)生器的穩(wěn)定性,相對(duì)模擬電路也簡(jiǎn)化了很多。DDS的主要優(yōu)點(diǎn)之一是輸出信號(hào)的頻率精度可以達(dá)到作為發(fā)生器參考信號(hào)使用的晶體控制振蕩器的水平。如果想實(shí)現(xiàn)更高的精度,也可以采用函數(shù)發(fā)生器本身的溫度補(bǔ)償晶體振蕩器產(chǎn)生。這些信號(hào)可以提供高于0.1PPM的頻率精度。在許多情況下,函數(shù)發(fā)生器還可以把頻率鎖定到外部實(shí)驗(yàn)室頻率參考源上,從而生成超高精度的信號(hào)。DDS發(fā)生器可以生成非常高的頻率精度。DDS信號(hào)發(fā)生器的數(shù)字電路可以實(shí)現(xiàn)與數(shù)字電路相同的頻率精度,控制數(shù)據(jù)位數(shù)越高分辨率越高,頻率自然精度也會(huì)上去。如果DDS電路有一個(gè)64位計(jì)數(shù)器,便可以提供高達(dá)64位的頻率分辨率。由于所有的波形都是以數(shù)字方式生成的,因此函數(shù)發(fā)生器中的調(diào)制功能、掃描功能和突發(fā)生成功能都受到數(shù)字控制,并可以以非常高的精度進(jìn)行設(shè)置。不僅可以精確地設(shè)置/改變頻率和定時(shí),還可以精確地設(shè)置/改變相位和幅度。[2]DDS的第三個(gè)優(yōu)點(diǎn)是如果擁有RAM波形存儲(chǔ)器,它幾乎可以發(fā)出任何波形。DDS發(fā)生器通過采集存儲(chǔ)器中存儲(chǔ)的波形來產(chǎn)生波。現(xiàn)有的產(chǎn)品來說,每個(gè)函數(shù)發(fā)生器中都會(huì)內(nèi)置正弦波、方波、三角波和類似的波形。但是對(duì)于占空比為10%的方波,僅帶有只讀存儲(chǔ)器的DDS發(fā)生器則無法實(shí)現(xiàn)。不過如果DDS電路有存儲(chǔ)波形的RAM,那么控制器電路可以把任何波形寫入RAM,并通過合成器重放波形。綜上所述三個(gè)優(yōu)點(diǎn),函數(shù)發(fā)生器遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)函數(shù)發(fā)生器。對(duì)稱性可變的波形現(xiàn)在已是標(biāo)配功能,另外還可以內(nèi)置各種不常見的波形,如指數(shù)上升和下降型波形或正弦脈沖型波形等。最新的函數(shù)發(fā)生器利用了DDS的優(yōu)勢(shì),能夠把多臺(tái)不同儀器中的功能融合到一部?jī)x器中,像軟件的IDE編譯環(huán)境一樣,以后的基于DDS的函數(shù)發(fā)生器能給人一條龍的服務(wù)。這些功能將會(huì)給傳統(tǒng)測(cè)試方案帶來一次革命。1.2DDS信號(hào)發(fā)生器的當(dāng)下現(xiàn)狀DDS信號(hào)發(fā)生器采用直接數(shù)字頻率合成(DirectDigitalSynthesis,簡(jiǎn)稱DDS)技術(shù),具有能把頻率穩(wěn)定度、分辨率提高到與基準(zhǔn)頻率相同的水平的能力,而且可以在一定的頻率范圍內(nèi)進(jìn)行精細(xì)的頻率調(diào)節(jié)。采用這種方法設(shè)計(jì)的信號(hào)源可工作于調(diào)制狀態(tài),可對(duì)輸出電平進(jìn)行調(diào)節(jié),也可輸出各種波形。在現(xiàn)代電子及通信領(lǐng)域中,DDS的應(yīng)用極其廣泛。它具有頻率切換速度快、很容易提高頻率分辨率、對(duì)硬件要求低且可編程全數(shù)字化方法便于單片集成、降低成本、提高可靠性、容易生產(chǎn)等優(yōu)點(diǎn)。目前,實(shí)現(xiàn)DDS的方法主要有兩種:第一種方式是采用專用DDS芯片,目前,市場(chǎng)上性能優(yōu)良的DDS芯片很多,主要有Qualcomm和AD等公司的產(chǎn)品。Qualcomm公司推出了DDS系列Q2220、Q2334、Q2368;美國(guó)AD公司也推出了他們的DDS系列:AD9850、AD9851、AD9852、兩路正交輸出的AD9854以及以DDS為核心的QPSK調(diào)制器AD9853,AD9856和AD9857。AD公司的DDS產(chǎn)品性價(jià)比較高,應(yīng)用較為廣泛。2009年8月,中科院微電子所微波器件與集成電路研究室HBT超高速電路小組在劉新宇研究院和金智研究院的帶領(lǐng)下研制成功兩款基于lumGaAsHTB工藝的10GHz、8-bit超高速DDS芯片,這兩款超高速DDS芯片的研制成功,大大提升了國(guó)內(nèi)DDS電路的最高頻率,顯示了其當(dāng)前國(guó)際上GaAsHTB基DDS芯片時(shí)鐘頻率的最高水平,同時(shí)也證明了中國(guó)科研人員走在世界前列。第二種方式是我們將采取的自行設(shè)計(jì)基于可編程邏輯器件的解決方案。DDS技術(shù)的實(shí)現(xiàn)依賴于數(shù)字器件。本論文便討論了以理學(xué)院實(shí)驗(yàn)箱Altera公司的CycloneⅡ的核心器件(EP2C35F484C8)為核心,采用SOPC和DDS技術(shù),實(shí)現(xiàn)不同頻率、不同波形的輸出功能的DDS信號(hào)發(fā)生器設(shè)計(jì)。1.3SOPC解決方案及本設(shè)計(jì)方案的選擇電子系統(tǒng)的設(shè)計(jì)在近幾年發(fā)生了革命性的變化,高性能產(chǎn)品的要求和微電子技術(shù)的發(fā)展使SOC(SystemonChip)技術(shù)成為主流設(shè)計(jì)技術(shù)。Altera提出了一種靈活高效的SOC解決方案—SOPC(SystemonaProgrammableChip)。它將處理器及各種外設(shè)存儲(chǔ)器(ROM、RAM等)、總線和總線控制器、I/O口、DSP鎖相環(huán)等集成到一片F(xiàn)PGA中,可裁剪、可擴(kuò)充,具有靈活的設(shè)計(jì)方式并具備軟硬件在系統(tǒng)可編程功能。在現(xiàn)代通信領(lǐng)域中,DDS的應(yīng)用極其廣泛,目前各大制造廠商都推出了采用COMS生產(chǎn)的高性能和多功能DDS芯片,專用DDS芯片采用特殊工藝,內(nèi)部數(shù)字信號(hào)抖動(dòng)很小,輸出的質(zhì)量高;但是在某些場(chǎng)合,專用的DDS芯片的控制方式是不能改變的,所以可能在工作方式及頻率控制與系統(tǒng)的要求存在差距,這時(shí)如果用FPGA器件設(shè)計(jì)一個(gè)符合需求的DDS電路,就是一個(gè)很好的解決方案,可重配置性結(jié)構(gòu)能方便地實(shí)現(xiàn)復(fù)雜的調(diào)制功能,具有很好的實(shí)用性和靈活性。[1]我們將采取第二種方式自行設(shè)計(jì)基于可編程邏輯器件的解決方案。本論文研究?jī)?nèi)容如下:DDS信號(hào)發(fā)生器頻率可設(shè)置;DDS信號(hào)發(fā)生器波形可選擇;輸出頻率范圍為20KHz—5MHz(和分頻部分、頻率控制字長(zhǎng)度以及外部DAC性能有關(guān));能夠輸出正弦波,鋸齒波以及三角波;

2SOPC系統(tǒng)開發(fā)概述百萬門級(jí)的FPGA芯片,復(fù)雜的IP核和可重構(gòu)嵌入式軟核處理器的出現(xiàn),使得SOPC設(shè)計(jì)成為一種非常重要的設(shè)計(jì)辦法。本章首先介紹了可編程邏輯器件FPGA、CLPD,然后介紹系統(tǒng)的SOPC設(shè)計(jì)流程。2.1可編程邏輯器件概述及開發(fā)環(huán)境概述2.1.1可編程邏輯器件概述隨著時(shí)代的發(fā)展,數(shù)字集成電路不斷的進(jìn)行更新?lián)Q代,設(shè)計(jì)與制造集成電路的任務(wù)已經(jīng)不完全由廠商來承擔(dān)。一些人更愿意自己設(shè)計(jì)專用集成電路(ASIC)芯片,而且希望設(shè)計(jì)周期盡可能短,在實(shí)驗(yàn)室里就設(shè)計(jì)出合適ASIC芯片,并立即投入應(yīng)用之中,因而出現(xiàn)了可編程邏輯器件(PLD)??删幊踢壿嬈骷膬煞N,現(xiàn)場(chǎng)可編程門陣列FPGA和復(fù)雜可編程邏輯器件CPLD。FPGA提供了最高的邏輯密度、最豐富特性和最高性能?,F(xiàn)在最新FPGA器件,如XilinxVirtex?系列中的部分器件,可提供八百萬"系統(tǒng)門"(相對(duì)邏輯密度)。這些器件還提供諸如內(nèi)建的硬連線處理器(如IBMPowerPC)、大容量存儲(chǔ)器、時(shí)鐘管理系統(tǒng)等,并支持多種最新的超快速器件至器件(device-to-device)信號(hào)技術(shù)。FPGA應(yīng)用廣泛,數(shù)據(jù)處理和存儲(chǔ),以及到儀器儀表、信號(hào)處理等。與此相比,CPLD提供的邏輯資源少得多-最高1萬門。但是,CPLD提供了好的可預(yù)測(cè)性,所以對(duì)于關(guān)鍵的控制應(yīng)用非常理想。而且有的CLPD如XilinxCoolRunner?系列CPLD器件需要的功耗極低。FPGA/CPLD都是特殊的ASIC芯片,除了具有ASIC的特點(diǎn)之外,還有如下優(yōu)點(diǎn):可編程邏輯器件在設(shè)計(jì)過程中為客戶提供了更大的靈活性,因?yàn)閷?duì)于可編程邏輯器件來說,設(shè)計(jì)反復(fù)只需要簡(jiǎn)單地改變編程文件就可以了,而且設(shè)計(jì)改變的結(jié)果可立即查看??删幊踢壿嬈骷恍枰L(zhǎng)前置時(shí)間來制造原型或正式產(chǎn)品??删幊踢壿嬈骷恍枰蛻糁Ц陡甙旱腘RE成本和購(gòu)買昂貴的掩模組,可編程邏輯器件供應(yīng)商在設(shè)計(jì)其可編程器件時(shí)已經(jīng)支付了這些成本,并且可通過PLD產(chǎn)品線多年的生命期來支付這些成本??删幊踢壿嬈骷试S客戶在需要時(shí)訂購(gòu)需要的數(shù)量,使客戶可控制庫(kù)存。采用固定邏輯器件的客戶常會(huì)面臨需要廢棄過量庫(kù)存,當(dāng)對(duì)其產(chǎn)品的需求高漲時(shí),他們又為器件供貨不足所苦,不得不面對(duì)生產(chǎn)延遲的現(xiàn)實(shí)??删幊踢壿嬈骷踔猎谠O(shè)備付運(yùn)到客戶那兒以后還可以重新編程。2.1.2SOPC介紹System-on-a-Programmable-Chip,即可編程片上系統(tǒng)。用可編程邏輯技術(shù)把整個(gè)系統(tǒng)放到一塊硅片上,稱作SOPC??删幊唐舷到y(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。[3]SOPC結(jié)合了SOC和PLD、FPGA各自的優(yōu)點(diǎn),一般具備以下基本特征:(1)至少包含一個(gè)嵌入式處理器內(nèi)核;(2)具有小容量片內(nèi)高速RAM資源;(3)豐富的IPCore資源可供選擇;(4)足夠的片上可編程邏輯資源;(5)處理器調(diào)試接口和FPGA編程接口;(6)可能包含部分可編程模擬電路;(7)單芯片、低功耗、微封裝。SOPC是PLD和ASIC技術(shù)融合的結(jié)果,目前0.13微米的ASIC產(chǎn)品制造價(jià)格仍然相當(dāng)昂貴,相反,集成了硬核或軟核CPU、DSP、存儲(chǔ)器、外圍I/O及可編程邏輯的SOPC芯片在應(yīng)用的靈活性和價(jià)格上有極大的優(yōu)勢(shì)。SOPC被稱為“半導(dǎo)體產(chǎn)業(yè)的未來”。2.1.3Cyclone器件與NiosII介紹Altera公司作為全球最大的可編程邏輯器件供應(yīng)商之一,提供了多種型號(hào)的FPGA,可滿足不同用戶的需求。目前的主流產(chǎn)品包括MAXII系列PLD產(chǎn)品以及Cyclone,CycloneII,Stratix和StratixII系列FPGA。Cyclone系列FPGA是基于1.5V,0.13μm,SRAM工藝的中等規(guī)模FPGA,它具有以下特點(diǎn):支持低成本串行配置器件,如EPCS1。支持LVTTLLVCMOS,SSTL-2和SSTL-3的I/O標(biāo)準(zhǔn)。支持33MHz到66Hz,32位到64位的PCI標(biāo)準(zhǔn)。支持高速(640Mbps)和低速(311Mbps)LVDSI/O接口,311-Mbps,RSDSI/O接口。支持DDRSDRAM(133MHz),F(xiàn)CRAM和SDRSDRAM的擴(kuò)展內(nèi)存。支持AlteraMegaCore和AlteraMegafuctionsPartnersProgram在內(nèi)的多種IP核。每片F(xiàn)PGA中有最多2個(gè)鎖相環(huán),提供時(shí)鐘相乘和時(shí)鐘移相。多達(dá)8個(gè)全局時(shí)鐘,且每個(gè)LAB可以使用6個(gè)時(shí)鐘信號(hào)??紤]到設(shè)計(jì)需求及價(jià)格,在本邏輯分析儀中選用了Altera公司的CycloneⅡ系列中的EP2C35F484C8作為系統(tǒng)的FPGA芯片,同時(shí)選用了EPCS16配置芯片。NiosII是Altera公司推出的系列32位RSIC嵌入式處理器。他以軟核的方式提供給用戶,并專為在Altera的FPGA上事先做了優(yōu)化,用于SOPC(片上可編程系統(tǒng))集成,最后在FPGA上實(shí)現(xiàn)。NiosII系列軟核處理器是Altera的第二代FPGA嵌入式處理器,其性能超過200DMIPS,在AlteraFPGA中實(shí)現(xiàn)僅需35美分。Altera的Stratix、StratixGX、StratixII和Cyclone系列FPGA全面支持NiosII處理器,以后推出的FPGA器件也將支持NiosII。NiosII是一種靈活的體系結(jié)構(gòu),它提供以下特性:(1)32位的指令集、數(shù)據(jù)總線以及地址空間。(2)32個(gè)通用寄存器和32個(gè)外部中斷源。(3)32位乘除法的單周期指令(在運(yùn)算結(jié)果也是32位的情況下)。擁有專門的指令計(jì)算64位以及128位結(jié)果的乘法??稍L問多種片上組件,并擁有與片外設(shè)備的接口。擁有一個(gè)完整的開發(fā)環(huán)境NiosIIIDE,支撐程序的開始、停步、單步以及跟蹤等多種調(diào)試手段。不同的NiosII處理器實(shí)現(xiàn)均完整的支持統(tǒng)一指令集。支持用戶自定義指令,用戶可以將一些復(fù)雜的重復(fù)度高的關(guān)鍵運(yùn)算用硬件邏輯實(shí)現(xiàn),并賦予一條指令使得NiosII可以通過該指令實(shí)現(xiàn)這個(gè)運(yùn)算。性能在150Mbps以上。2.1.4SOPC開發(fā)硬件平臺(tái)適配器布局及硬件資源:E_Play-SOPCEP2C35適配器(以下簡(jiǎn)稱:適配器)布局如下圖:圖2.1整體效果圖Fig.2.1Integratedeffectmap圖2.2主板效果圖Fig.2.2 Viewofmotherboard主板資源:1)主控制器FPGA芯片:EP2C35F484C8N2)配置芯片:EPCS16N3)兩片SDRAM:HY57V561620CT-6,每片為4Bank×4M×16Bit(即32MB),總共64MB。4)FLASH:S29GL256N,32MB5)兩片SRAM:IS61LV25616AL-10T,每片256K×16(即512KB),總共1MB。6)USB2.0控制器:CY7C68013A-56,24C32E2PROM7)100M網(wǎng)絡(luò)控制器:LAN91C111-NE8)24位真彩VGA:ADV7125KSTZ1409)電源模塊:AS28303.30413(3.3V),LM2678S-ADJ(1.2V)10)其它接口及資源:5V電源接口、USB接口、PS2接口、232串口、VGA接口、AS下載口、JTAG下載口、4位按鍵、4位LED燈、復(fù)位鍵、E-PLAY插槽PORTA、PORTB,64針擴(kuò)展插槽。圖2.3擴(kuò)展板效果圖Fig.2.3 Viewofexpansionboard擴(kuò)展板資源:1)視頻解碼芯片:ADV7181B2)音頻芯片:TLV320AIC233)實(shí)時(shí)時(shí)鐘:PCF8563T4)E2PROM:24LC025)紅外收發(fā)對(duì)管:HSDL-32016)其它接口及資源:SD卡接口、RCA視頻接口,SV接口,音頻接口LIN、LOUT、POUT。2.1.4QuartusII9.0開發(fā)環(huán)境介紹Altera公司的QuartusII軟件提供了一個(gè)完整的多平臺(tái)開發(fā)環(huán)境,它包含整個(gè)FPGA/CPLD設(shè)計(jì)階段的解決方案,該軟件提供了提完整的圖形用戶界面,可完成可編程片系統(tǒng)的整個(gè)開發(fā)流程各個(gè)階段,包括輸入、綜合、仿真等,使設(shè)計(jì)的數(shù)字系統(tǒng)最后能夠在硬件上實(shí)現(xiàn)?;赒uartusII9.0軟件工具,設(shè)計(jì)者可以方便地完成數(shù)字系統(tǒng)設(shè)計(jì)的全過程。QuartusII9.0的軟件界面如圖2.4所示。[4]QuartusII軟件的工程文件包含所有的設(shè)計(jì)文件、源文件以及完成其他操作相關(guān)文件。QuartusII9.0支持多種設(shè)計(jì)方式,設(shè)計(jì)文件的輸入方法有原理圖式的圖形輸入、硬件語言文本輸入、內(nèi)存編輯。其中文本輸入支持AHDL、VHDL、VerilogHDL等。完成設(shè)計(jì)文件之后,需要定義輸入輸出引腳,之后才可以編譯。圖2.4QuartusII軟件界面Fig.2.4QuartusIIsoftwareinterfaceQuartusII編譯器主要任務(wù)是設(shè)計(jì)邏輯綜合、在器件中布局、布線、計(jì)算設(shè)計(jì)與器件上產(chǎn)生的延時(shí),最后生成器件的下載文件,為模擬和編程產(chǎn)生輸出文件。在把設(shè)計(jì)項(xiàng)目配置到器件之前,可以用仿真對(duì)設(shè)計(jì)進(jìn)行測(cè)試。在把設(shè)計(jì)項(xiàng)目的仿真和驗(yàn)證在QuartusII9.0仿真器中進(jìn)行,可以實(shí)現(xiàn)功能仿真與時(shí)序仿真,同時(shí)支持多種輸入信號(hào)格式:矢量表輸出文件(.tbl)、矢量波形文件(.vwf)、MAX+PLUSII產(chǎn)生的向量文件(.vec)或仿真器通道文件(.scf)。也可直接在TCL控制臺(tái)窗口輸入激勵(lì)信號(hào)。QuartusII的主要設(shè)計(jì)特性如下:基于模塊的設(shè)計(jì)方法可提高工作效率。更快的集成IP,縮短設(shè)計(jì)時(shí)間。在設(shè)計(jì)周期的早期對(duì)I/O引腳進(jìn)行分配和確認(rèn)。存儲(chǔ)器編譯器可對(duì)AlteraFPGA中的嵌入式存儲(chǔ)器進(jìn)行輕松管理。支持CPLD、FPGA和基于HardCopy的ASIC。使用全新的命令行和腳本功能全自動(dòng)化設(shè)計(jì)流程。高級(jí)教程幫助深入了解QuartusII的功能特性。另外,在使用QuartusII進(jìn)行FPGA設(shè)計(jì)時(shí),可以使用AlteraSignalTapII嵌入式邏輯分析儀對(duì)Altera部分系列的FPGA內(nèi)部信號(hào)狀態(tài)進(jìn)行評(píng)估。因?yàn)镾ignaltapII是捕獲實(shí)際的管腳邏輯值,儲(chǔ)存在片內(nèi)存儲(chǔ)器中,并且通過下載線傳給PC,所以是真實(shí)的輸出。我們可以設(shè)置SingalTapII嵌入式邏輯分析儀的采樣時(shí)鐘,分配數(shù)據(jù)信號(hào)、選擇觸發(fā)類型和觸發(fā)級(jí)數(shù)、觸發(fā)位置。SignalTapII嵌入式邏輯分析儀的使用幫助設(shè)計(jì)者發(fā)現(xiàn)設(shè)計(jì)中存在問題的原因。QuartusII9.0里面的SOPCBuilder是一個(gè)自動(dòng)化的系統(tǒng)開發(fā)工具,它能夠極大地簡(jiǎn)化高性能SOPC的設(shè)計(jì)。該工具提供出一個(gè)直觀的圖形界面,用戶通過圖形界面簡(jiǎn)化系統(tǒng)的定義工作。SOPCBuilder不需要直接編寫HDL代碼來定義系統(tǒng),極大地節(jié)約了開發(fā)時(shí)間。SOPCBuilder為每個(gè)元件提供向?qū)?,利用該想到能很容易定義元件功能。例如通過向?qū)軌蛉菀椎卦谝粋€(gè)設(shè)計(jì)中加入Nios處理器、外設(shè)接口等。為了將微處理器核、外圍設(shè)備、存儲(chǔ)器和其他IP核相互連接起來,SOPCBuilder能夠自生成片上總線和總線仲裁器等邏輯。SOPCBuilder在一個(gè)工具中實(shí)現(xiàn)了嵌入式系統(tǒng)方方面的開發(fā),為利用SOPC技術(shù)提高電子系統(tǒng)性能、降低成本提供了有力的支持。2.2SOPC系統(tǒng)的設(shè)計(jì)流程2.2.1基于NiosII的SOPC系統(tǒng)開發(fā)流程基于NiosII的SOPC系統(tǒng)開發(fā)主要分為兩部分:SOPC系統(tǒng)的定制、基于定制系統(tǒng)的軟件開發(fā),具體流程圖如圖2.5:[5]在采用NiosII處理器設(shè)計(jì)嵌入式系統(tǒng)時(shí)一般執(zhí)行如下流程:分析系統(tǒng)需求說明,包括功能需求和性能要求等;建立QuartusII9.0工程,建立頂層實(shí)體;調(diào)用SOPCBuilder生成一個(gè)用戶定制的系統(tǒng)模塊(包括NiosII及標(biāo)準(zhǔn)外設(shè)模塊);將SOPC系統(tǒng)模塊集成到硬件工程中,并添加一些模塊,可以使Altera公司提供的LPM模塊、第三方提供的或用戶自己定制的模塊;在頂層實(shí)體中,將SOPC系統(tǒng)模塊、Altera的LPM或用戶自定義的模塊連接起來;分配引腳和編譯工程,分別生成系統(tǒng)的硬件配置文件.sof和.pof文件;下載工程,驗(yàn)證,將配置文件下載到開發(fā)板上進(jìn)行驗(yàn)證;軟件開發(fā),開發(fā)可以使用IDE開發(fā)環(huán)境,也可以使用CommandShell;圖2.5SOPC系統(tǒng)開發(fā)流程Fig.2.5SOPCsystemdevelopmentprocess編譯軟件工程,生成可執(zhí)行文件.elf;調(diào)試程序,將硬件配置文件下載到開發(fā)板,將可執(zhí)行文件下載到RAM,知道軟硬件協(xié)同工作。在上面的過程中,用到的軟件有QuartusII9.0和NiosIIIDE、ModleSim等,如果進(jìn)行DSP的開發(fā),還會(huì)用到Matlab和DSPBuilder。Quartus9.0用來建立硬件的系統(tǒng),其中包括SOPCBuilder工具,它用來建立SOPC系統(tǒng)模塊。軟件開發(fā)使用NiosIISDKshell或NiosIIIDE,IDE開發(fā)環(huán)境采用圖形化的開發(fā)環(huán)境,使用方便直觀,而SDKshell采用命令窗口的方式進(jìn)行橫須的調(diào)試。在本系統(tǒng)中使用QuartusII9.0軟件中SOPCBuilder功能將設(shè)計(jì)好的CPU(NiossII)模塊和DDS信號(hào)發(fā)生器模塊下載到cycloneII(EP2C35F484C8)FPGA器件中。CPU模塊通過輸出頻率控制字和波形控制字來控制DDS信號(hào)發(fā)生器,最后將輸出送到D/A轉(zhuǎn)換器,經(jīng)低通濾波器平滑得到所需信號(hào),并采用NiosIIIDE進(jìn)行編程開發(fā)實(shí)現(xiàn)頻率可變,波形可選。所有軟件開發(fā)任務(wù)都可以NiosIIIDE下完成,包括編輯、編譯和調(diào)試程序。NiosIIIDE提供了一個(gè)統(tǒng)一的開發(fā)平臺(tái),用于所有NiosII處理器系統(tǒng)。僅僅通過一臺(tái)PC機(jī)、一片Altera的FPGA以及一根JTAG下載電纜,軟件開發(fā)人員就能夠往NiosII處理器系統(tǒng)寫入程序以及和NiosII處理器系統(tǒng)進(jìn)行通訊。2.2.2Avalon總線概述圖2.6Avalon交換架構(gòu)Fig.2.6ExchangearchitectureoftheAvalon處理器與外設(shè)一般都是通過總線完成數(shù)據(jù)傳輸,NiosII也不例外。Avalon總線是Altera公司為SOPC系統(tǒng)開發(fā)的一種專用的內(nèi)部連線技術(shù),是一種理想的用于系統(tǒng)處理器和外設(shè)之間的內(nèi)聯(lián)總線。Avalon交換架構(gòu)能進(jìn)行多路數(shù)據(jù)同時(shí)處理,實(shí)現(xiàn)無與倫比的系統(tǒng)吞吐量。SOPCBuilder自動(dòng)生成的Avalon交換架構(gòu)針對(duì)系統(tǒng)處理器和外設(shè)的專用互聯(lián)需求進(jìn)行優(yōu)化。傳統(tǒng)總線架構(gòu)中,單個(gè)總線仲裁器控制總線主機(jī)和從機(jī)之間的通信。每個(gè)總線主機(jī)發(fā)起總線控制請(qǐng)求,由總線仲裁器對(duì)某個(gè)主機(jī)授權(quán)接入總線。[6]Avalon交換架構(gòu)同時(shí)多主機(jī)體系結(jié)構(gòu)提高了系統(tǒng)的帶寬,消除帶寬瓶頸。采用Avalon交換架構(gòu),每個(gè)總線主機(jī)均有自己專用互聯(lián),總線主機(jī)只需要搶占共享從機(jī),不是總線本身。每當(dāng)系統(tǒng)加入模塊或者外設(shè)接入優(yōu)先權(quán)改變,SOPCBuilder利用最少FPGA資源,產(chǎn)生最佳的Avalon交換架構(gòu)。2.3DDS信號(hào)發(fā)生器設(shè)計(jì)概述2.3.1系統(tǒng)設(shè)計(jì)方案本文使用理學(xué)院實(shí)驗(yàn)箱EI-EDA-VI,是Altera公司的CycloneⅡ的核心器件EP2C35F484C8,可嵌入CPU單元,有效避免了硬件電路設(shè)計(jì)的復(fù)雜性,所以采用FPGA方案,如圖2.7所示圖2.7FPGA+DAC實(shí)現(xiàn)DDS框圖Fig.2.7FPGADDS+DACrealizeblockdiagram即CPU和DDS產(chǎn)生的數(shù)字信號(hào)輸出之前部分全部由SOPCBuilder功能使用QuartusII9.0FPGA下載器下載到FPGA上,并對(duì)其進(jìn)行編程控制來達(dá)到所需波形要求。其內(nèi)部功能圖如圖2.8所示。[1]圖2.8系統(tǒng)內(nèi)部功能圖Fig.2.8 Functionalblockdiagram2.4本章小結(jié)本章對(duì)SOPC系統(tǒng)開發(fā)軟硬件流程進(jìn)行了概要的介紹,開發(fā)環(huán)境、硬件、內(nèi)部總線等。分析了基于NiosII控制的DDS信號(hào)發(fā)生器的總體設(shè)計(jì),通過本章介紹對(duì)SOPC系統(tǒng)開發(fā)有了更進(jìn)一步的了解,對(duì)DDS的設(shè)計(jì)有了初步構(gòu)想。具體DDS模塊的建立介紹在3章,CPU的設(shè)計(jì)在第4章。

3DDS信號(hào)發(fā)生器的設(shè)計(jì)基于NiosII控制的DDS信號(hào)發(fā)生器的設(shè)計(jì)重點(diǎn)部分在于DDS信號(hào)發(fā)生器的設(shè)計(jì),本章詳細(xì)介紹了一個(gè)DDS信號(hào)發(fā)生器的原理和建立,并仿真。3.1DDS信號(hào)發(fā)生器的原理3.1.1DDS信號(hào)發(fā)生器的原理概述DDS是一種直接把數(shù)字量形式的信號(hào),經(jīng)過D/A轉(zhuǎn)換器轉(zhuǎn)換成模擬量的信號(hào)合成技術(shù)。目前使用廣泛的直接數(shù)字頻率合成方式就是高速存儲(chǔ)器作查詢表,通過高速D/A轉(zhuǎn)換器產(chǎn)生已經(jīng)用數(shù)字形式存入存儲(chǔ)器中的波形。[3]根據(jù)奈奎斯特取樣定理,對(duì)于任意一個(gè)頻率帶寬為B的連續(xù)信號(hào)f(t),可以用一系列的離散的取樣值f(t1).f(t1+T)f(t1+2T)來表示,T為采樣周期。只要這樣取樣點(diǎn)的時(shí)間間隔小于1/2B,則這樣的表示是完整的,包含著連續(xù)信號(hào)f(t)的全部信息。因此,對(duì)于一個(gè)周期的正弦波連續(xù)信號(hào),可以沿其相位軸方向,以等量的相位間隔對(duì)其進(jìn)行取樣,得到一個(gè)周期的正弦波信號(hào)的離散相位幅值序列,然后通過一定的手段放到存儲(chǔ)器中。每一個(gè)存儲(chǔ)單元的地址即是相位取樣地址,存儲(chǔ)單元的內(nèi)容即是已經(jīng)量化了的正弦波幅值。這樣的一個(gè)存儲(chǔ)器就夠成了一個(gè)與2π周期內(nèi)相位取樣相對(duì)應(yīng)的正弦函數(shù)功能表,因?yàn)樗鎯?chǔ)的是一個(gè)周期的正弦波波形幅值,又稱其為正弦波波形存儲(chǔ)器。對(duì)于一個(gè)連續(xù)的正弦波信號(hào),其角頻率ω可以用相位斜率/表示。當(dāng)角頻率ω為一確定值時(shí),其相位斜率也是一個(gè)確定值。此時(shí),正弦波信號(hào)的相位與時(shí)間成線性關(guān)系,即=ω。根據(jù)這一基本關(guān)系,在一定頻率的時(shí)鐘信號(hào)作用下,通過一個(gè)線性的計(jì)數(shù)時(shí)序數(shù)列發(fā)生器所產(chǎn)生的取樣地址對(duì)已得到的正弦波波形存儲(chǔ)器進(jìn)行循環(huán)掃描,進(jìn)而周期性地讀取波形存儲(chǔ)器中的數(shù)據(jù),其輸出通過D/A轉(zhuǎn)換器及低通濾波器就可以合成一個(gè)完整的、具有一定頻率的正弦波信號(hào)了。DDS信號(hào)發(fā)生器原理如圖3.1所示。[7]3.1.2DDS信號(hào)發(fā)生器的性能分析圖3.1中fc是一個(gè)穩(wěn)定的晶體振蕩器,其作用在于提供DDS中各部件同步工作。相位累加器在fc的控制下以步長(zhǎng)K做累加后輸出N位二進(jìn)制碼,與相位控制字、波形控制字相加后作為波形ROM的尋址地址,對(duì)波形ROM進(jìn)行尋址,波形ROM輸出D位的幅度碼經(jīng)D/A轉(zhuǎn)換器變換成階梯波輸出。經(jīng)過LPF低通濾波處理,變成平滑的波。原理如圖:圖3.1DDS原理框圖Fig.3.1DDSprincipleblockdiagram若采用計(jì)數(shù)容量為2N的相位累加器,由DDS的數(shù)學(xué)模型可知,DDS的輸出頻率滿足:所以K=1時(shí)有最小輸出頻率,為隨著K的增大,輸出頻率也變大,但是根據(jù)抽樣定理,DDS理論上最大頻率為[1]本設(shè)計(jì)中N位8位并對(duì)系統(tǒng)時(shí)鐘(50MHz)進(jìn)行了10分頻,輸出最小頻率為19.5KHz,通過調(diào)整N的位數(shù)和分頻倍數(shù),可進(jìn)行調(diào)節(jié)。而最大輸出頻率理論為2.5MHz,但是實(shí)際最大頻率約為:即1.66MHz(K=85時(shí))。3.2DDS信號(hào)發(fā)生器各模塊設(shè)計(jì)及其VHDL實(shí)現(xiàn)見附錄A。3.2.1分頻器因?yàn)镕PGA芯片中的系統(tǒng)時(shí)鐘為50MHz,我們采用的是8位累加器。為了達(dá)到更精確的頻率步進(jìn)(K位8位二進(jìn)制必須為整數(shù),每一步進(jìn)即K加1),為了使整體產(chǎn)生頻率稍低,必須對(duì)輸入時(shí)鐘進(jìn)行分頻處理。其編程原理是首先設(shè)置一個(gè)寄存器存儲(chǔ)分頻倍數(shù)的的溢出值。本文中對(duì)系統(tǒng)時(shí)鐘進(jìn)行了10分頻,因此設(shè)置寄存器值為5,上升沿到來時(shí)高電平計(jì)數(shù)1到5,然后低電平計(jì)數(shù)1到5就得到了10分頻。因此設(shè)置不同的分頻與倍頻,在DA轉(zhuǎn)換器性能可以達(dá)到的要求范圍內(nèi),可以使產(chǎn)生波形的頻率范圍變化。器元件圖標(biāo)如圖3.2。圖3.2分頻器元件圖標(biāo)Fig.3.2Prescalercomponentsicon3.2.2累加器累加器是由N位加法器和N位寄存器級(jí)聯(lián)成的,每一個(gè)時(shí)鐘脈沖fc。加法器將頻率控制字K與寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果送至寄存器的數(shù)據(jù)輸入端,寄存器將加法器在上一個(gè)時(shí)鐘作用所產(chǎn)生的相位數(shù)據(jù)反饋到加法器輸入端,使加法器在下一個(gè)時(shí)鐘作用下進(jìn)行相位累加。當(dāng)相位累加器累加滿產(chǎn)生溢出,就完成一個(gè)周期性的動(dòng)作。累加器連接圖如圖3.3圖3.3累加器元件圖標(biāo)Fig.3.3Accumulatorscomponentsicon3.2.3波形存儲(chǔ)器用相位累加器輸出8位數(shù)據(jù)作為波形存儲(chǔ)器的取樣地址,進(jìn)行相位到幅度轉(zhuǎn)換。N位的尋址ROM相當(dāng)于把一個(gè)周期的波形離散成具有2N個(gè)樣值的序列,若波形ROM有D位的數(shù)據(jù)位,則2N個(gè)樣值的幅值以D位二進(jìn)制數(shù)值固化在ROM中,按照地址的不同可以輸出相應(yīng)的波形幅值。[3]本設(shè)計(jì)采用8位二進(jìn)制數(shù)值存儲(chǔ)波形幅值,波形存儲(chǔ)器采用Altera公司提供的IP和建立,以正弦波為例對(duì)存儲(chǔ)器的建立進(jìn)行說明如下:首先用C語言或生成28個(gè)正弦波數(shù)據(jù),建立存儲(chǔ)器初值設(shè)定文件(.mif文件),F(xiàn)ile→New→Memoryinitialization,得到空的存儲(chǔ)器初值文件,將張顯波數(shù)據(jù)復(fù)制到表,得到文件樣如圖3.4。圖3.4存儲(chǔ)器初值設(shè)定文件Fig.3.4Memoryinitialvaluesetfile(2)下一步加入只讀存儲(chǔ)器ROM元件。在元件選擇窗口中選擇MegaWizardPlug-lnManager設(shè)置正弦信號(hào)存儲(chǔ)器,第三步添加生成的.mif文件。生成元件如圖3.5。圖3.5正弦波存儲(chǔ)器元件圖標(biāo)Fig.3.5Sinewavememoryelementfigure在時(shí)鐘的同步作用下,對(duì)輸入控制字進(jìn)行不同的設(shè)置,可得到正弦波存儲(chǔ)器中不同間隔的正弦數(shù)值,仿真如下圖3.6所示。圖3.6正弦波存儲(chǔ)器仿真圖形Fig.3.6Sinewavememorysimulationdiagram同樣的方法得三角波、鋸齒波元件依次如圖3.7。圖3.7其他波形存儲(chǔ)器生成元件圖標(biāo)Fig.3.7Otherwaveformmemoryformationcomponentsicon3.2.4波形改變CPU內(nèi)核輸出波形控制字對(duì)波形進(jìn)行控制,因此波形選擇模塊只需完成簡(jiǎn)單的根據(jù)輸入選擇不同波形即可,當(dāng)輸入為00時(shí)輸出正弦波,輸入為01是輸出三角波,輸入為10時(shí)輸出鋸齒波。元件圖標(biāo)如圖所示圖3.8波形選擇模塊元件圖標(biāo)Fig.3.8Waveformchoosemodulecomponentsicon3.2.5DDS整體DDS頂層連接如圖3.9所示。圖3.9DDS模塊整體連接圖Fig.3.9DDSmodulewholeconnectiondiagram在時(shí)鐘控制下,選擇輸入端進(jìn)行不同的賦值,得到不同波形存儲(chǔ)器的數(shù)值輸出,仿真圖如下圖3.10所示圖3.10DDS模塊整體仿真圖Fig.3.10ThewholesimulationdiagramDDSmodule3.3DDS信號(hào)發(fā)生器性能擴(kuò)展可行性分析本文要實(shí)現(xiàn)基于NiosII控制的DDS信號(hào)發(fā)生器,實(shí)現(xiàn)頻率可調(diào),波形可調(diào)。這其中涉及到DDS的性能問題,如輸出頻率范圍、波形樣式等,下面對(duì)想到的問題進(jìn)行分析。3.3.1DDS信號(hào)發(fā)生器的頻率分析因?qū)嶒?yàn)條件等因素限制,我采用了對(duì)系統(tǒng)時(shí)鐘進(jìn)行10分頻,波形存儲(chǔ)器位數(shù)8位,頻率控制字8位,從而完成的頻率范圍理論只有20KHz—5MHz,實(shí)際基本可達(dá)19.5KHz—1.6MHz的范圍。據(jù)理論波形輸出頻率公式,同步時(shí)鐘改變可以改變輸出頻率的范圍,而累加器步長(zhǎng)和波形存儲(chǔ)器的容量都可以改變輸出頻率的精度(最小輸出頻率和頻率分辨率),因此改變頻分部分值可以改變頻率的范圍,增加累加器步長(zhǎng)同時(shí)增大波形存儲(chǔ)器容量可以提高輸出頻率精度。盡量提高相位累加器的字長(zhǎng)可以獲得較高的頻率分辨率,一般設(shè)置為32位,但隨著相位累加器尋址位的增加,波形存儲(chǔ)器的容量以2冪增長(zhǎng)。各種參考資料顯示一般波形存儲(chǔ)器都選用8到16位的寬度。因此整個(gè)DDS模塊需要做一個(gè)折中,以提高頻率分辨率減低波形存儲(chǔ)器的容量,一般會(huì)采用相位截?cái)嗉夹g(shù),選用高幾位作為尋址位,剩余的低位全舍棄不用。[3]3.4本章小結(jié)本章主要介紹了DDS信號(hào)發(fā)生器的設(shè)計(jì),本部分在D/A轉(zhuǎn)換之前是要全部下載到FPGA上的。本章詳細(xì)介紹各個(gè)模塊的生成和DDS信號(hào)發(fā)生器的原理,其中分頻器的改變可以完全改變生成的頻率范圍,此部分有極大的靈活性,并可靈活擴(kuò)展功能(例如升級(jí)成模擬信號(hào)調(diào)制與數(shù)字信號(hào)調(diào)制)。4基于NiosII控制的DDS信號(hào)發(fā)生器的硬件開發(fā)我們首先來介紹NiosII的硬件部分開發(fā),所謂硬件開發(fā)就是用QuartusII9.0和SOPCbuilder來建立自己需要的軟核,并將其下載到FPGA上。4.1建立工程首先,打開QuartusII9.0軟件。建立一個(gè)工程File→NewProjectWizard點(diǎn)擊Next,選擇CycloneII(EP2C35F484C8)FPGA器件其他不需要修改,點(diǎn)擊Finish。[8]4.2構(gòu)建Nios軟核接下來,進(jìn)入了構(gòu)建軟核環(huán)節(jié),點(diǎn)擊Tools→SOPCBuilder(1)配置CPU模塊Altera提供了三種類型,NiosII/e占用資源最少600-800LEs,功能最簡(jiǎn)單,速度最慢。NiosII/s占資源比前者多一些,功能也多,速度快一些NiosII/f占資源最多,功能最多,速度最快。具體比較如下表4.1。表4.1NiosII可定制標(biāo)準(zhǔn)Table4.1standardoftheNiosIIcustomizable特性NiosII/f(快速)NiosII/s(標(biāo)準(zhǔn))NiosII/e(經(jīng)濟(jì))說明針對(duì)最佳性能優(yōu)化平衡性能和尺寸針對(duì)邏輯資源占用優(yōu)化流水線6級(jí)5級(jí)無乘法器1周期3周期軟件仿真實(shí)現(xiàn)支路預(yù)測(cè)動(dòng)態(tài)靜態(tài)無指令緩沖可設(shè)置可設(shè)置無數(shù)據(jù)緩沖可設(shè)置無無定制指令256256256選擇的時(shí)候要根據(jù)你的需求和你的芯片資源來決定。在返里,我選擇NiosII/e,功能和速度都可以得到滿足。下面的ResetVector是復(fù)位后啟動(dòng)時(shí)的Memory類型和偏移量,ExceptionVector是異常情況時(shí)的Memory類型和偏移量?,F(xiàn)在不能配置,需要SDRAM和FLASH設(shè)置好以后才能修改這里。設(shè)置JTAGDebugModule,即JTAG調(diào)試時(shí)所用到的功能模塊。功能越多,需要資源越多,返里,我們選擇Level1即可,不需要過多其他功能圖4.1SOPCBuilderFig.4.1SOPCBuilder(2)在理學(xué)院SdramCpu工程添加輸入端口和兩個(gè)輸出端口用來控制波形變換,頻率變換。圖4.3輸入輸出端口Fig.4.3I/Oport(3)配置SDRAM控制器內(nèi)核在Presets中選擇第一項(xiàng)Custom,Bits中選擇16,其他不動(dòng),Next→Finish,完成SDRAM控制器的設(shè)置。在這里選16位,因?yàn)槲覀冇玫腟DRAM(HY57V641620)是16位的。[8]圖4.2SDRAM??覨ig.4.2SDRAMmouldpit(4)建立EPCS和SystemIDEPCS是一種串行Flash,因此EPCS可以作為配置芯片單獨(dú)存儲(chǔ)配置文件,這是主要作用,也可以替代并行的Flash存儲(chǔ)程序,但必須使用存儲(chǔ)器配置文件的剩余空間。SystemID是一種標(biāo)示符,類似校驗(yàn)的東西,在下載程序之前或者重啟之后,都會(huì)對(duì)它進(jìn)行檢驗(yàn),以防止Quartus和Nios程序版本不一致的錯(cuò)誤。圖4.4配置的軟核Fig.4.4Configurationofthesoft-core(5)建立JTAGUARTJTAGUART是實(shí)現(xiàn)PC和NiosII系統(tǒng)間串行通信接口,它用字符輸入輸出,在NiosII的開發(fā)調(diào)試過程中扮演了重要角色。如圖4.5所示(6)配置及編譯NiosII我們需要對(duì)cpu進(jìn)行設(shè)置一下,雙擊cpu,ResetVector處的Memeory選擇cfi_flash,ExceptioniVector選擇SDRAM,我們需要對(duì)FLASH地址進(jìn)行鎖定,因?yàn)镕LASH是系統(tǒng)重啟后的起始位置,保證FLASH的起始地址為0x00000000,這樣做的好處是利于我們操作。最后一步設(shè)置是對(duì)地址自動(dòng)分配和對(duì)寄存器自動(dòng)分配,這樣做是為了不浪費(fèi)空間,點(diǎn)擊SYSTEM→Auto-assignBasicAddresses,SYSTEM→Auto-IRQs。系統(tǒng)進(jìn)行編譯,生成系統(tǒng),如圖4.5。圖4.5系統(tǒng)生成Fig.4.5Systemgenerates在block界面雙擊添加,可得到生成的CPU,在Project里面,如圖4.6所示。4.3連接DDS信號(hào)發(fā)生器部分將上一步構(gòu)建的Nios軟核輸出的頻率控制字與DDS信號(hào)發(fā)生器頻率控制字連接,波形控制字與波形選擇連接。圖4.6生成的CPUFig.4.6GeneratedCPU4.4分配管腳和設(shè)置引腳將4.3生成的連接圖,添加各個(gè)輸入輸出端口,并分別進(jìn)行命名,為分配引腳做準(zhǔn)備,這一步作用就是生成管腳。[9]接下來就要開始分配引腳了,在這一步之前我們首先要明白我們所用的FPGA芯片上個(gè)端口的對(duì)應(yīng)地址,參看實(shí)驗(yàn)指導(dǎo)書,本設(shè)計(jì)通過試驗(yàn)箱上IO9—IO16作為DDS數(shù)字輸出連接D/A轉(zhuǎn)換器。試驗(yàn)箱板子上有四個(gè)小按鈕作為頻率控制和波形控制的輸入。[10]圖4.7引腳設(shè)定Fig.4.7Pinset分配引腳有兩種方法,我覺得比較好的一種,就是選擇Assignments→Pins,開始對(duì)各輸入輸出等引腳進(jìn)行分配,如圖4.7所示。此時(shí)就會(huì)發(fā)現(xiàn)各個(gè)端口有了固定的地址,如下圖4.8所示。這種方法當(dāng)然也可以生成引腳文件,即Project→GenerateTclFileForProject。圖4.8硬件整體連接圖Fig.4.8Overallthehardwareconnectiondiagram圖4.9編譯結(jié)果Fig.4.9Compileresults圖4.10編程器下載的界面Fig.4.10Programmerinterface4.5本章小結(jié)本章介紹基于NiosII控制的DDS信號(hào)發(fā)生器的硬件設(shè)計(jì)概述,對(duì)CPU內(nèi)核的建立進(jìn)行了詳細(xì)的說明,每一部分的添加都有很多的參數(shù)需要設(shè)置,有部分直接默認(rèn)就是可以的。其中個(gè)引腳的設(shè)定是比較困難的,可參考配套實(shí)驗(yàn)書。

5基于NiosII控制的DDS信號(hào)發(fā)生器的軟件設(shè)計(jì)SOPC系統(tǒng),不僅僅依賴于系統(tǒng)硬件的設(shè)計(jì),而且還需要配套軟件進(jìn)行管理,本系統(tǒng)軟件采用NiosIIIDE進(jìn)行開發(fā),實(shí)現(xiàn)DDS模塊的控制和鍵盤信息的的處理。本章介紹了軟件構(gòu)造和論文產(chǎn)生的結(jié)果。5.1軟件整體架構(gòu)根據(jù)功能設(shè)計(jì)需要,本程序需完成波形切換、頻率可變的操作,軟件流程圖如圖5.1。圖5.1軟件流程圖Fig.5.1softwareflowchart軟件主題包括初始化、設(shè)定波形、設(shè)定頻率3部分。初始化時(shí),將波形設(shè)定為正弦波,頻率控制字設(shè)定為1;小板子上四個(gè)按鍵,左邊兩個(gè)控制頻率,另外兩個(gè)控制波形。5.2軟件操作流程本設(shè)計(jì)中采用NiosIIIDE進(jìn)行開發(fā),使用C語言編寫程序。下面介紹開發(fā)的詳細(xì)過程:(1)建立軟件工程將NiosIIIDE9.0軟件打開,打開后如圖5.2,選擇硬件部分生產(chǎn)成的CPU,工程建好以后右鍵點(diǎn)擊工程名選擇SystemLibraryProperties,進(jìn)行進(jìn)一步配置一定要對(duì)存儲(chǔ)器的使用進(jìn)行合理分配。[11]圖5.2建立NiosIIIDE工程文件Fig.5.2EstablishNiosIIIDEengineeringdocuments(2)工程模板的編譯工程建立設(shè)置完成后,我們正式進(jìn)入NiosIIIDE的界面了,現(xiàn)有HelloNiosII簡(jiǎn)單程序,現(xiàn)就其BuildProject,若兩者匹配,各方面正確會(huì)得到如下圖5.3所示的結(jié)果圖5.3編譯HelloNiosII結(jié)果Fig.5.3HelloNiosIIresultscompiled(3)軟件編譯接下來開始編譯,第一次的編譯時(shí)間比較長(zhǎng),因?yàn)榫幾g過程中會(huì)生成一個(gè)重要的文件system.h,這個(gè)文件是根據(jù)我們的NiosII軟核產(chǎn)生的,system.h的內(nèi)容與軟核的模塊一一對(duì)應(yīng)。如果軟核發(fā)生發(fā)化,就需要重新編譯,重新產(chǎn)生system.h文件。而后右鍵選擇所建NiosIIIDE工程選擇RunAs→NiosII Hardware,運(yùn)行程序,結(jié)果如圖5.4。[m]圖5.4運(yùn)行程序Fig.5.4Toruntheprogramresults5.3所得結(jié)果及分析因?yàn)橹苯虞敵龅臄?shù)字量,我先使用嵌入式邏輯分析儀來進(jìn)行系統(tǒng)輸出測(cè)試。[12][13]5.3.1頻率變化以正弦波輸出為例:圖5.5為初始狀態(tài)下,圖5.6和圖5.7均為提高頻率以后的波形。據(jù)以上三個(gè)不同頻率的波形分析可得,因?yàn)榉抡鏋閿?shù)字信號(hào)輸出,隨著頻率的增大波形看到了明顯的不連續(xù)性,是因?yàn)槿訑?shù)減小了。通過仿真看到DDS信號(hào)發(fā)生器的穩(wěn)定性,頻率的變化并不會(huì)引起信號(hào)的不穩(wěn)定。圖5.5初始狀態(tài)下正弦波Fig.5.5Theinitialstatesinewave圖5.6提高頻率的正弦波Fig.5.6Raisethefrequencysinewave圖5.7再次提高頻率的正弦波Fig.5.7Onceagainraisefrequencysinewave5.3.2波形變換如下圖5.8-5.10所示為進(jìn)行DDS信號(hào)發(fā)生器的波形變換輸出,波形變換只需按鍵簡(jiǎn)單控制,切換所需輸出即可,又可以看出DDS的靈活性,如將ROM改成RAM存儲(chǔ)讀取數(shù)據(jù),更減小了所需內(nèi)存,增強(qiáng)了波形變換的靈活性。[14]圖5.9鋸齒波仿真Fig.5.9Toothwavesimulation圖5.10三角波仿真Fig.5.10Trianglewavesimulation5.3.4結(jié)果分析及優(yōu)化方案畢業(yè)設(shè)計(jì)要求的功能基本上能夠?qū)崿F(xiàn),但是實(shí)驗(yàn)也存在一些不足。因?yàn)轭l率控制字和ROM的位數(shù)都比較低,所以達(dá)得的精度比較低,頻率以19KHz的速度增長(zhǎng)。因?yàn)槲以O(shè)計(jì)的ROM位數(shù)以及頻率控制字字長(zhǎng)的限制,累加器步長(zhǎng)增長(zhǎng)以后達(dá)到更高的精度我們就有條件設(shè)計(jì)需要的頻率,比如以0.5KHz為最小精度,根據(jù)設(shè)定自己所需的頻率。希望以后的方案有條件的話,在精度和分辨率上進(jìn)行必要的優(yōu)化,不過還是合適的是最好的。5.4本章小結(jié)至此,我們完成預(yù)期的基于NiosII控制的DDS信號(hào)發(fā)生器的功能。本章通過分析總體C語言控制流程,進(jìn)行C語言編程,NiosIIIDE使用詳細(xì)流程介紹,最終顯示了結(jié)果。當(dāng)然真正的基于NiosII控制的DDS信號(hào)發(fā)生器的功能更強(qiáng)大的,要更多功能的擴(kuò)展和延伸,我還需要在此基礎(chǔ)上進(jìn)行深層次的研究和學(xué)習(xí)。

6總結(jié)與展望6.1總結(jié)主要展開的工作以及取得的成果有:(1)收集、閱讀及分析了有關(guān)SOPC系統(tǒng)設(shè)計(jì)和DDS信號(hào)發(fā)生器的文獻(xiàn)資料,DDS信號(hào)發(fā)生器的發(fā)展和國(guó)內(nèi)外研究現(xiàn)狀有了解和認(rèn)識(shí)。(2)研究了DDS信號(hào)發(fā)生器的原理、特點(diǎn)、實(shí)現(xiàn)過程和以及改進(jìn)措施。(3)對(duì)SOPC系統(tǒng)開發(fā)進(jìn)行了全方面的分析、研究、實(shí)踐。(4)從單獨(dú)的DDS信號(hào)發(fā)生器的仿真,到嵌入式邏輯分析儀的系統(tǒng)測(cè)試,每一步都努力達(dá)到設(shè)計(jì)預(yù)期目標(biāo)。6.2展望大規(guī)模集成電路以及FPGA的高速發(fā)展,因?yàn)镈DS信號(hào)發(fā)生器應(yīng)用廣泛,基于FPGA器件的DDS信號(hào)發(fā)生器發(fā)展成果不錯(cuò),但是仍帶來很多需要解決的問題,比如為了高分辨率和存儲(chǔ)器相對(duì)小地中和而產(chǎn)生的相位截?cái)?;產(chǎn)生任意波形、任意頻率還是有一定的限制。DDS在大部分操作中使用數(shù)字電路,提供了數(shù)字操作擁有的許多優(yōu)勢(shì)。由于信號(hào)只在合成的最后階段轉(zhuǎn)換到模擬信號(hào),提高了函數(shù)發(fā)生器的穩(wěn)定性?,F(xiàn)代通信技術(shù)、電子、微電子技術(shù)的發(fā)展,對(duì)信號(hào)發(fā)生器提出了更高的要求。除對(duì)信號(hào)頻率范圍、帶寬和頻率分辨率的嚴(yán)格限制外,對(duì)信號(hào)波型及調(diào)制特性也有著苛刻規(guī)定。研究開發(fā)具有更高性價(jià)比的信號(hào)發(fā)生器是當(dāng)前和今后一段時(shí)間內(nèi)急需解決的課題。若能充分利用FPGA強(qiáng)大的數(shù)據(jù)運(yùn)算處理能力以及編程靈活、運(yùn)行速率快等各種優(yōu)點(diǎn),合理整合IP核資源和更好地利用SOPC技術(shù),一定可以設(shè)計(jì)出性能更加出色的信號(hào)發(fā)生器[15]。致謝畢業(yè)設(shè)計(jì)能夠得以順利完成,真的要感謝所有指導(dǎo)過我的老師、同學(xué),在這里對(duì)他們表示深深的謝意!要特別感謝我的指導(dǎo)老師——周越老師。每次遇到問題,周老師總是不厭其煩的幫我講解,從老師那里也讓我學(xué)到的不只是知識(shí),更是一絲不茍的態(tài)度。當(dāng)我感覺時(shí)間緊急來不及完成我的畢業(yè)設(shè)計(jì)的時(shí)候,也是周越老師跟我做思想工作,讓我相信自己的能力,我開始耐心地去看那些對(duì)于我來說是天書的書,很多的不明白,還是周越老師得醍醐灌頂。最終讓我完成了我的畢業(yè)設(shè)計(jì),從中感覺到了不僅是知識(shí)的增加更是個(gè)人能力的提高。老師高度的敬業(yè)精神令我心悅誠(chéng)服。而周越老師的分析過程,細(xì)微的掌握之處讓我震驚,極高的科研能力令人折服。在此,對(duì)我的指導(dǎo)老師周越老師真誠(chéng)的道一聲:“老師您辛苦了,感謝您!”我還要感謝理學(xué)院全體老師對(duì)我的教育培養(yǎng),是他們教會(huì)我做人,讓我成為一個(gè)合格的大學(xué)生,在此由衷的感謝各位老師!最后,我要感謝養(yǎng)育我的父母,定會(huì)回報(bào)你們的養(yǎng)育之恩!四年的大學(xué)的生活就此結(jié)束,最后由衷的感謝母?!本┝謽I(yè)大學(xué)!我愛這里,不想離開。

參考文獻(xiàn)[1]侯建軍,郭勇.SOPC技術(shù)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2008:1-55.[2]王晨,基于DDS的高精度任意波形發(fā)生器設(shè)計(jì)[J]電子科技大學(xué),2010,23(7):60-65[3]劉鐵新,高俊法.DDS輸出品皮特點(diǎn)及改善方法[J].陜西天文臺(tái)臺(tái)刊,1999,6:1-22.[4]LiZhuo,ChenZhiliang.VerificationandautotestforLCDdriver/controller[M]2003.[5]肖鐵軍,黃建文.數(shù)字電路邏輯測(cè)試系統(tǒng)中的測(cè)試生成[J].江蘇工學(xué)院學(xué)報(bào),1993,14(6):67-72.[6]IGonzalez;FJGomezArribasCipheringalgorithmsinMicroBlaze-basedembeddedsystems[J]2006(02).[7]赫建國(guó),倪德克,鄭燕.基于NiosII內(nèi)核的FPGA電路系統(tǒng)設(shè)計(jì)[M].電子工業(yè)出版社.2010,1(4):87-94.[8]TexasInstrumentsCorporation.TLV5580Datasheet[A].[9]AlteraCorporation.QuickStartGuideforQuartusⅡSoftware.2006.[10]李越,蘇杰,宋凱.基于FPGA和EPP的芯片測(cè)試電路設(shè)計(jì)[J].無線電工程,2008,38(4):10-12.[11]AlteraCorporation.NiosⅡIEDHelpSystem.2006.[12]彭澄廉.挑戰(zhàn)SOC—基于Nios的SOPC設(shè)計(jì)與實(shí)踐[M].清華大學(xué)出版社,2004.7.[13]郭書軍,王玉花,葛紉秋.嵌入式處理器原理及應(yīng)用——Nios系統(tǒng)設(shè)計(jì)和C語言編程[M].北京:清華大學(xué)出版社,2004.[14]郭勇.SOPC技術(shù)及運(yùn)用[EB/OL]./html/09-01/415519050917eGki.shtml.[15]羅毅.基于FPGA和單片機(jī)的DDS信號(hào)發(fā)生器的設(shè)計(jì)[D]電子科技大學(xué),2012,3附錄附錄ADDS信號(hào)發(fā)生器各模塊VHDL語言部分(1)頻分--10fenpinarchitecturebehavoffenpinissignalcount:STD_LOGIC_VECTOR(2DOWNTO0);signalclk_temp:STD_LOGIC;beginprocess(clk)begin if(clk'eventandclk='1')then if(count="100")THEN count<="000"; clk_temp<=notclk_temp; else count<=count+1; endif; endif; endprocess; k_clk<=clk_temp;endbehav;寄存器architecturebehavofjicunqiisbeginprocess(Load,DIN)begin ifLoad'EVENTANDLoad='1'THEN DOUT<=DIN; endif;endprocess;endbehav;波形選擇器architecturebehavofxuanzeisbegin process(s,clk) BEGIN ifclk'eventandclk='1'then ifs="00"then z<=A; elseifs="01"then z<=B; elseifs="10"then z<=C; ENDIF; ENDIF; ENDIF; endif; ENDPROCESS;endbehav;附錄B工程源程序#include"sys/alt_irq.h"#include"stdio.h"#include"stdlib.h"#include"string.h"#include"system.h"#include"unistd.h"#include"alt_types.h"#include"altera_avalon_pio_regs.h"#include<io.h>#include"altera_avalon_timer_regs.h"volatilealt_u8data;volatilealt_u8box;unsignedchars[4][7]={"正弦","三角","鋸齒"};unsignedcharAC_TABLE[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行漢字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行漢字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行漢字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行漢字位置};voidudelay(alt_u8us){alt_u8i;while(us--)for(i=1;i<=1;i++);}//串口發(fā)送一個(gè)字節(jié)voidSendByte(unsignedcharDbyte){unsignedchari,tmp_byte=Dbyte;for(i=0;i<8;i++){IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x01);IOWR(RW_BASE,0,(tmp_byte>>(7-i)));IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);}}//串口接收一個(gè)字節(jié)//僅在讀取數(shù)據(jù)的時(shí)候用到//而讀出的數(shù)據(jù)是一次只能讀出4bit的unsignedcharReceiveByte(void){unsignedchari,temp1,temp2,tmp_recv=0x00;temp1=temp2=0;for(i=0;i<8;i++){temp1=temp1<<1;IOWR(E_BASE,0,0x00);IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x00);tmp_recv=IORD(RW_BASE,0)&0x01;if(tmp_recv)temp1++;}for(i=0;i<8;i++){temp2=temp2<<1;IOWR(E_BASE,0,0x00);IOWR(E_BASE,0,0x01);IOWR(E_BASE,0,0x00);IOWR(RW_BASE,1,0x00);tmp_recv=IORD(RW_BASE,0)&0x01;if(tmp_recv)temp2++;}return((0xf0&temp1)+(0x0f&temp2));}voidCheckBusy(void){doSendByte(0xfc);//11111,RW(1),RS(0),0while(0x80&ReceiveByte());//BF(.7)=1Busy}voidWriteCommand(unsignedcharCbyte){IOWR(RS_BASE,0,0x01);SendByte(0xf8);//11111,RW(0),RS(0),0SendByte(0xf0&Cbyte);//高四位SendByte(0xf0&Cbyte<<4);//低四位(先執(zhí)行<;<;)IOWR(RS_BASE,0,0x00);}voidWriteData(unsignedcharDbyte){IOWR(RS_BASE,0,0x01);udelay(1);usleep(100);CheckBusy();SendByte(0xfa);//11111,RW(0),RS(1),0SendByte(0xf0&Dbyte);//高四位SendByte(0xf0&Dbyte<<4);//低四位(先執(zhí)行<;<;)IOWR(RS_BASE,0,0x00);udelay(2);}voidLcmInit(void){WriteCommand(0x30);//8BitMCU,基本指令集合WriteCommand(0x03);//AC歸0,不改變DDRAM內(nèi)容WriteCommand(0x0C);//顯示ON,游標(biāo)OFF,游標(biāo)位反白OFFWriteCommand(0x01);//清屏,AC歸0Write

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論