




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、FCFPGA中的分頻FPG9的分頻是很重要的一個內(nèi)容,只要涉及時序電路,幾乎都會有分頻的 情況出現(xiàn)。但分頻的語句卻各有不同,以下就是不同寫法,但不管怎樣,分頻一 句話,就是用計數(shù)器來實現(xiàn)的。下面我就幾種不同的寫法說說我的看法, 在FPG9是如何實現(xiàn)分頻的。不過 再說之前首先的了解時鐘。我這里以系統(tǒng)時鐘 clk , f=50MH為例。由此可知其 T=20ns, f=50MH也就是說一秒內(nèi),時鐘高低電平改變 50M次。這里我用verilog為例,對于vhdl類同。講解時只取分頻部分語句后面附有 完正的程序第一種寫法:0 0 0 0 0 0always(posedge clk or negedge
2、rst)begin。if(!rst) beginclk_div1=0;endelse beginif(clk_div1!=11)clk_div1=clk_div1+1;elseclk_div1=0;endendalways(posedge clk or negedge rst)beginif(!rst) beginclk_div2=0;state=0;cnt=0;out=0;endelse if(clk_div1=11) begin0 0 0 0 /執(zhí)行什么功能0 0 0 0 0注意在這里此語句中,我沒有寫完整,只是把分頻的關(guān)鍵地方寫出來了,特別是紅色標(biāo)注的地方。這里暫時不管定義的rst ,
3、state 。這些變量。關(guān)鍵是此句話if(clk_div1!=11)clk_div1=clk_div1+1;elseclk_div1=0;FC此句話可知計數(shù)器clk_divl對系統(tǒng)時鐘進(jìn)行計數(shù),并且只計數(shù)到11,clk_divl變等于00這里有點類似于延時,下面以圖形來說明。1020ns ns以此類推50MH clkVii波形T=11*20=220nsF=1/T=4.54MH* 4MH由上圖可知,clk=5MH的時鐘,在計數(shù)器clk_divl下計數(shù)11,產(chǎn)生約4MHi勺 時鐘,此后系統(tǒng)便在4MHi勺頻率下工作。這里他正未把新時鐘提出來,而是在原 來的時鐘上分出4MH青況來工作。第二種寫法:0
4、0 0 0 00 0 0 0 0always ( posedge clk_50M )beginif ( count=25000000 )/此處也可寫成 24999999begindiv_clk=div_clk;end elsecount=count+1;led_out=div_clk;end0 0 0 00 0 0 0在這里我們也不去關(guān)注分頻以外的東西,關(guān)鍵此語句if ( count=25000000 )begindiv_clk=div_clk;end elsecount=count+1;我們看到這里實際上定義了一個新時鐘名:div_clk ,系統(tǒng)此后便可以以此 時鐘來工作,在這里只要明白這樣
5、的解釋就行了。-(1)如進(jìn)行N倍偶數(shù)、占空比為50%的分頻,那么可以通過由待分頻的 時鐘觸發(fā)計數(shù),當(dāng)計數(shù)器從0計數(shù)到N/2-1時,輸出時鐘進(jìn)行翻轉(zhuǎn),以此循環(huán) 下去。-(2)如進(jìn)行N倍偶數(shù)、占空比為1/N的分頻,那么可以通過由待分頻的 時鐘觸發(fā)計數(shù),當(dāng)計數(shù)器從0計數(shù)到N-1時,輸出時鐘進(jìn)行翻轉(zhuǎn),并給計數(shù)器一個復(fù)位信號,使得一個時鐘從零開始計數(shù),以此循環(huán)下去。一個公式就是:N為分頻數(shù),M為計數(shù)器的計數(shù)值。N/2-1=M。此時為,進(jìn)行N倍偶數(shù)、占空比為50%的分頻。N-1=M ooooooo此時進(jìn)行N倍偶數(shù)、占空比為1/N的分頻。例如一個50MH勺分頻其圖為:其計數(shù)值M為25000000或24999
6、9991020ns ns50MH clkrUWLTl1HCKL_K25000000 個波形對于基數(shù)的分頻:對于實現(xiàn)占空比為50%的N倍奇數(shù)分頻,首先進(jìn)行上升沿觸發(fā)進(jìn)行模N計數(shù),計數(shù)到(N-1)/2 進(jìn)行輸出時鐘翻轉(zhuǎn),然后經(jīng)過(N-1)/2 (即計 數(shù)到N-1時)再次進(jìn)行翻轉(zhuǎn)得到一個占空比非50%奇數(shù)n分頻時鐘。再者同時進(jìn)行下降沿觸發(fā)的模N計數(shù),至U(N-1)/2 時,進(jìn)行輸出時鐘時鐘翻轉(zhuǎn),同樣經(jīng) 過(N-1)/2(即計數(shù)到N-1時)時,輸出時鐘再次翻轉(zhuǎn)生成占空比非 50%的奇數(shù)n 分頻時鐘。兩個占空比非50%的n分頻時鐘相或運算,得到占空比為50%的奇數(shù)n分頻時鐘。第三種寫法:always (
7、posedge clk,negedge res) begin if(!res) begin led=6b000000;end else begin case(count26:23) 4d0: led=6b111110; /X miao 4d1: led=6b111101; /Y miao 4d2: led=6b111011;4d3: led=6b110111;4d4: led=6b101111;4d5: led=6b011111;4d6: led=6b011111;4d7: led=6b101111;FC4d8: led=6b110111;4d9: led=6b111011;4d10:led=
8、6b111101;4d11:led=6b111110;4d12:led=6b000000;4d13:led=6b111111;4d14:led=6b000111;4d15:led=6b111000;default:led=6b000000;endcase在這里我們也不去關(guān)注分頻以外的東西,關(guān)鍵此語句case(count26:23)實際上這里定義了一個26位的計數(shù)器,但實際上為后 22位計數(shù),前4位 定義狀態(tài)。這種分頻可用于數(shù)碼管的動態(tài)顯示或流水燈跑馬燈等。其具體分析為:26位:2524 232221OOOOOOOOOOOOOOOOOOOO4d0 : 0000000000 0000 0000 0
9、000 0000 0000/ 第一個狀態(tài)1 111111。1X秒計數(shù)滿22位為80ms4d15: 111000000000000000000 o oooooo 000000/第四個4d1: 00010000000000 ooooooooo 00000/第二個狀態(tài)4d2: 00100000000。0000000101111111.。11111111111 Z秒計數(shù)滿 22 位為 80ms4d3:00110000000。00000000 第三個00111111111111%。1111111111 W秒計數(shù)滿 22 位為 80ms1111111。1111111111/肝數(shù)滿 22 位為 80ms00
10、011111111。11111丫秒計數(shù)滿 22 位為 80msFC從面可以看出每個狀態(tài)停留的時間均為 80ms而每個狀態(tài)在下一個時鐘來時 又加一,從而轉(zhuǎn)到下一個狀態(tài)。這樣狀態(tài)連續(xù),而每個狀態(tài)時間有一樣,變可以 實現(xiàn)動態(tài)顯示和流水燈。附以上三個完整程序:第一個:module buzzer(clk,rst,out);input clk,rst;output out;reg out;reg3:0 clk_div1;/基頻分頻計數(shù)器,基頻為 4Mreg12:0 clk_div2;/音階分頻計數(shù)器,由基頻分頻產(chǎn)生各個音階reg21:0 cnt;/各音階發(fā)聲時間長短計數(shù)器reg2:0 state;para
11、meter duo=3822, /各個音調(diào)的分頻系數(shù)lai=3405,mi=3034,fa=2865,suo=2551,la=2273,xi=2024,duo1=1911;always(posedge clk or negedge rst)/ 這里采用了,分頻的另一種手法,相當(dāng)于延時。begin/分頻的實現(xiàn)方式有多種。if(!rst) beginclk_div1=0;endelse beginif(clk_div1!=11)/在原來的時鐘上分頻,并未加入一個新的時鐘。及原來的時鐘到11個時鐘(波形)/才進(jìn)行下一步做法。clk_div1=clk_div1+1;/ 相當(dāng)于每4MH做一次指令功能。因
12、為 11個時鐘為220ns,所以周期為220ns,/頻率為else /4MH 。及原來的時鐘到11個時鐘(波形)才進(jìn)行下一步做法(計時 11個波形)clk_div1=0;endendalways(posedge clk or negedge rst)beginif(!rst) beginclk_div2=0;FCstate=0;cnt=0;out=0;endelse if(clk_div1=11) begincase(state)3b000: begin/發(fā)“多”cnt=cnt+1;if(cnt=22h3fffff)state=3b001;if(clk_div2!=duo) /+3822 cl
13、k_div2=clk_div2+1;else beginclk_div2=0;out=out;endend3b001: begin發(fā)“來”cnt=cnt+1;if(cnt=22h3fffff)state=3b010;if(clk_div2!=lai) clk_div2=clk_div2+1; /else beginclk_div2=0;out=out;endend3b010:begin/發(fā)”米cnt=cnt+1;if(cnt=22h3fffff)state=3b011;if(clk_div2!=mi)clk_div2=clk_div2+1;else beginclk_div2=0;out=ou
14、t;endend3b011: begin/ 發(fā)法cnt=cnt+1;if(cnt=22h3fffff)clk_div2=clk_div2+1;else beginclk_div2=0;out=out;endend3b100: begin /發(fā)”梭cnt=cnt+1;if(cnt=22h3fffff)state=3b101;if(clk_div2!=suo)clk_div2=clk_div2+1;else beginclk_div2=0;out=out;endend3b101: begin/發(fā)”拉cnt=cnt+1;if(cnt=22h3fffff)state=3b110;if(clk_div2
15、!=la)clk_div2=clk_div2+1;else beginclk_div2=0;out=out;endend3b110: begin/發(fā)”西cnt=cnt+1;if(cnt=22h3fffff)state=3b111;if(clk_div2!=xi)clk_div2=clk_div2+1;else beginclk_div2=0;out=out;endend3b111: begin/發(fā)”多(高音)cnt=cnt+1;if(cnt=22h3fffff)state=3b000;if(clk_div2!=duo1)FCclk_div2=clk_div2+1;else beginclk_d
16、iv2=0;out=out;endendendcaseendend endmodule第二個:module ledwater (clk_50M,led_out,f_led_out);input clk_50M;/output led_out;/output f_led_out; /系統(tǒng)時鐘輸入50M意味每一秒要變化 50,000,000HZ每一秒閃舟L下每二秒閃舟L下reg 24:0 count; /reg 24:0 f_count;分頻計數(shù)器,25000000分頻一秒分頻計數(shù)器,12500000分頻0.5秒reg div_clk, f_div_clk;reg led_out, f_led_o
17、ut;/分頻計數(shù)器。得到一秒的頻率 always ( posedge clk_50M ) begin if ( count=25000000 )begin /我們的時鐘本身是每一秒要變化50,000,000HZdiv_clk=div_clk; / count=0; / end else count=count+1; / led_out=div_clk; / end/我們現(xiàn)在用count這個計數(shù)器讓它自加到25,000,000HZ在這里我們就得到了 0.5秒變化一次的信號。所以一個周期就是1Hz也就是一秒。把計數(shù)器清零。計數(shù)器自加。利用分頻計數(shù)器得到顯示一秒的閃爍效果 在LED燈上面表現(xiàn)出來。/
18、分頻計數(shù)器。得到 0.5秒的頻率always ( posedge clk_50M ) beginif ( f_count=12500000 ) / beginf_div_clk=f_div_clk; /f_count=0;endelsef_count=f_count+1; / f_led_out=f_div_clk; /end我們現(xiàn)在用count這個計數(shù)器讓它自加到12,500,000HZ在這里我們就得到了0.25秒變化一次的信號。所以一個周期就是 0.5也就是2H乙計數(shù)器自加。利用分頻計數(shù)器得到顯示一秒的閃爍效果 在LED燈上面表現(xiàn)出來。endmodule第三個:module ledsan(clk,led,res);input clk;output5:0 led;input res;reg 26:0 count;reg 5:0 led;always (posedge clk)begincount=count+1;endalways (posedge clk,negedge res)beginif(!res)beginled=6b000000;endelsebegincase(count26:23)4d0: led=6b111110; X miao4d1: led=6b111101; 丫 mi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享門市出租合同樣本
- 2025至2030中國健身BCCA補(bǔ)充劑行業(yè)競爭格局與消費趨勢研究報告
- 2025至2030中國低溫制冷設(shè)備行業(yè)投資潛力與運行態(tài)勢剖析報告
- 2025至2030中國不銹鋼表面處理行業(yè)競爭現(xiàn)狀及投資風(fēng)險評估報告
- 2025-2030騎馬設(shè)備行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030集成保護(hù)的EMI解決方案行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030葡萄干產(chǎn)業(yè)規(guī)劃專項研究報告
- 2025-2030膨松劑行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030納米多彩微晶石行業(yè)市場發(fā)展分析及前景趨勢與投資管理研究報告
- 2025-2030登山器材行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 活體抵押協(xié)議書
- 幼兒園美術(shù)課上課流程
- 《危重癥患兒管飼喂養(yǎng)護(hù)理》中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)解讀
- 2025年四川甘孜州能源發(fā)展集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年全國保密教育線上培訓(xùn)考試試題庫(網(wǎng)校專用)附答案詳解
- 購買防雨棚合同協(xié)議
- 2025中美關(guān)稅戰(zhàn)時政述評-初中《道法》25年時政述評課件
- 危險化學(xué)品MSDS(二乙二醇)
- 中國鐵建股份公司專業(yè)技術(shù)職務(wù)任職資格評審暫行規(guī)定
- (完整版)業(yè)務(wù)連續(xù)性計劃BCP
- 《期中考試家長會》PPT課件
評論
0/150
提交評論