一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最為常見的分頻器分4種分析

FPGA之家 ? 來源:博客園 ? 作者:super_star123 ? 2021-06-13 17:11 ? 次閱讀

分頻器是用的最廣的一種FPGA電路了,我最初使用的是crazybingo的一個任意分頻器,可以實現(xiàn)高精度任意分頻的一個通用模塊,他的思想在于首先指定計數(shù)器的位寬比如32位,那么這個計數(shù)器的最大值就是2^32=4294967296,

假設(shè)系統(tǒng)時鐘為50MHz,那么假如要想實現(xiàn)輸出頻率為fout,那么可以使用的頻率控制字為:

K滿足關(guān)系:

ad35649a-c5fc-11eb-9e57-12bb97331649.png,那么設(shè)計計數(shù)器在每個時鐘上升沿累加的值為K,當(dāng)計數(shù)值為2^31時,clkout=1;否則clkout=0.最終即可以實現(xiàn)任意頻率的輸出,精度的計算方法為當(dāng)K=1時,可以得到clkout=0.0116415321826934814453125Hz,也即是說可以輸出的最小頻率為0.011Hz

此外我們最為常見的分頻器分為以下4種分析:

1.偶數(shù)分頻

最簡單,要想得到分頻系數(shù)為N的頻率輸出,設(shè)定一個計數(shù)器,這個計數(shù)器從零開始加1,當(dāng)加到N/2-1時計數(shù)器清零,或者clkout翻轉(zhuǎn),以此循環(huán),即可實現(xiàn)偶數(shù)倍分頻。

2.奇數(shù)分頻(分占空比不確定以及占空比50%)

方法一:分頻系數(shù)為N,占總比不確定:以三(N)分頻為例,上升沿觸發(fā)計數(shù),計數(shù)器計數(shù)到1(N-1)/2時輸出時鐘翻轉(zhuǎn),計數(shù)到2(N-1)時再次翻轉(zhuǎn)。代碼為產(chǎn)生1/11占空比為十一分頻時鐘:在計數(shù)值為9和10時均反轉(zhuǎn)時鐘,是產(chǎn)生抽樣脈沖的有效方法:

always @(posedge clk or posedge rst) begin

if(rst)begin //復(fù)位

cnt《=0;

clk_div11《=0;

end

elseif(cnt==9) begin

clk_div11《=~clk_div11; //時鐘翻轉(zhuǎn)

cnt《=cnt+1; //繼續(xù)計數(shù)

end

elseif(cnt==10) begin

clk_div11《=~clk_div11; //時鐘翻轉(zhuǎn)

cnt《=0; //計數(shù)清零

end

else

cnt《=cnt+1;

end

占空比50% ,則可以在上面的基礎(chǔ)上,加上一個下降沿觸發(fā)計數(shù),然后將上升沿和下降沿產(chǎn)生的時鐘進(jìn)行相或運算,即可得到奇數(shù)分頻輸出。

reg clk1;

reg[1:0]cnt1;

always@(posedge clk or posedge rst) begin

if(rst)begin //復(fù)位

cnt1《=0;

clk1《=0;

end

elseif(cnt1==1) begin

clk1《=~clk1; //時鐘翻轉(zhuǎn)

cnt1《=cnt1+1; //繼續(xù)計數(shù)

end

elseif(cnt1==2) begin

clk1《=~clk1; //時鐘翻轉(zhuǎn)

cnt1《=0; //計數(shù)清零

end

else

cnt1《=cnt1+1;

end

reg clk2;

reg[1:0]cnt2;

always@(negedge clk or posedge rst) begin

if(rst)begin //復(fù)位

cnt2《=0;

clk2《=0;

end

elseif(cnt2==1) begin

clk2《=~clk2; //時鐘翻轉(zhuǎn)

cnt2《=cnt2+1; //繼續(xù)計數(shù)

end

elseif(cnt2==2) begin

clk2《=~clk2; //時鐘翻轉(zhuǎn)

cnt2《=0; //計數(shù)清零

