所謂“分頻”,就是把輸入信號的頻率變成成倍數(shù)地低于輸入頻率的輸出信號。數(shù)字電路中的分頻器主要是分為兩種:整數(shù)分頻和小數(shù)分頻。其中整數(shù)分頻又分為偶分頻和奇分頻,首先從偶分頻開始吧,入門先從簡單的開始!
一、2^n的偶分頻器設(shè)計(jì)
先來看最簡單的最常見的一個例子——2分頻。
假設(shè)輸入時鐘clk是100MHz(T=10ns),要求得到一個50MHz的輸出時鐘clk_out,二分頻波形應(yīng)該如下圖所示:
該波形的實(shí)際電路只需要一個D觸發(fā)器便可以完成,將Q非的輸出接到D端輸入,便可以實(shí)現(xiàn)二分頻電路,如下圖所示。
由此可以得出,所有2^n次方的偶分頻(即二分頻、四分頻、八分頻等等)都可以用觸發(fā)器級聯(lián)的方式得到,例如兩個觸發(fā)器級聯(lián)就是四分頻,三個觸發(fā)器級聯(lián)就是八分頻,如此類推。
這種級聯(lián)觸發(fā)器的方式優(yōu)缺點(diǎn)分析:
優(yōu)點(diǎn) :
1、能得到占空比為50%的波形;
2、所使用的的資源也比較少。
缺點(diǎn) : 唯一比較大的缺點(diǎn)就是觸發(fā)器之間有一定的延時。 因?yàn)轵?qū)動clk_out的觸發(fā)器是由clk作為時鐘的,那么這個觸發(fā)器的Q端變化相比于clk有一個必不可少的clk-to-q延時,例如下圖的q3與q1之間的差距就是clk-to-q延時造成的。
這個clk-to-q延時根據(jù)不同的工藝,數(shù)值會不同。這個clk-to-q的延時在做時鐘樹綜合的時候是要考慮進(jìn)去的。特別是如果你還期望clk和clk_out是同步的時鐘,時鐘邊沿要對齊的話,在做clock tree的時候要給clk的tree加一些buffer來彌補(bǔ)這個clk-to-q。 而如果你是用了好幾個分頻器級聯(lián)產(chǎn)生更低頻率,那么每一級的分頻器都會貢獻(xiàn)一個clk-to-q延時,那么你需要平衡時鐘的時候就需要插入更多的buffer,這部分buffer又占面積,又耗功耗,甚至可能導(dǎo)致時鐘無法平衡。 所以這是需要大家在設(shè)計(jì)的時候考慮進(jìn)去的。
二、任意偶數(shù)的分頻器設(shè)計(jì)
除了上面那種做法之外,對于任意偶數(shù)分頻的設(shè)計(jì)還有一種傳統(tǒng)的做法就是通過計(jì)數(shù)器的形式完成設(shè)計(jì)。例如要設(shè)計(jì)一個四分頻,波形如圖所示。cnt計(jì)數(shù)了DIV_NUM/2-1次之后取反,便可以得到任意偶數(shù)分頻的波形, 任意偶數(shù)分頻通用代碼如下所示 。
`timescale 1ns/1ps
module CLK_DIV #(parameter DIV_NUM=4)(
input clk,
input rst_n,
output reg clk_out
);
reg[3:0] cnt;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
cnt <= 4'b0;
else begin
if(cnt == (DIV_NUM/2)-1)
cnt <= 4'b0;
else
cnt <= cnt + 1'b1;
end
end
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
clk_out <= 1'b0;
else begin
if(cnt == (DIV_NUM/2)-1)
clk_out <= ~clk_out;
end
end
-
驅(qū)動器
+關(guān)注
關(guān)注
53文章
8272瀏覽量
147075 -
分頻器
+關(guān)注
關(guān)注
43文章
447瀏覽量
50075 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94999 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
48021 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17236
發(fā)布評論請先 登錄
相關(guān)推薦
基于FPGA的任意數(shù)值分頻器的設(shè)計(jì)
基于FPGA的任意分頻器設(shè)計(jì)
用Verilog實(shí)現(xiàn)基于FPGA的通用分頻器
基于FPGA 的等占空比任意整數(shù)分頻器的設(shè)計(jì)
什么是分頻器 分頻器介紹
用Verilog實(shí)現(xiàn)基于FPGA的通用分頻器的設(shè)計(jì)
分頻器有哪些_分頻器分類
FPGA學(xué)習(xí)系列:13. 任意分頻器設(shè)計(jì)
![FPGA學(xué)習(xí)系列:13. <b class='flag-5'>任意</b><b class='flag-5'>分頻器</b>設(shè)計(jì)](https://file.elecfans.com/web1/M00/53/3D/pIYBAFsfeS-ADHt4AAAjGyDkdas982.png)
MC4018構(gòu)成的數(shù)控分頻器
基于FPGA的整數(shù)倍分頻器設(shè)計(jì)
![基于FPGA的整數(shù)倍<b class='flag-5'>分頻器</b>設(shè)計(jì)](https://file.elecfans.com/web1/M00/82/C0/pIYBAFw9n4WARdjPAAC2lqjFJJ4965.png)
分頻器的作用是什么 半整數(shù)分頻器原理圖分析
![<b class='flag-5'>分頻器</b>的作用是什么 半整數(shù)<b class='flag-5'>分頻器</b>原理圖分析](https://file.elecfans.com/web1/M00/82/43/o4YBAFw9qHuANfFwAACMlAL49bc630.png)
基于FPGA的整數(shù)倍分頻器設(shè)計(jì)
偶數(shù)分頻器的設(shè)計(jì)
![<b class='flag-5'>偶數(shù)分頻器</b>的設(shè)計(jì)](https://file1.elecfans.com/web2/M00/81/E5/wKgZomQb-PCAYscLAAAST87vYYQ722.jpg)
FPGA學(xué)習(xí)-分頻器設(shè)計(jì)
![FPGA學(xué)習(xí)-<b class='flag-5'>分頻器</b>設(shè)計(jì)](https://file1.elecfans.com//web2/M00/AC/5C/wKgaomVEqIKAce7zAAATANfInjY840.png)
評論