摘要:EDA技術(shù)綜合了現(xiàn)代電子技術(shù)和計算機(jī)技術(shù)的最新研究成果,其設(shè)計采用自頂向下的設(shè)計方法,通常采用硬件描述語言進(jìn)行電子電路設(shè)計;VHDL語言以其強(qiáng)大的建模和邏輯綜合功能成為EDA技術(shù)中應(yīng)用最廣泛的硬件描述語言之一。基于VHDL設(shè)計了交通信號燈。
關(guān)鍵詞:EDA;自頂向下;VHDL;交通信號燈
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)15-21050-04
Implementation of Traffic Signal Lights Based on VHDL
LUO Hai-tao
(School of Informatics,Guangdong University of Foreign Studies,Guangzhou 510420,China)
Abstract:EDA integrates the latest technologies of modern Electronics and Computer Science,its design adopts top down methodology,and hardware description language is used to design electronic circuit in EDA;VHDL becomes one of the most popular hardware description language because of its strong ability of modeling and syntheses.Designed traffic signal lights based on VHDL.
Key words:EDA(Electronics Design Automation);Top down;VHDL;Traffic Signal Lights
1 引言
硬件描述語言(HDL,Hardware Description Language)至今約有40余年的歷史,現(xiàn)在已成功地應(yīng)用于ASIC自動設(shè)計的模擬驗證和綜合優(yōu)化等方面。其特點是借鑒高級語言的功能特性對電路的行為與結(jié)構(gòu)進(jìn)行高度抽象化、規(guī)范化的形式描述,并對設(shè)計進(jìn)行不同層次,不同領(lǐng)域的模擬驗證與綜合優(yōu)化等處理,使設(shè)計過程達(dá)到高度自由化。
VHDL語言全稱是“超高速集成電路硬件描述語言”(Very High Speed Integrated Circuit Hardware Description Language),1982年被研發(fā)出來以。1987年底,VHDL被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言,并公布了VHDL的IEEE-1076版(87版)。1993年IEEE對VHDL進(jìn)行修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL的內(nèi)容,公布了新的VHDL版本,即IEEE標(biāo)準(zhǔn)的1076-1993版本(93版)。VHDL語言描述能力強(qiáng),覆蓋了邏輯設(shè)計的諸多領(lǐng)域和層次,大大簡化了硬件設(shè)計任務(wù),提高設(shè)計的可靠性。基于VHDL語言的設(shè)計方法得到了廣泛的應(yīng)用,VHDL語言已成為硬件描述語言的工業(yè)標(biāo)準(zhǔn)。
2 EDA技術(shù)與VHDL語言
EDA 技術(shù)是90年代迅速發(fā)展起來的,是現(xiàn)代電子設(shè)計的最新技術(shù)潮流,是綜合現(xiàn)代電子技術(shù)和計算機(jī)技術(shù)的最新研究成果,是從事電子線路設(shè)計與分析的一門技術(shù),包括電子線路的設(shè)計、計算機(jī)模擬仿真和電路分析、印制電路板的自動化設(shè)計三個方面的內(nèi)容。
進(jìn)入21世紀(jì)后,EDA技術(shù)得到了更大的發(fā)展,突出表現(xiàn)在以下幾個方面:(1)使電子設(shè)計成果以自主知識產(chǎn)權(quán)的方式得以明確表達(dá)和確認(rèn)成為可能;(2)在仿真和設(shè)計兩方面支持標(biāo)準(zhǔn)硬件描述語言的功能強(qiáng)大的EDA軟件不斷推出;(3)電子技術(shù)全方位納入EDA領(lǐng)域;(4)EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容。傳統(tǒng)的電子產(chǎn)品的設(shè)計必須經(jīng)過設(shè)計方案的提出、電原理圖設(shè)計、初步驗證、樣機(jī)制作、小批量試制、大批量生產(chǎn)等幾個過程。對于電子產(chǎn)品設(shè)計工程師而言,必須保證理論設(shè)計、初步驗證兩個過程完全正確,才能按電路原理圖繪制成電路板圖,并進(jìn)行進(jìn)一步的生產(chǎn)。
傳統(tǒng)的電子產(chǎn)品的設(shè)計通常采用自底向上(Bottom Up)電路設(shè)計方法,即首先根據(jù)系統(tǒng)對硬件的要求,寫出詳細(xì)的技術(shù)規(guī)格書,畫出系統(tǒng)的控制流程圖;其次,根據(jù)技術(shù)規(guī)格書和控制流程圖,對系統(tǒng)功能進(jìn)行細(xì)化,合理劃分功能模塊,畫出系統(tǒng)的功能框圖;然后,對各個功能模塊進(jìn)行細(xì)化和電路設(shè)計;最后,將各個功能模塊的硬件電路連接起來再進(jìn)行系統(tǒng)地調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。手工設(shè)計方法的缺點是:(1)復(fù)雜電路的設(shè)計、調(diào)試十分困難;(2)如果某一過程存在錯誤,查找和修改十分不便;(3)設(shè)計過程中產(chǎn)生大量文檔,不易管理;(4)對于集成電路設(shè)計而言,設(shè)計實現(xiàn)過程與具體生產(chǎn)工藝直接相關(guān),因此可移植性差;(5)只有在設(shè)計出樣機(jī)或生產(chǎn)出芯片后才能進(jìn)行實測。
基于EDA技術(shù)的設(shè)計則采用自頂向下的設(shè)計方法。
(1)采用可以完全獨立于目標(biāo)器件芯片物理結(jié)構(gòu)的硬件描述語言,在系統(tǒng)的基本功能或行為級上對設(shè)計的產(chǎn)品進(jìn)行描述和定義,結(jié)合多層次的仿真技術(shù),在確保設(shè)計的可行性與正確性的前提下,完成功能確認(rèn);
(2)利用EDA工具的邏輯綜合功能,把功能描述轉(zhuǎn)換成某一具體目標(biāo)芯片的網(wǎng)表文件,并將它輸出到該器件廠商的布局布線適配器,進(jìn)行邏輯映射及布局布線;
(3)利用產(chǎn)生的仿真文件進(jìn)行功能和時序驗證,以確保實際系統(tǒng)的性能。
自頂向下方法的優(yōu)點是:頂層功能描述完全獨立于目標(biāo)器件的結(jié)構(gòu),在設(shè)計的最初階段,設(shè)計人員可不受芯片結(jié)構(gòu)的約束,集中精力對產(chǎn)品進(jìn)行最適應(yīng)市場需求的設(shè)計,從而避免了傳統(tǒng)設(shè)計方法中的再設(shè)計風(fēng)險,縮短了產(chǎn)品的上市周期;設(shè)計成果的再利用得到保證;由于采用的是結(jié)構(gòu)化開發(fā)方法,因此確認(rèn)主系統(tǒng)基本結(jié)構(gòu)后,可以實現(xiàn)多人多任務(wù)的并行工作方式,提高系統(tǒng)的設(shè)計規(guī)模和效率;在選擇目標(biāo)器件的類型、規(guī)模、硬件結(jié)構(gòu)等方面具有更大的自由度。
EDA技術(shù)通常采用硬件描述語言進(jìn)行電子電路設(shè)計,EDA技術(shù)主要特點是:(1)采用硬件描述語言作為設(shè)計輸入;(2)庫(Library)的引入;(3)設(shè)計文檔的管理;(4)強(qiáng)大的系統(tǒng)建模、電路仿真功能;(5)具有自主知識產(chǎn)權(quán);(6)開發(fā)技術(shù)的標(biāo)準(zhǔn)化、規(guī)范化以及IP核的可利用性;(7)適用于高效率大規(guī)模系統(tǒng)設(shè)計的自頂向下設(shè)計方案;(8)全方位地利用計算機(jī)自動設(shè)計、仿真和測試技術(shù);(9)對設(shè)計者的硬件知識和硬件經(jīng)驗要求低;(10)高速性能好;(11)純硬件系統(tǒng)的高可靠性。
目前常用的用于EDA技術(shù)的硬件描述語言有:ABEL-HDL;Verilog HDL:IEEE 1364-1995,2001;VHDL(Very High Speed Integrated Circuit Hardware Description Language): IEEE 1076-1993。其中VHDL語言以其強(qiáng)大的行為建模、結(jié)構(gòu)建模、寄存器傳輸級描述以及邏輯綜合功能成為EDA技術(shù)中應(yīng)用最廣泛的硬件描述語言之一。
3 VHDL建模方法
VHDL建模方法一般有行為建模、結(jié)構(gòu)建模、寄存器傳輸級描述等方式。VHDL具有強(qiáng)大的行為描述能力,成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。行為描述避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)。VHDL豐富的仿真功能和庫函數(shù)可以在系統(tǒng)的設(shè)計早期階段查驗系統(tǒng)功能的可行性,并對設(shè)計進(jìn)行仿真模擬。分解大規(guī)模設(shè)計和已有設(shè)計的再利用,這是由VHDL的行為描述能力和程序結(jié)構(gòu)決定的。用VHDL完成設(shè)計后,可以用多種EDA工具進(jìn)行邏輯綜合和優(yōu)化,VHDL對設(shè)計的描述具有相對獨立性。行為建模是一種抽象描述,不是對具體電路結(jié)構(gòu)的描述,是對設(shè)計實體整體功能的描述,是高層次的概括。對系統(tǒng)進(jìn)行行為描述目的:在系統(tǒng)設(shè)計的初始階段通過對系統(tǒng)行為描述的仿真發(fā)現(xiàn)設(shè)計中存在的問題;行為描述階段不考慮用具體硬件去實現(xiàn)實際的操作和算法,主要檢驗系統(tǒng)的結(jié)構(gòu)以及工作過程能否達(dá)到系統(tǒng)設(shè)計的要求。
行為建模主要使用函數(shù)、過程和進(jìn)程,采用行為建模的方法設(shè)計的VHDL語言程序一般不能進(jìn)行綜合,必須先使用EDA工具在行為級上進(jìn)行仿真,確認(rèn)無誤后再將程序改為結(jié)構(gòu)建模或者數(shù)據(jù)流建模的VHDL語言程序,然后再進(jìn)行綜合。行為建模意義在于對復(fù)雜的、多層次的系統(tǒng)來說,行為建模使設(shè)計者在早期發(fā)現(xiàn)錯誤,并且確定設(shè)計是否合理。
結(jié)構(gòu)建模是指在層次化設(shè)計中,高層次(頂層)模塊調(diào)用低層次模塊、基本邏輯門或者基本邏輯單元來組成復(fù)雜數(shù)字電路或系統(tǒng),例如一位全加器可以由一位半加器和或門構(gòu)成,在進(jìn)行結(jié)構(gòu)建模時,可以先建立半加器和或門模塊,包裝入庫,再調(diào)用這些模塊建立全加器。這里,全加器是頂層模塊,半加器和或門是底層模塊,所以,結(jié)構(gòu)化描述體現(xiàn)了層次化設(shè)計思想。
寄存器傳輸級描述RTL(Register Transfer Level),其設(shè)計實體的描述按照從信號到信號的數(shù)據(jù)流形式,或者叫“數(shù)據(jù)流描述方式”。根據(jù)RTL描述,可以導(dǎo)出系統(tǒng)的邏輯表達(dá)式并進(jìn)行邏輯綜合,是ED設(shè)計中經(jīng)常采用的描述方法。行為方式描述的系統(tǒng)結(jié)構(gòu)程序抽象度高,很難直接映射到具體的硬件,必須先轉(zhuǎn)換為RTL方式描述的VHDL語言程序。
邏輯綜合是針對給定的電路功能和實現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計算機(jī)進(jìn)行優(yōu)化處理,獲得滿足要求的電路設(shè)計方案。邏輯綜合的依據(jù)是邏輯設(shè)計的描述和各種約束條件;邏輯綜合的結(jié)果是一個硬件電路的實現(xiàn)方案,該方案必須同時滿足預(yù)期的功能和約束條件。滿足要求的方案可能有多個,但邏輯綜合器將產(chǎn)生一個最優(yōu)或接近最優(yōu)的結(jié)果,該結(jié)果和邏輯綜合器的工作性能有關(guān)。
4 系統(tǒng)設(shè)計實現(xiàn)
本系統(tǒng)在Altera公司的Max+ Plus II 10.0 BASELINE軟件下用VHDL語言設(shè)計實現(xiàn),操作系統(tǒng)環(huán)境為Windows XP version 5.1.2600。系統(tǒng)采用自頂向下的設(shè)計方法,首先把系統(tǒng)按功能分解成4個模塊:controller、display、fenwei以及frequency。分別設(shè)計4個模塊,然后再調(diào)用它們構(gòu)成整個系統(tǒng)。系統(tǒng)頂層采用圖形方法設(shè)計,如圖1所示。

