1 引言
二十世紀后半期,隨著集成電路和計算機的不斷發展,電子技術面臨著嚴峻的挑戰。由于電子技術發展周期不斷縮短,專用集成電路ASIC的設計面臨著難度不斷提高與設計周期不斷縮短的矛盾,為了解決這個問題,要求我們必須采用新的設計方法和使用高層次的設計工具,在此情況下,EDA(Electronic Design Automation)即電子設計自動化技術應運而生。
隨著電子技術的發展及縮短電子系統設計周期的要求,EDA技術得到了迅猛發展。
EDA技術是以大規模可編程邏輯器件為設計載體,以硬件描述語言為系統邏輯描述的主要表達方式,以計算機、大規模可編程邏輯器件的開發軟件及實驗開發系統為設計工具,通過有關的開發軟件,自動完成用軟件的方法設計電子系統到硬件系統的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片的適配編譯、邏輯影射、編程下載等工作,最終形成集成電子系統或專用集成芯片的一門新技術。
EDA技術伴隨著計算機、集成電路、電子系統設計的發展,經歷了三個發展階段,即:20世紀70年代發展起來的CAD技術;20世紀80年代開始應用的CAE技術;20世紀90年代后期,出現的以硬件描述語言、系統級仿真和綜合技術為特征的EDA技術,這時的EDA工具不僅具有電子系統設計的能力,而且能提供獨立于工藝和廠家的系統級設計能力,具有高級抽象的設計構思手段。
EDA技術涉及面廣,內容豐富,從教學和實用的角度看,主要有以下四個方面內容:(1)大規模可編程邏輯器件;(2)硬件描述語言;(3)軟件開發工具;(4)實驗開發系統。其中,大規模可編程邏輯器件是利用EDA技術進行電子系統設計的載體;硬件描述語言是利用EDA技術進行電子系統設計的主要表達手段;軟件開發工具是利用EDA技術進行電子系統設計的智能化、自動化設計工具;實驗開發系統是利用EDA技術進行電子系統設計的下載工具及硬件驗證工具。
隨著現代半導體的精密加工技術發展到深亞微米(0.18~0.35um)階段,基于大規模或超大規模集成電路技術的定制或半定制ASIC(Application Specific Integrated Circuit專用集成電路)器件大量涌現并獲得廣泛的應用,使整個電子技術與產品的面貌發生了深刻的變化極大地推動了社會信息化的發展進程。而支撐這一發展進程的主要基礎之一,就是EDA技術。
EDA技術在硬件方面融合了大集成電路制造技術,ic圖設計技術、ASIC測試和封裝技術、CPLD/FPGA技術等;在計算機輔助工程方面融合了計算機輔助設計CAD計算機輔助制造CAM計算機輔助測試CAT技術及多種計算機語言的設計概念;而在現代電子學方面則容納了更多的內容,如數字系統設計理論、數字信號處理技術、系統建模和優化技術等。
2 可編程邏輯器件(PLD Programmable Logic Device)
可編程邏輯器件是近幾年才發展起來的一種新型集成電路,是當前數字系統設計的主要硬件基礎,是硬件編程語言HLD物理實現工具,可編程邏輯器件對數字系統設計自動化起著推波助瀾的作用,可以說,沒有可編程邏輯器件就沒有當前的數字電路自動化,目前,由于這種以可編程邏輯器件為原材料,從“制造自主芯片”開始的EDA設計模式己成為當前數字系統設計的主流,若要追趕世界最先進的數字系統設計方法,就要認識并使用可編程邏輯器件。
數字集成電路本身在不斷地進行更新換代。它由早期的電子管、晶體管、小中規模集成電路、發展到超大規模集成電路(VLSIC幾萬門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術的發展,設計與制造集成電路的任務己不完全由半導體廠商來獨立承擔。系統設計師們更愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出合適的ASL芯片,并且立即投入實際應用之中,因而出現了現場可編程邏輯器件(FPLD),其中應用最廣泛的當屬現場可編程門陣列(FPGA)復雜可編程邏輯器件(CPLD)。
可編程邏輯器件正處于高速發展的階段。新型的FPGA/CPLD規模越來越大,成本越來越低。高性價比使可編程邏輯器件在硬件設計領域扮演著日益重要的角色。
低端CPLD已經逐步取代了74系列等傳統的數字元件,高端的FPGA也在不斷地奪取ASIC的市場份額,特別是目前大規模FPGA多數支持可編程片上系統SOPC與CPU或DSP Core的有機結合使FPGA已經不僅僅是傳統的硬件電路設計手段,而逐步升華為系統級實現工具。
下一代可編程邏輯器件硬件上的四大發展趨勢可總結如下:最先進的ASL生產工藝將被更廣泛的應用于以FPGA為代表的可編程邏輯器件;越來越多的高端FPGA產品將包含DSP或CPU等處理器內核,從而FPGA將由傳統的硬件設計手段逐步過渡為系統級設計平臺:FPGA包含功能越來越豐富的硬核(HardIPCore),與傳統ASIC進一步融合,并通過結構化ASIC技術加快占領部分ASIC市場;低成本FPGA的密度越來越高,價格越來起合理,將成為FPGA發展的中堅力量。這4個發展趨勢可簡稱為先進工藝、處理器內核、硬核與結構化ASIC低成本器件。
3 硬件描述語言HDL(Hardware Description Language)
HDI是電子系統硬件行為描述、結構描述、數據流描述的語言。目前利用硬件描述語言可以進行數字電子系統的設計。隨著研究的深入,利用硬件描述語言進行模擬電子系統設計或混合電子系統設計,也正在探索中。
硬件描述的語言種類很多,有的從PASCAI發展而來,也有一些從Cl吾言發展而來。有些HDL成為IEEE準,但大部分是本企業標準。HDl發展的技術源頭是:在HDl形成發展之前,已有了許多程序設計語言,如匯編、C、PASCAL、FORTRAN、PROLOG等。這些語言運行在不同硬件平臺、不同的操作環境中,它們適合于描述過程和算法,不適合作硬件描述。CAD的出現,使人們可以利用計算機進行建筑、服裝等行業的輔助設計,而電子輔助設計也同步發展起來。在利用EDA工具進行電子設計時,邏輯圖、分立電子元件作為整個越來越復雜的電子系統的設計己不適應。任何一種EDA工具,都需要一種硬件描述語言來作為EDA工具的工作語言。這些眾多的EDA工具軟件開發者,各自推出了自己的HDL語言。在我國比較有影響的硬件描述語言有:ABEL-HDL語言、Verilog HDL語言、AHDL語言和VHDL語言。
3.1 ABEL-HDL語言
這是一種早期的硬件描述語言。在可編程邏輯器件的設計中,可方便準確的描述所設計的電路邏輯功能。他支持邏輯電路的多種表達形式,其中包括邏輯方程,真值表和狀態圖。ABEL語言和Verilog語言同屬一種描述級別,但ABEL語言的特性受支持的程度遠遠不如Verilog,Verilog是從集成電路設計中發展而來,語言較為成熟,支持的EDA工具很多。而ABEL語言從早期可編程邏輯器件(PLD)的設計中發展而來。ABEL-HDI被廣泛用于各種可編程邏輯器件的邏輯功能設計,由于其語描述的獨立性,因而適用于各種不同規模的可編程器的設計。如DOS版的ABEL3.0軟件可對包括GAL期間進行全方位的邏輯描述和設計,而在諸如Lattice的ISPEXPERT,DATAIO的Synario ,Vantis的Design-Direct,XiLinx的FOUNDATION和WEBPACK等EDA軟件中,ABEL-HDL同樣可用于較大規模的FPGA/CPLD器件功能設計。ABEL-HDI還能對所設計的邏輯系統進行功能仿真。ABEL-HDL拘設計也能通過標準格式設計轉換文件,轉換成其他設計環境,如VHDI。Verilog-HDL等。從長遠來看,VHDL口Verilog-HDL的運用會比ABEL-HDL多的多,ABEL-HDL只會在較小的范圍內繼續存在。
3.2 Verilog HDL
Verilog HDL就是在應用最廣泛的C語言的基礎上發展起來的一種件描述語言,它是由GDA(Gateway Design Autom action)公司的PhiMooorby,在1983年末首創的,最初只設計了一個仿真與驗證工具,之后又陸續開發了相關的故障模擬與時序分析工具。1985年Moorby,推出它的第三個商用仿真器Verilog-XL獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣應用。1989年CADENCE公司收購了GDA公司,使得Verilog HDL成為了該公司的獨家專利。1990年CAD斟CE公司公開發表了Verilog HDL并成立LVI織以促進Verilog HDL成為IEEE標準,即IEEE Srandard1364-1995。
Verilog HDL最大特點就是易學易用,如果有C語言的編程經驗,可以在一個較短的時間內很快的學習和掌握,因而可以把Verilog HDL內容安排在與ASIC設計等相關課程內部進行講授,由于HDL語言本身是專門面向硬件與系統設計的,這樣的安排可以使學習者同時獲得設計實際電路的經驗。與之相比VHDL的學習要困難一些。但Verilog HDL較自由的語法,也容易造成初學者犯一些錯誤,這一點要特別注意。
3.3 AHDL
Altera硬件描述語言AHDL(Altera Hardware Description Language)是一種模塊化的高級語言,是ALTERA公司發明的HDL,特點是非常易學易用,學過高級語言的人可以在很短的時間(如幾周)內掌握AHDL。
AHDL語言完全集成于MAX+plusII/QuartusII系統之中,特別適于描述復雜的組合邏輯、組(Group)運算、狀態機、真值表和參數化邏輯。設計者可以通過MAX+plusII或QuartusII的軟件系統對AHDL源程序進行編輯,并通過對源程序的編譯建立仿真、時域分析和器件編程的輸出文件。
AHDL的語句和元素種類齊全、功能強大,而且易于使用。設計者可以使用AHDL直完整層次的工程(Project設計文件,或者在一個層次的設計中混合其他類型的設計文件,如Verilog HDLVHDL設計文件。AHDL文件作為一種文本文件,它既可以用EDA提供的文本文件編輯器來建立文本(TDF AHDL Text Design File)也可以用其它文本編輯器建立文本文件,但是,由于AHDL與MAX+PlusⅡ/QuartusⅡ間的持殊關系,建議最好使用前者,設計者可以方便地應用MAX+PlusⅡ/QuartusⅡ對AHDL進行文本編輯、編譯、調試等工作,尤其是在消息處理器中對錯誤自動定位的功能使調試十分方便。它的缺點是移植性不好,通常只用于ALTERA公司自己的開發系統。
? ? ? ?3.4 VHDL語言
VHDL語言(Very-High-Speed Integrated Circuit Hardware Description Language)即超高速集成電路硬件描述語言,美國國防部在20世紀80年代后期開發了VHDL語言。1981年6月成立的VHDL工作小組,提出了一個滿足電子設計各種要求的能夠作為工業標準的HDL,1983年第三季度,由JBM公司、TJ公司、Internetrics公司簽約,組成開發小組,工作任務是提出語言版本和開發軟件環境。1986年IEEE標準化組織開始工作,討論VHDL語言標準,歷時一年有余,1987年12月通過標準審查,并宣布實施,即IEEE STD 1076-1987[IRM87]。1993年VHDL重新修訂,形成新的標準即IEEE STD 1076-1993[IRM93]。
該語言設計技術齊全、方法靈活、可與制作工藝無關、編程易于共享,所以成為硬件描述語言的主流,成為標準硬件描述語言。將VHDL程序寫入可編程芯片中,做成ASIC芯片,因其開發周期短,更方便,所以將在很大范圍內取代單片控制電路,成為未來數字電路設計的主旋律。由于半導體編程技術的快速進步,VHDL所能提供的高階電路描述語言方式,使復雜的電路可以通過VHDL編輯器的電路方式,輕易而且快速地達到設計的規格。VHDL電路描述語言所能涵蓋的范圍相當廣,能適用于各種不同階層的設計工程師的需求。從ASIC的設計到PCB系統的設計,VHDL電路描述語言都能派上用場,所以VHDL電路設計毫無疑問地成為硬件設計工程師的必備工具。目前,VHDL語言也己成為FPGA/CPLD編程最常用的工具。
VHDL作力EDA的重要組成都分,提供了借助計算機進行數字系統設計的一種很好的手段。用VHDL進行設計有許多優點,VHDL的硬件描述能力很強,可以用于從門級、電路級直至系統級的描述、仿真、綜合和調試。利用VHDL豐富的仿真語句和庫函數,對大系統的早期設計,可在遠離門級的高層次上進行模擬,以利于設計者確定整個設計結構和功能的可行性。VHDL強大的行為描述能力和程序結構使其具有支持對大規模設計進行分解,以及對已有的設計進行再利用的功能。運用VHDL設計系統硬件具有相對獨立性,設計時沒有嵌入與工藝有關的信息,對硬件的描述與具體的工藝技術和硬件結構無關。當門級或門級以上的描述通過仿真檢驗以后,再用相應的工具將設計映射成不同的工藝,這使硬件實現的目標器件有很寬的選擇范圍,并且修改電路與修改工藝或選擇器件相互之間不會產生不良影響。VHDL標準規范,語法較為嚴格,采用VHDL的設計便于重復利用交流,VHDL所具有的類屬描述語句和子程序調用等功能使設計者對完成的設計,不必改變源程序,只需改變類屬參數或函數,就可改變設計的規模和結構。1995年我國國家技術監督局制定的《CAD用技術規范》推薦將VHDL作為我國電子設計自動化硬件描述語言的國家標準。VHDL已經成為世界上各家EDA工具和集成電路廠商普遍認同和共同推廣的標準化硬件描述語言。掌握VHDL,利用VHDL設計電子電路,是當前進行技術競爭的一項基本技能和強有力工具。
4 EDA軟件
EDA軟件在EDA技術應用中占據極其重要的地位,EDA的核心是利用計算機實現電路設計的自動化,因此基于計算機環境下的EDA工具軟件的支持是必不可少的。
EDA軟件品種繁多,目前在我國得到應用的有:PSPICE,PCAD,Protel,ViewLogic,Mentor,Graphics,Synopsys,Cadence,Edison,Tina等等。這些軟件功能都很強,一般都能應用于幾個方面,大部分軟件都可以進行電路設計與仿真,FCB自動布局布線,可輸出多種網表文件(Netlist)與其他廠商的軟件共享數據等等。按它們的主要功能與應用領域,可分為電子電路設計工具、仿真工具、PCB設計軟件、IC設計軟件、PID設計工具及其它EDA軟件,其中IC設計和PID設計代表當今電子技術的發展水平,是該行業中得到廣泛應用的軟件類型。
目前IC設計工具發展迅速,IC領域本身已發展到ASIC(Application Specific Integrated Circuit)芯片設計的階段。著名的IC計軟件供應商有:Cadence,Synopsysl Avanti,Agilenti。
PLD是一種由用戶根據需要而自行構造邏輯功能的數字集成電路,其設計方法是借助于EDA軟件,用原理圖、布爾表達式、硬件描述語言等方法,生成相應的目標文件,最后用編程器或下載電纜,由目標器件實現。目前世界上具有代表性的PLD生產廠家有Altera公司、Xilinx公司和Lattice公司。一些小型化、簡單的PLD設計工具主要由生產器件的廠家提供,而一些功能強大、大型化的PLD設計工具是由軟件公司和生產器件的廠家合作開發。如Altera公司的Max+PlusⅡ和QuatusⅡ,Lattice公司的Synaric。由于Altera公司實施的高校合作計劃,大多數工程研發人員在大學期間最早接觸的使用得最多得也就是Max+PlusⅡ和QuatusⅡ同時Max+PlusⅡ和QuatusⅡ的開發工具界面是否友好,操作方便,因此更容易為研發人員接受。
5 基于EDA技術的數字系統層次化
設計方法
EDA(Electronic Design Automation)技術的出現使數字系統的分析與設計方法發生了根本的變化,采用的基本設計萬法主要有三種:直接設計、自頂向下(Top-to-Down)設計、自底向上(Buttom-to-Up)設計。直接設計就是將設計看成一個整體,將其設計成為一個單電路模塊,它適合小型簡單的設計。而一些功能較復雜的大型數字邏輯系統設計適合自頂向下或自底向上的設計方法。自頂向下的設計方法就是從設計的總體要求入手,自頂向下地將設計劃分為不同的功能子模塊,每個模塊完成特定的功能,這種設計方法首先確定頂層模塊的設計,再進行子模塊的詳細設計,而在子模塊的設計中可以調用庫中已有的模塊或設計過程中保留下來的實例。自底向上的設計方法與自頂向下的設計方法恰恰相反。
在數字系統的EDA設計中往往采用層次化的計方法,分模塊、分層次地進行設計描述。描述系統總功能的設計為頂層設計,描述系統中較小單元的設計為底層設計。整個設計過程可理解為從硬件的頂層抽象描述向最底層結構描述的一系列轉換過程,直到最后得到可實現的硬件單元描述為止。層次化設計方法比較自由,既可采用自頂向下的設計也可采用自底向上設計,可在任何層次使用原理圖輸入和硬件描述語言HDL設計。
5.1自底向上的設計方法
Buttom-to-Up設計方法的中心思想是首先根據對整個系統的測試與分析,由各個功能塊連成一個完整的系統,由邏輯單元組成各個獨立的功能模塊,由基本門構成各個組合與時序邏輯單元。
Buttom-to-Up設計方法的特點:從底層邏輯庫中直接調用邏輯門單元;符合硬件工程師傳統的設計習慣;在進行底層設計時缺乏對整個電子系統總體性能的把握;在整個系統完成后,要進行修改較為困難,設計周期較長;隨著設計規模與系統復雜度的提高,這種方法的缺點更突出。
傳統的數字系統的設計方法一般都是自底向上的,即首先確定構成系統的最低層的電路模塊或元件的結構和功能,然后根據主系統的功能要求,將它們組成更大的的功能塊,使它們的結構和功能滿足高層系統的要求,依此類推,直至完成整個目標系統的EDA設計。
5.2自頂向下的設計方法
Top-to-Down設計方法的中心思想是:系統層是一個包含輸入輸出的頂層模塊,并用系統級、行為描述加以表達,同時完成整個系統的模擬和性能分析;整個系統進一步由各個功能模塊組成,每個模塊由更細化的行為描述加以表達;由EDA綜合工具完成到工藝庫的映射。
Top-to-Down設計方法的特點:結合模擬手段,可以從開始就掌握實現目標系統的性能狀況;隨著設計層次向下進行,系統的性能參數將進一步得到細化與確認;可以根據需要及時調整相關的參數,從而保證了設計結果的正確性,縮短了設計周期;當規模越大時,這種方法的優越性越明顯;須依賴EDA設計工具的支持及昂貴的基礎投入;邏輯總合及以后的設計過程的實現,均需要精確的工藝庫的支持。
現代數字系統的設計方法一般都自頂向下(Top-to-Down)的層次化設計方法,即從整個系統的整體要求出發,自上而下地逐步將系統設計內容細化,即把整個系統分割為若干功能模塊,最后完成整個系統的設計。
在電子設計領域,自頂向下的層次化設計方法,只有在EDA技術得到快速發展和成熟應用的今天才成為可能,自頂向下的層次化設計方法的有效應用必須基于功能強大的EDA工具,具備集系統描述、行為描述和結構描述功能為一體的硬件描述語言HDL以及先進的ASIC制造工藝和CPLD/FPGA開發技術。當今,自頂向下的層次化設計方法已經是EDA技術的首選設計方法,是CPLD/FPGA開發的主要設計手段。
6 結束語
EDA技術為現代數字系統理論和設計的表達與應用提供了可能性,它已不是某一學科的分支,而是一門綜合性學科。EDA技術打破了計算機軟件與硬件間的壁壘,是計算機的軟件技術與硬件實現、設計效率和產品性能合二為一,它代表了數字電子設計技術和應用技術的發展方向。
EDA技術可廣泛應用于科研、教學工作及新型電子產品的開發中。EDA技術是電子設計與計算機相結合的產物,而它的產生又極大地推動了前者的發展。目前正是EDA技術的高速發展階段。在EDA技術開發方面,主要集中在美國等西方發達國家,新的EDA工具層出不窮。日本、韓國等亞洲國家也十分重視EDA技術的開發。我國EDA技術,無論開發還是應用都遠遠落后于發達國家,這也是我國信息技術集成電路產業的整體現狀EDA技術也是信息產業部軟件與集成電路促進中心的“國家信息技術緊缺人才培養工程”重點培訓內容,為實現將中國從世界制造大國發展為世界技術強國,廣大電子工程人員應加快學習和應用,提高自身的競爭能力,適應EDA技術的迅猛發展。
? ? ? ?責任編輯:tzh
評論
查看更多