徐 雷,孫長智
(亳州學(xué)院電子與信息工程系,安徽亳州236800)
在數(shù)字系統(tǒng)設(shè)計中,時鐘信號是最重要的信號之一,經(jīng)常需要使用分頻器對某個給定頻率的時鐘信號進行分頻操作,得到所需頻率的時鐘信號。根據(jù)設(shè)計需要,會遇到偶數(shù)分頻、奇數(shù)分頻等。在某些設(shè)計中,系統(tǒng)不僅對頻率有要求,而且對占空比也有嚴(yán)格的要求[1]。對于偶數(shù)分頻器及非等占空比的奇數(shù)分頻器,實現(xiàn)較為簡單,但對等占空比的奇數(shù)分頻器的實現(xiàn)較為困難[2],這是因為計數(shù)器為奇數(shù),前半個和后半個周期所包含的不是整數(shù)個輸入時鐘脈沖的周期[3]。本文以等占空比的七分頻器的設(shè)計為例,使用Verilog HDL(Hardware Description Language)實現(xiàn)了與邏輯關(guān)系法和或邏輯關(guān)系法七分頻器的設(shè)計,并利用Quartus II進行仿真,驗證了設(shè)計的正確性。
Verilog HDL是一種用文本方式描述的數(shù)字電路和數(shù)字系統(tǒng)的語言[4]。Verilog HDL類似于C語言,語法簡潔,結(jié)構(gòu)自由,入門較易,對底層電路描述能力較強,允許設(shè)計者在不同的抽象層次上對數(shù)字電路進行建模,同時還能夠?qū)λO(shè)計的數(shù)字電路進行邏輯綜合、仿真以及時序分析。采用Verilog HDL設(shè)計的數(shù)字電路具有如下優(yōu)點:可以直接嵌入到多種應(yīng)用系統(tǒng)中;可以與其他電路一起設(shè)計在同一塊FPGA上,提高系統(tǒng)集成度和FPGA的利用率;可以邊設(shè)計邊調(diào)試,有效提高設(shè)計效率,縮短設(shè)計周期[5]。
以設(shè)計2n+1分頻器為目標(biāo)(n為大于1的正整數(shù)),與邏輯關(guān)系法實現(xiàn)的等占空比奇數(shù)分頻器的設(shè)計步驟如下:(1)定義兩個2n+1進制的計數(shù)器對系統(tǒng)時鐘的上升沿和下降沿分別進行計數(shù);(2)定義兩個一位的寄存器類型的中間變量,其中一個用于寄存上升沿的狀態(tài),另一個用于寄存下降沿的狀態(tài);(3)當(dāng)上升沿計數(shù)器有連續(xù)n+1個上升沿時,用于寄存上升沿狀態(tài)的寄存器變量為高電平,其余情況該寄存器變量的狀態(tài)為低電平;當(dāng)下降沿計數(shù)器有連續(xù)n+1個下降沿時,用于寄存下降沿狀態(tài)的寄存器變量為高電平,其余情況為低電平;(4)把兩個寄存器變量進行與邏輯關(guān)系運算,其結(jié)果就是等占空比2n+1分頻器的輸出。
以七分頻等占空比為例,驗證與邏輯關(guān)系法的正確性。按照與邏輯關(guān)系法的設(shè)計步驟,利用兩個七進制計數(shù)器分別對數(shù)字電路系統(tǒng)時鐘clk的上升沿和下降沿分別進行計數(shù),定義兩個一位的寄存器變量clk_p和clk_n作為中間變量;當(dāng)上升沿計數(shù)器為1、2、3、4時,clk_p為高電平,其余情況(5、6、0)clk_p為低電平;當(dāng)下降沿計數(shù)器為1、2、3、4時,clk_n為高電平,其余情況(5、6、0)clk_n為低電平。寄存器變量clk_p和clk_n進行與邏輯關(guān)系運算得到的結(jié)果即為七分頻器的輸出結(jié)果clk_7,其原理如圖1所示。
利用Quartus II9.0自帶的仿真軟件實現(xiàn)了上述與邏輯關(guān)系法設(shè)計的等占空比的七分頻器,仿真結(jié)果如圖2所示。
圖1 與邏輯關(guān)系法實現(xiàn)等占空比七分頻器原理圖
圖2 與邏輯關(guān)系法實現(xiàn)等占空比七分頻器的設(shè)計仿真結(jié)果
以設(shè)計2n+1分頻器為目標(biāo)(n為大于1的正整數(shù)),或邏輯關(guān)系法設(shè)計等占空比奇數(shù)分頻器的設(shè)計步驟如下:(1)定義兩個2n+1進制的計數(shù)器分別對系統(tǒng)時鐘clk的上升沿和下降沿進行計數(shù);(2)定義兩個一位的寄存器類型的變量,其中一個用于寄存上升沿的狀態(tài),另一個用于寄存下降沿的狀態(tài);(3)當(dāng)上升沿計數(shù)器有連續(xù)n個上升沿時,用于寄存上升沿狀態(tài)的寄存器變量為高電平,其余情況該寄存器變量的狀態(tài)為低電平;當(dāng)下降沿計數(shù)器有連續(xù)n個下降沿時,用于寄存下降沿狀態(tài)的寄存器變量為高電平,其余情況該寄存器變量的狀態(tài)為低電平;(4)把兩個寄存器變量進行或邏輯關(guān)系運算,其結(jié)果就是等占空比2n+1分頻器的輸出。
以七分頻等占空比為例,驗證或邏輯關(guān)系法的正確性。按照或邏輯關(guān)系法設(shè)計步驟,利用兩個七進制計數(shù)器分別對數(shù)字電路系統(tǒng)時鐘clk的上升沿和下降沿進行計數(shù),定義兩個一位的寄存器變量clk_p和clk_n作為中間變量,當(dāng)上升沿計數(shù)器為1、2、3時,clk_p為高電平,其余情況(4、5、6、0)clk_p為低電平;當(dāng)下降沿計數(shù)器為1、2、3時,clk_n為高電平,其余情況(4、5、6、0)clk_n為低電平。寄存器變量clk_p和clk_n進行或邏輯關(guān)系運算的結(jié)果即為七分頻器的輸出結(jié)果clk_7,其原理如圖3所示。
利用Quartus II9.0軟件自帶的仿真工具實現(xiàn)了或邏輯關(guān)系法設(shè)計的等占空比的七分頻器,仿真結(jié)果如圖4所示。
圖3 或邏輯關(guān)系法實現(xiàn)等占空比的七分頻器原理圖
圖4 或邏輯關(guān)系法實現(xiàn)等占空比的七分頻器的設(shè)計仿真結(jié)果
本文在介紹了與邏輯關(guān)系法和或邏輯關(guān)系法實現(xiàn)等占空比奇數(shù)分頻器設(shè)計方法的基礎(chǔ)上,分別以等占空比七分頻器的設(shè)計為例,利用Quartus II9.0自帶的仿真工具對兩種方法設(shè)計的七分頻器進行了功能仿真,仿真結(jié)果證明了兩種設(shè)計方法都能夠?qū)崿F(xiàn)等占空比七分頻器,從而說明利用這兩種方法可以實現(xiàn)任意等占空比的奇數(shù)分頻器設(shè)計。