基于FPGA的通用數(shù)控分頻器的設(shè)計(jì)與實(shí)現(xiàn)
k2與k1一樣,唯一不同的是:k2是在clk的下降沿變化。最后將k2與k1進(jìn)行或運(yùn)算即可得到占空比50%的任意奇數(shù)分頻器。
本文引用地址:http://cafeforensic.com/article/274088.htm4.半整數(shù)分頻器
半整數(shù)分頻器原理如圖3所示[3].主要包括模M計(jì)數(shù)器,異或模塊和2分頻模塊三個(gè)部分。其設(shè)計(jì)思想是:通過異或門和2分頻模塊組成一個(gè)改變輸入頻率的脈沖添加電路,即在M-0.5個(gè)輸入信號(hào)周期內(nèi)產(chǎn)生M個(gè)計(jì)數(shù)脈沖,并將其中的一個(gè)計(jì)數(shù)脈沖的周期變?yōu)楹袃蓚€(gè)脈沖的周期。而這種改變的具體實(shí)現(xiàn)是將原始時(shí)鐘信號(hào)與2分頻模塊的輸出進(jìn)行異或。
圖3 半整數(shù)分頻器原理
另外,不難發(fā)現(xiàn)此原理圖還可以實(shí)現(xiàn)占空比為50%的2M-1倍的奇數(shù)分頻。當(dāng)M=3時(shí),其仿真結(jié)果如圖4所示。原理圖的輸出端口q即為占空比為50%的5分頻,輸出端口C為2.5分頻。
圖4 半整數(shù)分頻器仿真結(jié)果
5.數(shù)控通用分頻器的實(shí)現(xiàn)
綜上,利用模N計(jì)數(shù)器、脈沖添加電路,以及控制模塊即可實(shí)現(xiàn)占空比可調(diào)的通用分頻器。在具體設(shè)計(jì)過程中可采用層次化的設(shè)計(jì)方法。首先,設(shè)計(jì)通用分頻器中各組成電路元件,然后通過元件例化的方法,調(diào)用各元件,實(shí)現(xiàn)通用分頻器。
圖5 通用分頻器原理圖
其中:
模N計(jì)數(shù)器的實(shí)現(xiàn)可以采用兩種方式:
一是調(diào)用L P M庫(kù)中的參數(shù)化的計(jì)數(shù)器模塊LPM_COUNTER,根據(jù)向?qū)?duì)參數(shù)進(jìn)行設(shè)置,QuartusII會(huì)生成相應(yīng)的。vdh計(jì)數(shù)文本。為了能夠調(diào)用計(jì)數(shù)文本,最后還需要利用VHDL語言對(duì)該計(jì)數(shù)文本設(shè)計(jì)一個(gè)例化程序,并將其設(shè)置為頂層文件。二是利用VHDL描述語言實(shí)現(xiàn)。
二分模塊是利用D觸發(fā)器來實(shí)現(xiàn)的,即將D觸發(fā)器的輸出信號(hào)Q反饋回來作為輸入信號(hào),將模N計(jì)數(shù)器輸出信號(hào)的最高位作為D觸發(fā)器的時(shí)鐘信號(hào)。
其頂層原理圖如圖5所示。其中a為分頻模式選擇,當(dāng)a=00時(shí)進(jìn)行偶數(shù)分頻;當(dāng)a=01時(shí)進(jìn)行占空比為非50%奇數(shù)分頻;當(dāng)a=10時(shí)進(jìn)行占空比為50%的奇數(shù)分屏;當(dāng)a=11時(shí)進(jìn)行半整數(shù)分頻[2].端口M的作用是控制分頻數(shù)。端口K的作用是進(jìn)行偶數(shù)(M=2N)和奇數(shù)(M=2N+1)分頻時(shí),調(diào)節(jié)占空比,當(dāng)k=N時(shí),占空比為50%.
6.結(jié)論
本設(shè)計(jì)的最終目的是實(shí)現(xiàn)分頻器的通用性和實(shí)用性,本設(shè)計(jì)中控制端口M、K、以及計(jì)數(shù)器N的位寬均采用參數(shù)化設(shè)計(jì)思想,用戶根據(jù)需要對(duì)其稍加修改就可滿足不同的分頻需求,在一定程度上實(shí)現(xiàn)了通用性。
fpga相關(guān)文章:fpga是什么
分頻器相關(guān)文章:分頻器原理
評(píng)論