新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DDS IP核及Nios II的可重構(gòu)信號(hào)源設(shè)計(jì)

基于DDS IP核及Nios II的可重構(gòu)信號(hào)源設(shè)計(jì)

作者: 時(shí)間:2015-05-04 來源:網(wǎng)絡(luò) 收藏

  (System on a Programmable Chip,片上可編程系統(tǒng))是公司提出的一種靈活、高效的SOC解決方案。它將處理器、存儲(chǔ)器、I/O接口、LVDS、CDR等系統(tǒng)設(shè)計(jì)需要的功能模塊集成到一個(gè)可編程邏輯器件上,構(gòu)建一個(gè)可編程的片上系統(tǒng)。它具有靈活的設(shè)計(jì)方式,軟硬件可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。的核心器件FPGA已經(jīng)發(fā)展成一種實(shí)用技術(shù),讓系統(tǒng)設(shè)計(jì)者把開發(fā)新產(chǎn)品的時(shí)間和風(fēng)險(xiǎn)降到最小。最重要的是,具有現(xiàn)場可編程性的FPGA延長了產(chǎn)品在市場的存在時(shí)間,從而減小了被新一代同類產(chǎn)品淘汰的威脅。本文以全數(shù)字頻率合成技術(shù)——直接數(shù)字頻率合成技術(shù)()為理論依據(jù),利用先進(jìn)的片上可編程技術(shù)在一塊FPGA芯片上實(shí)現(xiàn)了 IP核功能,并將該 IP核與處理器核以及其它外設(shè)封裝到一起,做成一個(gè)片上系統(tǒng),大大簡化了電路的設(shè)計(jì)難度。

