摘 要: 通過對(duì)數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì),介紹了基于VHDL語言的數(shù)字系統(tǒng)層次化設(shè)計(jì)方法。首先將數(shù)字系統(tǒng)按功能劃分為不同的模塊,各模塊電路的設(shè)計(jì)通過VHDL語言編程實(shí)現(xiàn),然后建立頂層電路原理圖。使用MAX+PLUS II開發(fā)軟件完成設(shè)計(jì)輸入、編譯、邏輯綜合和功能仿真,最后在CPLD上實(shí)現(xiàn)數(shù)字系統(tǒng)的設(shè)計(jì)。結(jié)果表明,使用這種設(shè)計(jì)方法可以大大地簡(jiǎn)化硬件電路的結(jié)構(gòu),具有可靠性高、靈活性強(qiáng)等特點(diǎn)。
關(guān)鍵詞: EDA技術(shù);VHDL;數(shù)字系統(tǒng);CPLD
電子設(shè)計(jì)自動(dòng)化EDA(Electronic Design Automation)是隨著電子系統(tǒng)設(shè)計(jì)技術(shù)的發(fā)展而發(fā)展起來的一門新技術(shù)。它是以計(jì)算機(jī)為工作平臺(tái),以EDA軟件為開發(fā)環(huán)境,以硬件描述語言HDL(Hardware Description Language)為設(shè)計(jì)語言,以可編程邏輯器件PLD(Programmable Logic Device)為實(shí)驗(yàn)載體,以專用集成電路(ASIC)芯片為設(shè)計(jì)的目標(biāo)器件,自動(dòng)完成用軟件的方式設(shè)計(jì)電子系統(tǒng)到硬件系統(tǒng)的一門新技術(shù)[1-2]。參考文獻(xiàn)[3-6]闡述了隨著電子設(shè)計(jì)技術(shù)的發(fā)展EDA技術(shù)的發(fā)展過程,直到20世紀(jì)90年代EDA技術(shù)得到全新的發(fā)展。這一階段的主要特征是以高級(jí)硬件描述語言(VHDL、AHDL或Verilog HDL)、系統(tǒng)級(jí)仿真和綜合技術(shù)為特點(diǎn),采用“自頂向下”的設(shè)計(jì)理念,實(shí)現(xiàn)了整個(gè)系統(tǒng)設(shè)計(jì)過程的自動(dòng)化。
EDA技術(shù)的關(guān)鍵之一是用硬件描述語言對(duì)硬件電路進(jìn)行描述。在各種類型的硬件描述語言中,超高速集成電路硬件描述語言VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一種全方位的硬件描述語言,1987年被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言[7-8]。它用軟件編程的方式來描述硬件系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,包括系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流、行為3種描述形式的混合描述,幾乎覆蓋了以往各種硬件描述語言的功能,整個(gè)“自頂向下”或“自底向上”的電路設(shè)計(jì)過程都可以用VHDL來完成。在電子設(shè)計(jì)工程領(lǐng)域,它承擔(dān)了幾乎全部數(shù)字系統(tǒng)的設(shè)計(jì)任務(wù),更適合大規(guī)模數(shù)字系統(tǒng)的設(shè)計(jì)。本文以Altera公司提供的MAX+PLUS II為平臺(tái),通過對(duì)數(shù)字頻率計(jì)的設(shè)計(jì),介紹基于VHDL的數(shù)字系統(tǒng)層次化設(shè)計(jì)方法。
1 數(shù)字頻率計(jì)設(shè)計(jì)系統(tǒng)的組成
本設(shè)計(jì)中的數(shù)字頻率計(jì)是一個(gè)8位十進(jìn)制數(shù)字頻率計(jì),它由3個(gè)模塊組成:一個(gè)測(cè)頻控制信號(hào)發(fā)生器模塊TESTCTL、8個(gè)具有時(shí)鐘使能的十進(jìn)制計(jì)數(shù)器模塊CNT10和一個(gè)32 bit鎖存器模塊REG32B。數(shù)字頻率計(jì)系統(tǒng)的頂層電路原理圖如圖1所示。
2 各模塊電路的設(shè)計(jì)及仿真
2.1 測(cè)頻控制信號(hào)發(fā)生器的設(shè)計(jì)
頻率測(cè)量的基本原理是計(jì)算每秒中內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),這就要求測(cè)頻信號(hào)發(fā)生器TESTCTL的計(jì)數(shù)使能信號(hào)TSTEN能產(chǎn)生一個(gè)1 s脈寬的周期信號(hào),并對(duì)頻率計(jì)的每一計(jì)數(shù)器的使能端EN進(jìn)行同步控制。當(dāng)TSTEN為高電平時(shí),允許計(jì)數(shù);低電平時(shí),停止計(jì)數(shù),并保持其所計(jì)的數(shù)。在停止計(jì)數(shù)期間,首先需要一個(gè)鎖存信號(hào)LOAD的上升沿將計(jì)數(shù)器在前1 s鐘計(jì)數(shù)值鎖存進(jìn)32 bit鎖存器REG32B,由外部的7段譯碼器譯出并穩(wěn)定顯示。鎖存信號(hào)之后,必須有一清零信號(hào)CLR對(duì)計(jì)數(shù)器進(jìn)行清零,為下一秒鐘的計(jì)數(shù)作準(zhǔn)備。測(cè)頻控制信號(hào)發(fā)生器模塊用VHDL語言編程實(shí)現(xiàn),程序如下:
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;
將該模塊的設(shè)計(jì)通過MAX+PLUS II軟件進(jìn)行輸入、編譯、邏輯綜合和功能仿真,驗(yàn)證設(shè)計(jì)的正確性。測(cè)頻控制信號(hào)發(fā)生器的仿真結(jié)果如圖2所示。
2.2 十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)
此計(jì)數(shù)器的特殊之處在于有一個(gè)時(shí)鐘使能輸入端EA,用于鎖定計(jì)數(shù)值。當(dāng)EA為高電平時(shí)允許計(jì)數(shù),低電平時(shí)禁止計(jì)數(shù)。十進(jìn)制計(jì)數(shù)器的仿真波形如圖3所示。
2.3 32位鎖存器的設(shè)計(jì)
設(shè)置鎖存器的作用是使顯示的數(shù)據(jù)穩(wěn)定,不會(huì)由于周期性的清零信號(hào)而不斷閃爍。如果有32 bit BCD碼存在于此模塊的輸入口,在信號(hào)LOAD的上升沿后即被鎖存到寄存器內(nèi)部,并由鎖存器的輸出端輸出,然后由7段譯碼器譯成能在數(shù)碼管上顯示的對(duì)應(yīng)數(shù)值。
3 頂層電路的設(shè)計(jì)及仿真
使用MAX+PLUS II的文本輸入方式完成各模塊程序的輸入,將各程序進(jìn)行編譯、仿真,然后生成各模塊的默認(rèn)電路符號(hào)。建立系統(tǒng)頂層原理圖文件,調(diào)用各模塊電路符號(hào),按圖1完成系統(tǒng)頂層原理圖設(shè)計(jì),并對(duì)系統(tǒng)原理圖進(jìn)行編譯、邏輯綜合及仿真。最后將設(shè)計(jì)結(jié)果下載到指定的CPLD芯片,連接硬件電路,最終完成整個(gè)系統(tǒng)的設(shè)計(jì)。8位十進(jìn)制數(shù)字頻率計(jì)系統(tǒng)的仿真結(jié)果如圖4所示。
EDA技術(shù)徹底改變了數(shù)字系統(tǒng)的設(shè)計(jì)方法和實(shí)現(xiàn)手段,使電子系統(tǒng)的設(shè)計(jì)由硬件設(shè)計(jì)轉(zhuǎn)變?yōu)橐訴HDL語言為核心的編程設(shè)計(jì),借助于國(guó)際標(biāo)準(zhǔn)的VHDL語言和強(qiáng)大的EDA工具,使電子系統(tǒng)的設(shè)計(jì)變得思路簡(jiǎn)單,功能明了。使用CPLD可以反復(fù)進(jìn)行硬件實(shí)驗(yàn),降低了硬件電路的復(fù)雜程度,且設(shè)計(jì)電路的保密性強(qiáng)。通過修改程序就可以非常方便地修改設(shè)計(jì),提高了設(shè)計(jì)的靈活性,大大縮短了設(shè)計(jì)周期,提高了設(shè)計(jì)的效率。與以前的傳統(tǒng)設(shè)計(jì)相比,本文的設(shè)計(jì)具有硬件電路簡(jiǎn)單、可靠性高、靈活性強(qiáng)等特點(diǎn)。
參考文獻(xiàn)
[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] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004.
[3] 廖超平,鄧力,韋彬,等.EDA技術(shù)[M].北京:北京理工大學(xué)出版社,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技術(shù)中的可靠性設(shè)計(jì)方法與策略[J].計(jì)算機(jī)與數(shù)字工程,2000,28(5):6-10,20.
[7] 劉愛榮,王振成,曹瑞,等.EDA技術(shù)與CPLD/FPGA開發(fā)應(yīng)用簡(jiǎn)明教程[M].北京:清華大學(xué)出版社,2007.
[8] 駱珊,黃明達(dá).VHDL電路結(jié)構(gòu)優(yōu)化設(shè)計(jì)探討[J].計(jì)算機(jī)應(yīng)用,2001,27(4):14-15,26.