verilog_實現(xiàn)任意占空比、任意分頻的方法

verilog_實現(xiàn)任意占空比、任意分頻的方法

ID:3140742

大小:56.00 KB

頁數(shù):15頁

時間:2017-11-19

verilog_實現(xiàn)任意占空比、任意分頻的方法_第1頁
verilog_實現(xiàn)任意占空比、任意分頻的方法_第2頁
verilog_實現(xiàn)任意占空比、任意分頻的方法_第3頁
verilog_實現(xiàn)任意占空比、任意分頻的方法_第4頁
verilog_實現(xiàn)任意占空比、任意分頻的方法_第5頁
資源描述:

《verilog_實現(xiàn)任意占空比、任意分頻的方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、分頻程序雖然簡單,但我覺得由簡入難是學(xué)習(xí)的一個必然階段,慢慢的我們自然會成長起來。所以如果有時間的話,大家都可以將自己的這種“小程序”貼到論壇上來。如果你的程序好,其他人也可以學(xué)習(xí);如果你的程序有問題,大家可以一起幫你找問題,共同進(jìn)步。還有,我覺得在發(fā)貼的時候,最好能將原理說一下。一來大家看你的貼能學(xué)到東西;二來也方便解答你的問題,不然還得解答者自己去找資料搞懂原理,然后再回答你,回答你問題的人自然也就不多了。說了一些題外話,下面轉(zhuǎn)入正文:在verilog程序設(shè)計中,我們往往要對一個頻率進(jìn)行任意分頻,而且占空比也有一定的要求這樣的話,對

2、于程序有一定的要求,現(xiàn)在我在前人經(jīng)驗的基礎(chǔ)上做一個簡單的總結(jié),實現(xiàn)對一個頻率的任意占空比的任意分頻。比如:我們FPGA系統(tǒng)時鐘是50MHz,而我們要產(chǎn)生的頻率是880Hz,那么,我們需要對系統(tǒng)時鐘進(jìn)行分頻。我們很容易想到用計數(shù)的方式來分頻:50000000/880=56818這個數(shù)字不是2的整冪次方,那么怎么辦呢?我們可以設(shè)定一個參數(shù),讓它到56818的時候重新計數(shù)不就完了嗎?呵呵,程序如下:modulediv(clk,clk_div);inputclk;outputclk_div;reg[15:0]counter;always@(po

3、sedgeclk)if(counter==56817)counter<=0;elsecounter<=counter+1;assignclk_div=counter[15];endmodule//modulediv(clk,rst,clk_div);inputclk,rst;outputregclk_div;reg[15:0]counter;salways@(posedgeclk)if(!rst)begincounter<=0;clk_div<=0;endelseif(counter==56817)begincounter<=0;clk

4、_div<~clk_div;endelsecounter<=counter+1;endmodule下面我們來算一下它的占空比:我們清楚地知道,這個輸出波形在counter為0到32767的時候為低,在32767到56817的時候為高,占空比為40%多一些,如果我們需要占空比為50%,那么怎么辦呢?不用急,慢慢來。我們再設(shè)定一個參數(shù),使它為56817的一半,使達(dá)到它的時候波形翻轉(zhuǎn),那不就完了嗎?呵呵,再看看:modulediv(clk,clk_div);inputclk;outputclk_div;reg[14:0]counter;alw

5、ays@(posedgeclk)if(counter==28408)counter<=0;elsecounter<=counter+1;regclk_div;always@(posedgeclk)if(counter==28408)clk_div<=~clk_div;endmodule占空比是不是神奇地變成50%了呢?呵呵。繼續(xù)讓我們來看如何實現(xiàn)任意占空比,比如還是由50M分頻產(chǎn)生880Hz,而分頻得到的信號的占空比為30%。56818×30%=17045modulediv(clk,reset,clk_div,counter);inpu

6、tclk,reset;outputclk_div;output[15:0]counter;reg[15:0]counter;regclk_div;always@(posedgeclk)if(!reset)counter<=0;elseif(counter==56817)counter<=0;elsecounter<=counter+1;always@(posedgeclk)if(!reset)clk_div<=0;elseif(counter<17045)clk_div<=1;elseclk_div<=0;endmodule三分頻的Ve

7、rilog實現(xiàn)//很實用也是筆試面試時??嫉模呀?jīng)經(jīng)過仿真占空比要求50%和不要求占空比差別會很大,先看一個占空比50%的描述modulediv3(CLKIN,CLKOUT,RESETn);inputCLKIN,RESETn;outputCLKOUT;?//internalcountersignalsreg[1:0]count_a;reg[1:0]count_b;reg?????CLKOUT;?always@(negedgeRESETnorposedgeCLKIN)begin???if(RESETn==1'b0)???????count

8、_a<=2'b00;???else???????if(count_a==2'b10)???????????count_a<=2'b00;???????else???????????count_a<=coun

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。