1 引言 數字頻率計是通信設備、音、視頻等科研生產領域不可缺少的測量儀器。采用Verilog HDL編程設計實現的數字頻率計,除被測信號的整形部分、鍵輸入部分和數碼顯示部分外,其余全部在一片FPGA芯片上實現。整個系統非常精簡,且具有靈活的現場可更改性。 相比傳統的電路系統設計方法,EDA技術采用VHDL語言描述電路系統,包括電路的結構、行為方式、邏輯功能及接口。Verilog HDL具有多層次描述系統硬件功能的能力,支持自頂向下的設計特點。設計者可不必了解硬件結構。從系統設計入手,在頂層進行系統方框圖的劃分和結構設計,在方框圖一級用Ver-ilog HDL對電路的行為進行描述,并進行仿真和糾錯,然后在系統一級進行驗證,最后再用邏輯綜合優化工具生成具體的門級邏輯電路的網表,下載到具體的FPGA器件中去,從而實現FPGA的設計。 2 測量原理及總體結構框圖 頻率測量方法有2種。一種是測頻法,在一定時間間隔TM內測出待測信號重復變化次數N,則被測信號的頻率為fx=N/TM。另一種方法是測周法,在被測信號的一個周期內測出標準高頻信號fs的個數N,則被測頻率為fx=fs/N。可見測頻法對高頻信號有較高的測量精度,而測周法對低頻信號的測量精度較高。本頻率測量系統采用測頻法和測周法相結合的方法,使兩者的測量帶寬得到了互補,而且采用了延時為納秒級的FPCA來實現,從而極大地提高了系統工作帶寬和系統測量精度。此外,具有自動測頻和測周轉換量程功能,每個數量級為一個量程,每個量程保留3位有效數字,用“xxxEx"表示“x.xx×10x”。 本頻率計由控制模塊、測頻模塊、測周期算頻模塊、鎖存顯示模塊4個模塊組成。總體框圖如圖1所示。 系統結構框圖中信號說明。singal:被測信號。Stateshift:測頻或測周期得出的量程不夠或溢出信號。reset:復位信號。iclk:輸入標準時鐘12MHz。en_precent:顯示占空比的按鍵信號。oclk:控制模塊輸出基本時鐘,根據不同狀態對iclk進行分頻而得。en:使能信號。state_jmp:狀態跳變信號。oen_precent:由控制模塊輸出的占空比顯示信號。condition:狀態輸出信號。load:允許輸出顯示信號。data[11:0]:計算所得數據,3位有效數字。out[19:0]:最終的輸出顯示數據,為“xxxEx”。 3 相應模塊分析及設計 3.1 控制模塊 該控制模塊有11種狀態。在1 Hz~100MHz范圍內每個數量級為一種狀態,共8種,小于1 Hz大于100MHz為兩種量程溢出狀態,還有一種為顯示占空比狀態。當進入兩種量程溢出狀態后,若被測信號又進入量程,控制器又能回到8種正常顯示狀態中去。8種數量級的狀態中,每種狀態對應一個基本時鐘,每個基本時鐘都由iclk(12 MHz)分頻而來,為了保證誤差在2%以內,本控制模塊選擇保留3位有效數字。 3.2 測頻模塊 測頻模塊在數字頻率計中是一個比較重要的模塊,要想使頻率計能自動測頻,還需要一個測頻控制電路,要求它能產生3個控制信號:CN,LOAD和reset,以便使頻率計能順利完成測頻3步:計數、鎖存和清0。 測頻模塊的基本思路是:在1個clk周期內對進來的signal進行計數,clk的第1個上升沿用來清零,之后的1個下降沿到下個周期的下降沿,這段時間用來計數,在之后的半個周期用以輸出使能,所以整個計算過程需要2個clk周期。測頻模塊測頻得出的數據為100~999,若小于100,則cntlow=1,量程太大;若大于999,則cntover=1,量程溢出。 3.3 測周期算頻模塊 該模塊由3個小模塊構成,即測量信號高電平時間的模塊(scale_fre_high)、測量信號周期的模塊(scale_fre)和除法器模塊(div)。其中的測量信號周期的模塊就是測頻模塊的一種變形,把被測信號和基本時鐘的輸入對調一下,所以在命名上還是一致的。而測量信號高電平時間的模塊也是在測頻模塊的基礎上修改而來的。該模塊框架圖如圖2所示。 3.4 鎖存顯示模塊 鎖存顯示模塊包括鎖存和顯示兩部分。鎖存模塊是在信號LOAD的上升沿鎖存到寄存器里面,并由REG的輸出端輸出,然后由開發系統板顯示輸出對應的數值。顯示模塊的主要工作是產生數碼管顯示所需的控制信號和數據信號。模塊內用于循環顯示的基準時鐘經分頻處理后得到。顯示模塊將二進制的結果信號轉換成BCD碼的形式輸入給數碼管,同時對數碼管以較高的頻率不斷重復進行刷新。 鎖存顯示模塊,輸入3位有效數字,輸出5位數“xxxEx”,前3位為需要顯示的3位有效數字,后2位據輸入的當前狀態,顯示被測信號頻率所處的數量級。 下面是鎖存顯示模塊的源程序: 4 系統仿真 該頻率計設計利用EDA工具MAX_PLUS2進行了仿真,整個系統仿真波形如圖3所示。 程序一開始未進入量程,于是慢慢調整,當進入到狀態2時,在測量范圍內,測出其周期為175,用除法器求其倒數,結果為571,完全正確。隨著被測信號頻率變大,跳入直接測頻范圍,則直接測出頻率結果,也同樣正確。仿真結果說明程序無誤。 5 結束語 根據頻率測量原理,把測頻法和測周法結合起來,確定了低頻段采用測周法,高頻段采用測頻法,實現了在其可測量程內的測量結果優于普通測量方法,且系統硬件電路結構簡單,軟件設計容易,已得到較好的實際應用。 |