前面分別介紹了偶數(shù)和奇數(shù)分頻(即整數(shù)分頻),接下來本文介紹小數(shù)分頻。
對于要求相位以及占空比嚴格的小數(shù)分頻,建議采用模擬電路實現(xiàn)。 而使用數(shù)字電路實現(xiàn)只能保證盡量均勻,在長時間內(nèi)進行分頻 。
在討論小數(shù)分頻之前,先問一個問題:設(shè)計中是否真的需要50%占空比的時鐘
在回答這個問題之前,可以先回顧之前我們寫過的RTL設(shè)計,可以看一下之前的RTL設(shè)計代碼中always塊是不是大部分都是@(posedge clk)。 對于絕大多數(shù)的觸發(fā)器,其實只需要用到時鐘的上升沿觸發(fā),很少用到下降沿。 在這種情況下,只要上升沿和時鐘頻率有關(guān)系,什么時候來下降沿不重要! 所以50%的占空比不是必須的 。
因此在小數(shù)分頻器中我們關(guān)注的是如何得到一個盡量均勻的分頻信號,而不是得到一個絕對50%占空比的分頻信號。
下面以4.5倍的分頻(非50%占空比)作為例子介紹,即每9個參考時鐘包含2個對稱脈沖。 下面是4.5分頻的設(shè)計步驟。
①:使用復(fù)位值為000000001的9位移位寄存器,可以在每個時鐘上升沿使移位寄存器循環(huán)左移一位。
②:要產(chǎn)生第一個脈沖,必須使在半周期時移動第一位并將第一位與第二位進行或操作。
③:要產(chǎn)生第二個脈沖,第5位和第6位必須在半周期時移動并與原始第6位進行或操作。
注意:所有這些移位都是用來保證輸出波形不含毛刺的必要條件。
上面產(chǎn)生的時鐘占空比為40%,并且輸出的時鐘完全不含毛刺。
always@(posedge clk or negedge rst_n)
if(!rst_n)
cnt[9:1] <= 9'b000000001;
else
cnt[9:1] <= cnt[9:1] << 1;
always@(negedge clk or negedge rst_n)
if(!rst_n)begin
count1 <= 1'b0;
count5 <= 1'b0;
count6 <= 1'b0;
end
else begin
count1 <= cnt[1];
count5 <= cnt[5];
count6 <= cnt[6];
end
assign clkout = (cnt[6] | count5 | count6) |
(cnt[0] | cnt[1] |count1);
-
脈沖
+關(guān)注
關(guān)注
20文章
904瀏覽量
98500 -
分頻器
+關(guān)注
關(guān)注
43文章
526瀏覽量
51947 -
時鐘
+關(guān)注
關(guān)注
11文章
1946瀏覽量
134127 -
RTL
+關(guān)注
關(guān)注
1文章
392瀏覽量
62048 -
小數(shù)分頻
+關(guān)注
關(guān)注
0文章
7瀏覽量
6755
發(fā)布評論請先 登錄
基于FPGA的雙模前置小數(shù)分頻器的設(shè)計

FPGA眾多分頻資料,不容錯過
低通濾波器的FPGA設(shè)計及仿真
請問AD9361中ADC、DAC采樣時鐘的可設(shè)置的最小分辨率是多少?
FPGA的小數(shù)分頻器的實現(xiàn),并行快速FIR濾波器的FPGA實現(xiàn).pdf
如何在保證相位噪聲性能的基礎(chǔ)上改善整數(shù)邊界雜散達10dB?
FPGA實現(xiàn)小數(shù)分頻器

△∑小數(shù)頻率合成器中的小數(shù)分頻器設(shè)計
實現(xiàn)任意整數(shù)分頻的原理與方法講解
如何使用FPGA進行任意小數(shù)分頻器的設(shè)計

具有小數(shù)分頻器的CDCM6208 2:8時鐘生成器/抖動消除器數(shù)據(jù)表

CDCM6208V1F具有小數(shù)分頻器的2:8時鐘生成器/抖動消除器數(shù)據(jù)表

CDCM6208V2G具有小數(shù)分頻器的2:8時鐘發(fā)生器/抖動消除器數(shù)據(jù)表

評論