偶數(shù)分頻原理
偶數(shù)分頻最為簡(jiǎn)單,很容易用模為N的計(jì)數(shù)器實(shí)現(xiàn)50%占空比的時(shí)鐘信號(hào),即每次計(jì)數(shù)滿(mǎn)N(計(jì)到N-1)時(shí)輸出時(shí)鐘信號(hào)翻轉(zhuǎn)。
以4分頻為例,波形圖如下:
奇數(shù)分頻原理
方法一
使用模為2N+1的計(jì)數(shù)器,讓輸出時(shí)鐘在X-1(X在0到2N-1之間)和2N時(shí)各翻轉(zhuǎn)一次,則可得到奇數(shù)分頻器,但是占空比并不是50%(應(yīng)為 X/(2N+1))。
得到占空比為50%的奇數(shù)分頻器的基本思想是:將得到的上升沿觸發(fā)計(jì)數(shù)的奇數(shù)分頻輸出信號(hào)CLK1,和得到的下降沿觸發(fā)計(jì)數(shù)的相同(時(shí)鐘翻轉(zhuǎn)值相同)奇數(shù)分頻輸出信號(hào)CLK2,CLK1和CLK2占空比不是50%而是低電平2周期,高電平1周期。
最后將CLK1和CLK2相或之后輸出,就可以得到占空比為50%的奇數(shù)分頻器。時(shí)序圖如下,紅線(xiàn)就是我們要的50%占空比三分頻結(jié)果:
方法二
和方法一唯一的區(qū)別是,CLK1和CLK2相反,高電平變低電平,低電平變高電平,最終輸出的分頻時(shí)鐘是CLK1&CLK2。所以注意區(qū)別。波形圖如下:
整數(shù)數(shù)分頻原理
總結(jié)1和2,設(shè)整數(shù)位N,當(dāng)N為偶數(shù)時(shí),cnt>1)。這是一個(gè)編程的技巧。
代碼的一些具體技巧我將它放在了代碼注釋里面,希望大家好好看看。
設(shè)計(jì)思路
很多人在問(wèn)我,拿到一個(gè)設(shè)計(jì)的時(shí)候如何去找思路。相信這也是很初學(xué)者的疑惑。一般推薦按照以下步驟來(lái)設(shè)計(jì),一步步解決。
1.分解功能模塊——分解到每個(gè)模塊你都是能夠想得到辦法解決的為止,前期不要練習(xí)復(fù)雜的模塊,推薦練習(xí)的有今天的各種分頻,以后還可以嘗試分?jǐn)?shù)分頻,UART,localbus,SPI,IIC這些是我推薦給大家練習(xí)的,由易到難。
2.每個(gè)分解的最小功能模塊畫(huà)出時(shí)序圖,就像今天文章里分頻的時(shí)序圖一樣,主要是幫你了解到每個(gè)時(shí)鐘周期是怎么工作的,原理上是怎么實(shí)現(xiàn)的,時(shí)序圖一出來(lái),整個(gè)思路都清晰了。
3.組合功能模塊,保證模塊之間的時(shí)序是滿(mǎn)足要求的,自底向上往上堆,每堆一個(gè)模塊仿真一下,堆到頂層通過(guò)頂層仿真就算初步完成了功能的要求
設(shè)計(jì)整數(shù)分頻
上面說(shuō)了方法這里我們來(lái)試驗(yàn)下
1.分解模塊功能,也就是畫(huà)出總體框圖
2.畫(huà)時(shí)序圖,每個(gè)分頻模塊的時(shí)序圖前面已經(jīng)畫(huà)過(guò)了,奇偶選擇沒(méi)有時(shí)序圖,就是一個(gè)選擇開(kāi)關(guān),奇數(shù)分頻系數(shù)選擇奇數(shù)分頻模塊輸出,偶數(shù)分頻系數(shù)選擇偶數(shù)分頻輸出。
3.拼湊——奇偶分頻各寫(xiě)一個(gè)alwyas,最后加上奇偶選擇,如果不熟悉可以分成兩個(gè)單獨(dú)的.v文件寫(xiě),最后封裝到頂層。
設(shè)計(jì)在以上步驟以及完成了,現(xiàn)在我們來(lái)看看仿真結(jié)果:
7分頻
6分頻
-
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
26423 -
分頻器
+關(guān)注
關(guān)注
43文章
445瀏覽量
49587 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2241瀏覽量
93978 -
UART接口
+關(guān)注
關(guān)注
0文章
124瀏覽量
15199 -
Verilog語(yǔ)言
+關(guān)注
關(guān)注
0文章
113瀏覽量
8192
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論