![用verilog HDL設(shè)計(jì)的位頻率計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/2fc913e4-951e-44cc-97af-b35ca0a9c7dd/2fc913e4-951e-44cc-97af-b35ca0a9c7dd1.gif)
![用verilog HDL設(shè)計(jì)的位頻率計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/2fc913e4-951e-44cc-97af-b35ca0a9c7dd/2fc913e4-951e-44cc-97af-b35ca0a9c7dd2.gif)
![用verilog HDL設(shè)計(jì)的位頻率計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/2fc913e4-951e-44cc-97af-b35ca0a9c7dd/2fc913e4-951e-44cc-97af-b35ca0a9c7dd3.gif)
![用verilog HDL設(shè)計(jì)的位頻率計(jì)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/2fc913e4-951e-44cc-97af-b35ca0a9c7dd/2fc913e4-951e-44cc-97af-b35ca0a9c7dd4.gif)
![用verilog HDL設(shè)計(jì)的位頻率計(jì)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/2fc913e4-951e-44cc-97af-b35ca0a9c7dd/2fc913e4-951e-44cc-97af-b35ca0a9c7dd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、簡單4位數(shù)字頻率計(jì)設(shè)計(jì)一、 設(shè)計(jì)要求(1)、利用Verilog HDL語言行為描述方法,設(shè)計(jì)一個(gè)簡單的4位數(shù)字頻率計(jì);(2)、要求輸入標(biāo)準(zhǔn)時(shí)鐘信號(hào)頻率為1MHz,系統(tǒng)可計(jì)數(shù)頻率范圍為1Hz9999Hz;(3)、系統(tǒng)具有復(fù)位信號(hào),且當(dāng)計(jì)數(shù)頻率發(fā)生溢出時(shí)能夠給出指示信號(hào),計(jì)數(shù)的頻率通過4個(gè)共陰數(shù)碼管進(jìn)行顯示(動(dòng)態(tài)掃描顯示)。二、 系統(tǒng)結(jié)構(gòu)框圖根據(jù)設(shè)計(jì)要求,輸入系統(tǒng)的標(biāo)準(zhǔn)時(shí)鐘信號(hào)要先經(jīng)過分頻后得到一個(gè)周期為2s占空比50%的信號(hào),用來對(duì)輸入信號(hào)采樣,得到采樣信號(hào)GATED_CLK;為了能夠控制計(jì)數(shù)模塊對(duì)采樣的信號(hào)進(jìn)行正常計(jì)數(shù)及保存計(jì)數(shù)后的頻率,這要求,要在計(jì)數(shù)器剛好完成計(jì)數(shù)后立即將數(shù)據(jù)輸出給顯示部分
2、進(jìn)行顯示,并且要為下次計(jì)數(shù)做好準(zhǔn)備,因此數(shù)據(jù)信號(hào)處理部分還要有產(chǎn)生控制計(jì)數(shù)器的兩個(gè)信號(hào)LOAD和COUNTER_CLR,LOAD信號(hào)控制計(jì)數(shù)完成后的數(shù)據(jù)及時(shí)輸出給顯示,COUNTER_CLR信號(hào)控制計(jì)數(shù)器清零;計(jì)數(shù)模塊就是完成對(duì)采樣信號(hào)的計(jì)數(shù),并當(dāng)計(jì)數(shù)發(fā)生溢出時(shí)產(chǎn)生溢出信號(hào)FLOW_UP;顯示控制模塊要完成將計(jì)數(shù)模塊輸入的信號(hào)進(jìn)行譯碼顯示。三、 信號(hào)描述測試信號(hào)采樣原理:GATED_CLK、LOAD、COUNTER_CLR信號(hào)的關(guān)系:程序中用到的信號(hào)變量:FREQUENCY_COUNTROL_BLOCKFREQUENCY_COUNTER_BLOCKFREQUENCY_DISPLY_BLOCKG
3、ATED_CLK采樣信號(hào)COUT計(jì)數(shù)輸出信號(hào)DOUT輸出到數(shù)碼管LOAD控制計(jì)數(shù)器信號(hào)FLOW_UP計(jì)數(shù)溢出信號(hào)CDIN計(jì)數(shù)輸入信號(hào)COUNTER_CLR清零計(jì)數(shù)器信號(hào)CLOCK_IN計(jì)數(shù)器時(shí)鐘信號(hào)DCLK_IN標(biāo)準(zhǔn)時(shí)鐘信號(hào)CLK_IN標(biāo)準(zhǔn)時(shí)鐘信號(hào)LOAD控制計(jì)數(shù)輸出RESET復(fù)位信號(hào)SIGNAL_TEST測試信號(hào)COUNTER_CLR清零計(jì)數(shù)信號(hào)RESET復(fù)位信號(hào)RESET復(fù)位信號(hào)四、 Verilog程序各子模塊verilog程序:(1)信號(hào)處理模塊_verilog:module FREQUENCY_COUNTROL_BLOCK(GATED_CLK,LOAD,COUNTER_CLR,CLK_
4、IN,SIGNAL_TEST,RESET);output GATED_CLK;output LOAD;output COUNTER_CLR;input CLK_IN;input SIGNAL_TEST;input RESET;reg LOAD;reg COUNTER_CLR;reg DIVIDE_CLK;reg19:0 cn;reg A1,A2;/信號(hào)分頻:由CLK_IN得到分頻后的信號(hào)DIVIDE_CLK(0.5Hz)always (posedge CLK_IN) beginif(RESET)beginDIVIDE_CLK<=0;cn<=0;endelse if(cn=10000
5、00) begincn<=0;DIVIDE_CLK<=DIVIDE_CLK; endelsecn<=cn+1;end/頻率計(jì)數(shù)控制信號(hào)的產(chǎn)生:產(chǎn)生LOAD信號(hào)和COUNTER_CLR信號(hào) always (posedge SIGNAL_TEST)beginA1<=DIVIDE_CLK;endalways (posedge SIGNAL_TEST)beginA2=A1;endalways (A1 or A2)beginLOAD=A1&&(!A2);endalways (posedge SIGNAL_TEST)COUNTER_CLR=LOAD;/產(chǎn)生驅(qū)動(dòng)計(jì)數(shù)模
6、塊的信號(hào)GATED_CLK,也就是被計(jì)數(shù)模塊檢測的信號(hào) assign GATED_CLK=SIGNAL_TEST&DIVIDE_CLK;endmodule(2)、計(jì)數(shù)器模塊:module FREQUENCY_COUNTER_BLOCK(COUT,FLOW_UP,CLOCK_IN,RESET,LOAD,COUNTER_CLR);output15:0 COUT;output FLOW_UP;input CLOCK_IN;input LOAD;input COUNTER_CLR;input RESET;reg15:0 TEMP;reg FLOW_UP;parameter B_SIZE=16;
7、 /二進(jìn)制位寬,為便于移植,所有定義了成參數(shù)regB_SIZE+3:0 bcd; /轉(zhuǎn)換后的BCD碼的位數(shù)要比二進(jìn)制多4位regB_SIZE-1:0 binary;regB_SIZE-1:0 bin; regB_SIZE+3:0 result;/計(jì)數(shù)器完成計(jì)數(shù)得到二進(jìn)制表示的頻率數(shù)值always (CLOCK_IN or RESET or LOAD or COUNTER_CLR)beginif(RESET|COUNTER_CLR)beginTEMP<=0;FLOW_UP<=0;endelse if(LOAD)binary<=TEMP;else if(TEMP>9999)
8、beginFLOW_UP<=1;binary<=9999;endelseif(CLOCK_IN)TEMP<=TEMP+1;end/將二進(jìn)制表示(或十六進(jìn)制表示)的數(shù)轉(zhuǎn)換為BCD碼的形式,便于數(shù)碼管譯碼顯示always (binary or RESET)beginbin=binary;result=0;if(RESET)bcd<=0;elsebeginrepeat(B_SIZE-1)beginresult0=binB_SIZE-1;if(result3:0>4)result3:0=result3:0+4'd3;if(result7:4>4)result
9、7:4=result7:4+4'd3;if(result11:8>4)result11:8=result11:8+4'd3;if(result15:12>4)result15:12=result15:12+4'd3;if(result19:16>4)result19:16=result19:16+4'd3;result=result<<1;bin=bin<<1;endresult0=binB_SIZE-1;bcd<=result;endend assign COUT=bcd15:0;endmodule(3)信號(hào)顯示
10、處理:module FREQUENCY_DISPLY_BLOCK(DOUT,DCLK_IN,RESET,CDIN);output10:0 DOUT;input15:0 CDIN;input DCLK_IN;input RESET;reg10:0 DOUT;reg3:0 Temp1;reg1:0 cn;always (posedge DCLK_IN) /設(shè)置成動(dòng)態(tài)掃描beginif(RESET)cn<=0;elsebegincn<=cn+1;case(cn)2'b00: begin DOUT10:7<=4'b0001; Temp1<=CDIN3:0;end
11、2'b01: begin DOUT10:7<=4'b0010; Temp1<=CDIN7:4;end2'b10: begin DOUT10:7<=4'b0100; Temp1<=CDIN11:8;end2'b11: begin DOUT10:7<=4'b1000; Temp1<=CDIN15:12;endendcaseendendalways (Temp1) /譯碼顯示begincase(Temp1)4'b0000: DOUT6:0<=7'b0111111; /3fh=04'b00
12、01: DOUT6:0<=7'b0000110; /06h=14'b0010: DOUT6:0<=7'b1010110; /56h=24'b0011: DOUT6:0<=7'b1001111; /4fh=34'b0100: DOUT6:0<=7'b1100110; /66h=44'b0101: DOUT6:0<=7'b1101101; /6dh=54'b0110: DOUT6:0<=7'b1111101; /7dh=64'b0111: DOUT6:0<=7&
13、#39;b0000111; /07h=74'b1000: DOUT6:0<=7'b1111111; /7fh=84'b1001: DOUT6:0<=7'b1101111; /6fh=9default: DOUT6:0<=7'b0111111; /3fhendcaseendendmodule頂層verilog程序:module FREQUENCY_COUNTER_DISPLY_BLOCK(DOUT,FLOW_UP,CLK,TEST_CLK_IN,RESET);output10:0 DOUT;output FLOW_UP;input CLK
14、;input TEST_CLK_IN;input RESET;wire gated_clk,load,counter_clr;wire15:0 cout_cdin;FREQUENCY_COUNTROL_BLOCK u1(.GATED_CLK(gated_clk),.LOAD(load),.COUNTER_CLR(counter_clr),.CLK_IN(CLK),.SIGNAL_TEST(TEST_CLK_IN),.RESET(RESET); FREQUENCY_COUNTER_BLOCK u2(.COUT(cout_cdin),.FLOW_UP(FLOW_UP),.CLOCK_IN(gated_clk),.RESET(RESET),.LOAD(load),.COUNTER_CLR(counter_clr);FREQUENCY_DISPLY_BLOCK u3(.DOUT(DOUT),.DCLK_IN(CLK),.RESET(RESET),.CDIN(cout_cdin); endmodule五、 仿真結(jié)果分析仿真結(jié)果如圖所示,輸入標(biāo)準(zhǔn)時(shí)鐘頻率為1MHz,經(jīng)過分頻后變成頻率為0.5Hz的信號(hào),將其與測試信號(hào)相與得到采樣信號(hào)GATED_CLK,同時(shí)利用測試信號(hào)和0.5Hz的分頻信號(hào)可以產(chǎn)生LOAD信號(hào)和COUNTER_CLR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷庫加班入貨合同范例
- 動(dòng)物寄養(yǎng)合同范例
- 書面流轉(zhuǎn)合同范本
- 農(nóng)家購房合同范本
- 沈陽商用房屋出租合同范本
- 個(gè)體用工合同范本
- 農(nóng)村院子賣房合同范本
- 物品采購合同范本
- 代蓋公章合同范例
- 企業(yè)監(jiān)理裝修合同范本
- 2024黑龍江公務(wù)員考試【A類、B類、省直、筆試】四套真題及答案
- 2025年中國高價(jià)HPV疫苗行業(yè)競爭格局分析及投資規(guī)劃研究報(bào)告
- 醫(yī)院感染與醫(yī)療器械消毒
- 2025年春新北師大版物理八年級(jí)下冊(cè)課件 第七章 運(yùn)動(dòng)和力 第四節(jié) 同一直線上二力的合成
- 智能客服系統(tǒng)中人工智能技術(shù)的應(yīng)用
- 2025年公司年會(huì)活動(dòng)總結(jié)樣本(3篇)
- 村衛(wèi)生室2025年初工作計(jì)劃
- 派出所校園安全創(chuàng)新
- 飛書項(xiàng)目管理
- 醫(yī)院醫(yī)共體2025年度工作計(jì)劃
- UL498標(biāo)準(zhǔn)中文版-2019插頭插座UL標(biāo)準(zhǔn)中文版
評(píng)論
0/150
提交評(píng)論