end

else

cnt2《=cnt2+1;

end

assign clk_div3=clk1 | clk2; //或運算

方法二:對進(jìn)行奇數(shù)倍n分頻時鐘,先進(jìn)行n/2分頻,然后在二分頻得到(這部分先講半整數(shù)分頻)

親測有效代碼:

module ModuloN_Cntr(input clk,rst,output clk_out);

reg [1:0]cnt1;

reg [1:0]cnt2;

reg temp1,temp2;

always@(posedge clk or negedge rst)

begin

if(~rst)

begin

cnt1《=0;

temp1《=0;

end

else

begin

if(cnt1==2)

begin

temp1《=1;

cnt1《=0;

end

else

begin

cnt1《=cnt1+1;

temp1《=0;

end

end

end

always@(negedge clk or negedge rst)

begin

if(~rst)

begin

cnt2《=0;

temp2《=0;

end

else

begin

if(cnt2==2)

begin

temp2《=1;

cnt2《=0;

end

else

begin

cnt2《=cnt2+1;

temp2《=0;

end

end

end

assign clk_out=temp1|temp2;

endmodule

仿真波形:

3.半整數(shù)分頻

半整數(shù)指的是N+0.5分頻器設(shè)計:先進(jìn)行模N+1計數(shù),計數(shù)到N時輸出時鐘賦值為1,然后當(dāng)計數(shù)到0時,輸出時鐘賦值為0,因此保持計數(shù)值為N的時間為半個時鐘周期即為設(shè)計的關(guān)鍵,從中可以發(fā)現(xiàn),計數(shù)器是在時鐘的上升沿計數(shù),那么我們可以讓時鐘在計數(shù)值為N時,將計數(shù)觸發(fā)時鐘翻轉(zhuǎn),時鐘的下降沿變?yōu)樯仙?,因此計?shù)值為0,所以每產(chǎn)生一個N+0.5分頻時鐘周期,觸發(fā)時鐘都要翻轉(zhuǎn)一次,以2.5分頻為例程序如下:

//異或運算

assignclk_in=clk^clk_div2;

//模3計數(shù)器

reg clk_out;

reg [1:0]cnt;

always@(posedge clk_in or posedge rst) begin

if(rst)begin //復(fù)位

cnt《=0;

clk_out《=0;

end

elseif(cnt==1) begin

clk_out《=~clk_out; //時鐘翻轉(zhuǎn)

cnt《=cnt+1; //繼續(xù)計數(shù)

end

elseif(cnt==2) begin

clk_out《=~clk_out; //時鐘翻轉(zhuǎn)

cnt《=0; //計數(shù)清零

end

else

cnt《=cnt+1;

end

//2分頻

reg clk_div2;

always@(posedge clk_out or posedge rst) begin

if(rst) clk_div2《=0; //復(fù)位

else clk_div2=~clk_div2;

end

那么5.5分頻呢:

代碼:通用的這里N=5;

module ModuloN_Cntr(clk,clk_div,temp1,temp2);//N+0.5

input clk;

output clk_div;

reg[31:0]cnt1=0;

reg[31:0]cnt2=0;

output reg temp1,temp2;

initial begin temp1=0;temp2=1;end //首先進(jìn)行初始化,temp1=0;temp2=1

parameter N=5; //設(shè)定分頻系數(shù)為N+0.5

always @(posedge clk) //temp1上升沿跳變

begin

if(cnt1==2*N) //2*N

begin cnt1[31:0]《=32‘d0;end

else begin cnt1[31:0]《=cnt1[31:0]+32’d1;end

if(cnt1==32‘d0) begin temp1《=1;end //高電平時間為N+1;

if(cnt1==N+1) begin temp1《=0;end //低電平時間為N;

end

always@(negedge clk) //temp2下降沿跳變

begin

if(cnt2==2*N) //2*N

begin cnt2[31:0]《=32’d0;end

else begin cnt2[31:0]《=cnt2[31:0]+32‘d1;end

