




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 1摘要:本文主要探索了應(yīng)用FPGA 靈活可重復(fù)編程和方便在系統(tǒng)重構(gòu)的特性,以Verilog HDL 為設(shè)計(jì)語言,將硬件功能以軟件設(shè)計(jì)來描述,提高了產(chǎn)品的集成度,縮短開發(fā)周期。所設(shè)計(jì)的波形發(fā)生器可產(chǎn)生正弦波(sina_wave)、鋸齒波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四種信號,能夠?qū)崿F(xiàn)信號的轉(zhuǎn)換并且頻率可調(diào);設(shè)計(jì)的頻率計(jì)以1Hz 為基準(zhǔn)信號,測量的范圍是1Hz 9999Hz ,測量的結(jié)果以四位十進(jìn)制的形式輸出。并且給出了實(shí)現(xiàn)D/A轉(zhuǎn)換和動態(tài)顯示的硬件外圍電路,而FPGA 作為控制中心。最后還針對設(shè)計(jì)中可以提高、改進(jìn)的地方進(jìn)行了探討,如:頻率計(jì)的
2、結(jié)果可用字符LCD 顯示,頻率計(jì)的測量范圍可通過選擇不同的基準(zhǔn)頻率(比如10Hz 、100Hz 、1KHz )來擴(kuò)展,利用頻率計(jì)電路來顯示波形發(fā)生器的輸出波形的頻率及形狀標(biāo)識,這樣就實(shí)現(xiàn)了實(shí)驗(yàn)室中函數(shù)發(fā)生器的雛形:能實(shí)現(xiàn)任意波形的輸出并且能夠測量外來信號的頻率,這也是本文的設(shè)計(jì)思路。關(guān)鍵字:任意波形發(fā)生器 頻率計(jì) FPGA Verilog HDL QuartusII基于FPGA 的任意波形發(fā)生器&數(shù)字頻率計(jì)設(shè)計(jì)設(shè)計(jì)的思路主要是以實(shí)驗(yàn)室中常用的函數(shù)發(fā)生器為雛形,及既能輸出任意波形,并且頻率可調(diào),還可以測量外部信號的頻率。實(shí)現(xiàn)這兩種功能設(shè)計(jì)的方式有很多種,這里采用FPGA 設(shè)計(jì)來實(shí)現(xiàn),驗(yàn)證
3、設(shè)計(jì)的芯片采用Cyclone 系列,具體芯片可根據(jù)實(shí)驗(yàn)室的配置來確定。語言采用Verilog HDL ,軟件以QuartusII 為主 。其中任意波形發(fā)生器的實(shí)現(xiàn)采用模塊設(shè)計(jì),這樣很好的利用了QuartusII 軟件中的LPM_ROM模塊,能夠達(dá)到最優(yōu)設(shè)計(jì);頻率計(jì)的功能完全采用HDL 語言描述,最后的頂層文件采用模塊設(shè)計(jì)來完成。最終的頂層文件如下圖所示:2 一、任意波形發(fā)生器的實(shí)現(xiàn)要實(shí)現(xiàn)的功能:可產(chǎn)生正弦波(sina_wave)、鋸齒波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四種信號,能夠?qū)崿F(xiàn)信號的轉(zhuǎn)換(select )并且頻率可調(diào)。主要由三部分組成:
4、地址指針控制模塊,四種波形數(shù)據(jù)存儲模塊,D/A轉(zhuǎn)換模塊。前面2個模塊在FPGA 中實(shí)現(xiàn),D/A轉(zhuǎn)換通過外圍電路實(shí)現(xiàn)。該部分的實(shí)現(xiàn)框圖如下:數(shù)據(jù)ROM 中存儲正弦波、鋸齒波、矩形波、三角波4種信號各一個周期的波形數(shù)據(jù)(一個周期選擇128個數(shù)據(jù)采樣值),地址指針讀取ROM 中不同區(qū)域的數(shù)據(jù),即可產(chǎn)生不同的波形。通過控制讀取時間間隔的不同,可實(shí)現(xiàn)頻率的調(diào)整。 1、波形數(shù)據(jù)存儲ROM 模塊的設(shè)計(jì)首先應(yīng)建立ROM 初始化數(shù)據(jù)文件Wave_gen.mif。由于每一種波形一個周期取128 3個數(shù)據(jù),故共有512個數(shù)據(jù)。在QuartusII LPM_ROM中配置如下: 四種波形在ROM 中的存儲地址分別為:正
5、弦波(sina_wave):0127;鋸齒波(swat_wave):128255; 矩形波(squr_wave):256383; 三角波(trig_wave):384511; 每個波形各占16Byte 區(qū)域。通過對各個波形128點(diǎn)采樣(用C 語言計(jì)算),得到各個波形一周期的數(shù)據(jù),填寫到對應(yīng)的ROM 存儲區(qū)域后,即完成了ROM 數(shù)據(jù)初始化文件。Wave_gen.mif文件內(nèi)容如下:正弦波(sina_wave)波形數(shù)據(jù): 鋸齒波(swat_wave)波形數(shù)據(jù) 矩形波(squr_wave)波形數(shù)據(jù): 三角波(trig_wave)波形數(shù)據(jù):建立好了Wave_gen.mif文件以后,在原理圖輸入界面下插
6、入LPM_ROM模塊,然后利用MegaWizard Plug-In Manager, 對其進(jìn)行編輯,主要是完成初始化工作。主要界面如下: 通過以上兩步操作,及完成了波形數(shù)據(jù)存儲模塊的設(shè)計(jì)。2、指針控制模塊的設(shè)計(jì)該模塊的功能采用Verilog HDL 來描述,程序Wave_gen.v請見附件1。程序?qū)崿F(xiàn)的主要功能是:根據(jù)不同的波形選擇(select1:0), 來改變送入ROM中的地址指針address 。四種波形一個周期的數(shù)據(jù)各占不同的16B ,每次波形改變使address 指向各段數(shù)據(jù)首地址。編譯正確后將其創(chuàng)建為Wave_gen.bsf模塊(見頂層文件中所示),然后采用圖形編輯方式,完成波形發(fā)
7、生器這部分電路的設(shè)計(jì)。該部分設(shè)計(jì)完成框圖見頂層文件框圖(如第2頁上圖所示)。該部分功能驗(yàn)證的波形仿真結(jié)果如下:產(chǎn)生正弦波(sina_wave)時送到DAC0832的數(shù)據(jù): 產(chǎn)生鋸齒波(swat_wave)時送到DAC0832的數(shù)據(jù): 產(chǎn)生矩形波(squr_wave)時送到DAC0832的數(shù)據(jù): 產(chǎn)生三角波(trig_wave)時送到DAC0832的數(shù)據(jù): 由仿真結(jié)果可知,改變select1:0的值,能夠正確的將對應(yīng)的波形數(shù)據(jù)送到DAC0832,從而完成了整體設(shè)計(jì)的第一部分。二、數(shù)字頻率計(jì)的實(shí)現(xiàn)要實(shí)現(xiàn)的功能:設(shè)計(jì)一個四位數(shù)字顯示的頻率計(jì),標(biāo)準(zhǔn)基準(zhǔn)時鐘采用1Hz (即1s ),可以測量1Hz 99
8、99Hz 的信號頻率。完全采用文本設(shè)計(jì),模擬的硬件功能有三部分組成:控制部分、計(jì)數(shù)測量部分、輸出顯示數(shù)據(jù)鎖存部分。頻率計(jì)的程序總體框圖及內(nèi)部部分,內(nèi)部的握手信號等信息的框圖表示如下: 1、信號的定義與說明如下:輸入部分input_fre: 輸入的待測信號;inclk : 系統(tǒng)的時鐘信號。在計(jì)數(shù)測量部分,其被分頻為1Hz 信號;在動態(tài)掃描部分,其被分頻為動態(tài)掃描脈沖。在這里,inclk 假設(shè)為實(shí)驗(yàn)室的4MHz ; rst :系統(tǒng)的復(fù)位時鐘,高電平有效。:輸出部分Qout15:0: 若打算通過數(shù)碼管靜態(tài)顯示,則Qout15:12為千位,Qout11:8為百位,Qout7:4為十位,Qout3:0為
9、個位,都是十進(jìn)制形式;warning: 超過量程時輸出的警示信號;decodeout6:0: 動態(tài)掃描顯示時的譯碼輸出,在掃描脈沖的作用下,循環(huán)的輸出四位數(shù)據(jù);ctr_seg3:0: 四個數(shù)碼管的未選信號,在掃描脈沖的作用下,與相應(yīng)位的譯碼信號對應(yīng)輸出。:中間握手信號count_en: 計(jì)數(shù)允許信號;count_clr: 在新的一次測量開始時,清除上一次的測量數(shù)據(jù),是數(shù)碼管上的顯示數(shù)據(jù)隨時得到更新;load : 計(jì)數(shù)數(shù)據(jù)鎖存信號。2、控制部分各信號的時序關(guān)系輸入的系統(tǒng)脈沖經(jīng)過分頻后得到1Hz 的計(jì)數(shù)基準(zhǔn)信號,在基準(zhǔn)信號每兩個時鐘周期經(jīng)行一次頻率測量。該部分產(chǎn)生3個控制信號:count_en,c
10、ount_clr,load。count_clr對計(jì)數(shù)模塊進(jìn)行復(fù)位,持續(xù)半個時鐘周期;count_en上升沿時刻計(jì)數(shù)部分開始對輸入信號頻率進(jìn)行測量,測量時間恰為一個基準(zhǔn)時鐘(1Hz ),這段時間對輸入信號的脈沖進(jìn)行計(jì)數(shù),結(jié)果即為信號色頻率。load 即為產(chǎn)生鎖存信號。各控制信號的時序關(guān)系如下圖所示: 3、計(jì)數(shù)部分的設(shè)計(jì)通過控制部分送來的控制時序,計(jì)數(shù)部分可以在一個基準(zhǔn)時鐘周期內(nèi)對輸入的信號進(jìn)行頻率測量,在計(jì)數(shù)的同時通過程序控制,使輸出都為BCD 碼。4、鎖存部分設(shè)計(jì)在load 信號的時序作用下,完成輸出數(shù)據(jù)鎖存。5、動態(tài)掃描部分的設(shè)計(jì)在掃描時序的作用下,送出每一位的譯碼數(shù)據(jù)(decodeout6
11、:0)及對應(yīng)的字位選通控制信號(ctr_seg3:0 。設(shè)計(jì)實(shí)現(xiàn):該模塊的功能采用Verilog HDL 來描述,程序fre_measure.v請見附件2。 編譯正確后將其創(chuàng)建為fre_measure.bsf模塊(見第2頁上圖頂層文件中所示),然后采用圖形編輯方式,完成頻率計(jì)這部分電路的設(shè)計(jì)。該部分設(shè)計(jì)完成后框圖見頂層文件框圖(如第1頁上圖所示)。該部分功能驗(yàn)證的波形仿真結(jié)果如下:當(dāng)input_fre設(shè)置為40Hz 時,仿真的波形如下: 如上圖所示,Qout 顯示數(shù)據(jù)為:0040,即40Hz 。同時將input_fre與clk_1Hz對照比較,亦可數(shù)出clk_1Hz一個周期內(nèi)input_fre
12、為40(圖中clk_1Hz半個周期內(nèi)input_fre為20)。同時譯碼輸出為3F 、66,分別代表0、4的字型碼。 :當(dāng)input_fre設(shè)置為200Hz 時,仿真的波形如下: 如上圖所示,Qout 顯示數(shù)據(jù)為:0200,即40Hz 。同時將input_fre與clk_1Hz對照比較,亦可數(shù)出clk_1Hz一個周期內(nèi)input_fre為200(圖中clk_1Hz半個周期內(nèi)input_fre為100)。同時譯碼輸出為3F 、5B ,分別代表0、2的字型碼。【說明】:為了仿真時減輕CPU 的運(yùn)算量,程序中的1Hz 分頻數(shù)據(jù)改為199(原數(shù)據(jù)是1999999),動態(tài)掃描時鐘分頻改為9(原數(shù)據(jù)是49
13、99),不影響研究問題的實(shí)質(zhì)。由上面的仿真結(jié)果可知,頻率計(jì)能夠正確的測量出輸入信號的頻率,從而完成了整體設(shè)計(jì)的第二部分。三、頂層電路設(shè)計(jì)及外圍電路設(shè)計(jì)完成了任意波形發(fā)生器的設(shè)計(jì)與4位數(shù)字頻率計(jì)的設(shè)計(jì)后,可以利用Quartus II軟件的原理圖編輯方式完成最后的設(shè)計(jì)。由于前面的工作已經(jīng)創(chuàng)建了Wave_gen.bsf模塊,fre_measure.bsf模塊,調(diào)用LPM_ROM模塊,并用Wave_gen.mif對其經(jīng)行初始化(前面已經(jīng)敘述過),完成最后的頂層文件設(shè)計(jì)。頂層文件模塊連接圖如第2頁上圖所示。外圍電路設(shè)計(jì):FPGA 作為控制中心,配合外圍D/A轉(zhuǎn)換電路、數(shù)碼管顯示電路,則上述設(shè)計(jì)就能進(jìn)行硬
14、件測試。下圖是利用Proteus 軟件方便的作圖功能畫出的外圍電路: 【注明】:這樣的電路Proteus 是不能仿真的,這里僅借助Proteus 直觀形象的圖形表示。四、系統(tǒng)設(shè)計(jì)有待提高和改進(jìn)的地方頻率計(jì)的結(jié)果可用字符LCD 顯示,讓FPGA 送出相應(yīng)的LCD 控制信號;頻率計(jì)的測量范圍可通過選擇不同的基準(zhǔn)頻率(比如10Hz 、100Hz 、1KHz )來擴(kuò)展,即可以實(shí)現(xiàn)“可選量程”的數(shù)字頻率計(jì);利用頻率計(jì)電路來顯示波形發(fā)生器的輸出波形的頻率及波形標(biāo)識,這樣就實(shí)現(xiàn)了實(shí)驗(yàn)室中函數(shù)發(fā)生器的雛形:能實(shí)現(xiàn)任意波形的輸出及頻率顯示并且能夠測量外來信號的頻率,這也是本文最初的設(shè)計(jì)思路,那樣設(shè)計(jì)就更加完美。
15、參考文獻(xiàn):【1】 王金明.Verilog HDL程序設(shè)計(jì)教程. 北京. 人民郵電出版社,2004【2】 Altera 公司.Quartus II 7.2簡易用戶使用入門指南【3】 王金明. 數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL教程. 第二版,2005【4】 曾繁泰.EDA 工程理論與實(shí)踐-SOC 系統(tǒng)芯片設(shè)計(jì). 電子工業(yè)出版社,2004,6附件【1】:Wave_gen.v程序如下:module Wave_gen(address,inclk,select,freq;output8:0 address; /輸出控制ROM 的地址input inclk; /系統(tǒng)始終,時間應(yīng)該保證D/A能轉(zhuǎn)換完畢 i
16、nput1:0 select; /波形選擇,具體值代表的波形見下面定義 input3:0 freq; /控制輸出波形的頻率reg7:0 Qout;reg8:0 address;reg7:0 k,m;parameter sina_wave=2'b00,swat_wave=2'b01,squr_wave=2'b10,trig_wave=2'b11;always (posedge inclkbegincase(selectsina_wave:beginif(select=1 address<=128;if(select=2 address<=256;if(
17、select=3 address<=384;if(freq=0|freq=1beginif(address>=127 address<=0;else address<=address+1; endelsebegink<=127/freq;m<=freq*k;if(address>=maddress<=0;elseaddress<=address+freq; endendswat_wave:beginif(select=0 address<=0;if(select=2 address<=256;if(select=3 addres
18、s<=384;if(address<128 address<=128;elsebeginif(freq=0|freq=1beginif(address>=255 address<=128;else address<=address+1;endelsebegink<=127/freq;m<=freq*k;if(address>=(m+128address<=128;elseaddress<=address+freq;endendendsqur_wave:beginif(select=0 address<=0;if(selec
19、t=1 address<=128;if(select=3 address<=384;if(address<256 address<=256;elsebeginif(freq=0|freq=1beginif(address>=383 address<=256;else address<=address+1;endelsebegink<=127/freq;m<=freq*k;if(address>=(m+256address<=256;elseaddress<=address+freq;endendendtrig_wave:b
20、eginif(select=1 address<=128;if(select=2 address<=256;if(select=3 address<=384;if(address<384 address<=384;elsebeginif(freq=0|freq=1beginif(address>=511 address<=384;else address<=address+1; endelsebegink<=127/freq;m<=freq*k;if(address>=(m+384address<=384;elseaddr
21、ess<=address+freq;endendendendcaseendendmodule附件【2】fre_measure.v程序如下:module fre_measure(Qout,warning,ctr_seg,decodeout,inclk,rst,input_fre; input inclk,rst,input_fre;output15:0 Qout;output warning;output3:0 ctr_seg;output6:0 decodeout;reg3:0 ctr_seg,out_seg;reg6:0 decodeout;reg15:0 Qout,temp;reg
22、clk_1Hz,count_en,load,warning,temp1,clk_scan;reg1:0 state_scan;reg21:0 count;reg16:0 count2;always ( posedge inclk beginif(count=1999999 /假設(shè)inclk 為4M ,分頻得到1Hz 信號 begincount=0;clk_1Hz=!clk_1Hz;endelsebegincount=count+1;clk_1Hz=clk_1Hz;endendalways (posedge clk_1Hz /控制部分設(shè)計(jì)beginif(rstbegin count_en=0;
23、load=1; endelsebegincount_en=count_en;load=count_en;endendassign count_clr=clk_1Hz&load;always (posedge input_fre or posedge count_clr /計(jì)數(shù)部分設(shè)計(jì) beginif(count_clr=1begin temp<=0;temp1<=0; endelsebeginif(count_en=1beginif(temp=16'h9999begin temp<=0;temp1<=1; endelsebeginif(temp3:0=9
24、begintemp3:0<=0;if(temp7:4=9begintemp7:4<=0;if(temp11:8=9begintemp11:8<=0;if(temp15:12=9temp15:12<=0;elsetemp15:12<=temp15:12+1; endelsetemp11:8<=temp11:8+1; endelsetemp7:4<=temp7:4+1;endelsetemp3:0<=temp3:0+1;endendelsebegin temp<=temp;temp1<=temp1; endendendalways (posedge load /輸出鎖存部分設(shè)計(jì)beginQout<=temp;warning<=temp1;endalways ( posedge inclk /分頻得到掃描脈沖beginif(count2=4999begincount2=0;clk_scan=!clk_scan;endelsebegincount2=count2+1; clk_scan=clk_scan; end end always (posedge clk_scan / 動態(tài)掃描部分設(shè)計(jì) begin case(sta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土司切片機(jī)行業(yè)深度研究分析報(bào)告(2024-2030版)
- 軟件項(xiàng)目實(shí)施總結(jié)報(bào)告
- 2025年彈絲針織布料項(xiàng)目投資可行性研究分析報(bào)告
- 配電柜組裝承包協(xié)議書6篇
- 戶外租賃合同范本8篇
- 公司與人簽訂合同6篇
- 001變壓器買賣合同10篇
- 江西省省級儲備糧輪換競價(jià)銷售交易合同6篇
- 瓷磚產(chǎn)品買賣合同協(xié)議
- 糧食裝卸承包合同8篇
- 2025年江蘇省南京市中考《二次函數(shù)綜合》專題復(fù)習(xí)講義
- 采油工程 試題及答案
- 西醫(yī)臨床基因組學(xué)應(yīng)用試題及答案
- 橋梁工程施工檢驗(yàn)測試計(jì)劃
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 政治試卷(含標(biāo)準(zhǔn)答案)
- 2025年共青團(tuán)團(tuán)課考試題庫及答案
- T-CECS120-2021套接緊定式鋼導(dǎo)管施工及驗(yàn)收規(guī)程
- 2024年四川省成都市中考地理+生物試卷真題(含答案解析)
- 2024年湖北省武漢市高考數(shù)學(xué)一調(diào)試卷
- ThingsBoard IOT 物聯(lián)網(wǎng)平臺的介紹與應(yīng)用演示
- SWIFT信用證代碼表及詳解
評論
0/150
提交評論