作用
分頻器主要用於提供不同相位和頻率的時鍾
前提
分頻后的時鍾頻率都小於原始時鍾的頻率,若沒有更高頻的主時鍾無法得到同步分頻時鍾;
時鍾分配原則
時鍾的分頻應當在規划的初期就進行考慮,也就是在系統層面上進行考慮,而不是到后端設計的時候。時鍾分配策略的考慮因素包含以下幾點:
- 系統的時鍾分配計划,主要包含時鍾樹方案,各個模塊的時鍾頻率等;
- 時鍾的最小延時,主要是根據系統運行速度定義最小延時要求,與時鍾的分配計划有重疊?
- 時鍾緩沖,考慮負載問題,往往也是在設計時鍾樹時應當考慮的問題;
- 消除時鍾偏移,時鍾偏移總是存在的,如何減小時鍾偏移以達到預期效果需要考慮;
- 門控時鍾,軟硬件協同設計等盛典模式的考慮,需要具體情況具體分析,還可從低功耗設計角度進行觀察。
一、偶數分頻器:
分頻原理:
以獲得ƒ/2n的時鍾信號為例:一個周期內,占空比50%的原始時鍾信號ƒ在高電平與低電平的時間相同、相位相差180°(相反),因此相鄰的兩個上升沿(或者下降沿)的頻率必然是原始時鍾的1/2倍。之后通過Counter數n個ƒ/2信號就可以獲得ƒ/2n的時鍾信號了。
module divider #(parameter NUM_DIV = 8)( output div_clk, input clk, rst ); reg [3:0] cnt; always @(posedge clk) begin
if(!rst) cnt <=0; else if(cnt==(NUM_DIV/2)-1) cnt <= 0; else cnt <= cnt+1; end
assign div_clk = (cnt<=NUM_DIV/2-1)?1:0; endmodule
占空比為50%奇數分頻器
分頻原理:
這種分頻器有多種方法實現,其基本原理也是基於多個偶數分頻器的組合邏輯實現。
原理1:使用兩個周期為2N、相位差為90°的時鍾信號來獲得周期為N的奇數分頻器(N為odd);
原理2:使用一個(N-1)/2和(N+1)/2
原理1:
非整數分頻(非50%占分比)
非50%占分比,1.5倍頻
1.5倍頻為每三個參考時鍾包含兩個對稱的脈沖
應為在多路選擇端切換開關時兩個輸入端的延時不相等,多路器的輸出不能馬上改變,並可能在輸出始終上產生毛刺,並且隨着參考時鍾(ref_clk)頻率的增加,出現錯誤的可能性會越來越大。在仿真時可以正確工作,但是在綜合可能出現問題。
非50%占分比,4.5倍頻
根據分頻的