這裡參考了兩個部落格,內容大體相同。
但是要說一點,這兩個部落格在介紹奇數分頻時,都說了一段話:
「對於實現占空比為50%的n倍奇數分頻,首先進行上公升沿觸發進行模n計數,計數選定到某乙個值進行輸出時鐘翻轉,然後經過(n-1)/2再次進行翻轉得到乙個占空比非50%奇數n分頻時鐘。再者同時進行下降沿觸發的模n計數,到和上公升沿觸發輸出時鐘翻轉選定值相同值時,進行輸出時鐘時鐘翻轉,同樣經過(n-1)/2時,輸出時鐘再次翻轉生成占空比非50%的奇數n分頻時鐘。」
(n-1)/2」,那麼你這個 』某乙個值』應該 只能是n-(n-1)/2=(n+1)/2.
我不知道這麼理解對不對,但是根據上面部落格的介紹和筆者的實驗,的確只能是(n+1)/2。
下面是乙個n=5 分頻的例子,下圖1 是假如選定「某一數值」為1 ,再反轉的數值為(5-1)/2=2;顯然沒有實現5分頻
圖1下圖2是「某一數值」為4的時候的時序圖,可以看出仍然分頻失敗:
圖2上面兩個圖都違背了作者模n的計數法則,下圖3「某一數值」為3;因為3+2=5,那麼這個分頻是正確的,可以看出這個某一數值只能為3,不能「某」這個混淆視聽的字眼來形容這個數值。不過我也感受到了國內網上部落格大多以訛傳訛的陋習
圖3
三 基於Verilog的奇偶分頻器設計
在對時鐘進行分頻時,如果要保證設計出的時鐘占空比為 50 需要考慮的問題是分頻係數是偶數還是奇數。針對分頻係數的奇偶性,設計出對應的 module 偶分頻電路指的是分頻係數為 2 4 6 8 等偶數整數的分頻電路,我們可以直接進行分頻。例如下面 divider.v 中,對輸入時鐘進行 6 分頻,即假...
Verilog 時鐘偶分頻 奇分頻 任意分頻
分頻器是指使輸出訊號頻率為輸入訊號頻率整數分之一的電子電路。偶分頻計數器 偶分頻比較簡單,假設為n分頻,只需計數到n 2 1,然後時鐘翻轉 計數清零,如此迴圈就可以得到n 偶 分頻。如下 module even divider clk in,rst n,even en,偶分頻使能訊號,方便後續設計任...
關於verilog分頻程式
眾所周知,分頻器是fpga設計中使用頻率非常高的基本設計之一,儘管在目前大部分設計中,廣泛使用晶元廠家整合的鎖相環資源,如altera 的pll,xilinx的dll.來進行時鐘的分頻,倍頻以及相移。但是對於時鐘要求不高的基本設計,通過語言進行時鐘的分頻相移仍然非常流行,首先這種方法可以節省晶元內部...