EDA(ElectrONic Design Automation)即電子設(shè)計自動化技術(shù),是指以計算機(jī)為基本工作平臺,,把應(yīng)用電子技術(shù),、計算機(jī)技術(shù)、智能化技術(shù)融合在一個電子CAD通用軟件包中,輔助進(jìn)行三方面的電子設(shè)計工作,,即集成電路設(shè)計,、電子電路設(shè)計以及PCB設(shè)計??傊?,EDA技術(shù)的基本特征是采用具有系統(tǒng)仿真和綜合能力的高級語言描述。它一般采用自頂向下的模塊化設(shè)計方法,。但是由于所設(shè)計的數(shù)字系統(tǒng)的規(guī)模大小不一,且系統(tǒng)內(nèi)部邏輯關(guān)系復(fù)雜,,如何劃分邏輯功能模塊便成為設(shè)計數(shù)字系統(tǒng)的最重要的任務(wù),。
MAX+plus Ⅱ簡介
MAX+plus Ⅱ是一種與結(jié)構(gòu)無關(guān)的全集成化設(shè)計環(huán)境,使設(shè)計者能對Altera的各種CPLD系列方便地進(jìn)行設(shè)計輸入,、快速處理和器件編程,。MAX+plus Ⅱ開發(fā)系統(tǒng)具有強(qiáng)大的處理能力和高度的靈活性。其主要優(yōu)點(diǎn):與結(jié)構(gòu)無關(guān),、多平臺,、豐富的設(shè)計庫、開放的界面,、全集成化,、支持多種硬件描述語言(HDL)等。
設(shè)計流程
數(shù)字系統(tǒng)的設(shè)計采用自頂向下,、由粗到細(xì),,逐步分解的設(shè)計方法,最頂層電路是指系統(tǒng)的整體要求,,最下層是具體的邏輯電路的實(shí)現(xiàn),。自頂向下的設(shè)計方法將一個復(fù)雜的系統(tǒng)逐漸分解成若干功能模塊,從而進(jìn)行設(shè)計描述,,并且應(yīng)用EDA軟件平臺自動完成各功能模塊的邏輯綜合與優(yōu)化,,門級電路的布局,再下載到硬件中實(shí)現(xiàn)設(shè)計,。利用MAX+plus II進(jìn)行電路設(shè)計的一般流程如圖1所示,。
MAX+plusⅡ開發(fā)平臺的EDA設(shè)計方法" src="http://files.chinaaet.com/images/20110922/e4f7e0da-154e-47bf-b0f0-24907a6f1e72.jpg" />
具體設(shè)計過程如下。
1)設(shè)計輸入,。MAX+plus Ⅱ支持多種設(shè)計輸入方式,,如原理圖輸入、波形輸入,、文本輸入和它們的混合輸入,。
2)設(shè)計處理。設(shè)計輸入完后,用MAX+plus Ⅱ的編譯器編譯,、查錯,、修改直到設(shè)計輸入正確,同時將對輸入文件進(jìn)行邏輯簡化,、優(yōu)化,,最后生成一個編程文件。這是設(shè)計的核心環(huán)節(jié),。
3)設(shè)計檢查,。MAX+plus Ⅱ?yàn)樵O(shè)計者提供完善的檢查方法設(shè)計仿真和定時分析。其目的是檢驗(yàn)電路的邏輯功能是否正確,,同時測試目標(biāo)器件在最差情況下的時延,。這一查錯過程對于檢驗(yàn)組合邏輯電路的競爭冒險和時序邏輯電路的時序、時延等至關(guān)重要,。
4)器件編程,。當(dāng)電路設(shè)計、校驗(yàn)之后,,MAX+plus Ⅱ的Programmer將編譯器所生成的編譯文件下載到具體的CPLD器件中,,即實(shí)現(xiàn)目標(biāo)器件的物理編程。
文本輸入方式和圖形輸入方式設(shè)計一個模60計數(shù)器
系統(tǒng)分析
模60計數(shù)器是可由一個10進(jìn)制計數(shù)器和一個異步清零6進(jìn)制計數(shù)器組成的,。本設(shè)計采用10進(jìn)制計數(shù)器74160組件和6進(jìn)制計數(shù)器組成,。數(shù)字系統(tǒng)分塊后,需要選擇正確描述系統(tǒng)邏輯功能的方式,。對于所選用的CPLD,,需要用相應(yīng)的設(shè)計開發(fā)軟件。如MAX+plus Ⅱ的設(shè)計描述方式有文本,、波形,、圖形多種方式。圖形輸入方式直觀易懂,。當(dāng)系統(tǒng)較大時,,由于此方式連線多,使用十分不方便,。采用VHDL硬件描述語言的描述方式與結(jié)構(gòu)無關(guān),,設(shè)計難度降低,軟件修改方便而且大部分受控功能模塊已經(jīng)編譯驗(yàn)證,,系統(tǒng)設(shè)計時只要選擇這些模塊并按一定的邏輯功能組合即可,。
系統(tǒng)設(shè)計
本設(shè)計6進(jìn)制計數(shù)器采用文本輸入方式設(shè)計,其代碼如下:
LIBRARY ieee ;
USE ieee. STd_LOGIC_1164. all ;
USE ieee. std_logic_unsigned. all ;
ENTITY counter6 IS %定義模塊IS
PORT (Load,,En Clrn,,Clk:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(2 downto 0) ;
%定義輸入端口
Q:OU T STD_LOGIC_VECTOR(2 downto 0) ;
%定義輸出端口
Co:OU T STD_LOGIC)
END counter6 ;
ARCHITECTURE a OF counter6 IS
BEGIN %定義過程
PROCESS(Clk)
variable tmp:std_logic_vector (2 downto 0) ;
%定義一個矢量
begin
IF Clrn =’0’THEN tmp:= "000" ;
else
IF( Clk’event AND Clk =’1’) THEN %過程聲明
IF Load =’0’THEN tmp:= D ;
ELSIF En =’1’THEN
IF tmp = "101" THEN tmp:= "000" ;
ELSE tmp:= tmp + 1 ;
END IF ;
END IF ;
END IF ;
END IF ;
Q < = tmp ; Co < = (tmp (0) AND tmp (2) AND En) ;
END PROCESS ;
END a ;
保存并編譯設(shè)計代碼,,然后創(chuàng)建電路符號counter6,接著用圖形輸入方式編輯模60計數(shù)器,,在編輯的過程當(dāng)中可以引用6進(jìn)制電路符號counter6,。設(shè)計的系統(tǒng)電路如圖2所示。
模60計數(shù)器由十進(jìn)制計數(shù)器74160和以上設(shè)計的六進(jìn)制計數(shù)器組成(見圖3),,當(dāng)74160計到9時,,產(chǎn)生進(jìn)位使6進(jìn)制電路能計數(shù)。
系統(tǒng)仿真
為了保證設(shè)計的正確性,,系統(tǒng)設(shè)計之后還要進(jìn)行仿真,。本系統(tǒng)采用MAX7000S系列CPLD芯片,應(yīng)用MAX+plus Ⅱ?qū)Ω鞣N文件從底層到頂層逐個編譯,,再進(jìn)行邏輯仿真,。其仿真波形如圖4所示。仿真之后通過MAX+plus Ⅱ的Programmer下載到可編程芯片上便完成設(shè)計,。利用MAX+plusⅡ編譯、查錯生成一個能實(shí)現(xiàn)模60的計數(shù)器,,從圖4可見初值為58,,使能端EN和清除控制端CLRN為高電平。經(jīng)過兩個時鐘周期上升沿Qa從8變到0,,Qb從5變到0,,再開始新一輪的計數(shù)。
結(jié)束語
數(shù)字電路系統(tǒng)設(shè)計采用先進(jìn)的EDA軟件和硬件描述語言,,借助于CPLD實(shí)現(xiàn)設(shè)計,,體現(xiàn)了數(shù)字電路設(shè)計系統(tǒng)芯片化。芯片系統(tǒng)化的設(shè)計化思想使設(shè)計者根據(jù)自己的實(shí)際需要構(gòu)造邏輯功能的數(shù)字集成電路變得簡捷,。
作者:趙大興 彭章明 丁建軍 湖北工業(yè)大學(xué)機(jī)械工程學(xué)院 來源:湖北工業(yè)大學(xué)學(xué)報