1 引言
我國微電子業(yè)的前景,應(yīng)該是在使用自主知識產(chǎn)權(quán)的可編程邏輯器件的同時,從輸入到上板調(diào)試的全過程也應(yīng)當使用自主設(shè)計的EDA軟件。而這種EDA軟件的實現(xiàn)目標是:不但要把從輸入到上板調(diào)試的全過程集成在同一環(huán)境中,而且把綜合、仿真環(huán)境也無遺漏地集成進來。如果把各主流可編程邏輯器件廠家的各系列芯片也兼容進來,軟件就具有更好的可移植性和兼容性,就可以稱為一種通用的EDA開發(fā)平臺了。本文將從可編程邏輯器件使用的角度,論述開發(fā)自主知識產(chǎn)權(quán)的EDA軟件設(shè)計思想。
2 什么是EDA技術(shù),其特點是什么
EDA是Electronic Design Automation的簡稱,是指以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。
EDA的發(fā)展歷史是這樣的:它是90年代初從CAD(計算機輔助設(shè)計)、CAM(計算機輔助制造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發(fā)展而來的。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設(shè)計者在EDA平臺上完成的針對某個系統(tǒng)項目的硬件設(shè)計語言HDL、原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得要實現(xiàn)功能的描述文件。綜合器在工作前,必須給定所要實現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來。也就是說,綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉(zhuǎn)換低級的、可與目標器件相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置到指定的目標器件中,產(chǎn)生最終的下載文件。適配器所選定的目標器件必須屬于在綜合器申已指定的目標器件系列。
利用EDA技術(shù)進行電子系統(tǒng)的設(shè)計,具有以下幾個特點:
①用軟件的方式設(shè)計硬件;
②用軟件方式設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開發(fā)軟件自動完成的;
③設(shè)計過程中可用有關(guān)軟件進行各種仿真;
④系統(tǒng)可現(xiàn)場編程,在線升級;
⑤整個系統(tǒng)可集成在一個芯片上,體積小、功耗低、可靠性高;
⑥從以前的“組合設(shè)計”轉(zhuǎn)向真正的“自由設(shè)計”;
⑦設(shè)計的移植性好,效率高;
⑧非常適合分工設(shè)計,團體協(xié)作。
因此,EDA技術(shù)是現(xiàn)代電子設(shè)計的發(fā)展趨勢。
3 EDA軟件工具的使用流程
使用EDA軟件工具設(shè)計可編程邏輯器件的開發(fā)流程如下:
(1)輸入:首先利用EDA工具的文本或圖形編輯器將設(shè)計者的設(shè)計意圖用文本或圖形方式表達出來。
(2)編譯:完成設(shè)計描述后即可通過編譯器進行排錯編譯,變成特定的文本格式,為下一步的綜合做準備。
(3)綜合:是將軟件設(shè)計與硬件的可實現(xiàn)性掛鉤,將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合后的HDL綜合器可生成EDIF、XNF或VHDL等格式的網(wǎng)表文件,它們從門級開始描述了最基本的門電路結(jié)構(gòu)。
(4)行為仿真和功能仿真:利用產(chǎn)生的網(wǎng)表文件進行功能仿真,以便了解設(shè)計描述與設(shè)計意圖的一致性。
(5)適配:利用布局布線適配器將綜合后的網(wǎng)表文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。該操作完成后,EDA軟件將產(chǎn)生針對此項設(shè)計的適配報告和下載文件等多項結(jié)果。適配報告指明了芯片內(nèi)資源的分配與利用、引腳鎖定、設(shè)計的描述情況等。
(6)功能仿真和時序仿真。仿真采用接近真實器件運行的仿真,仿真過程已將器件的硬件特性考慮進去了,因此仿真精度要高的多。
(7)下載:如果以上的所有過程都沒有發(fā)現(xiàn)問題,就可以將適配器產(chǎn)生的下載文件通過下載電纜載入目標芯片中。
(8)硬件仿真與測試。
4 EDA軟件發(fā)展狀況
Altera是最大的可編程邏輯器件供應(yīng)商之一,20世紀90年代以后發(fā)展很快,主要產(chǎn)品:MAX3000/7000,F(xiàn)LEX10K,APEX20K,ACEX1K,Stratix,Cyclone等。Altera的MaxpLusⅡ曾經(jīng)是最優(yōu)秀的EDA開發(fā)平臺之一,適合開發(fā)早期的中小規(guī)模PLD/FPGA,使用者眾多。目前Altera已經(jīng)停止開發(fā)MaxplusⅡ,而轉(zhuǎn)向QuartusⅡ軟件平臺,目前QuartusⅡ是其最新開發(fā)軟件。
Xilinx是FPGA的最大供應(yīng)商,產(chǎn)品種類較全,主要有:XC9500,Coolrunner,Spartan,Virtex等。Foundation Series是Xilinx公司上一代的EDA開發(fā)軟件,目前Xilinx已經(jīng)停止開發(fā)Foundation,轉(zhuǎn)向ISE軟件平臺設(shè)計。一般來說,全球PLD/FPGA產(chǎn)品大約60%以上是由Altera和Xilinx提供的,可以說Altera和Xilinx共同決定了EDA技術(shù)的發(fā)展方向。因此他們的EDA軟件也是用戶使用上的主流產(chǎn)品。
Lattice是ISP(在系統(tǒng)可編程)技術(shù)的發(fā)明者,ISP技術(shù)極大地促進了PLD產(chǎn)品的發(fā)展,與ALTERA和XILINX相比,其開發(fā)工具略遜一籌。中小規(guī)模PLD比較有特色,主要產(chǎn)品有ispMACH4000,EC/ECP,XO,XP以及可編程模擬器件等。IspDesignEXPERT是Lattice公司的EDA開發(fā)軟件,目前最新軟件改名為ispLEVER,它將取代IspDesignEXPERT,成為FPCA/PLD設(shè)計的主要工具。
上述軟件都是由PLD/FPGA芯片廠家提供,基本都可以完成所有的設(shè)計輸入、仿真、綜合、布線、下載等工作。另處,常用EDA開發(fā)軟件還有orCAD/PSPICE,Multisim,Protel等。
5 EDA軟件開發(fā)思路
EDA軟件的使用過程是:輸入、編譯、綜合、行為仿真和功能仿真、適配、功能仿真和時序仿真、編程下載。EDA軟件開發(fā)就是要從這些使用角度出發(fā)來進行設(shè)計。下面是對各個模塊進行軟件設(shè)計的描述。
5.1 EDA輸入軟件設(shè)計
利用EDA技術(shù)進行設(shè)計,首先需要利用EDA工具的文本編輯器或圖形編輯器將它用文本方式或圖形方式表達出來,以供編譯使用。
常用的源程序輸入方式有三種。
(1)原理圖輸入方式:利用EDA工具提供的圖形編輯器以原理圖的方式進行輸入。原理圖輸入方式比較容易掌握,直觀且方便,所畫的電路原理圖與傳統(tǒng)的器件連接方式完全一樣,很容易被人接受,而且編輯器中有許多現(xiàn)成的單元器件可以利用,自己也可以根據(jù)需要設(shè)計元件。然而原理圖輸入法的優(yōu)點同時也是它的缺點:
①隨著設(shè)計規(guī)模增大,設(shè)計的易讀性迅速下降,對于圖中密密麻麻的電路連線,很難搞清電路的實際功能;
②一旦完成,電路結(jié)構(gòu)的改變將十分困難,因而幾乎沒有可再利用的設(shè)計模塊;
③移植困難、入檔困難、交流困難、設(shè)計交付困難,所以很難設(shè)計出一個標準化的原理圖編輯器。
(2)狀態(tài)圖輸入方式:以圖形的方式表示狀態(tài)圖進行輸入。當填好時鐘信號名、狀態(tài)轉(zhuǎn)換條件、狀態(tài)機類型等要素后,就可以自動生成HDL程序。這種設(shè)計方式簡化了狀態(tài)機的設(shè)計,比較流行。
(3) HDL軟件程序的文本方式:最一般化、最具普遍性的輸入方法。
分析上述三種輸入方式的特點,文本輸入是最容易實現(xiàn)的,可以作為重點設(shè)計。把狀態(tài)機輸入和原理圖輸入作為補充功能,在能力允許下進行設(shè)計。
一般的HDL程序可以由實體、結(jié)構(gòu)體、配置、程序包和元件庫5個部分組成。首先是設(shè)計元件庫,可以包括IEE庫、STD庫、ASIC矢量庫、用戶定義庫和WORK庫等。然后,對HDL語言做選擇。目前用得較多的HDL有已成為IEEE STD1076標準的VHDL、IEEE STD 1364標準的Verilog HDL和Altera公司企業(yè)標準的AHDL等。可以把能識別的HDL語言做列表供用戶選擇,文本輸入就是對這些HDL語言的語法識別過程。編輯過程要包括這些HDL語言的全部語法,所以設(shè)計人員要精通所有語法,不能有遺漏。本文選用VHDL語言作為硬件描述語言進行設(shè)計。
原理圖輸入方式是使用元件庫中的元件畫出系統(tǒng)或電路的原理圖,這種設(shè)計輸入方式要求設(shè)計人員具有豐富的硬件知識、熟悉PLD/FPGA器件的結(jié)構(gòu)。軟件設(shè)計上就是提供一個圖形編輯器,編輯器要提供元件、連線、結(jié)點、網(wǎng)絡(luò)標號、文字、文件盒、多邊形充填區(qū)、圓和圓弧、電源和接地等多種繪圖元素,通過它們,就可以繪制需要的電路圖。
狀態(tài)圖輸入主要用來通過圖形方式設(shè)計有限狀態(tài)機。軟件設(shè)計上也需要一個圖形編輯器。
5.2 EDA編譯軟件設(shè)計
編譯軟件用于完成電路設(shè)計描述后進行的排錯過程,并將其變成特定的文本格式,為下一步的綜合做準備。編譯過程就是對這些HDL語言設(shè)計規(guī)則的校正,是制作一個編譯器的過程。分析所選的HDL語言,對它的所有設(shè)計規(guī)則做一個查找表,對描述好的邏輯器件做規(guī)則查找。
5.3 EDA綜合和優(yōu)化軟件設(shè)計
要把HDL的軟件設(shè)計與硬件的可實現(xiàn)性進行掛鉤,就需要利用EDA軟件系統(tǒng)的綜合器進行邏輯綜合。所謂邏輯綜合,就是把電路的高級語言描述(VHDL、原理圖或狀態(tài)圖形的描述)轉(zhuǎn)換成低級的,可與FPCA/PLD的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件。而網(wǎng)表文件就是按照某種規(guī)定措述電路的基本組成及如何相互連接的關(guān)系的文件。綜合軟件的設(shè)計重點是把門陣列的基本結(jié)構(gòu)和邏輯器件的描述對照起來。
5.4 EDA行為仿真軟件設(shè)計
所謂行為仿真,就是將VHDL設(shè)計源程序直接送到VHDL仿真器中所進行的仿真。該仿真只是根據(jù)VHDL的語義進行的,與具體電路沒有關(guān)系。由于VHDL仿真器的行為仿真功能是面向高層次的系統(tǒng)仿真,只能對VHDL的系統(tǒng)描述作可行性的評估測試,不針對任何硬件系統(tǒng),因此基于這一仿真層次的許多VHDL語句不能被綜合器所接受。這時,綜合器不支持的語句在綜合過程中將忽略掉。軟件設(shè)計時,可以充分發(fā)揮VHDL中適用于仿真控制的語句及有關(guān)的預定義函數(shù)和庫文件。
5.5 EDA功能仿真軟件設(shè)計
所謂功能仿真,就是將綜合后的VHDL網(wǎng)表文件再送到VHDL仿真器中所進行的仿真。這時的仿真僅對VHDL描述的邏輯功能進行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計的要求,仿真過程不涉及具體器件的硬件特性,如延時特性等。該仿真的結(jié)果與門級仿真器所做的功能仿真結(jié)果基本一致。綜合之后的VHDL網(wǎng)表文件采用VHDL語法,首先描述了最基本的門電路,然后將這些門電路用實例化語句連接起來。功能仿真軟件的輸出網(wǎng)表與綜合后的網(wǎng)表格式是一致的,軟件設(shè)計過程是對VHDL描述邏輯功能進行測試模擬。
5.6 EDA時序仿真軟件設(shè)計
所謂時序仿真,就是將適配后所產(chǎn)生的電路網(wǎng)表文件送到仿真器中所進行的仿真。該仿真已將器件特性考慮進去了,因此可以得到精確的時序仿真結(jié)果。適配處理后生成的電路網(wǎng)表文件中包含了較為精確的延時信息,網(wǎng)表文件中描述的電路結(jié)構(gòu)與適配后的結(jié)果是一致的。時序仿真軟件設(shè)計的重點是建立所有可描述的邏輯器件的時序模型,并根據(jù)時序模型生成電路網(wǎng)表的時序關(guān)系圖。根據(jù)時序圖判斷電路的時序是不是滿足設(shè)計要求。
5.7 EDA適配軟件設(shè)計
所謂邏輯適配,就是將由綜合所產(chǎn)生的網(wǎng)表文件針對某一具體的目標進行邏輯映射操作,其中包括底層器件配置、工藝映射、劃分、布局、布線與位流生成等,配置于指定的目標器件中,產(chǎn)生最終的下載文件。適配所選定的目標器件必須屬于原綜合指定的目標器件系列。適配過程也是實現(xiàn)過程,其軟件設(shè)計內(nèi)容是很多的。
工藝映射軟件可以采用動態(tài)規(guī)劃理論為基礎(chǔ),來建立基于LUT結(jié)構(gòu)(或其他結(jié)構(gòu))的可編程邏輯的映射,這樣可以獲得最小延時目標電路。
布局軟件的任務(wù)是將工藝映射模塊劃分后得到的子電路分配到FPGA具體的邏輯模塊中。此外它還選擇實際芯片中的總線和大存儲塊,并且對宏模塊進行分配。
布線軟件的目的是將已經(jīng)布局好的設(shè)計網(wǎng)表,利用芯片中的可編程連線資源來實現(xiàn)電路的邏輯功能。
5.8 EDA下載軟件設(shè)計
如果編譯、綜合、適配和行為仿真、功能仿真、時序仿真等過程都沒有發(fā)現(xiàn)問題,即滿足原設(shè)計的要求,則可以將由FPGA/PIJD適配器產(chǎn)生的配置/下載文件通過編程器或下載電纜載入目標芯片F(xiàn)PCA或PLD中。
6 結(jié)束語
EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用也很廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計工具趨于完善的地步。EDA市場日趨成熟,但我國的研發(fā)水平還很有限,需EDA軟件設(shè)計人員迎頭趕上。中國也有些集成電路設(shè)計中心提供簡單的EDA設(shè)計軟件,但性能不是很強。相信在不久的將來會有更多更好的設(shè)計工具在各地開花并結(jié)果。
? ? ? ?責任編輯:tzh
評論