EDA技術在數(shù)字系統(tǒng)設計分析中的應用
隨著電子工程與計算機科學(EECS)的迅猛發(fā)展,數(shù)字電路系統(tǒng)的發(fā)展也十分迅速。電子器件在最近幾十年經(jīng)歷了從小規(guī)模集成電路(SSI)、中規(guī)模集成電路(MSI)到大規(guī)模集成電路(LSI)以至超大規(guī)模集成電路(VLSI)的發(fā)展歷程。從簡單可編程器件到高密度可編程器件,設計方法也在從根本上發(fā)生轉變,由原來的手工設計到現(xiàn)在的電子設計自動化(EDA)設計。為了提高系統(tǒng)的可靠性與通用性,微處理器和專用集成電路(ASIC)逐漸取代了通用全硬件LSI電路,可編程邏輯器件(PLD)尤其是現(xiàn)場可編程邏輯器件(FPLD)被大量地應用在ASIC的制作中,在可編程集成電路的開發(fā)過程中,EDA技術的出現(xiàn)帶來了電子系統(tǒng)設計的革命性變化。
1 EDA技術的發(fā)展
EDA技術是伴隨著計算機、集成電路、電子系統(tǒng)設計的發(fā)展,經(jīng)歷了計算機輔助設計(CAD)、計算機輔助工程設計(CAE)和電子系統(tǒng)設計自動化(ESDA)三個發(fā)展階段。
20世紀70年代為CAD階段,這一階段人們開始用計算機輔助進行IC版圖編輯和PCB布局布線,取代了手工操作。80年代為CAE階段,與CAD相比,除了純粹的圖形繪制功能外,又增加了電路功能設計和結構設計,并通過電氣連接網(wǎng)表將兩者結合在一起,以實現(xiàn)工程設計。90年代為ESDA階段, ESDA的基本特征是設計人員按“自頂向下”的設計方法,對整個系統(tǒng)進行方案設計和功能劃分,系統(tǒng)的關鍵部分用一片或幾片專用集成電路實現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級設計,最后通過綜合器和適配器生成最終的目標器件。ESDA的出現(xiàn),使設計師開始實現(xiàn)“概念驅動工程”的夢想,從而擺脫了大量的輔助設計工作,把精力集中在創(chuàng)造性的方案與概念構思上,極大地提高了系統(tǒng)的效率,縮短了產品的研制周期。
2 EDA技術的基本特征
EDA技術是在電子CAD技術基礎上發(fā)展起來的計算機軟件系統(tǒng),是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。電子設計自動化工程是近幾年迅速發(fā)展起來的計算機軟件、硬件、微電子交叉的現(xiàn)代電子設計學科,它是以EDA軟件工具為開發(fā)環(huán)境,以硬件描述語言為設計語言,以可編程器件為實驗載體,以專用集成電路(ASIC)、片上系統(tǒng)(SOC)芯片為器件目標,以電子系統(tǒng)設計為應用方向的電子產品自動化設計過程[1]。利用EDA工具,電子設計師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程在計算機上自動處理完成。
現(xiàn)代EDA技術是采用高級語言描述,具有系統(tǒng)級仿真和綜合能力,它主要采用并行工程(Concurrent Engineering)設計和自頂向下(Top-down)設計方法,其基本思想是從系統(tǒng)總體要求出發(fā),分為行為描述、寄存器傳輸級描述、邏輯綜合三個層次,將設計內容逐步細化,最后完成整體設計,這是一種全新的設計思想與設計理念。
3 EDA技術的發(fā)展趨勢
進入21世紀,全定制和定制專用集成電路正成為新的發(fā)展熱點,專用集成電路的設計與應用必須依靠專門的EDA工具,因此EDA技術在功能仿真、時序分析、集成電路自動測試、高速印刷電路板設計及操作平臺的擴展等方面都面臨著新的巨大的挑戰(zhàn)。EDA技
術目前正處于高速發(fā)展階段,每年都有新的EDA工具問世,我國EDA技術的應用水平長期落后于發(fā)達國家,因此,廣大電子工程人員應該盡早掌握這一先進技術,這不僅是提高設計效率的需要,更是我國電子工業(yè)在世界市場上生存、競爭與發(fā)展的需要。
4 EDA技術的設計流程
EDA技術是將傳統(tǒng)的“電路設計——硬件搭試——調試焊接”模式變?yōu)?ldquo;功能設計——軟件模擬——編程下載”方式,設計人員只需一臺微機和相應的開發(fā)工具即可研制出各種功能電路。EDA技術將電子產品設計從軟件編譯、 邏輯化簡、 邏輯綜合、 仿真優(yōu)化、 布局布線、 邏輯適配、 邏輯影射、 編程下載 、生成目標系統(tǒng)的全過程在計算機及其開發(fā)平臺上自動處理完成。具體流程如圖1所示:
下面以Alter公司的可編程器件的開發(fā)工具MAX+plusII為平臺,采用層次化設計方法,設計一個十字路口的交通信號燈的控制電路。
5 EDA技術的應用
設計一個十字路口的交通控制電路,通過紅(R)、黃(Y)、綠(G)燈控制東西和南北兩道交叉路口的交通,要求兩道的通行時間T1、T2,紅綠燈交替時間為T3。
實現(xiàn)路口交通燈系統(tǒng)的控制方法很多,可以用標準邏輯器件、可編程序控制器和單片機等方案來實現(xiàn),但這些控制方法的功能修改及調試需要硬件電路的支持,在一定程度上增加了功能修改及系統(tǒng)調試的困難。因此在設計中采用EDA技術中的VHDL硬件描述語言,以MAX+plusII開發(fā)環(huán)境進行綜合仿真,并下載到CPLD可編程邏輯器件中,完成系統(tǒng)的控制作用。
C1、C2、C3為各定時器的使能控制信號,W1、W2、W3為為各定時器的狀態(tài)信號,定時時間到輸出為1,定時時間未到輸出為0。該系統(tǒng)中的定時器可采用帶預置功能的減法計數(shù)器實現(xiàn),控制器可采用CPLD器件EPM7128系列芯片,秒脈沖信號CLK可由晶體振蕩器輸出經(jīng)過分頻后產生,當精度和穩(wěn)定性要求不高時,可采用RC環(huán)形振蕩器,555定時器或其它電路產生。根據(jù)該系統(tǒng)的要求。
控制器(control)和三個定時器(timer)均為VHDL描述,該源程序中三個定時器的功能完全一樣,只是工作的預置數(shù)不同,所以只定義一個實體[2]??刂破骱投〞r器的源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY control IS —— 控制器實體說明
PORT(clk,reset,w1,w2,w3:IN STD_LOGIC);
END control;
ARCHITECTURE beh_control OF control IS ——控制體結構體
TYPE state_type IS (S0,S1,S2,S3);
SIGNAL state:state_type;
BEGIN
PROCESS(clk,reset)
BEGIN
IF reset=’1’THEN
State<=S0;
ELSIF(clk’EVENT AND clk=’1’)THEN
CASE state IS
WHEN S0=>IF w1=’1’THEN
state<=S1;
END IF;
WHEN S1=>IF w3=’1’THEN
END IF;
WHEN S2=>IF w2=’1’THEN
state<=S3;
END IF;
WHEN S3=>IF w3=’1’THEN
state<=S0;
END IF;
END CASE;
END IF;
END PROCESS;
c1<=’1’WHEN state=S0 ELSE’0’;
c2<=’1’ WHEN state=S2 ELSE’0’;
c3<=’1’ WHEN(state=S1 OR state=S3)ELSE’0’;
r1<=’1’ WHEN(state=S2OR state=S3)ELSE’0’;
g1<=’1’ WHEN state=S0 ELSE’0’;
y1<=’1’ WHEN state=S1 ELSE’0’;
r2<=’1’ WHEN(state=S0 OR state=S1)ELSE’0’;
g2<=’1’ WHEN state=S2 ELSE’0’;
y2<=’1’ WHEN state=S3 ELSE’0’;
END beh_control;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY timer IS ——定時器實體說明
PORT(clk,c:IN STD_LOGIC;
d:IN INTEGER RANGE 1TO 31;
w:OUT STD_LOGIC);
END timer;
ARCHITECTURE beh_timer OF timer IS ——定時器結構體
BEGIN
PROCESS(clk)
VARIABLE cnt: INTEGER RANGE 0 TO 31;
BEGIN
IF(clk=’1’)THEN
IF(c=’1’AND cnt>0)THEN
cnt:=cnt-1;
ELSE
cnt:=d;
END IF;
END IF;
IF cnt=0 THEN
w<=’1’;
ELSE
w<=’0’;
END IF;
END PROCESS;
END beh_timer;
完成了上述兩個基本模塊,可以形成頂層文件,在MAX+plusII環(huán)境下進行編譯和仿真,驗證系統(tǒng)功能是否正確,如果出現(xiàn)錯誤,需要進行修改,直到完全通過為止。當設計人員確定設計工作已基本成功時,即可通過編程電纜下載數(shù)據(jù)流來進行硬件驗證。驗證合格后,總體設計工作即圓滿結束。該系統(tǒng)在編寫控制器的源程序時,有多種編寫方法,以下是控制器的VHDL程序的另外兩種定義方法:
(1)
…
ARCHITECTURE con1_arc OF con1 IS
SIGNAL current_state:state;
BEGIN
…
在進行時序分析時,卻出現(xiàn)了不按設定的計數(shù)順序工作的結果:14,13,2,1,0… 經(jīng)過反復修改調試,對程序進行修改,如(2)所示:
(2)
ARCHITECTURE con1_arc OF con1 IS
SIGNAL current_state:state;
SIGNAL TEMP_STATE:state;
...
TEMP STATE<=current_state;
BEGIN
...
在這種設計方法中,多定義了一個信號變量,從而使得程序能按設定的狀態(tài)14,13,12,11…進行轉換。
從上述可知:EDA技術的優(yōu)越性在于可以直接從程序中修改錯誤及系統(tǒng)功能,而不需要硬件電路的支持, 即把后期進行的系統(tǒng)調試轉移到設計實現(xiàn)之前在計算機上進行的功能仿真和時序仿真。使系統(tǒng)的功能修改及調試比較方便、快捷、準確,既縮短了研發(fā)周期,又大大節(jié)約了成本。
6 結語
電子系統(tǒng)的設計輸入可以用原理圖、波形、VHDL語言等方式輸入,下載配置前的整個過程幾乎不涉及到整個硬件,而硬件設計的修改也如同修改軟件程序一樣快捷方便,即通過軟件方式的設計與測試,達到對特定功能的硬件電路的設計實現(xiàn),這種現(xiàn)代電子系統(tǒng)設計技術采用自頂向下分層次、模塊化設計方法,先化整為零,再優(yōu)化綜合,靈活通用,已成為研制、開發(fā)數(shù)字系統(tǒng)最理想的選擇,是現(xiàn)代電子電路設計方法的一個趨勢,體現(xiàn)了硬件設計向軟件化方向發(fā)展的新思路。