![課程設計(論文)基于FPGA的verilog頻率計設計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/215bdba4-b098-4ad6-b8c9-d24ae73c38a4/215bdba4-b098-4ad6-b8c9-d24ae73c38a41.gif)
![課程設計(論文)基于FPGA的verilog頻率計設計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/215bdba4-b098-4ad6-b8c9-d24ae73c38a4/215bdba4-b098-4ad6-b8c9-d24ae73c38a42.gif)
![課程設計(論文)基于FPGA的verilog頻率計設計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/215bdba4-b098-4ad6-b8c9-d24ae73c38a4/215bdba4-b098-4ad6-b8c9-d24ae73c38a43.gif)
![課程設計(論文)基于FPGA的verilog頻率計設計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/215bdba4-b098-4ad6-b8c9-d24ae73c38a4/215bdba4-b098-4ad6-b8c9-d24ae73c38a44.gif)
![課程設計(論文)基于FPGA的verilog頻率計設計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/215bdba4-b098-4ad6-b8c9-d24ae73c38a4/215bdba4-b098-4ad6-b8c9-d24ae73c38a45.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電 子 科 技 大 學 (基于 fpga 的頻率計設計) 題目 :簡易頻率計的設計 指導教師: 姓名 : 學號 : 專業(yè) :光電學院一專業(yè) 摘要 本文主要介紹了基于 fpga 的簡易多量程頻率計的設計,使用硬件 描述語言 verilog 來實現對硬件的控制,在軟件 ise 上實現編程的編 譯綜合,在系統(tǒng)時鐘 48mhz 下可正常工作。該數字頻率計采用測頻 的方法,能準確的測量頻率在 10hz 到 100mhz 之間的信號。使用 modelsim 仿真軟件對 verilog 程序做了仿真,并完成了綜合布局布 線,通過 ise 下載到 spartan3a 開發(fā)板上完成測試。 關鍵詞:fpga ,v
2、erilog,ise,測頻方法 abstractabstract this paper mainly introduces the simple more range based on fpga design of frequency meter,use hardware description language verilog to realize the control of hardware,in the software realize the compilation of the programming ise on comprehensive,in the system clock
3、 can work normally under 48 mhz。the digital frequency meter frequency measurement method used, can accurate measurement frequency in 10 hz to 100 mhz of signals between。use modelsim simulation software verilog program to do the simulation, and completed the overall layout wiring,through the ise down
4、loaded to spartan3a development board complete test。 keywords: : fpga, verilog, ise, frequency measurement 目 錄 第一章第一章 測量原理與方法測量原理與方法 1.1測頻方法 1.2測周方法 1.3等精度測量法 1.4放大整形電路 1.5時基信號產生 第二章第二章 任務要求任務要求 第三章第三章 各模塊功能及介紹各模塊功能及介紹 3.1 分頻器 3.2 閘門選擇器 3.3 頻率計數器 3.4 鎖存器 3.5 掃描顯示控制譯碼系統(tǒng) 第四章第四章 頂層電路及總體仿真頂層電路及總體仿真 4.1
5、頂層電路 4.2 總體仿真結果 4.3 測試結果 第一章:測量原理與方法 所謂“頻率”,就是周期性信號在單位時間(秒)內變化的次數。若在一定的時 間間隔 t 內計數,計得某周期性信號的重復變化次數為 n,則該信號的頻率可 表達為: f = n / t 所以測量頻率就要分別知道 n 和 t 的值,由此,測量頻率的方法一般 有三種:測頻方法、測周方法和等精度測量。 1.1 測頻方法 這種方法即已知時基信號(頻率或周期確定)做門控信號,t 為已知量, 然后在門控信號有效的時間段內進行輸入脈沖的計數,原理圖如下圖所示: 首先,被測信號(以正弦波為例)經過放大整形后轉變成方波脈沖,其重 復頻率等于被測信
6、號頻率。把方波脈沖加到閘門的輸入端。由一個高穩(wěn)定的 石英振蕩器和一系列數字分頻器組成了時基信號發(fā)生器,它輸出時間基準(或頻 率基準)信號去控制門控電路形成門控信號,門控信號的作用時間 t 是非常 準確的(由石英振蕩器決定)。門控信號控制閘門的開與閉,只有在閘門開通的 時間內,方波脈沖才能通過閘門成為被計數的脈沖由計數器計數。閘門開 通的時間稱為閘門時間,其長度等于門控信號作用時間 t。比如,時間基準信 號的重復周期為 1s,加到閘門的門控信號作用時間 t 亦準確地等于 1s,即閘 門的開通時間“閘門時間”為 1s。在這一段時間內,若計數器計得 n=100000 個數,根據公式 f = n /
7、t,那么被測頻率就是 100000hz。如果計數 式頻率計的顯示器單位為“khz”,則顯示 100.000khz,即小數點定位在第三 位。不難設想,若將閘門時間設為 t=0.1s,則計數值為 10000,這時,顯示器 的小數點只要根據閘門時間 t 的改變也隨之自動往右移動一位(自動定位),那 么,顯示的結果為 100.00khz。在計數式數字頻率計中,通過選擇不同的閘門 時間,可以改變頻率計的測量范圍和測量精度。 1.2 測周方法 測周方法即:被測信號(頻率或周期待測)做門控信號,t 為未知量,做門 控信號 t,然后在門控信號有效的時間段內對時基信號脈沖計數,原理圖如下 圖所示: 計數器測周的
8、基本原理剛好與測頻相反,即由被測信號控制主門開門,而 用時標脈沖進行計數,所以實質上也是一種比較測量方法。 1.3 等精度測量法 等精度測量法的核心思想是通過閘門信號與被測信號同步,將閘門時間 控制為被測信號周期長度的整數倍。測量時,先打開預置閘門,當檢測到被測 信號脈沖沿到達時,標準信號時鐘開始計數。預置閘門關閉時,標準信號并不 立即停止計數,而是等檢測到被測信號脈沖沿到達時才停止,完成被測信號整 數個周期的測量。測量的實際閘門時間可能會與預置閘門時間不完全相同,但 最大差值不會超過被測信號的一個周期。 在等精度測量法中,相對誤差與被測信號本身的頻率特性無關,即對整個 測量域而言,測量精度相
9、等,因而稱之為“等精度測量”。標準信號的計數值越 大則測量相對誤差越小,即提高門限時間 和標準信號頻率可以提高測量 精度。在精度不變的情況下,提高標準信號頻率可以縮短門限時間,提高測量 速度。原理圖如下: 1.4 放大整形電路 當輸入信號為 0.5v 時,仿真放大整形后的輸出結果如下圖示 圖 1-6 放大整形電路仿真結果(一) 當輸入信號為 3v 時,仿真放大整形后的輸出結果如下圖示: 當輸入信號為 10v 時,仿真放大整 形后的輸出結果如下圖示: 圖 1-6 放大整形電路仿真結果(三) 1.5 時基信號的產生 圖 1-7 時基信號產生電路 第二章:任務要求 設計一個計數式頻率計,其頻率測量范
10、圍為 10hz100mhz,測量結果用 6 只數碼管顯示。有三個帶鎖按鍵開關(任何時候都只能有一個被按下)被用來選 擇 1s、0.1s 和 0.01s 三個閘門時間中的一個。有一個按鈕開關用來使頻率計復 位。有兩只 led,一只用來顯示閘門的開與閉,另一只當計數器溢出時做溢出 指示。 第三章:各功能模塊的基本介紹 3.1 分頻器 由于晶體振蕩器提供的為 48m 的時鐘,而在整個頻率計里將用到周期為 2s、0.2s 和 0.02s 的閘門信號,還有譯碼顯示的掃描信號 1khz ,所以我們在此 模塊先分頻產生 1hz、10hz、100hz、1khz 四個分頻信號,以留作其它模塊用。 分頻分別采用
11、4 個計數器來實現,當計到一定的值時輸出的分頻信號翻轉, 最后分別獲得 4 個分頻輸出,分頻器模塊如下圖所示: 此模塊的復位為同步方式,當復位有效時,輸出將清零。 源程序如下: module clk_div(reset, clk,clk_1hz, clk_10hz, clk_100hz,clk_1khz); input reset,clk; output reg clk_1hz,clk_10hz,clk_100hz,clk_1khz; reg 29:0 counter1,counter2,counter3,counter4; /分頻計數值 always (posedge clk or nege
12、dge reset) begin if(!reset) begin counter1=0;counter2=0;counter3=0;counter4=0; clk_1hz=0;clk_10hz=0;clk_100hz=0;clk_1khz=0; endelse begin if(counter1=2400000) begin counter1=0;clk_1hz=clk_1hz; end else begin counter1=counter1+1; end if(counter2=240000) begin counter2=0;clk_10hz=clk_10hz;end else beg
13、in counter2=counter2+1; end if(counter3=24000) begin counter3=0;clk_100hz=clk_100hz; end else begin counter3=counter3+1; end if(counter4=2400) begin counter4=0;clk_1khz=clk_1khz; end else begin counter4=counter4+1; end end end endmodule 仿真圖如下所示: 3.2 閘門選擇器: 該模塊主要實現對閘門的選擇功能,通過輸入的門選信號來確定輸出的閘 門,生成的模塊如下圖
14、所示: 具體實現方法如下:當三個門選信號中有且僅有門選信號 gate_ch1 有效時, reg 變量 gate 為 clk_1hz ,當三個門選信號中有且僅有門選信號 gate_ch2 有效 時,reg 變量 gate 為 clk_10hz;當三個門選信號中有且僅有門選信號 gate_ch3 有效時,reg 變量 gate 為 clk_100hz。reg 變量 gate 再二分頻則是輸出的閘門信 號 gate_out(dot 為標記信號,標記了當前閘門的選擇情況)。如果同時有兩個 或以上的門 另外輸出的譯碼掃描信號為 clk_1khz ,供后面的掃描譯碼模塊使用 程序如下:module gat
15、e_sel(reset,gate_ch1,gate_ch2,gate_ch3, clk_1hz,clk_10hz,clk_100hz,clk_1khz, gate_outdot); input reset,gate_ch1,gate_ch2,gate_ch3, clk_1hz,clk_10hz,clk_100hz,clk_1khz; output reg gate_out; output reg 2:0dot; always (posedge clk_1khz or negedge reset) begin if(!reset) begin gate_out=0;dot=3b111;end e
16、lse begin if(gate_ch1=0) dot=3b011;end else if(gate_ch1=1)dot=3b010;end else if(gate_ch1=1)dot=3b001;end else begin gate_out=0;dot=3b111;end end end endmodule 3.3 頻率計計數 頻率計數器的功能為在輸入的閘門信號的控制下對輸入脈沖時行計數,它是一 個 7 拉的模十計數器。生成的模塊如下圖所示: 當 gate_out 信號為高時才計數器才計數,在 gate_out 為低后,馬上將此時 計數的值 cnt 賦給輸出 cnte ,然后當輸入 c
17、arry_in 信號再過一個脈沖后降計數 的值 cn 清零,以備下次閘門有效時又重新開始計數。源程序如下: module count(carry_in,gate_out,reset, cnte0,cnte1,cnte2,cnte3,cnte4,cnte5,cnte6); input carry_in,gate_out,reset; output reg 3:0 cnte0,cnte1,cnte2,cnte3,cnte4,cnte5,cnte6;/在每一次閘門有效時讀數/器傳遞的計數值 reg 3:0 cnt0,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6; /計數器的 6 個計數
18、值 reg 2:0 counter6; / 延遲將 counter-num 清零的計數值 always (posedge carry_in or negedge reset) begin if(!reset) begin cnt0=4b0000;cnt1=4b0000;cnt2=4b0000;cnt3=4b0000; cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;/判斷是否溢出 cnte0=4b0000;cnte1=4b0000;cnte2=4b0000; cnte3=4b0000;cnte4=4b0000;cnte5=4b0000;counter6=0; end e
19、lse begin if(gate_out=1) begin counter6=0; if(cnt5=4b1001)cnt1=4b0000;cnt2=4b0000;cnt3=4b0000; cnt4=4b0000;cnt5=4b0000;cnt6=cnt6+4b0001;end else begin if(cnt4=4b1001) cnt1=4b0000; cnt2=4b0000; cnt3=4b0000; cnt4=4b0000; cnt5=4b0001+cnt5; cnt6=cnt6; end else begin if(cnt3=4b1001) cnt1=4b0000; cnt2=4b0
20、000; cnt3=4b0000; cnt4=4b0001+cnt4; cnt5=cnt5; cnt6=cnt6; end else begin if(cnt2=4b1001) cnt1=4b0000; cnt2=4b0000; cnt3=4b0001+cnt3; cnt4=cnt4; cnt5=cnt5; cnt6=cnt6; end else begin if(cnt1=4b1001) cnt1=4b0000; cnt2=4b0001+cnt2; cnt3=cnt3; cnt4=cnt4; cnt5=cnt5;cnt6=cnt6; end else begin if(cnt0=4b1001
21、) begin cnt0=4b0000; cnt1=4b0001+cnt1; cnt2=cnt2; cnt3=cnt3; cnt4=cnt4; cnt5=cnt5; cnt6=cnt6; end else begin cnt0=4b0001+cnt0; cnt1=cnt1; cnt2=cnt2; cnt3=cnt3; cnt4=cnt4; cnt5=cnt5; cnt6=cnt6; end end end end end end end else begin if(counter6=2b01) begin cnt0=4b0000; cnt1=4b0000; cnt2=4b0000; cnt3=
22、4b0000; cnt4=4b0000; cnt5=4b0000; cnt6=4b0000; end else begin counter6=counter6+1; cnte0=cnt0; cnte1=cnt1; cnte2=cnt2;cnte3=cnt3; cnte4=cnt4; cnte5=cnt5; cnte6=cnt6; end end end end endmodule 3.4 鎖存器 如果計數器輸出直接與譯碼器相連接,那么在計數過程中輸出端則隨輸入 脈沖數的增加而不斷跳變,那么顯示數碼管則也會不斷閃爍跳變,讓人不能看 到穩(wěn)定的輸出,設鎖存器后,則不再跳變,便可清晰讀出計數結果。其生
23、成的 功能模塊如圖所示: 這模塊實現了對七位計數結果的鎖存功能。程序很簡單如下所示: module data_latch(latch_enable,reset,num0, num 1, num 2, num 3, num 4, num 5,over, n_0,n_1,n_2,n_3,n_4,n_5,over_out); input reset,latch_enable,over; input 3:0 num 0, num 1, num 2, num 3, num 4, num 5; output reg 3:0n_0,n_1,n_2,n_3,n_4,n_5; output reg over_o
24、ut; reg over_old,over_new; always (negedge latch_enable or negedge reset) begin if(!reset) begin n_0=4b0000; n_1=4b0000; n_2=4b0000; n_3=4b0000; n_4=4b0000; n_5=4b0000; end else begin n_0=digi0; n_1=digi1;n_2=digi2; n_3=digi3; n_4=digi4; n_5=digi5; end end always(negedge latch_enable) begin over_new=over; end always(over_new) begin if(over_old=1)over_old=over_new; end else begin over_out=1;over_old=over_new; end end endmodule 3.5 掃描顯示譯碼系統(tǒng) 本模塊在掃描信號的 clk-1khz 的控制下,對多路選擇器進行掃描,實現對 實現對六位已經鎖存的計數結果的掃描輸出,由于人眼的視覺暫留效應,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現代學生餐廳的照明與色彩搭配藝術
- 深度解讀網絡輿情的來源與影響研究報告解讀分享
- 現代金融行業(yè)中的移動支付技術與教育普及
- 快手國慶節(jié)的活動方案
- 國慶假期活動方案
- 國慶節(jié)酒店漲價活動方案
- 2、3、4的乘法口訣(說課稿)-2024-2025學年二年級上冊數學人教版
- Unit1 There is a horse in this photo(說課稿)-2024-2025學年外研版(三起)四年級上冊001
- 17《他們那時候多有趣啊》(說課稿)-2023-2024學年統(tǒng)編版語文六年級下冊
- 13 我能行(說課稿)-統(tǒng)編版(五四制)道德與法治二年級下冊
- 水利水電工程監(jiān)理平行檢測表部分
- 分部分項工程質量檢驗計劃表
- 社區(qū)衛(wèi)生服務中心醫(yī)療服務推薦病-2023版1-4-10
- HY/T 266-2018外壓中空纖維超濾膜表面親水性的測試接觸角法
- GB/T 4857.3-2008包裝運輸包裝件基本試驗第3部分:靜載荷堆碼試驗方法
- 【英文原版小說】the things they carried《負荷》
- 領導干部如何管理壓力與情緒課件
- 2022-2023年度神農中華農業(yè)科技獎科研和科普類推薦書和摘要表(樣本)
- 《鄉(xiāng)土中國-差序格局》學案-統(tǒng)編版高中語文必修上冊
- 大學成績單中文(word版)
- 海南省儋州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼居民村民委員會
評論
0/150
提交評論