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