




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學校代碼:11059學號1205022039HefeiUniversity畢業設計(論文)BACHELORDISSERTATION論文題目:基于FPGA多功能信號發生器的設計與實現學位類別:工學學士學科專業:通信工程作者姓名:XX導師姓名:張倩葛浩完成時間:2016年5月25號頁第一章前言工業技術與科技的不斷進步,傳統的波形信號發生器采用分離式器件,體積較大以及穩定性較低、可靠性較差,電路結構也局限了波形種類的多樣化,已經無法滿足實際生產的需要,因此,必須制作穩定性相對較高、可靠性較好的信號發生器解決這些問題。近些年,數字技術的發展帶動了數字信號發生器實現了飛速成長,DDS技術被普遍應用在信號發生器的設計與制作,性能指標都達到了一個比較高的水平。為了迎合消費者的需求,大多數數字芯片僅能輸出常見的傳統函數波形,如三角波、鋸齒波和方波等。目前主流的芯片,把數字頻率合成芯片的全部的功能集結在一個芯片中,提供了模擬調制電路功能,但是導致控制能力下降,也使性能有不同程度的改變。在上述條件下,若我們盡力發揮現場可編程門陣列的優越性,利用DDS技術,達成一個操作簡單、使用方便的信號發生器系統。現場可編程門陣列器件的擁有存儲空間大、運算能力強等優點,使得原本比較難解決的復雜電路有了新的解決手段,應用到實際系統中的例子也是比比皆是,例如數字信號處理、通信和數據處理等領域。基于現場可編程設計的信號發生器的優點有以下幾點:1、轉換頻率比較快;
2波形相位噪聲比較小;3、能夠輸出任意波形;4、整體數字化,占空間少,有利集成;5、靈活的接口和控制方式;6、比專用芯片功耗也低[1-4]。以現階段的發展水平,西方國家的多功能信號發生器在研發和制造方面已經比較先進。西方國家的安捷倫和泰克國際測量儀器公司,其產品不僅是技術上還是市場占有率上,都領先于國內廠商[5]。信號發生器的進步展現在如下四點:1、CPU功能增強
CPU的功能主要表現在精度和速度的改善。為了提高速度,通常使用布爾處理器,精度的提高是CPU的字長提高到16位或32位。2、內部資源增多現如今,對于信號發生器,內部存儲器空間已實現32KB,RAM空間也實現了1KB以及斷電保護功能,也就是在突然斷電時保護數據不會丟失。3、引腳的多功能化由于芯片所具有的功能擴張所需的引腳數隨之增多。例如信號發生器的一個1MB的存儲容量需要8條數據線和20條地址線。引腳過多,不僅會增加制造的復雜性,而且也很大程度減少了芯片的集成。為了提高應用程序的靈活性和減少管腳數,該信號發生器使用引腳復用的設計方案[6]。4、低電壓與低功耗在很多的應用場景,信號發生器不僅對體積有嚴格要求,還對工作電壓和功耗也有限制。所以,信號發生器通常選取混合互補金屬氧化物半導體制造工藝,并且增加了空閑和掉電兩種工作方式。本設計是參考直接數字合成頻率技術,利用QuartusII9.0軟件作為開發環境,VHDL語言為開發語言,基于FPGA芯片,配合相應的外圍電路設計整體電路,其電路設計布局簡單,有較高的靈活性和方便性,產生頻率、幅度均可改變的鋸齒波、正弦波、三角波和方波的信號發生器。第二章DDS技術與原理及編程環境2.1DDS技術DDS,全拼DirectDigitalSynthesizer(直接數字頻率合成),20世紀70年代由美國學者提出的全新技術,由相位概念出發直接合成所需信號的全數字頻率合成。憑借科學技術的飛速進步,在短短幾十年間,DDS技術也得到了快速發展,由于出色的表現使它迅速成為現代頻率合成技術中的重要技術。在1993年,一類新的綜合結構型的DDS的出現,它包括高精度、低速DDS和高速、低精度的相位累加器,其低速部分負責了DDS微調,高速部分負責DDS粗調[7]。其特點是高速低功耗。在1994年,出現一種運用正弦余弦的對稱性改良存儲技術,在不增加ROM容量的條件下,達成了正交輸出200MHz的DDS。近年來,由于PLD器件的出現與發展,使得DDS技術又注入了新的活力,輸出頻帶得到了巨大提升,系統集成度更高,功耗更低。由于超高速半導體技術的進步,正在逐步突破DDS輸出帶寬的局限。直接數字頻率合成技術伴隨著微電子和計算機系統而快速發展的新一代技術。本技術原理先將波形數據存儲為mif文件,再然后由相位累加器的頻率控制字累加控制從儲存器文件中查表出波形采樣點的頻率,再從波形ROM中讀取波形相位數據,之后經過高速數字模擬轉換器輸出的模擬波形信號,再由低通濾波器過濾諧波,最終輸出光滑信號波形。2.2DDS的基本原理大多數數字信號處理技術普遍采用奈奎斯特定理,DDS也是如此,奈奎斯特采樣定理描述是頻帶有限的連續模擬信號通過采樣量化操作后成為離散序列,能否根據之前得到的離散序列還原成原始的模擬信號。通過奈奎斯特采樣定理可以得出,當采樣頻率不小于連續模擬信號的最大頻率的兩倍時,則能夠實現由采樣獲取的離散序列無損的還原原始的模擬信號。DDS系統首先需要對模擬信號采樣,再對采樣值量化處理后存儲,然后使用查找表的方式輸出波形采樣值,經過數模轉換后成模擬信號,此時獲得的波形與原始波形尚有差異,使用低通濾波器過濾雜波即恢復原始波形。其結構如圖2.1所示。圖2.2相位累加器結構圖圖2.1圖2.2相位累加器結構圖圖2.1DDS基本原理框圖相位量化序列波形ROM圖2.3波形ROM示意圖地址數據波形幅度量化序列由上圖我們很容易得到相位累加器的組成——加法器和寄存器,加法器的輸入端分別輸入頻率控制字K,和寄存器反饋的上一個時鐘的累加結果,在時鐘信號的不斷作用下不停的把輸入端的值相加。輸入端的頻率控制字K,實質上是二進制的相位增量。例如,DDS的時鐘周期為f,在一個脈沖f相位量化序列波形ROM圖2.3波形ROM示意圖地址數據波形幅度量化序列所有的DDS模塊必須在同一個參考時鐘下運行,DDS系統中心是相位累加器,相位累加器能夠輸出變化的信號地址信息即相位量化序列,從而得到地址保存的波形信號幅度量化序列,累加器的輸出端與波形ROM的輸入端相連接,等同對波形采樣數據存儲器實行查表操作,那么即把預先存儲在波形ROM的采樣點查出。在時鐘信號的有效用時,相位累加器持續的工作,也就持續地進行查表操作。波形ROM的輸出數據傳到數字模擬轉換器,并且數字模擬轉換器把波形ROM輸出的離散序列轉換成連續幅度變化的模擬信號,才得以重新合成的波形[9-11]。如果我們需要合成正弦波,僅能得到接近于階梯波正弦波,因此,就要在輸出前添加低通濾波器,以過濾諧波雜波,以獲取光滑和連續的信號波形。因為字長約束著累加器,只要累加器的加法器結果達到極大值后,其輸出將發生溢出,意味著對波形ROM的地址循環查表一次,此時輸出的波形信號剛好達到一個周期。那么我們能夠得到一個結論,相位累加器的溢出頻率與恢復出模擬信號的頻率是相同的[12]。由此,我們得出結論,頻率控制字K設置的越大,相加的結果遞進越大,相位量化序列改變就越快,得到波形采樣點數據就越少,波形信號的相位量增加就愈快,最終波形信號的頻率亦越高,這是我們改變波形信號頻率的理論基礎,但是得到的信號的失真也就更明顯[13]。2.3FPGA、VHDL及編程環境2.3.1FPGA現場可編程門陣列,在可編程陣列邏輯、復雜可編程邏輯、通用陣列邏輯等器件的前提上,繼續深入研究的結晶,是集成度最高的一種[14]。電子技術的進步,誕生了FPLD,包括CPLD和FPGA。在使用FPGA芯片時,用戶能夠按照各種各樣的配置需求,選取對應的編程方法。FPGA由邏輯陣列組成,利用編程可以使諸邏輯陣列串連起來達到我們需要的功能[NOTEREF_Ref21123\h2]。接通電源,先使EPRON讀入FPGA的芯片編程RAM的數據,達成配置要求,FPGA芯片開始工作。切斷電源后,FPGA還原成空芯片和其中陣列邏輯聯系不存在。故而,利用FPGA的設計極其方便,能夠實現不同的電路功能。系統開發流程如圖2.1所示。FPGA/CPLD器件和系統FPGA/CPLD器件和系統FPGA/CPLD編程下載FPGA/CPLD適配綜合原理圖/VHDL編輯功能仿真時序與功能門級仿真、圖2.1FPGA開發流程圖2.3.2VHDLVHDL全名Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage(超高速集成電路硬件描述語言),主要用于描述數字系統的結構、功能、行為及接口[15]。它的語言模式與目前一般的計算機高級語言類似,特有許多含有硬件特征的語句。VHDL是根據是否可視,把一個設計實體劃分成外部和內部,外部定義了端口,內部定義了功能算法。若實體需要的算法在其他實體中已定義,則能夠直接調用實體從而間接的使用其中的算法。選擇VHDL語言設計有很多益處,比如:功能強大,設計靈活。強大的硬件描述能力。比較強的移植能力。易于共享和復用。2.3.3編程軟件—QuartusIIEDA工具使EDA技術在諸多領域得到了應用,EDA是以PC為工具進而自動實現使軟件設計的電子系統轉化為硬件電路,所以Windows系統的EDA軟件是不可缺少的,所以可編程邏輯器件的廠家都提供了EDA開發工具,如Xillinx的ISE、Altera的quartusii。本次設計就使用QuartusII開發軟件,包含了可編程邏輯器件編程環境,支持原理圖輸入模式、波形輸入模式以及HDL等多種設計輸入模式,內部集成了綜合器和仿真器,能夠實現設計輸入編輯、設計分析與綜合、適配、匯編、時鐘提取和下載整個PLD設計開發流程[16]。QuartusII的操作視圖如圖2.2所示圖2.2圖2.2QuartusII軟件界面QuartusII是Altera公司的第四代可編程邏輯器件PLD開發平臺。QuartusII具有良好的跨平臺能力,可以在Windows,Linux等開源系統上運行,使用起來也比較簡單,操作界面也比較人性化。除此之外,QuartusII還包含十分有用的LPM((LibrateofParameterizationModular)模塊,本次設計就依靠LPM模塊設計波形數據存儲,快速完成設計、降低了系統冗余。不僅如此,QuartusII還對第三方軟件如ModleSim、Matlab、DSPBuilder很好的支持。能夠便利地進行仿真和完成DSP應用系統。第三章系統設計方案3.1系統總體方案設計FPGAFPGFPGAFPGA芯片頻率控制字幅度控制字相位累加器波形選擇控制ROM(1~4)除法器D/A濾波器波形輸出分頻晶振圖3.1DDS系統設計流程圖3.2系統方案論證3.2.1總體方案的論證方案一:以單片機為核心,選擇DDS技術,C語言編程,可以實現相對比較高的設計目標,基本能夠滿足基本波形的產生,由于單片機的運算能力,以及受到晶振的影響,產生的波形往往差強人意,頻率的限制比較大,很難達到較高的要求,而且單片機的輸入輸出管腳少,存儲能力有限,需要復雜輔助電路才能夠達到基本要求。方案二:采用模擬鎖相環原理產生波形信號,鎖相環是將輸出信號與輸入的信號進行相位對比再把結果反饋以改變信號間的誤差,多用于閉環系統[18]。由于要求高,電路復雜,不方便調節模擬鎖相環電路和頻率調節不方便,范圍不夠大,輸出波形是不理想的大雜波,達不到預想效果。方案三:選擇EDA技術,FPGA試驗箱為平臺,選擇DDS原理。信號發生器輸出的波形穩定比較平滑,頻率、幅度控制字變化亦輸出波形的頻率、幅度發生變化。在外圍附加數模轉換、濾波電路等輔助電路即可。基于課題,需要調節波形幅度、頻率。我們選擇方案三。3.2.2DDS模塊論證方案一:根據DDS系統架構,設計基于可現場編程邏輯芯片的DDS系統。DDS的高性能的需要超高速和高約束力的可編程邏輯器件。可編程輯邏器件具有運行速度快,性能優越,還可以利用眾多的EDA工具如QuartusII、ModelSim,設計出基于DDS技術的可編程邏輯器件系統。可編程邏輯器件使用起來也非常實用和靈活,因而可以很簡單的實現比較復雜的頻率、幅度和相位的調節功能。方案二:選擇購買DDS系列芯片。電子技術的快速進步,大量的表現杰出的DDS產品誕生。比如常用的AD9850公司的SD芯片,DDS系統的里面集成了高效率DAC還有而且能夠完成器和時鐘合成器的全數字編程控制。連接到時鐘,可以產生頻譜純凈,可控制改變頻率和相位的模擬信號。基于課題要求及論證結果,我們采用FPGA芯片設計DDS系統。3.2.3數據存儲方案論證我們需要將待輸出波形采樣,并存儲。地址計數器尋址輸出。存儲的方案如下:方案一:把采樣得到的波形離散序列放到特定的存儲器中,然后單片機掃描,再把離散序列送到D/A轉換器輸出連續的模擬信號,這樣的電路搭建起來比較簡單。但是由于單片機的解決效率較低,不能達到課題的要求。方案二:利用FPGA芯片,QuartusII軟件調用ROM儲存模塊,然后將采樣的波形幅度量化序列儲存在內部的ROM中,通過計數器尋址掃描,把離散序列傳遞給數字模擬轉換器輸出模擬信號。然后再對VHDL語言文本例化,生成相應的RTL圖。基于以上論證,我們選擇方案二作為存儲器方案。3.2.4數模轉換方案方案一:選擇高速的D/A芯片DAC0832,這是款8位的數模轉換芯片,使用5伏到15伏的單電源,采用CMOS制造工藝,電流穩定時間一微秒,且功耗低20毫瓦不但價格低廉還可以滿足我們對轉換速度的要求。方案二:選擇普通D/A轉換器。D/A轉換器的主要特點就是要求高速,接著是轉換位數,普通的D/A轉換器的電流建立時間大于100us,在模數轉換速度上達不到設計的要求。基于以上論證,我們選擇方案一作為數模轉換器方案。第四章DDS系統的實現4.1主程序流程圖經過上一章的論證討論,已經基本明確了設計的方案。現在根據VHDL語言自頂向下思想設計整個系統,頂層模塊要包含:頻率控制模塊、幅度控制模塊、波形選擇模塊、波形ROM存儲模塊等。下圖簡單說明系統的流程。是是開始初始化按下按鍵否計算時鐘送出時鐘波形數據輸出D/A轉換濾波器過濾檢測是否有按鍵輸出波形4.1主程序流程圖
4.2內部單元模塊設計4.2.1分頻模塊設計為了滿足題目中改變輸出波形頻率的要求。我們設計一個分頻模塊,如圖4.1。為使頻率改變的比較直觀,特僅設定兩個頻率控制字,按鍵D是改變頻率控制字。分頻模塊的輸出連接相位累加器的加法器輸入,當D為0,clk時鐘的頻率設置20MHz時,fout的輸出頻率為2.5MHz,則加法器從0000,0000自加到1111,1111的溢出頻率為9.77KHz,則波形輸出頻率也為9.77KHz。當D為1,clk時鐘頻率設置20MHz時,fout的輸出頻率為1.25MHz,則加法器從0000,0000自加到1111,1111的溢出頻率為4.88KHz,波形的輸出頻率亦為4.88KHz。經驗證,滿足題目的要求。圖4.1分頻器模塊4.2.2相位累加器模塊設計DDS系統設計重點就是累加器,經過計算,我們使用8位的累加器,如圖4.2所示,經過驗證,符合題目要求且效果較好。SUM為加法器,jicunqi為寄存器,地址尋址字為八位。加法器在時鐘的作用下不斷自加,運算后得到新的數值,把和給寄存器的Din端口,當寄存器的clk信號上升沿時,把8位二進制數據存在寄存器中輸出到波形ROM的地址線。伴隨著時鐘信號,加法器不斷地相加,八位數據也會不斷變化,我們可以不斷得到變化的八位地址尋址字。當地址尋址字從0000,0000增加到1111,1111時,剛好把波形ROM尋址一遍,此時的波形失真最小。加法器在en信號無效,時鐘上升沿自加1,所以我們通過改變clk信號的輸入頻率就可以改變加法器的累加速度。圖4.2累加器模塊4.2.3波形ROM模塊的設計由累加器模塊可知,在時鐘的不斷到來時,累加器模塊不停的執行相加。我們選擇累加器的輸出相位離散序列作為地址尋址字,伴隨著累加器不停輸出數值,地址尋址字也在不停變化,對ROM的查表操作也在不停進行中且輸出的相應的波形數據[18]。根據畢業設計的題目要求,本設計需要輸出正弦波、三角波、方波等四類波形,基于此,我們應用了四塊儲存器,分別存儲了預先設定好的mif文件。另外,為滿足題目中按要求輸出相應波形的要求,我們還設計了mux41a波形選擇器,選擇器的目的是四選一輸出。如圖4.4,當s1,s2分別為0,1時,y輸出預設的波形數據。波形ROM模塊如圖4.3。圖4.3波形ROM存儲器圖4.4波形選擇器4.2.4幅度調節模塊設計相對于頻率調節,幅度模塊的設計相對而言比較獨立,而且比較簡單,我們運用除法器的思想來設計幅度調節模塊[19]。除法器的分子是波形數據數值,也就是預設好的mif文件中的八位離散序列,分母是我們鍵盤輸入的八位序列。例如:在一個脈沖內,ROM模塊輸出的八位波形數據為(198)10,我們輸入的分母是(2)10,顯然,我們得到的數據是(99)10。波形的幅度實質上是電壓,那我們就以具體電壓舉例分析:如果芯片的電壓為5V,則此時的輸出應是,其電壓分辨率為p=5/28=0.01953125V,則1100,0110(198)10相對應的電壓為3.8671875V,經過除法器運算得到的數據0110,0011(99)10對應的電壓值為1.93359375V。經過以上例子的驗算,可以得出結論—運用除法器思想以改變輸出波形的幅度的方法是可行的。使用的除法器是QuartusII軟件內嵌的IP核宏模塊,也可以側面看出QuartusII開發平臺的優越性,除法器的原理如下圖4.4所示。numer[7..0]是初始波形數據,denom[7..0]是幅度控制字。quotient[7..0]是改變幅度后的波形數據,并送入數模轉換模塊。remain[7..0]是余數。圖4.5除法器原理圖4.2.5mif文件設計mif是一種使用ASCII碼編碼的通用的數據交換格式,*.mif存有波形對象的所有空間目標信息。因為我們選擇的是八位數據,mif格式選擇無符號整型,所以波形幅度達到的極大值時其對應的mif數值必為255,當波形幅度達到波谷時其對應的mif文件中的數值必為0。本次所使用的波形數據由任意波形發生器Guagle_wave生成。圖4.6Guagle_wave生成波形數據第五章信號理論與仿真分析5.1信號理論分析下面以方波的理論計算為例,若波形選擇字為00出方波。01時輸出鋸齒波,10時輸出三角波,11時輸出正弦波。根據計算,當按鍵D為0時,波形輸出頻率為9.77KHz。D為1時,波形的輸出頻率為4.88KHz。幅度變化就在輸出前使用除法器改變,對于方波來說,如果除法器的分母設置為0000,0001,則波形輸出幅度最大不變為254,若除法器的分母設置為0000,0010時,則波形信號的每個取樣點幅度都會線性降低一半,其輸出最大值為127。其他信號原理類似方波,就不一一介紹。5.2QuartusII信號仿真5.2.1正弦波模塊正弦波信號仿真:對選擇器的輸入端s1賦值1,s2賦值1,clk的頻率設置為20MHz。en置高,此時程序開始正常工作。除法器設置為,保存波形仿真如圖5.1所示:圖5.1正弦波信號仿真圖由仿真我們能夠得出,輸出端的數據開始從0增到255,之后又從255減到0,完成從的改變過程。符合正弦波的波形特征,由此可見仿真準確無誤。5.2.2三角波模塊三角波信號仿真對選擇器的輸入端s1賦值1,s2賦值0,clk的頻率設置為20MHz。en置高,此時程序開始正常工作。除法器設置為,保存波形仿真如圖5.2所示:圖5.2三角波信號仿真圖形由仿真我們能夠得出,輸出端的數據從0開始遞增到254,之后再從254開始遞減到0,先遞增后遞減,而且是個公差相等的等差數列。符合三角波的波形特征,由此可見仿真準確無誤。5.2.3鋸齒波模塊鋸齒波信號仿真:對選擇器的輸入端s1賦值0,s2賦值1,clk的頻率設置為20MHz。en置高,此時程序開始正常工作。除法器設置為,保存仿真結果如圖5.3所示:圖5.3鋸齒波信號仿真圖形由仿真我們能夠得出,輸出端的數據由0開始遞增254,而后又開始從0開始遞增到254,不斷重復,非常符合鋸齒波的波形特征,由此可見仿真準確無誤。5.2.4方波模塊方波信號仿真:對選擇器的輸入端s1賦值0,s2賦值0,clk的頻率設置為20MHz。en置高,此時程序開始正常工作。除法器設置為,保存波形仿真如圖5.4所示:圖5.4方波信號仿真圖由仿真我們能夠得到,輸出端OUTPUT產生的波形數據先是是輸出0持續一段時間,再改變為255持續一段時間,之后再改變為輸出0。0反映方波的波谷,255代表方波的波峰,符合方波的波形特征,由此可見仿真準確無誤。5.2.5幅度調節模塊對于幅度調節模塊,我們選用最直觀的方波作為測試信號,對選擇器的輸入端s1賦值0,s2賦值0,clk的頻率設置為20MHz。en置高,此時程序開始正常工作。除法器設置為,保存波形仿真如圖5.5所示。圖5.5方波信號幅度調節仿真圖由仿真我們能夠得到,方波的幅度由原來的255改變為現在的127,說明幅度條件模塊能夠滿足對輸出波形的幅度條件功能。5.2.6頻率控制模塊對于頻率控制模塊,我們使用按鍵D來改變分頻模塊的輸入頻率,由圖5.6可以很清楚的看出,當D為1時fout輸出的頻率比當D為0時的輸出頻率低,經過之前的計算可以得出,當clk的時鐘頻率為20MHz時,D為0時的波形輸出頻率為4.88KHz,當D為1時的波形輸出頻率為9.77KHz。圖5.6頻率控制模塊仿真圖經過對子模塊的波形仿真分析,不難得出,本設計已基本完成了課題的要求:實現了四種波形的輸出以及選擇功能,此外也能夠對輸出波形的頻率和幅度進行控制改變的需求,達到了預設的效果。第六章硬件電路安裝與測試6.1引腳鎖定由上一章可知,在QuartusII平臺中已經完成了信號波形的選擇輸出以及波形的頻率和幅度調節[3],基本滿足題目的要求,接下來就是將程序下載到目標器件中,本次試驗箱所使用Altaer的Cyclose家族的FPGA芯片,具體型號為EP1C6Q240C8,該芯片價格低廉,雖然容量不大但滿足實驗要求[20]。由于之前有過相關實驗所以對實驗箱也比較熟悉,先設置實驗箱的模式為零,選擇Quarteusii菜單欄找到AonsignmentEditor,選擇pin,把相應的管腳與原理圖的輸入輸出進行確定,如下圖6.1所示:圖6.1引腳鎖定圖設置管腳完成后保存,依然再編譯一回,才可以把引腳與原理圖的輸入輸出鎖定。電源給實驗箱上電,編譯成功后會生成SOF文件,把邏輯陣列功能下載到FPGA芯片中。再驗證階段,先用鍵盤進行操作,選擇相應的波形輸出,由于實驗箱的電路不夠完整,不能夠實現用示波器查看波形,所以本次采用邏輯分析儀顯示分析輸出波形的信息。6.2信號發生的測試由頻率控制模塊可知,當clk時鐘設置為20MHz時,按鍵D設置為0,則波形輸出的頻率9.77kHz,此時我們通過嵌入式邏輯分析儀獲取由JATG端口采集的信息。獲取并顯示的波形如圖6.2到圖6.5所示。若對選擇模塊輸入端s1賦值0,s2賦值0,即輸入00時,此時的輸出波形為方波信號,如下圖所示:圖6.2方波若對選擇模塊輸入端s1賦值1,s2賦值0,即輸入01時,此時的輸出波形為鋸齒波信號,如下圖所示:圖6.3鋸齒波若對選擇模塊輸入端s1賦值0,s2賦值1,即輸入10時,此時的輸出波形為鋸齒波信號,如下圖所示:圖6.4三角波若對選擇模塊輸入端s1賦值1,s2賦值1,即輸入11時,此時輸出波形是正弦波信號,如下圖所示:圖6.5正弦波通過以上的測試結果表明,通過實驗箱輸出給波形數據邏輯分析儀的波形數據與使用軟件仿真的得到的仿真數據幾乎一模一樣,數據波形的頻率也與理論上相符,滿足設計的設想,體現設計思路是正確的。至此,基于FPGA多功能信號發生器的設計基本已完成,達到了預期目標。總結通過上述仿真結果可以得出,選用芯片型號為EP1C6Q240C8,基本上滿足題目要求的輸出四種波形,并能夠改變輸出波形的頻率以及幅度功能。也側面說明僅使用八位的相位累加器能夠滿足課題的條件,本系統采用的波形數據為8*255的數據,四片ROM依次放入四種波形的數據。當然,通過改變波形ROM的波形數據,我們可以設計出輸出任意波形的信號發生器,相位累加器也可以進行改進,比如用24位的累加器,增加波形的采樣點數,那么輸出波形的失真度將會大大降低。此外,我們選用可編程控制的幅度模塊,代碼控制波形幅度,減少了傳統波形發生器使用滑動變阻器調節引起的系統誤差,可以使波形幅度在0V-5V內任意改變。任何事情都不能一蹴而就的,畢業設計也是。在設計信號發生器的這段時間遇到了很多難題。首先就是對仿真軟件的陌生,第一次接觸FPGA技術還是大三,實驗課做的都是一些小課題,記憶也不是很清晰,又找到之前實驗課的實驗書復習回顧。其次是選擇系統方案是的糾結,起初是想是代碼實現波形的輸出,三角波、方波等都是線性函數,我們可以編寫函數,在時鐘的作用下累加,頻率控制字改變時鐘頻率,進而改變輸出波形的頻率;設置一個最大值,幅度控制字改變最大值,累加值大于最大值就重新開始,但是最后由于正弦波信號時非線性的,而且使用這個函數法會造成比較大的波形失真,選擇放棄。第三就是仿真遇到的問題,在頂層模塊波形仿真時,對各個輸入端已經設置好了對應的輸入,但是仿真結果是沒有輸出,復查了每個模塊,沒有找到原因。經過不斷的嘗試后,把波形仿真的input設置為功能仿真,并創建功能網表,才輸出正確的結果。最后在鎖定引腳,下載程序后,使用邏輯解析儀顯示設計的輸出波形,但是并沒有接觸過signalTapII,在硬件測試過程中產生了種種問題。不得已去論壇找資料自學,終究使signalTapII顯示出正弦波、三角波、方波和鋸齒波。達到了預先的目標,證明了系統的準確性。經過幾個月的努力,本人的畢業設計——信號發生器已基本完成。在本次設計中也讓我感受到了硬件描述語言覆蓋面廣、描述能力強以及使用方便、便于修改的特點,本設計也具有一定的實用價值。因為主要做的是軟件仿真,在具體硬件實現過程中由于器件本身存在的誤差,影響了波形采樣,致使最后輸出的波形略有失真,也側面反映了軟件和硬件必須要有良好的結合。在做畢業設計的這段時間,我學到了很多,遇到困難要有耐心,不清楚就查資料,或者網上尋找答案,也要多和同學溝通,這樣才能盡快解決問題。參考文獻[1]劉巍.基于USB接口和FPGA的多通道數據采集系統的研究[D].中國科學院研究生院(空間科學與應用研究中心),2011-06-30.[2]程俊,黎福海,代揚.基于VHDL語言的實用電梯控制器的設計[J].現代電子技術,2004,27(1):20-21.[3]苪秀娟.基于FPGA多功能信號發生器的設計與實現[D].合肥學院,2015.[4]吳昕.信號源的發展和現狀淺析[J].科學時代(上半月).2010,08:58-59.[5]馬年磊.基于DDS的短波差分跳頻頻率合成器的研究與設計[D].天津大學,2004.[6]張銳.GALILEO衛星信號模擬器的研究[D].哈爾濱工程大學,2007.[7]劉豪.基于DDS的任意波形發生器設計與實現[D].華南師范大學,2010.[8]石俊斌林輝.在PLD開發中提高VHDL的綜合質量[J].單片機與嵌入式系統應用,2003,01:302-30。。[9]陳琳潘海鴻黃光永,等.垂直偏移量任意可調的信號發生器的FPGA實現[J].電訊技術,2012,01:67-71.[10]喻正寧.基于NiosⅡ的通用信號源的SOPC設計與實現[D].長春理工大學,2008.[11]龐睿.基于FPGA的直接數字頻率合成(DDS)電路[J].大觀周刊,2012,11:139-139.[12]張嚴.基于FPGA的任意波形發生器的研究與設計[D].廣州:華南師范大學電路與系統專業,2008:21-26.[13]CordessesL.DirectDigitalSynthesis:AToolforPeriodicWaveGeneration[J].IEEESignalProcessingMagazine,2004,(21):110-112.[14]高鵬.基于FPGA的DDS函數信號發生器設計[J].電子技術,2013(11):22-25[15]CycloneDeviceHandbook.AlteraCorporation,2003:89-102.[16]KroupaF,CizekV,SvandovaH.SpuriousinDirectDigitalFrequencySynthesisDuetoPhaseTruncation.IEEETransaction,FerroelectriesandFrequencyControl,2002,(5):115-119.[17]李康.基于FPGA的DDS信號源設計
[J].中國科技博覽,2013(36):555-556[18]張玉.通信信號電磁環境模擬器中動態背景信號產生器的設計[D].國防科技大學,2006.[19]白瑞青宋軍宋鑫霞,等.基于現場可編程門陣列的彈載遙測記憶重發器[J].探測與控制學報,2015,02:55-58.[20]王軍.集成保護中數據同步采集的研究與實現[D].北京交通大學,2008.致謝隨著畢業設計的完成,為期四年的大學生涯也面臨結束,同樣標志著十多年的學生身份也隨之改變,盡管不舍,還得踏上了社會的新征程。在過去的幾個月里,時間過得很快,也是四年來最為充實的一段時光。在這里我要對我的指導老師——張倩老師說聲謝謝,從當初的論文選題,到初次見面,再到最后的畢業設計的完成,老師給予了我很多的幫助:外文文獻的翻譯、寒假在家用的資料、開題報告的格式和內容、實驗中遇到的困難以及最后畢業論文的定稿。在這次畢業設計中,她還指導了很多學生,而且平時還要上課,可以說任務非常繁重,但是依然對每一項工作都那么負責,耐心指導。當然也要感謝我的一些同學,在完成畢業論文的過程中也給我了我很大的幫助。尤其在我不太熟悉QuartusII時,同學給我詳細的介紹,教我如何做,在波形仿真時,不清楚如何做時,詳細而耐心地解釋原理及如何操作。最后,再一次感謝我的恩師!感謝我的母校!祝各位老師身體健康,工作順心!愿我校的教育事業蓬勃發展!附錄數字信號發生器程序——分頻器模塊:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityFenpin01isport(clk:instd_logic;D:instd_logic;fout:outstd_logic);endentityFenpin01;architectureONEofFenpin01issignalfull:std_logic;beginp_reg:process(clk,D)variableCNT8:std_logic_vector(7downto0);variableCNT9:std_logic_vector(7downto0);beginifclk'eventandclk='1'thenifD='1'thenCNT9:="11110000";elseCNT9:="11111000";endif;ifCNT8="11111111"thenCNT8:=CNT9;full<='1';elseCNT8:=CNT8+1;full<='0';endif;endif;endprocessp_reg;p_div:process(full)variableCNT2:std_logic;beginiffull'eventandfull='1'thenCNT2:=NOTCNT2;ifCNT2='1'thenfout<='1';elsefout<='0';endif;endif;endprocessp_div;endONE;——相位累加器模塊:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitySUM_1isport(clk,en:instd_logic;OUTPUT:outstd_logic_vector(7downto0));endentitySUM_1;architectureONEofSUM_1issignalQ:std_logic_vector(7downto0);beginprocess(clk,en)beginif(clk'eventandclk='1')thenifen='1'thenQ<=Q+"00000001";elsifQ<="11111111"thenQ<=(others=>'0');endif;endif;OUTPUT<=Q(7downto0);endprocess;endONE;——選擇器模塊:libraryieee;useieee.std_logic_1164.all;entityXuanzeqiisport(address1:instd_logic;address2:instd_logic;address3:instd_logic;D1,D2,D3,D4:instd_logic_vector(7downto0);Q:outstd_logic_vector(7downto0));endentityXuanzeqi;architectureONEofXuanzeqiissignalsel:std_logic_vector(2downto0);beginsel<=address1&address2&address3;process(sel)begincaseseliswhen"001"=>Q<=D1;when"010"=>Q<=D2;when"011"=>Q<=D3;when"100"=>Q<=D4;whenothers=>null;endcase;endprocess;endarchitectureONE;——寄存器模塊:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityJicunqiisport(clk:instd_logic;Din:instd_logic_vector(7downto0);Dout:outstd_logic_vector(7downto0));endJicunqi;architectureONEofJicunqiisbeginprocess(clk)beginif(clk'eventandclk='1')thenDout<=Din;endif;endprocess;endONE;——波形(以正弦波為例):LIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.all;ENTITYzhengxianIS PORT (address :INSTD_LOGIC_VECTOR(7DOWNTO0); inclock:INSTD_LOGIC; q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDzhenxian;ARCHITECTURESYNOFzhenxianIS SIGNALsub_wire0 :STD_LOGIC_VECTOR(7DOWNTO0); COMPONENTaltsyncram GENERIC(address_aclr_a:STRING; init_file :STRING; intended_device_family:STRING; lpm_hint:STRING; lpm_type:STRING; numwords_a:NATURAL; operation_mode:STRING; outdata_aclr_a:STRING; outdata_reg_a:STRING; ram_block_type:STRING; widthad_a:NATURAL; width_a:NATURAL; width_byteena_a:NATURAL); PORT(clock0:INSTD_LOGIC; address_a:INSTD_LOGIC_VECTOR(7DOWNTO0); q_a :OUTSTD_LOGIC_VECTOR(7DOWNTO0)); ENDCOMPONENT;BEGIN q<=sub_wire0(7DOWNTO0); altsyncram_component:altsyncram GENERICMAP(address_aclr_a=>"NONE", init_file=>"../zhengxian/zhenxian.mif", intended_device_family=>"Cyclone", lpm_hint=>"ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=MY4", lpm_type=>"altsyncram", numwords_a=>256, operation_mode=>"ROM", outdata_aclr_a=>"NONE", outdata_reg_a=>"UNREGISTERED", ram_block_type=>"M4K", widthad_a=>8, width_a=>8, width_byteena_a=>1 ) PORTMAP( clock0=>inclock, address_a=>address, q_a=>sub_wire0);ENDSYN;——調幅模塊:LIBRARYieee;USEieee.std_logic_1164.all;LIBRARYlpm;USElpm.all;ENTITYCHENGFAIS PORT (dataa:INSTD_LOGIC_VECTOR(7DOWNTO0); datab:INSTD_LOGIC_VECTOR(7DOWNTO0); result:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDCHENGFA;ARCHITECTURESYNOFchengfaIS SIGNALsub_wire0 :STD_LOGIC_VECTOR(15DOWNTO0); COMPONENTlpm_mult GENERIC(lpm_hint:STRING; lpm_representation:STRING; lpm_type:STRING; lpm_widtha:NATURAL; lpm_widthb:NATURAL; lpm_widthp:NATURAL); PORT(dataa :INSTD_LOGIC_VECTOR(7DOWNTO0); datab :INSTD_LOGIC_VECTOR(7DOWNTO0); result:OUTSTD_LOGIC_VECTOR(15DOWNTO0)); ENDCOMPONENT;BEGIN result<=sub_wire0(15DOWNTO0); lpm_mult_component:lpm_mult GENERICMAP(lpm_hint=>"MAXIMIZE_SPEED=5", lpm_representation=>"UNSIGNED", lpm_type=>"LPM_MULT", lpm_widtha=>8, lpm_widthb=>8, lpm_widthp=>16) PORTMAP(dataa=>dataa, datab=>datab, result=>sub_wire0);ENDSYN;——輸出模塊:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitySHUCHUisport(INPUT:instd_logic_vector(15downto0);OUTPUT:outstd_logic_vector(7downto0));endentitySHUCHU;architectureONEofSHUCHUisbeginOUTPUT<=INPUT(7downto0);endONE;基于C8051F單片機直流電動機反饋控制系統的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現的供暖系統最佳啟停自校正(STR)調節器單片機控制的二級倒立擺系統的研究基于增強型51系列單片機的TCP/IP協議棧的實現基于單片機的蓄電池自動監測系統基于32位嵌入式單片機系統的圖像采集與處理技術的研究基于單片機的作物營養診斷專家系統的研究基于單片機的交流伺服電機運動控制系統研究與開發基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統研究基于C8051F040單片機的嵌入式系統開發基于單片機的液壓動力系統狀態監測儀開發模糊Smith智能控制方法的研究及其單片機實現一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數控系統的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環走絲方式研究基于單片機的機電產品控制系統開發基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統單片機系統軟件構件開發的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統的研制基于單片機的數字磁通門傳感器基于單片機的旋轉變壓器-數字轉換器的研究基于單片機的光纖Bragg光柵解調系統的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現基于單片機的電液伺服控制系統用于單片機系統的MMC卡文件系統研制基于單片機的時控和計數系統性能優化的研究基于單片機和CPLD的粗光柵位移測量系統研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數據采集系統基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數控改造基于單片機的溫度智能控制系統的設計與實現基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協議轉換器基于單片機和DSP的變壓器油色譜在線監測技術研究基于單片機的膛壁溫度報警系統設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監測系統基于單片機網絡的振動信號的采集系統基于單片機的大容量數據存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現基于AT89S52單片機的通用數據采集系統基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統基于單片機的控制系統在PLC虛擬教學實驗中的應用研究基于單片機系統的網絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統設計與研究基于單片機的模糊控制器在工業電阻爐上的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信托在跨境電商物流人才流動管理中的應用考核試卷
- 機械化土壤監測技術智能化發展路徑分析考核試卷
- 化學纖維紡織品變形與纖維結晶度關系研究考核試卷
- 光電子器件的光學微環諧振器考核試卷
- 出租車企業社會責任與城市交通規劃協同發展考核試卷
- 初中生道德教育中價值觀引導策略研究考核試卷
- 丙綸纖維環保認證的市場推廣與品牌價值提升考核試卷
- 財務報表在危機管理中的應用考核試卷
- 2025年中國PC塑膠原料數據監測報告
- 2025年中國HDPE洗滌用品塑料瓶數據監測研究報告
- 高中英語必背3500單詞表完整版
- 醫師職業素養課件
- 電網工程設備材料信息參考價2025年第一季度
- 房屋市政工程生產安全重大事故隱患判定檢查表(2024版)
- 2025年財會業務知識競賽題庫及答案(360題)
- Python試題庫(附參考答案)
- 2023年廣東初中學業水平考試生物試卷真題(含答案)
- 鍋爐電梯井外彩鋼板封閉工程施工方案
- 2022年《中醫執業醫師》考試多選題精選600題
- 中國科學院生態環境研究中心-環境工程A-927歷年真題2010-2015
- SCR脫硝反應器尺寸修改后
評論
0/150
提交評論