if(cnt2==32’d0) begin temp2《=0;end //低電平時間為N;

if(cnt2==N) begin temp2《=1;end //高電平時間為N+1;

end

assign clk_div=temp1&&temp2; //邏輯與

endmodule

//如果要進(jìn)行N+0.5分頻

//思路:總的來說要進(jìn)行N+1+N=2N+1次分頻

//在時鐘的上升沿和下降沿都進(jìn)行跳變

//上升沿進(jìn)行占空比為N+1比N的時鐘temp1;

//下降沿進(jìn)行占空比為N比N+1的時鐘temp2;

//最后div=temp1&&temp2 即可得到所需要的半整數(shù)分頻

仿真波形:

4.任意小數(shù)分頻

小數(shù)分頻器的實現(xiàn)方法有很多中,但其基本原理都一樣的,即在若干個分頻周期中采取某種方法使某幾個周期多計或少計一個數(shù),從而在整個計數(shù)周期的總體平均意義上獲得一個小數(shù)分頻比。一般而言,這種分頻由于分頻輸出的時鐘脈沖抖動很大,故在設(shè)計中的使用已經(jīng)非常少。但是,這也是可以實現(xiàn)的。以8.7倍分頻為例,本文僅僅給出雙模前置小數(shù)分頻原理的verilog代碼及其仿真圖(如圖6),具體原理可以參考劉亞海的《基于FPGA的小數(shù)分頻器的實現(xiàn)》以及毛為勇的《基于FPGA的任意小數(shù)分頻器的設(shè)計》。

//8分頻

reg clk_div8;

reg[2:0]cnt_div8;

always@(posedge clk or posedge rst) begin

if(rst)begin //復(fù)位

clk_div8《=0;

cnt_div8《=0;

end

elseif(cnt_div8==3‘d7) begin

clk_div8《=1; //置1

cnt_div8《=0;

end

elseif(cnt_div8==3’d0) begin

clk_div8《=0; //置0

cnt_div8《=cnt_div8+1;

end

else

cnt_div8《=cnt_div8+1;

end

//9分頻

reg clk_div9;

reg[3:0]cnt_div9;

always@(posedge clk or posedge rst) begin

if(rst)begin //復(fù)位

clk_div9《=0;

cnt_div9《=0;

end

elseif(cnt_div9==3‘d8) begin

clk_div9《=1; //置1

cnt_div9《=0;

end

elseif(cnt_div9==3’d0) begin

clk_div9《=0; //置0

cnt_div9《=cnt_div9+1;

end

else

cnt_div9《=cnt_div9+1;

end

//控制信號

parameterDiv8Num=3;

reg ctrl;

reg[3:0]AddValue;

always@(posedge clk or posedge rst) begin

if(rst)begin //復(fù)位

ctrl《=0;

AddValue《=10-7;

end

elseif(AddValue《10) begin

ctrl《=0;

AddValue《=AddValue+Div8Num;

end

else begin

ctrl《=1;

AddValue《=AddValue-10;

end

end

//選擇輸出

reg clk_out;

always @(ctrlor posedge clk or posedge rst) begin

if(rst) clk_out《=0; //復(fù)位

elseif(ctrl) clk_out《=clk_div8;

elseclk_out《=clk_div9;

end

4、總結(jié)分頻器是FPGA的基礎(chǔ),而且在FPGA邏輯電路設(shè)計的時候是經(jīng)常使用的,希望大家對以上的整數(shù)倍分頻和半整數(shù)倍分頻能熟練掌握

原文標(biāo)題:關(guān)于分頻器的FPGA實現(xiàn)整理思路

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1643

    文章

    21923

    瀏覽量

    612377
  • 分頻器
    +關(guān)注

    關(guān)注

    43

    文章

    489

    瀏覽量

    50694

