數(shù)字系統(tǒng)課程設(shè)計(jì)報(bào)告可調(diào)信號(hào)發(fā)生器的Verilog HDL設(shè)計(jì)_第1頁
數(shù)字系統(tǒng)課程設(shè)計(jì)報(bào)告可調(diào)信號(hào)發(fā)生器的Verilog HDL設(shè)計(jì)_第2頁
數(shù)字系統(tǒng)課程設(shè)計(jì)報(bào)告可調(diào)信號(hào)發(fā)生器的Verilog HDL設(shè)計(jì)_第3頁
數(shù)字系統(tǒng)課程設(shè)計(jì)報(bào)告可調(diào)信號(hào)發(fā)生器的Verilog HDL設(shè)計(jì)_第4頁
數(shù)字系統(tǒng)課程設(shè)計(jì)報(bào)告可調(diào)信號(hào)發(fā)生器的Verilog HDL設(shè)計(jì)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 課程設(shè)計(jì)報(bào)告課程名稱現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)設(shè)計(jì)題目可調(diào)信號(hào)發(fā)生器的verilog hdl設(shè)計(jì)系 別機(jī)械與電子工程系班 級(jí)07電信2班學(xué)生姓名學(xué) 號(hào)任課教師完成時(shí)間2010/7/7南湖學(xué)院教務(wù)辦設(shè)計(jì)任務(wù) 起至日期:2010/6/24-2010/7/7設(shè)計(jì)題目:可調(diào)信號(hào)發(fā)生器的verilog hdl設(shè)計(jì)設(shè)計(jì)要求:1、 設(shè)計(jì)一可調(diào)信號(hào)發(fā)生器;2、 能實(shí)現(xiàn)正弦波、三角波和矩形波三種波形輸出;3、 實(shí)現(xiàn)頻率可調(diào),調(diào)節(jié)倍率為10;4、 利用verilog hdl對(duì)此信號(hào)發(fā)生器進(jìn)行建模;5、 在modelsim se、quartus ii進(jìn)行仿真測試,給出仿真結(jié)果。可調(diào)信號(hào)發(fā)生器的verilog hdl設(shè)計(jì)一、

2、設(shè)計(jì)任務(wù)與要求隨著大規(guī)模集成電路技術(shù)和eda技術(shù)的迅速發(fā)展,使得數(shù)字系統(tǒng)的硬件設(shè)計(jì)如同軟件設(shè)計(jì)那樣方便快捷,而verilog hdl 是當(dāng)前應(yīng)用最廣泛的并成為ieee標(biāo)準(zhǔn)的一種硬件描述語言。verilog hdl是在c語言的基礎(chǔ)上演化而來,具有結(jié)構(gòu)清晰、文法簡明、功能強(qiáng)大、高速模擬和多庫支持等優(yōu)點(diǎn)。為此本文通過使用verilog hdl硬件描述語言設(shè)計(jì)了一可產(chǎn)生正弦波、方波、三角波、鋸齒波等多種波形信號(hào)發(fā)生器,而且實(shí)現(xiàn)頻率可調(diào),并能在在modelsim se、quartus ii進(jìn)行仿真測試,得出出仿真結(jié)果。二、方案設(shè)計(jì)與論證課題要求通過使用verilog hdl硬件描述語言設(shè)計(jì)了一可產(chǎn)生正弦

3、波、方波、三角波、鋸齒波等多種波形信號(hào)發(fā)生器,而且實(shí)現(xiàn)頻率可調(diào),并能在在modelsim se、quartus ii進(jìn)行仿真測試,得出出仿真結(jié)果。方案一:采用專用的波形產(chǎn)生單片機(jī)芯片,在產(chǎn)生波形是具有十分明顯的優(yōu)勢,但是在市場上難以買到。方案二:采用通用型單片機(jī),如mcs-51系列。配合高速函數(shù)發(fā)生器max038集成芯片??梢詫?shí)現(xiàn)正弦波、三角波、方波、脈沖波,達(dá)到系統(tǒng)設(shè)計(jì)的要求。但是單片機(jī)的可用資源比較少,數(shù)據(jù)處理速度跟不上信號(hào)數(shù)據(jù)的變化。同時(shí)需要大量的外圍器件來支撐。方案三:采用fpga器件,使用dds技術(shù)。fpga器件是一種超低功耗的、高度集成的器件,其內(nèi)部帶有鎖相環(huán)、寄存器等豐富的單元器

