摘 要: 通過對數字頻率計系統的設計,介紹了基于VHDL語言的數字系統層次化設計方法。首先將數字系統按功能劃分為不同的模塊,各模塊電路的設計通過VHDL語言編程實現,然后建立頂層電路原理圖。使用MAX+PLUS II開發軟件完成設計輸入、編譯、邏輯綜合和功能仿真,最后在CPLD上實現數字系統的設計。結果表明,使用這種設計方法可以大大地簡化硬件電路的結構,具有可靠性高、靈活性強等特點。
關鍵詞: EDA技術;VHDL;數字系統;CPLD
電子設計自動化EDA(Electronic Design Automation)是隨著電子系統設計技術的發展而發展起來的一門新技術。它是以計算機為工作平臺,以EDA軟件為開發環境,以硬件描述語言HDL(Hardware Description Language)為設計語言,以可編程邏輯器件PLD(Programmable Logic Device)為實驗載體,以專用集成電路(ASIC)芯片為設計的目標器件,自動完成用軟件的方式設計電子系統到硬件系統的一門新技術[1-2]。參考文獻[3-6]闡述了隨著電子設計技術的發展EDA技術的發展過程,直到20世紀90年代EDA技術得到全新的發展。這一階段的主要特征是以高級硬件描述語言(VHDL、AHDL或Verilog HDL)、系統級仿真和綜合技術為特點,采用“自頂向下”的設計理念,實現了整個系統設計過程的自動化。
EDA技術的關鍵之一是用硬件描述語言對硬件電路進行描述。在各種類型的硬件描述語言中,超高速集成電路硬件描述語言VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一種全方位的硬件描述語言,1987年被IEEE和美國國防部確認為標準硬件描述語言[7-8]。它用軟件編程的方式來描述硬件系統的邏輯功能、電路結構和連接形式,包括系統行為級、寄存器傳輸級和邏輯門級多個設計層次,支持結構、數據流、行為3種描述形式的混合描述,幾乎覆蓋了以往各種硬件描述語言的功能,整個“自頂向下”或“自底向上”的電路設計過程都可以用VHDL來完成。在電子設計工程領域,它承擔了幾乎全部數字系統的設計任務,更適合大規模數字系統的設計。本文以Altera公司提供的MAX+PLUS II為平臺,通過對數字頻率計的設計,介紹基于VHDL的數字系統層次化設計方法。
1 數字頻率計設計系統的組成
本設計中的數字頻率計是一個8位十進制數字頻率計,它由3個模塊組成:一個測頻控制信號發生器模塊TESTCTL、8個具有時鐘使能的十進制計數器模塊CNT10和一個32 bit鎖存器模塊REG32B。數字頻率計系統的頂層電路原理圖如圖1所示。
2 各模塊電路的設計及仿真
2.1 測頻控制信號發生器的設計
頻率測量的基本原理是計算每秒中內待測信號的脈沖個數,這就要求測頻信號發生器TESTCTL的計數使能信號TSTEN能產生一個1 s脈寬的周期信號,并對頻率計的每一計數器的使能端EN進行同步控制。當TSTEN為高電平時,允許計數;低電平時,停止計數,并保持其所計的數。在停止計數期間,首先需要一個鎖存信號LOAD的上升沿將計數器在前1 s鐘計數值鎖存進32 bit鎖存器REG32B,由外部的7段譯碼器譯出并穩定顯示。鎖存信號之后,必須有一清零信號CLR對計數器進行清零,為下一秒鐘的計數作準備。測頻控制信號發生器模塊用VHDL語言編程實現,程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY TESTCTL IS
PORT(CLK:IN STD_LOGIC;
TSTEN: OUT STD_LOGIC;
CLR: OUT STD_LOGIC;
LOAD: OUT STD_LOGIC);
END TESTCTL;
ARCHITECTURE BEHAVE OF TESTCTL IS
SIGNAL DIV2CLK: STD_LOGIC;
BEGIN
PROCESS (CLK)
BEGIN
IF CLK′EVENT AND CLK=′1′ THEN
DIV2CLK<=NOT DIV2CLK;
END IF;
END PROCESS;
PROCESS (CLK, DIV2CLK)
BEGIN
IF CLK=′0′ AND DIV2CLK=′0′ THEN
CLR<=′1′;
ELSE CLR<=′0′;
END IF;
END PROCESS;
LOAD<=NOT DIV2CLK;
TSTEN<=DIV2CLK;
END BEHAVE;
將該模塊的設計通過MAX+PLUS II軟件進行輸入、編譯、邏輯綜合和功能仿真,驗證設計的正確性。測頻控制信號發生器的仿真結果如圖2所示。
2.2 十進制計數器的設計
此計數器的特殊之處在于有一個時鐘使能輸入端EA,用于鎖定計數值。當EA為高電平時允許計數,低電平時禁止計數。十進制計數器的仿真波形如圖3所示。
2.3 32位鎖存器的設計
設置鎖存器的作用是使顯示的數據穩定,不會由于周期性的清零信號而不斷閃爍。如果有32 bit BCD碼存在于此模塊的輸入口,在信號LOAD的上升沿后即被鎖存到寄存器內部,并由鎖存器的輸出端輸出,然后由7段譯碼器譯成能在數碼管上顯示的對應數值。
3 頂層電路的設計及仿真
使用MAX+PLUS II的文本輸入方式完成各模塊程序的輸入,將各程序進行編譯、仿真,然后生成各模塊的默認電路符號。建立系統頂層原理圖文件,調用各模塊電路符號,按圖1完成系統頂層原理圖設計,并對系統原理圖進行編譯、邏輯綜合及仿真。最后將設計結果下載到指定的CPLD芯片,連接硬件電路,最終完成整個系統的設計。8位十進制數字頻率計系統的仿真結果如圖4所示。
EDA技術徹底改變了數字系統的設計方法和實現手段,使電子系統的設計由硬件設計轉變為以VHDL語言為核心的編程設計,借助于國際標準的VHDL語言和強大的EDA工具,使電子系統的設計變得思路簡單,功能明了。使用CPLD可以反復進行硬件實驗,降低了硬件電路的復雜程度,且設計電路的保密性強。通過修改程序就可以非常方便地修改設計,提高了設計的靈活性,大大縮短了設計周期,提高了設計的效率。與以前的傳統設計相比,本文的設計具有硬件電路簡單、可靠性高、靈活性強等特點。
參考文獻
[1] Wang Liqin, Shen Lin. The application of EDA technology in education reform of system of hardware courses for electric information specialties[C]. Proceedings of 2010 International Conference on Future Information Technology and Management Engineering, 2010:268-271.
[2] 譚會生,張昌凡.EDA技術及應用[M].西安:西安電子科技大學出版社,2004.
[3] 廖超平,鄧力,韋彬,等.EDA技術[M].北京:北京理工大學出版社,2009.
[4] Qi Haibing. Application of EDA technology on professional teaching for electronic information engineering[C]. 2010 International Conference on E-Health Networking, Digital Ecosystems and Technologies Proceedings,2010(2):203-206.
[5] SCHEFFER L, LAVAGNO L, MARTIN G. EDA for IC system design, verification, and testing[M]. U.S.A. Florida: CRC Press, 2006.
[6] 韓威.EDA技術中的可靠性設計方法與策略[J].計算機與數字工程,2000,28(5):6-10,20.
[7] 劉愛榮,王振成,曹瑞,等.EDA技術與CPLD/FPGA開發應用簡明教程[M].北京:清華大學出版社,2007.
[8] 駱珊,黃明達.VHDL電路結構優化設計探討[J].計算機應用,2001,27(4):14-15,26.