摘 要:MAX + plus Ⅱ是美國Altera 公司的一種EDA 軟件,用于開發(fā)CPLD 和FPGA 進行數(shù)字系統(tǒng)的設計。用圖形輸入方式和文本輸入方式設計了一模60 計數(shù)器,介紹了數(shù)字系統(tǒng)設計的一般方法和過程,揭示了其在數(shù)字系統(tǒng)中的重要作用。
關鍵詞:電子設計自動化技術;數(shù)字系統(tǒng);自頂向下;模塊設計方法
EDA ( Elect ronic Design Automation) 即電子設計自動化技術,是指以計算機為基本工作平臺,把應用電子技術、計算機技術、智能化技術融合在一個電子CAD 通用軟件包中,輔助進行三方面的電子設計工作,即集成電路設計、電子電路設計以及PCB設計。總之,EDA 技術的基本特征是采用具有系統(tǒng)仿真和綜合能力的高級語言描述。它一般采用自頂向下的模塊化設計方法。但是由于所設計的數(shù)字系統(tǒng)的規(guī)模大小不一,且系統(tǒng)內(nèi)部邏輯關系復雜,如何劃分邏輯功能模塊便成為設計數(shù)字系統(tǒng)的最重要的任務。
MAX+ plus Ⅱ簡介
MAX + plus Ⅱ是一種與結構無關的全集成化設計環(huán)境,使設計者能對Altera 的各種CPLD 系列方便地進行設計輸入、快速處理和器件編程。MAX+ plus Ⅱ開發(fā)系統(tǒng)具有強大的處理能力和高度的靈活性。其主要優(yōu)點:與結構無關、多平臺、豐富的設計庫、開放的界面、全集成化、支持多種硬件描述語言( HDL) 等。
設計流程
數(shù)字系統(tǒng)的設計采用自頂向下、由粗到細,逐步分解的設計方法,最頂層電路是指系統(tǒng)的整體要求,最下層是具體的邏輯電路的實現(xiàn)。自頂向下的設計方法將一個復雜的系統(tǒng)逐漸分解成若干功能模塊,從而進行設計描述,并且應用EDA 軟件平臺自動完成各功能模塊的邏輯綜合與優(yōu)化,門級電路的布局,再下載到硬件中實現(xiàn)設計。利用MAX + plus II進行電路設計的一般流程如圖1 所示。
具體設計過程如下。
1) 設計輸入。 MAX + plus Ⅱ支持多種設計輸入方式,如原理圖輸入、波形輸入、文本輸入和它們的混合輸入。
2) 設計處理。 設計輸入完后,用MAX + plus Ⅱ的編譯器編譯、查錯、修改直到設計輸入正確,同時將對輸入文件進行邏輯簡化、優(yōu)化,最后生成一個編程文件。 這是設計的核心環(huán)節(jié)。
3) 設計檢查。MAX + plus Ⅱ為設計者提供完善的檢查方法設計仿真和定時分析。其目的是檢驗電路的邏輯功能是否正確,同時測試目標器件在最差情況下的時延。這一查錯過程對于檢驗組合邏輯電路的競爭冒險和時序邏輯電路的時序、時延等至關重要。
4) 器件編程。 當電路設計、校驗之后,MAX+plus Ⅱ的Programmer 將編譯器所生成的編譯文件下載到具體的CPLD 器件中,即實現(xiàn)目標器件的物理編程 。
文本輸入方式和圖形輸入方式設計一個模60 計數(shù)器
系統(tǒng)分析
模60 計數(shù)器是可由一個10 進制計數(shù)器和一個異步清零6 進制計數(shù)器組成的。 本設計采用10 進制計數(shù)器74160 組件和6 進制計數(shù)器組成。 數(shù)字系統(tǒng)分塊后,需要選擇正確描述系統(tǒng)邏輯功能的方式。 對于所選用的CPLD ,需要用相應的設計開發(fā)軟件。 如MAX + plus Ⅱ的設計描述方式有文本、波形、圖形多種方式。 圖形輸入方式直觀易懂。 當系統(tǒng)較大時,由于此方式連線多,使用十分不方便。 采用V HDL硬件描述語言的描述方式與結構無關,設計難度降低,軟件修改方便而且大部分受控功能模塊已經(jīng)編譯驗證,系統(tǒng)設計時只要選擇這些模塊并按一定的邏輯功能組合即可 。
系統(tǒng)設計
本設計6 進制計數(shù)器采用文本輸入方式設計,其代碼如下:
L IBRARY 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 ;
保存并編譯設計代碼, 然后創(chuàng)建電路符號counter6 ,接著用圖形輸入方式編輯模60 計數(shù)器,在編輯的過程當中可以引用6 進制電路符號counter6。 設計的系統(tǒng)電路如圖2 所示。
模60 計數(shù)器由十進制計數(shù)器74160 和以上設計的六進制計數(shù)器組成(見圖3) ,當74160 計到9時,產(chǎn)生進位使6 進制電路能計數(shù)。
系統(tǒng)仿真
為了保證設計的正確性,系統(tǒng)設計之后還要進行仿真。本系統(tǒng)采用MAX7000S 系列CPLD 芯片,應用MAX+plus Ⅱ對各種文件從底層到頂層逐個編譯,再進行邏輯仿真。其仿真波形如圖4 所示。仿真之后通過MAX + plus Ⅱ的Programmer下載到可編程芯片上便完成設計。利用MAX + plusⅡ編譯、查錯生成一個能實現(xiàn)模60 的計數(shù)器, 從圖4 可見初值為58 ,使能端EN 和清除控制端CL RN為高電平。 經(jīng)過兩個時鐘周期上升沿Qa 從8 變到0 ,Qb 從5 變到0 ,再開始新一輪的計數(shù)。
結束語
數(shù)字電路系統(tǒng)設計采用先進的EDA 軟件和硬件描述語言,借助于CPLD 實現(xiàn)設計,體現(xiàn)了數(shù)字電路設計系統(tǒng)芯片化。芯片系統(tǒng)化的設計化思想使設計者根據(jù)自己的實際需要構造邏輯功能的數(shù)字集成電路變得簡捷。