4、件。fpga內(nèi)部集成的鎖相環(huán)可以把外部時(shí)鐘倍頻到幾百兆,并且極其準(zhǔn)確。fpga器件管腳數(shù)一般都是數(shù)百個(gè),可以方便連接外設(shè)。fpga處理的是并行的邏輯,可以同時(shí)處理不同的任務(wù),這就成就了fpga器件有更高的效率,這是其它器件所不能代替的。fpga有大量的軟核,如單片機(jī)、dsp軟核,并且io口僅受fpga自身io限制。因此只要單片機(jī)、dsp可以實(shí)現(xiàn)的功能fpga器件一樣可以實(shí)現(xiàn),并且實(shí)現(xiàn)的更加完善。dds的頻率分辨率在相位累加器的位數(shù)n足夠大時(shí),從理論上是可以獲得相應(yīng)的分辨率的;dds是一個(gè)全數(shù)字結(jié)構(gòu)的開環(huán)系統(tǒng),無反饋環(huán)節(jié),其速度極其快,一般在納秒級(jí),完全跟得上數(shù)據(jù)的變化;dds的相位誤差主要是依

5、賴于時(shí)鐘的相位特性,相位誤差很小。另外dds的相位是連續(xù)變化的,形成的信號(hào)具有良好的頻譜。這三點(diǎn)是傳統(tǒng)信號(hào)發(fā)生器無法實(shí)現(xiàn)的。通過以上方案的比較,故選擇方案三作為本課題系統(tǒng)設(shè)計(jì)方案三、系統(tǒng)總體設(shè)計(jì)可調(diào)信號(hào)發(fā)生器系統(tǒng)由頂層模塊、fpga器件、控制開關(guān)和輸入輸出模塊等部分組成,如下圖所示。在pfga中實(shí)現(xiàn)的頂層文件包含地址指針和數(shù)據(jù)rom,12部分。其中,數(shù)據(jù)rom由quartusii軟件的lpm_rom模塊構(gòu)成,能達(dá)到最優(yōu)設(shè)計(jì),lpm_rom由fpga中的eab或esb實(shí)現(xiàn)。數(shù)據(jù)rom中存儲(chǔ)的正弦波形、方波、三角波和鋸齒波4種信號(hào)各一個(gè)周期的波形數(shù)據(jù)(在此選擇一個(gè)周期128個(gè)數(shù)據(jù)樣點(diǎn)),地址指針讀

6、取的rom衷不同區(qū)域的數(shù)據(jù),可產(chǎn)生不同的波形,并通過使用嵌入式邏輯分析儀進(jìn)行實(shí)時(shí)測試2,根據(jù)取數(shù)據(jù)間隔的不同,即可實(shí)現(xiàn)調(diào)整頻率的功能。3.1系統(tǒng)模塊設(shè)計(jì)可調(diào)信號(hào)發(fā)生器系統(tǒng)的功能模塊主要由頂層文件(veriloghdl源程序)和波形rom兩部分組成。波形數(shù)據(jù)rom設(shè)計(jì)的主要包括設(shè)計(jì)的波形數(shù)據(jù)rom初始化數(shù)據(jù)文件和定制rom元件(datarom.v)。3.1.1頂層文件設(shè)計(jì)本系統(tǒng)采用altera公司器件為核心,通過quartusii軟件編寫veriloghdl源程序,實(shí)現(xiàn)一個(gè)可以產(chǎn)生正弦波、方波、三角波和鋸齒波四種信號(hào),并且能夠?qū)崿F(xiàn)信號(hào)轉(zhuǎn)換以及頻率可調(diào)功能的信號(hào)發(fā)生器3。其中,contron控制產(chǎn)

7、生波形的種類,0、1、2、3分別產(chǎn)生正弦波、鋸齒波、方波和三角波;i控制讀取數(shù)據(jù)間隔,調(diào)整頻率。fpga是20世紀(jì)80年代中期出現(xiàn)的高密度可編程邏輯器件,它一般由布線資源分隔的可編程邏輯單元構(gòu)成陣列,又由可編程i/o單元圍繞陣列構(gòu)成整個(gè)芯片,排列陣列的邏輯單元由布線通道中的可編程內(nèi)連線連接起來實(shí)現(xiàn)一定的邏輯功能。一個(gè)fpga包含豐富的具有快速系統(tǒng)速度的邏輯門、寄存器和i/o組成。 復(fù)雜可編程邏輯器件fpga具有工作頻率高、性能可靠、集成度高等優(yōu)點(diǎn)。采用veriloghdl硬件描述語言設(shè)計(jì),在eda工具quartus中編寫,并綜合,通過在系統(tǒng)可編程技術(shù)配置fpga器件,使其形成符合用戶要求的專用

