所謂“分頻”,就是把輸入信號的頻率變成成倍數(shù)地低于輸入頻率的輸出信號。數(shù)字電路中的分頻器主要是分為兩種:整數(shù)分頻和小數(shù)分頻。其中整數(shù)分頻又分為偶分頻和奇分頻,首先從偶分頻開始吧,入門先從簡單的開始!
一、2^n的偶分頻器設計
先來看最簡單的最常見的一個例子——2分頻。
假設輸入時鐘clk是100MHz(T=10ns),要求得到一個50MHz的輸出時鐘clk_out,二分頻波形應該如下圖所示:
該波形的實際電路只需要一個D觸發(fā)器便可以完成,將Q非的輸出接到D端輸入,便可以實現(xiàn)二分頻電路,如下圖所示。
由此可以得出,所有2^n次方的偶分頻(即二分頻、四分頻、八分頻等等)都可以用觸發(fā)器級聯(lián)的方式得到,例如兩個觸發(fā)器級聯(lián)就是四分頻,三個觸發(fā)器級聯(lián)就是八分頻,如此類推。
這種級聯(lián)觸發(fā)器的方式優(yōu)缺點分析:
優(yōu)點:1、能得到占空比為50%的波形;
2、所使用的的資源也比較少。
缺點: 唯一比較大的缺點就是觸發(fā)器之間有一定的延時。因為驅動clk_out的觸發(fā)器是由clk作為時鐘的,那么這個觸發(fā)器的Q端變化相比于clk有一個必不可少的clk-to-q延時,例如下圖的q3與q1之間的差距就是clk-to-q延時造成的。
這個clk-to-q延時根據(jù)不同的工藝,數(shù)值會不同。這個clk-to-q的延時在做時鐘樹綜合的時候是要考慮進去的。特別是如果你還期望clk和clk_out是同步的時鐘,時鐘邊沿要對齊的話,在做clock tree的時候要給clk的tree加一些buffer來彌補這個clk-to-q。而如果你是用了好幾個分頻器級聯(lián)產生更低頻率,那么每一級的分頻器都會貢獻一個clk-to-q延時,那么你需要平衡時鐘的時候就需要插入更多的buffer,這部分buffer又占面積,又耗功耗,甚至可能導致時鐘無法平衡。所以這是需要大家在設計的時候考慮進去的。
二、任意偶數(shù)的分頻器設計
除了上面那種做法之外,對于任意偶數(shù)分頻的設計還有一種傳統(tǒng)的做法就是通過計數(shù)器的形式完成設計。例如要設計一個四分頻,波形如圖所示。cnt計數(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
-
分頻器
+關注
關注
43文章
493瀏覽量
51272 -
數(shù)字電路
+關注
關注
193文章
1641瀏覽量
82026 -
分頻
+關注
關注
0文章
253瀏覽量
25148 -
小數(shù)分頻
+關注
關注
0文章
7瀏覽量
6741
發(fā)布評論請先 登錄
基于FPGA的任意數(shù)值分頻器的設計
簡單組合時序電路設計
基于FPGA 的等占空比任意整數(shù)分頻器的設計
FPGA實現(xiàn)小數(shù)分頻器

用Verilog實現(xiàn)基于FPGA的通用分頻器的設計
分頻器的作用是什么 半整數(shù)分頻器原理圖分析

基于復雜可編程邏輯器件和VHDL語言實現(xiàn)半整數(shù)分頻器的設計

奇數(shù)分頻器的介紹和實現(xiàn)

偶數(shù)分頻、奇數(shù)分頻、半整數(shù)分頻和小數(shù)分頻詳解

評論