唐衛斌
(商洛學院 物理與電子信息工程系,陜西商洛 726000)
Verilog語言是應用最廣泛的硬件描述語言(HDL)之一。它是硬件(數字邏輯電路)設計人員和EDA工具之間的界面;是一種用形式化方法來描述數字電路和設計數字邏輯系統的語言。設計者可以利用這種語言來描述自己的設計思想,然后利用EDA工具進行仿真驗證和時序分析,再自動綜合到門級電路,最后用ASIC(專用集成電路)或FPGA實現其功能[1-2]。
分頻器是FPGA設計中使用頻率非常高的基本單元之一。它是將較高頻率通過分頻得到較低頻率的一種單元電路。盡管目前在大部分設計中還廣泛使用集成鎖相環 (如altera的PLL,Xilinx的DLL)來進行時鐘的分頻、倍頻以及相移設計[3],但是,對于時鐘要求不太嚴格的設計,通過自主設計進行時鐘分頻的實現方法仍是不錯的選擇。首先這種方法可以節省鎖相環資源,再者,這種方式只消耗不多的邏輯單元就可以達到對時鐘操作的目的,具有成本低、可編程等優點[4]。而使用Verilog語言進行分頻器設計在當前設計實踐中并不多見,文獻[5]中夏宇聞教授對此稍有提及,但未給出具體代碼。本文在介紹計數器設計的基礎上,給出基于計數器的分頻器設計模版,包括偶數次分頻和奇數次分頻,這些模版在當前的設計實踐中尚且空缺,因而可以給其他數字邏輯電路設計人員直接調用,或者作為庫文件使用,從而大大縮短電路設計人員的設計時間。
計數器是實現分頻電路的基礎,計數器有普通計數器和約翰遜計數器兩種。……