8、集成電路。本系統(tǒng)的核心技術(shù)在于直接數(shù)據(jù)合成(dds)技術(shù)。dds技術(shù)是一種新型的頻率合成技術(shù),理論上是可以合成任意頻率的波形。其基本原理框圖如下圖所示。此次以正弦波合成為例,把一個(gè)周期的單位振幅正弦波的相位分成2n個(gè)等間隔點(diǎn),則兩點(diǎn)之間的相位間隔為2/2n,相應(yīng)各點(diǎn)的函數(shù)值用d位二進(jìn)制表示,順序地放入到rom中,構(gòu)成“函數(shù)表”。相位累加器的相位以n*(2/2n)(其中n=1,2,3,)為增量,在基準(zhǔn)頻率f0的控制下產(chǎn)生a位相位數(shù)據(jù)對(duì)rom尋址,將對(duì)應(yīng)的d位函數(shù)值數(shù)據(jù)送入到d/a轉(zhuǎn)化器輸出相應(yīng)的波形,這時(shí)頻率分辨率為f0min= fc/2n。用n位頻率碼k控制相位累加器的n*(2/2n)時(shí)輸出信

9、號(hào)頻率為f0=k*fc/2n。由于dds是相位控制系統(tǒng),所以其也具備了很強(qiáng)的信號(hào)調(diào)制能力,這樣就有利于各種調(diào)制方式(其原理同輸出波形原理一樣,因此這里也不再重復(fù))以正弦波產(chǎn)生為例,正弦波形的源程序如下:/* 信號(hào)定義inclock時(shí)鐘輸入control波形選擇 00 正弦波 01 鋸齒波 10 方波 11 三角波i調(diào)頻輸入q_out波形數(shù)據(jù)輸出 */module signal_gene( inclock, q_out, control, i );input inclock; / 時(shí)鐘輸入output7:0 q_out; / 波形數(shù)據(jù)輸出input1:0 control; / 波形選擇input

10、3:0 i; / 調(diào)頻輸入reg7:0 m, k;reg8:0 address;datarom datarom_component / 調(diào)用波形rom( .address( address ), / 地址 .clock( inclock ), / 時(shí)鐘 .q_out( q_out ) ); / 數(shù)據(jù)always ( posedge inclock )begin case( control )0: / 產(chǎn)生正弦波 beginif( control = 1 ) address = 128;if( control = 2 ) address = 256;if( control = 3 ) addre

11、ss = 384;if( i = 0 | i = 1 ) / 步長為1beginaddress = 127 ) / 完成1個(gè)周期address = 0;endelsebegin / 步長大于1k = 127 / i;m = i * k; / 最后1個(gè)樣點(diǎn)address = m ) / 完成1個(gè)周期address = 0;endend3.2波形數(shù)據(jù)rom初始化的數(shù)據(jù)文件設(shè)計(jì)初始化數(shù)據(jù)文件格式有2種:memory initialization file(.mif)格式文件和hexadecimal(intelformat)file(.hex)格式文件。本設(shè)計(jì)共產(chǎn)生四種波形,每種波形一個(gè)周期取128個(gè)