4個底層模塊則采用VHDL語言設(shè)計,其中Controller的接口代碼為:
Entity Controller Is
Port
(Clock:In Std_Logic;
Reset:In Std_Logic;
Hold:In Std_Logic;
Flash:Out Std_Logic;
NumA,NumB:Out Integer Range 0 To 25;
RedA,GreenA,YellowA:Out Std_Logic;
RedB,GreenB,YellowB:Out Std_Logic
);
Frequency模塊的接口代碼為:
Entity Frequency Is
Port
(Clk10Hz: In Std_Logic;
Clk1Hz:Out Std_Logic
);
End;
Display模塊的接口代碼為:
Entity Display Is
Port( Clock:InStd_Logic;
Flash:In Std_Logic;
Qin:In Std_Logic_Vector(3 Downto 0);
Display:Out Std_Logic_Vector(0 to 6));
End;
Fenwei模塊的接口代碼為:
Entity Fenwei Is
Port
(Clock:In Std_Logic;
Numin:In Integer Range 0 To 25;
NumA,NumB:Out Integer Range 0 To 9
);
End;
編譯后運行結(jié)果如圖2所示。

5 結(jié)束語
VHDL是一種功能非常強(qiáng)大的硬件描述語言,主要用于描述數(shù)子系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。VHDL借鑒了高級語言的特點,可以將一項工程設(shè)計,或稱設(shè)計實體,(可以是一個元件、一個電路模塊或一個系統(tǒng))分成外部(可視部分即端口)和內(nèi)部(不可見部分),即設(shè)計實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,只要其內(nèi)部開發(fā)完成,其他的設(shè)計就可以直接調(diào)用這個實體。
參考文獻(xiàn):
[1] 胡振華-VHDL與FPGA設(shè)計[M].北京:中國鐵道出版社,2003.
[2] 求是科技.VHDL應(yīng)用開發(fā)與工程實踐[M].北京:人民郵電出版社,2005.
[3] 盧毅,賴杰.VHDL與數(shù)字電路設(shè)計[M].北京:科學(xué)出版社,2001.
[4] 陳耀和.VHDL語言設(shè)計技術(shù)[M].北京:電子工業(yè)出版社,2005.