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