12、數(shù)據(jù),因此選用的初始化數(shù)據(jù)個(gè)數(shù)number為512個(gè),數(shù)據(jù)寬度取8位的rom數(shù)據(jù)。在matalab中,調(diào)用各函數(shù)生成采樣數(shù)據(jù)文件。matalab正弦采樣函數(shù)如下clc;fid = fopen(datarom.txt,wt);x = 0:0.0078:1;y = 100*(sin(2*pi*x)+1);plot(x,y);for i = 1:128 fprintf(fid,9_d%d:q=8_h%s;n,i,dec2hex(floor(y(i),2);endfclose(fid);注:采樣點(diǎn)數(shù)據(jù)見附頁3.3定制rom元件在quartusii中,選擇datarom,模塊數(shù)據(jù)線寬度和數(shù)據(jù)單元個(gè)數(shù)、選

13、擇地址鎖信號(hào)clock以及數(shù)據(jù)文件完成設(shè)計(jì),可產(chǎn)生用于波形數(shù)的rom文件datarom.v。datarom模塊module datarom(address,clock,q_out);input8:0address;input clock;output7:0q_out;reg7:0q;always (posedge clock)case(address)./導(dǎo)入各波形采樣點(diǎn)數(shù)值.default :q = 8d0;endcaseassign q_out = q;endmodule數(shù)據(jù)文件生成定制數(shù)據(jù)rom模塊圖定制數(shù)據(jù)rom模塊圖四、仿真過程與仿真結(jié)果用quartus ii仿真可得信號(hào)產(chǎn)生波形調(diào)試

14、圖信號(hào)產(chǎn)生仿真波形 信號(hào)調(diào)試波形 采樣后得到波形 信號(hào)波形圖五、結(jié)果分析與結(jié)論經(jīng)測試,基于fpga信號(hào)發(fā)生器基本達(dá)到了設(shè)計(jì)所有要求。仿真能夠產(chǎn)生波形,且仿真波形與預(yù)測結(jié)果一致。本設(shè)計(jì)采用了較為靈活的設(shè)計(jì)方案,本系統(tǒng)具有結(jié)構(gòu)緊湊,功能強(qiáng)大,可擴(kuò)展性強(qiáng)的特點(diǎn),并且調(diào)試相對(duì)容易,進(jìn)度可控制性強(qiáng)。六、設(shè)計(jì)心得通過本次課程設(shè)計(jì),我基本對(duì)fpga的設(shè)計(jì)流程有了入門的了解和認(rèn)識(shí),在課堂之外進(jìn)一步加深了對(duì)eda課程各知識(shí)點(diǎn)的學(xué)習(xí)和以及quartusii軟件開發(fā)平臺(tái)的操作。也深深地感受到,工科的學(xué)習(xí)是來不得半點(diǎn)虛偽的,一定要自己動(dòng)手操作,不懂就是不懂。對(duì)于程序的編寫過程其實(shí)就是一個(gè)改錯(cuò)的過程,通過改錯(cuò)就會(huì)發(fā)現(xiàn)自

15、己只是的不足。做課程設(shè)計(jì)的過程也是一個(gè)升華自我耐心的機(jī)會(huì),不能因?yàn)橐粫r(shí)找不到方法就放棄。課程設(shè)計(jì)與此同時(shí)也讓我加深強(qiáng)了對(duì)課題的專業(yè)知識(shí)的認(rèn)識(shí)和對(duì)專業(yè)文件檢索能力。很欣賞胡老師的這種學(xué)習(xí)成績考核方法,實(shí)在,富有創(chuàng)新精神。這種考核方案還是更能真實(shí)的檢驗(yàn)每個(gè)同學(xué)的學(xué)習(xí)效果。也能讓各同學(xué)真正的學(xué)以致用,學(xué)到東西,也能對(duì)自己的學(xué)習(xí)和大學(xué)生活有個(gè)更加清醒的認(rèn)識(shí)。希望并懇請胡老師,在工科專業(yè)課程考核中多多推廣這種考核方案。七、參考文獻(xiàn)1王金明.數(shù)字系統(tǒng)設(shè)計(jì)與veriloghdlm.北京:電子工業(yè)出版社,2006:285-294.2欒佳明、張秀娟.基于fpga可調(diào)信號(hào)發(fā)生器的設(shè)計(jì).electronic des

16、ign engineering,2010第5期3黃鄉(xiāng)生等.基于dds和fpga的數(shù)字函數(shù)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn).東華理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2009第4期致 謝我能夠順利完成這次課程設(shè)計(jì)是在許多人的幫助下做到的。首先是我的指導(dǎo)老師胡老師。本次課程設(shè)計(jì)的選題、資料收集、報(bào)告的撰寫都是在胡老師的指導(dǎo)下完成的。在此,我對(duì)胡老師給予我的幫助表示衷心的感謝。再次就是身邊的一些同學(xué),特別是李坡同學(xué),在我遇到問題時(shí),我們一起探討,為我解決許多問題,在進(jìn)行采樣點(diǎn)的提取以及軟件的仿真上他給了我很大的幫助,更堅(jiān)定了我認(rèn)真學(xué)習(xí)的決心。沒有他的幫忙我也不可能順利的完成我的課程設(shè)計(jì),在這里對(duì)他表示由衷的感謝。本文在寫作過