本文引用地址:http://2s4d.com/article/273564.htm

  1 DDS的基本原理

  DDS(直接數(shù)字頻率合成)是把一系列數(shù)字形式的信號(hào)通過DAC轉(zhuǎn)換成模擬量形式的信號(hào)的合成技術(shù)。圖1是DDS的原理框圖。



  圖中參考時(shí)鐘由一個(gè)高穩(wěn)定的晶體振蕩器產(chǎn)生,來同步整個(gè)頻率合成器的各個(gè)組成部分。相位累加器包含一個(gè)加法器和一個(gè)相位寄存器,每來一個(gè)時(shí)鐘脈沖,加法器就將頻率控制字與相位寄存器中的數(shù)據(jù)相加。相位寄存器可以將加法器在上一個(gè)時(shí)鐘作用后產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,使加法器在下一個(gè)時(shí)鐘的作用下繼續(xù)將相位數(shù)據(jù)與頻率控制字相加。這樣,相位累加器在參考時(shí)鐘的作用下進(jìn)行線性相位累加。當(dāng)相位累加器達(dá)到上限時(shí),就會(huì)產(chǎn)生一次溢出,完成一個(gè)周期性的動(dòng)作,這個(gè)周期就是合成信號(hào)的一個(gè)周期,累加器的溢出頻率也就是DDS的合成信號(hào)頻率。相位控制字用來設(shè)定相位累加器初始時(shí)刻的相位值,相位累加器運(yùn)行過程中并不參與加法運(yùn)算。

  在參考時(shí)鐘的控制下,相位累加器受頻率控制字控制輸出相位數(shù)據(jù),用相位累加器輸出的相位數(shù)據(jù)作為相位/振幅變轉(zhuǎn)換電路的地址對(duì)其進(jìn)行查找。相位/振幅轉(zhuǎn)換電路將相位累加器的相位信息映射成數(shù)字振幅信息,將數(shù)字振幅數(shù)據(jù)再經(jīng)過D/A轉(zhuǎn)換器得到相應(yīng)的階梯波,最后經(jīng)低通濾波器對(duì)階梯波進(jìn)行平滑處理,即可得到由頻率控制字決定的連續(xù)變化的輸出波形。

  2 DDS IP核的設(shè)計(jì)

  根據(jù)DDS的基本理論,將DDS IP核分為相位累加模塊、DDS控制模塊、波形選擇模塊、波形LPM_ROM模塊。

  2.1 相位累加器模塊的設(shè)計(jì)

  相位累加器是DDS IP核設(shè)計(jì)的關(guān)鍵,它決定著頻率的范圍和分辨率,本設(shè)計(jì)采用的32位的二進(jìn)制累加器,取累加器的高十位作為查表(相幅轉(zhuǎn)換電路)的地址值。為提高系統(tǒng)的速率,在累加器的設(shè)計(jì)中采用了7級(jí)流水線技術(shù)。其中采用Verilog HDL描述的第一級(jí)流水線實(shí)現(xiàn)的關(guān)鍵代碼如下:



  類似,可完成其余流水線的設(shè)計(jì)。

  2.2 DDS控制模塊設(shè)計(jì)

  為將設(shè)計(jì)的DDS IP能夠集成到系統(tǒng)中,本設(shè)計(jì)在DDS IP的控制模塊定義了兩個(gè)32位的寄存器,如圖2所示。一個(gè)是頻率控制字寄存器,用來保存上位機(jī)軟件發(fā)來的頻率控制字;另一個(gè)寄存器用來保存相位控制字和波形選擇位,其中低2位D1、D0用于波形選擇,D2到D11用于保存相位控制字,其余高位保留未用。



  2.3 波形存儲(chǔ)器ROM的設(shè)計(jì)

  該模塊完成相位/振幅轉(zhuǎn)換電路的功能。在本設(shè)計(jì)中,要求DDS IP能輸出正弦波、方波,三角波、鋸齒波。可以用FPGA內(nèi)部的LPM_ROM模塊制作4張ROM表,分別存儲(chǔ)4個(gè)波形的數(shù)據(jù)。實(shí)際上,由于方波和三角波是實(shí)現(xiàn)算法相對(duì)簡單,為了節(jié)省資源,本系統(tǒng)直接用Verilog HDL描述其功能。實(shí)現(xiàn)產(chǎn)生方波信號(hào)的關(guān)鍵代碼如下:



  正弦波、鋸齒波的產(chǎn)生是利用FPGA的LPM_ROM模塊來實(shí)現(xiàn)。為了對(duì)ROM模塊內(nèi)的數(shù)據(jù)進(jìn)行加載,首先應(yīng)建立相應(yīng)的*.mif(Memory Initial File)文件。它可以用C語言編寫源程序,得到對(duì)應(yīng)波形的數(shù)據(jù),生成*.mif文件,如生成正弦波形數(shù)據(jù)的C語言程序如下:



  然后在Quartus II里新建.mif文件,把用命令字符生成的.mif文件的內(nèi)容粘貼到Quartus II里新建的存儲(chǔ)器初值設(shè)定(.mif)文件里面,如圖3所示。再用Quartus II軟件定制LPM_ROM,并加載剛才建立的.mif波形文件初始化ROM。



  2.4 波形選擇模塊的設(shè)計(jì)

  該模塊根據(jù)DDS控制模塊的輸出控制信號(hào)決定選擇哪一種波形輸出,關(guān)鍵代碼如下。



  2.5 DDS頂層設(shè)計(jì)

  頂層設(shè)計(jì)將前面實(shí)現(xiàn)的各功能模塊作為底層元件例化調(diào)用,完成整個(gè)DDS IP核設(shè)計(jì)。對(duì)DDS IP核進(jìn)行驗(yàn)證后,利用SOPC Builder的組件編輯器對(duì)其進(jìn)行自定義組件的開發(fā),為后續(xù)SOPC硬件系統(tǒng)的搭建奠定基礎(chǔ)。

  2.6 DDS IP的仿真測試及自定義組件的生成

  公司的Quartus II軟件具有嵌入式邏輯分析儀SignalTap II,它提供了一種對(duì)器件進(jìn)行實(shí)時(shí)測試的手段。SignalTapII嵌入式邏輯分析儀可以隨設(shè)計(jì)文件一起下載到目標(biāo)芯片中,用以捕捉目標(biāo)芯片中設(shè)計(jì)者感興趣的信號(hào)節(jié)點(diǎn)處的信息,而不影響芯片的正常工作。

  SignalTapII將測得的樣本信號(hào)暫存于目標(biāo)器件的片內(nèi)RAM中,然后通過器件的JTAG端口和編程線將采得的信息傳出,送入計(jì)算機(jī)進(jìn)行分析。圖4是采用SignalTapII嵌入式邏輯分析儀的仿真測試結(jié)果。



  由于SOPC的開發(fā)是以組件(IP核)為基礎(chǔ)的,為了將前面設(shè)計(jì)的DDS IP核掛到Avalon總線上,將其封裝成為SOPCBuilder自定義的組件,如圖5所示。這樣,在SOPC硬件系統(tǒng)開發(fā)中,DDS IP就如同SOPC Builder里的標(biāo)準(zhǔn)組件一樣,可以被集成到具體的應(yīng)用系統(tǒng)中。



  2.7 SOPC硬件系統(tǒng)配置

  在SOPC硬件系統(tǒng)的開發(fā)中,除了集成前面設(shè)計(jì)的DDSIP外,還集成了諸多SOPC Builder組件庫中的標(biāo)準(zhǔn)組件,主要有 CPU、UAR T、JTAG UART、定時(shí)器、Avalon三態(tài)總線橋、片上存儲(chǔ)器、片外存儲(chǔ)器、PIO、SDRAM控制器、FLASH控制器等,如圖6所示。



  3 結(jié)論

  論文以直接數(shù)字頻率合成技術(shù)為理論依據(jù),開發(fā)了DDSIP核,搭建了基于SOPC技術(shù)的信號(hào)發(fā)生器硬件系統(tǒng),通過改變LPM_ROM模塊中的波形數(shù)據(jù),可以實(shí)現(xiàn)任意波形信號(hào)的產(chǎn)生。系統(tǒng)除了數(shù)/模轉(zhuǎn)換部分外,其它部分都是在FPGA內(nèi)部完成,具有實(shí)現(xiàn)容易、方便,減小了PCB設(shè)計(jì)的復(fù)雜度以及開發(fā)難度,縮短了開發(fā)周期等優(yōu)點(diǎn),同時(shí),系統(tǒng)還具有很大的伸縮性,系統(tǒng)集成度高,屬于SOC的范疇,符合技術(shù)發(fā)展潮流。

模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)


c語言相關(guān)文章:c語言教程


低通濾波器相關(guān)文章:低通濾波器原理


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




關(guān)鍵詞: SOPC DDS Nios II Altera

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