原文標(biāo)題:關(guān)于分頻器的FPGA實現(xiàn)整理思路

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    ADF4007高頻分頻器/PLL頻率合成器技術(shù)手冊

    ADF4007是一款高頻分頻器/PLL頻率合成器,可用于各種通信應(yīng)用。RF端工作頻率可達(dá)7.5 GHz,PFD端工作頻率可達(dá)120 MHz。它由低噪聲數(shù)字鑒頻鑒相(PFD)、精密電荷泵和分頻器
    的頭像 發(fā)表于 04-27 15:23 ?91次閱讀
    ADF4007高頻<b class='flag-5'>分頻器</b>/PLL頻率合成器技術(shù)手冊

    ADF4110/ADF4111/ADF4112/ADF4113單通道、整數(shù)N分頻、550 MHz PLL,內(nèi)置可編程預(yù)分頻器和電荷泵技術(shù)手冊

    ADF4110系列頻率合成器在無線接收機和發(fā)射機的上變頻和下變頻部分中,可用來實現(xiàn)本振。上述器件由低噪聲數(shù)字鑒頻鑒相(PFD)、精密電荷泵、可編程基準(zhǔn)分頻器、可編程A和B計數(shù)以及雙模預(yù)分頻
    的頭像 發(fā)表于 04-27 10:43 ?86次閱讀
    ADF4110/ADF4111/ADF4112/ADF4113單通道、整數(shù)N<b class='flag-5'>分頻</b>、550 MHz PLL,內(nèi)置可編程預(yù)<b class='flag-5'>分頻器</b>和電荷泵技術(shù)手冊

    HMC705LP4/HMC705LP4E 6.5GHz可編程分頻器SMT技術(shù)手冊

    HMC705LP4(E)是一款低噪聲GaAs HBT可編程分頻器,采用4x4 mm無引腳表貼封裝。 該分頻器可以通過編程設(shè)置為以N = 1到N = 17之間的任意數(shù)字進(jìn)行
    的頭像 發(fā)表于 04-18 14:14 ?109次閱讀
    HMC705LP<b class='flag-5'>4</b>/HMC705LP<b class='flag-5'>4</b>E 6.5GHz可編程<b class='flag-5'>分頻器</b>SMT技術(shù)手冊

    HMC447LC3使用InGaP HBT技術(shù),4分頻,采用SMT封裝技術(shù)手冊

    HMC447LC3是一款低噪聲4分頻再生分頻器,采用InGaP GaAs HBT技術(shù)。 這款寬帶分頻器的工作輸入頻率為10到26 GHz,可接受極寬范圍的輸入功率水平。 HMC447L
    的頭像 發(fā)表于 04-18 09:25 ?119次閱讀
    HMC447LC3使用InGaP HBT技術(shù),<b class='flag-5'>4</b><b class='flag-5'>分頻</b>,采用SMT封裝技術(shù)手冊

    HMC365 InGaP HBT 4分頻芯片,DC-13GHz技術(shù)手冊

    HMC365是低噪聲的4分頻靜態(tài)分頻器,使用InGaP GaAs HBT技術(shù),擁有1.30 x 0.69 mm的小巧尺寸。此器件在DC(使用方波輸入)至13 GHz的輸入頻率下工作,使用+5V DC
    的頭像 發(fā)表于 04-17 10:53 ?140次閱讀
    HMC365 InGaP HBT <b class='flag-5'>4</b><b class='flag-5'>分頻</b>芯片,DC-13GHz技術(shù)手冊

    ADF5001 4GHz 至18GHz 4分頻預(yù)分頻器技術(shù)手冊

    ADF5001預(yù)分頻器是一款低噪聲、低功耗、固定RF分頻器模塊 ,可用來將高達(dá)18GHz的頻率分頻至適合輸入到[ADF4156]或 [ADF4106]等PLL IC的較低頻率。ADF5001提供
    的頭像 發(fā)表于 04-16 15:50 ?153次閱讀
    ADF5001 <b class='flag-5'>4</b>GHz 至18GHz <b class='flag-5'>4</b><b class='flag-5'>分頻</b>預(yù)<b class='flag-5'>分頻器</b>技術(shù)手冊

    ADF5002 4GHz至18GHz 8分頻預(yù)分頻器技術(shù)手冊

    ADF5002預(yù)分頻器是一款低噪聲、低功耗、固定RF分頻器模塊,可用來將高達(dá)18GHz的頻率分頻至適合輸入到 [ADF4156]或[ADF4106]等PLL IC的較低頻率。ADF5002提供8
    的頭像 發(fā)表于 04-16 15:46 ?186次閱讀
    ADF5002 <b class='flag-5'>4</b>GHz至18GHz 8<b class='flag-5'>分頻</b>預(yù)<b class='flag-5'>分頻器</b>技術(shù)手冊

    ADF5000 4GHz 至18GHz 2分頻預(yù)分頻器技術(shù)手冊

    ADF5000預(yù)分頻器是一款低噪聲、低功耗、固定RF分頻器模塊,可用來將高達(dá)18 GHz的頻率分頻至適合輸入到[ADF4156]等PLL IC的較低頻率。ADF5000提供2分頻功能,
    的頭像 發(fā)表于 04-16 15:16 ?166次閱讀
    ADF5000 <b class='flag-5'>4</b>GHz 至18GHz 2<b class='flag-5'>分頻</b>預(yù)<b class='flag-5'>分頻器</b>技術(shù)手冊

    HMC959LC3提供復(fù)位功能和可編程輸出電壓的26GHz 4分頻器件,采用SMT封裝技術(shù)手冊

    HMC959LC3是一款帶復(fù)位功能的4分頻器件,設(shè)計支持高達(dá)26 GHz的時鐘頻率。 正常工作時,在復(fù)位引腳未置位的情況下,輸出在時鐘正沿上從之前的狀態(tài)開始切換。 這樣便可實現(xiàn)4分頻
    的頭像 發(fā)表于 04-16 14:16 ?135次閱讀
    HMC959LC3提供復(fù)位功能和可編程輸出電壓的26GHz <b class='flag-5'>4</b><b class='flag-5'>分頻器</b>件,采用SMT封裝技術(shù)手冊

    分頻器的定義和作用

    分頻器是一電子電路或裝置,其核心功能是將輸入信號分離成多個具有不同頻率范圍的輸出信號。這些輸出信號的帶寬均小于原始輸入信號的帶寬,使得每個頻段的信號都能針對性地進(jìn)行處理或應(yīng)用。分頻器廣泛應(yīng)用于通信、測量、音頻處理等領(lǐng)域,是電子
    的頭像 發(fā)表于 10-09 15:12 ?5684次閱讀

    UPB586B分頻器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《UPB586B分頻器規(guī)格書.pdf》資料免費下載
    發(fā)表于 09-30 14:34 ?0次下載

    DC/DC轉(zhuǎn)換中電阻反饋分頻器的設(shè)計考慮

    電子發(fā)燒友網(wǎng)站提供《DC/DC轉(zhuǎn)換中電阻反饋分頻器的設(shè)計考慮.pdf》資料免費下載
    發(fā)表于 08-26 14:52 ?0次下載
    DC/DC轉(zhuǎn)換<b class='flag-5'>器</b>中電阻反饋<b class='flag-5'>分頻器</b>的設(shè)計考慮

    PE35400高性能超CMOS預(yù)分頻器英文手冊

    電子發(fā)燒友網(wǎng)站提供《PE35400高性能超CMOS預(yù)分頻器英文手冊.pdf》資料免費下載
    發(fā)表于 07-31 13:21 ?0次下載

    一個簡單的分頻器電路分享

    這是一個簡單的分頻器電路,該電路的優(yōu)點是電路小,它僅使用晶體管和其他幾個組件。
    的頭像 發(fā)表于 06-10 15:55 ?2523次閱讀
    一個簡單的<b class='flag-5'>分頻器</b>電路分享

    CMOS24級分頻器CD4521B TYPES數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CMOS24級分頻器CD4521B TYPES數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-22 09:47 ?0次下載
    CMOS24級<b class='flag-5'>分頻器</b>CD4521B TYPES數(shù)據(jù)表