17、程中參考了大量文獻(xiàn)資料,主要文獻(xiàn)資料已開列出來,本文有些句子或段落引自這些參考文獻(xiàn),在此向所有的作者表示深深的感謝!最后再次對(duì)輔導(dǎo)老師和幫助過我的朋友們致以真誠的感謝。附頁:/* 信號(hào)定義inclock時(shí)鐘輸入control波形選擇 00 正弦波 01 鋸齒波 10 方波 11 三角波i調(diào)頻輸入q_out波形數(shù)據(jù)輸出 */module signal_gene( inclock, q_out, control, i );input inclock; / 時(shí)鐘輸入output7:0 q_out; / 波形數(shù)據(jù)輸出input1:0 control; / 波形選擇input3:0 i; / 調(diào)頻輸入r

18、eg7:0 m, k;reg8:0 address;datarom datarom_component / 調(diào)用波形rom( .address( address ), / 地址 .clock( inclock ), / 時(shí)鐘 .q_out( q_out ) ); / 數(shù)據(jù)always ( posedge inclock )begin case( control )0: / 產(chǎn)生正弦波 beginif( control = 1 ) address = 128;if( control = 2 ) address = 256;if( control = 3 ) address = 384;if( i

19、 = 0 | i = 1 ) / 步長為1beginaddress = 127 ) / 完成1個(gè)周期address = 0;endelsebegin / 步長大于1k = 127 / i;m = i * k; / 最后1個(gè)樣點(diǎn)address = m ) / 完成1個(gè)周期address = 0;endend1: / 產(chǎn)生鋸齒波 beginif( control = 0 ) address = 0;if( control = 2 ) address = 256;if( control = 3 ) address = 384;if( address 128 ) address = 128;elseb

20、eginif( i = 0 | i = 1 )beginaddress = address + 1;if( address = 255 )address = 128;endelsebegink = 127 / i;m = i * k;address = ( m + 128 ) )address = 128;endendend2: / 產(chǎn)生方波beginif( control = 0 ) address = 0;if( control = 1 ) address = 128;if( control = 3 ) address = 384;if( address 256 ) address = 2

21、56;else begin if( i = 0 | i = 1 )beginaddress = address + 1;if( address = 383 )address = 256;endelse begink = 127 / i;m = i * k;address = ( m + 256 ) )address = 256;end end end3: / 產(chǎn)生三角波 beginif( control = 0 ) address = 0;if( control = 1 ) address = 128;if( control = 2 ) address = 256;if( address 38

22、4 ) address = 384;elsebegin if( i = 0 | i = 1 ) beginaddress = address + 1;if( address = 511 )address = 384; end else begink = 127 / i;m = i * k;address = ( m + 384 ) )address = 384;endendend endcaseendendmodule采樣數(shù)據(jù)9d1:q=8h64;9d2:q=8h68;9d3:q=8h6d;9d4:q=8h72;9d5:q=8h77;9d6:q=8h7c;9d7:q=8h80;9d8:q=8h

23、85;9d9:q=8h8a;9d10:q=8h8e;9d11:q=8h93;9d12:q=8h97;9d13:q=8h9b;9d14:q=8h9f;9d15:q=8ha3;9d16:q=8ha7;9d17:q=8haa;9d18:q=8hae;9d19:q=8hb1;9d20:q=8hb4;9d21:q=8hb7;9d22:q=8hb9;9d23:q=8hbc;9d24:q=8hbe;9d25:q=8hc0;9d26:q=8hc2;9d27:q=8hc3;9d28:q=8hc4;9d29:q=8hc6;9d30:q=8hc6;9d31:q=8hc7;9d32:q=8hc7;9d33:q=8hc

24、7;9d34:q=8hc7;9d35:q=8hc7;9d36:q=8hc6;9d37:q=8hc6;9d38:q=8hc5;9d39:q=8hc3;9d40:q=8hc2;9d41:q=8hc0;9d42:q=8hbe;9d43:q=8hbc;9d44:q=8hb9;9d45:q=8hb7;9d46:q=8hb4;9d47:q=8hb1;9d48:q=8hae;9d49:q=8haa;9d50:q=8ha7;9d51:q=8ha3;9d52:q=8h9f;9d53:q=8h9b;9d54:q=8h97;9d55:q=8h93;9d56:q=8h8f;9d57:q=8h8a;9d58:q=8h86;9d59:q=8h81;9d60:q=8h7c;9d61:q=8h77;9d62:q=8h73;9d63:q=8h6e;9d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論