2017年電子設計自動化技術及其發展

電子設計自動化已經被廣泛應用於電子電路的設計和仿真,集成電路的版圖設計、印刷電路板(PCB)的設計和可編程器件的編程等各項工作中。下面是小編整理的關於電子設計自動化技術及其發展,歡迎大家參考!

2017年電子設計自動化技術及其發展

20世紀末,電子設計技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透到社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步提高,產品更新換代的節奏也變得越來越快。

微電子技術的進步表現在大規模集成電路加工技術即半導體工藝技術的發展上,使得表徵半導體工藝水平的線寬已經達到了90nm,並還在不斷地縮小,在硅片單位面積上,集成了更多的晶體管。集成電路設計正在不斷地向超大規模、極低功耗和超高速的方向發展;專用集成電路ASIC(Application Specific Integrated Circuit)的設計成本不斷降低,在功能上,現代的集成電路已能夠實現單片電子系統SOC(System On a Chip)。

現代電子設計技術的核心已日趨轉向基於計算機的電子設計自動化技術,即EDA(Electronic Design Automation)技術。EDA技術就是依賴功能強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(Hardware Description Language)爲系統邏輯描述手段完成的設計文件,自動地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合、結構綜合(佈局佈線),以及邏輯優化和仿真測試,直至實現既定的電子線路系統功能。EDA技術使得設計者的工作僅限於利用軟件的方式,即利用硬件描述語言和EDA軟件來完成對系統硬件功能的實現,這是電子設計技術的一個巨大進步。

另一方面,在現代高新電子產品的設計和生產中,微電子技術和現代電子設計技術是相互促進、相互推動又相互制約的兩個環節;前者代表了物理層在廣度和深度上硬件電路實現的發展,後者則反映了現代先進的電子理論、電子技術、仿真技術、設計工藝和設計技術與最新的計算機軟件技術有機的融合和昇華。因此,嚴格地說,EDA技術應該是這二者的結合,是這兩個技術領域共同孕育的奇葩。

EDA技術在硬件實現方面融合了大規模集成電路製造技術,IC版圖設計技術、ASIC測試和封裝技術、FPGA/CPLD編程下載技術、自動測試技術等;在計算機輔助工程方面融合了計算機輔助設計(CAD)、計算機輔助製造(CAM)、計算機輔助測試(CAT)、計算機輔助工程(CAE)技術以及多種計算機語言的設計概念;而在現代電子學方面則容納了更多的內容,如電子線路設計理論、數字信號處理技術、數字系統建模和優化技術及長線技術理論等。因此EDA技術爲現代電子理論和設計的表達與實現提供了可能性。

在現代技術的所有領域中,縱觀許多得以飛速發展的科學技術,多爲計算機輔助設計,而非自動化設計。顯然,最早進入設計自動化的技術領域之一是電子技術,這就是爲什麼電子技術始終處於所有科學技術發展最前列的原因之一。不難理解,EDA技術已不是某一學科的分支,或某種新的技能技術,而應該是一門綜合性學科。它融合多學科於一體,又滲透於各學科之中,打破了軟件和硬件間的壁壘,使計算機的軟件技術與硬件實現、設計效率和產品性能合二爲一,它代表了電子設計技術和應用技術的發展方向。

正因爲EDA技術豐富的內容以及與電子技術各學科領域的相關性,其發展的歷程同大規模集成電路設計技術、計算機輔助工程、可編程邏輯器件,以及電子設計技術和工藝的發展是同步的。就過去近30年的電子技術的發展歷程,可大致將EDA技術的發展分爲三個階段。

20世紀70年代,在集成電路製作方面,MOS工藝已得到廣泛的應用。可編程邏輯技術及其器件已經問世,計算機作爲一種運算工具已在科研領域得到廣泛應用。而在後期,CAD的概念已見雛形,這一階段人們開始利用計算機取代手工勞動,輔助進行集成電路版圖編輯、PCB佈局佈線等工作。

20世紀80年代,集成電路設計進入了CMOS(互補場效應管)時代。複雜可編程邏輯器件已進入商業應用,相應的輔助設計軟件也已投入使用;而在80年代末,出現了FPGA(Field Programmable Gate Array),CAE和CAD技術的應用更爲廣泛,它們在PCB設計方面的原理圖輸入、自動佈局佈線及PCB分析,以及邏輯設計、邏輯仿真、布爾方程綜合和化簡等方面擔任了重要的角色。特別是各種硬件描述語言的出現、應用和標準化方面的重大進步,爲電子設計自動化必須解決的電路建模、標準文檔及仿真測試奠定了基礎。

進入20世紀90年代,隨着硬件描述語言的標準化得到進一步的確立,計算機輔助工程、輔助分析和輔助設計在電子技術領域獲得更加廣泛的應用,與此同時,電子技術在通信、計算機及家電產品生產中的市場需求和技術需求,也極大地推動了全新的電子設計自動化技術的應用和發展。特別是集成電路設計工藝步入了超深亞微米階段,百萬門以上的大規模可編程邏輯器件的陸續面世,以及基於計算機技術的面向用戶的低成本大規模ASIC設計技術的應用,促進了EDA技術的形成。更爲重要的是各EDA公司致力於推出兼容各種硬件實現方案和支持標準硬件描述語言的EDA工具軟件的研究,都有效地將EDA技術推向成熟和實用。

EDA技術在進入21世紀後,得到了更大的發展,突出表現在以下幾個方面。

● 在FPGA上實現DSP(數字信號處理)應用成爲可能,用純數字邏輯進行DSP模塊的設計,使得高速DSP實現成爲現實,並有力地推動了軟件無線電技術的實用化和發展。基於FPGA的DSP技術,爲高速數字信號處理算法提供了實現途徑。

● 嵌入式處理器軟核的成熟,使得SOPC(System On a Programmable Chip)步入大規模應用階段,在一片FPGA中實現一個完備的數字處理系統成爲可能。

● 使電子設計成果以自主知識產權的方式得以明確表達和確認成爲可能。

● 在仿真和設計兩方面支持標準硬件描述語言且功能強大的EDA軟件不斷推出。

● 電子技術領域全方位融入EDA技術,除了日益成熟的數字技術外,傳統的電路系統設計建模理念發生了重大的變化:軟件無線電技術的崛起,模擬電路系統硬件描述語言的表達和設計的標準化,系統可編程模擬器件的出現,數字信號處理和圖像處理的全硬件實現方案的普遍接受,軟硬件技術的進一步融合等。

● EDA使得電子領域各學科的界限更加模糊,更加互爲包容:模擬與數字、軟件與硬件、系統與器件、ASIC與FPGA、行爲與結構等。

● 更大規模的FPGA和CPLD器件的不斷推出。

● 基於EDA的用於ASIC設計的標準單元已涵蓋大規模電子系統及複雜IP核模塊。

● 軟硬IP(Intellectual Property)核在電子行業的產業領域廣泛應用。

● SOC高效低成本設計技術的成熟。

● 系統級、行爲驗證級硬件描述語言出現(如System C),使複雜電子系統的設計和驗證趨於簡單。

1.2 電子設計自動化應用對象

一般地說,利用EDA技術進行電子系統設計,最後實現的目標是以下3種。

● 全定製或半定製ASIC。

● FPGA/CPLD(或稱可編程ASIC)開發應用。

● PCB(印製電路板)。

實現目標的前面兩項可以歸結爲專用集成電路ASIC的設計和實現(如圖1-1所示),ASIC是最終的物理平臺,集中容納了用戶通過EDA技術將電子應用系統的既定功能和技術指標具體實現的硬件實體。一般而言,專用集成電路就是具有專門用途和特定功能的獨立集成電路器件,根據這個定義,作爲EDA技術最終實現目標的ASIC,可以通過3種途徑來完成,這可以通過圖1-1來說明。

電子設計自動化技術及其發展 - Ryan - liyongfeng1111的博客 電子設計自動化技術及其發展 - Ryan - liyongfeng1111的博客

圖1-1 EDA技術實現目標

圖1-1中所標的另外一個EDA技術實現目標PCB,指的是印製電路板的佈局佈線設計及驗證分析,由於不涉及芯片層面上的設計,故不擬展開。

下面主要介紹FPGA/CPLD與ASIC。

1.超大規模可編程邏輯器件

FPGA(Field Programmable Gate Array)和CPLD(Complex Programmable Logic Device)是實現這一途徑的主流器件,它們的特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現快捷,開發效率高,成本低,上市時間短,技術維護簡單,工作可靠性好等。FPGA和CPLD的應用是EDA技術有機融合軟硬件電子設計技術以及對自動化設計與自動化實現最典型的詮釋。由於FPGA和CPLD的開發工具、開發流程和使用方法與ASIC有類似之處,因此這類器件通常也被稱爲可編程專用IC,或可編程ASIC。

2.半定製或全定製ASIC

根據實現的工藝,基於EDA設計技術的半定製或全定製ASIC可統稱爲掩膜(MASK)ASIC,或直接稱ASIC。

ASIC大致分爲門陣列ASIC、標準單元ASIC和全定製ASIC。

門陣列ASIC

門陣列芯片包括預定製相連的PMOS和NMOS晶體管行。設計中,用戶可以藉助EDA工具將原理圖或硬件描述語言模型映射爲相應門陣列晶體管配置,創建一個指定金屬互連路徑文件,從而完成門陣列ASIC開發。由於有掩膜的創建過程,門陣列有時也稱掩膜可編程門陣列(MPGA)。但是 MPGA與FPGA完全不同,它不是用戶可編程的,也不屬於可編程邏輯範疇,而是實際的ASIC。MPGA出現在FPGA之前,FPGA技術則源自MPGA。現在,Altera的HardCopy、HardCopy II技術可以提供一種把FPGA的設計轉化爲結構化ASIC的途徑。

標準單元ASIC

目前大部分ASIC是使用庫中的不同大小的標準單元設計的,這類芯片一般稱作基於單元的集成電路(Cell-based Integrated Circuits,CBIC)。在設計者一級,庫包括不同複雜性的邏輯元件:SSI邏輯塊、MSI邏輯塊、數據通道模塊、存儲器、IP,以及系統級模塊。庫包含每個邏輯單元在硅片級的完整佈局,使用者只需利用EDA軟件工具與邏輯塊描述打交道即可,完全不必關心電路佈局的細節。標準單元佈局中,所有擴散、接觸點、過孔、多晶通道及金屬通道都已完全確定。當該單元用於設計時,通過EDA軟件產生的網表文件將單元佈局塊“粘貼”到芯片佈局之上的單元行上。標準單元ASIC設計與FPGA設計開發的流程相近。

全定製芯片

全定製芯片中,在針對特定工藝建立的設計規則下,設計者對於電路的設計有完全的控制權,如線的間隔和晶體管大小的確定。該領域的一個例外是混合信號設計,使用通信電路的ASIC可以定製設計其模擬部分。

3.混合ASIC

混合ASIC(不是指數模混合ASIC)主要指既具有面向用戶的FPGA可編程功能和邏輯資源,同時也含有可方便調用和配置的硬件標準單元模塊,如CPU、RAM、ROM、硬件加法器、乘法器、鎖相環等。Xilinx、Atmel和Altera公司已經推出了這方面的器件,如Virtex-4系列、Excalibur(含ARM核)和Stratix II系列等。混合ASIC爲SOC和SOPC(System On a Programmable Chip)的設計實現成爲便捷的途徑。

1.3 硬件描述語言

硬件描述語言HDL是EDA技術的重要組成部分,常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog和SystemC。

其中VHDL、Verilog在現在EDA設計中使用最多,也擁有幾乎所有的主流EDA工具的支持。而SystemVerilog和SystemC這兩種HDL語言還處於完善過程中。VHDL是作爲電子設計主流硬件的描述語言之一,本書將重點介紹它的編程方法和使用技術。

1.3.1 硬件描述語言VHDL

VHDL的英文全名是VHSIC(Very High Speed Integrated CircuitHardware Description Language),於1983年由美國國防部(DOD)發起創建,由IEEE(The Institute of Electrical and Electronics Engineers)進一步發展,並在1987年作爲“IEEE標準1076”發佈。從此,VHDL成爲硬件描述語言的業界標準之一。自IEEE公佈了VHDL的標準版本(IEEE Std 1076)之後,各EDA公司相繼推出了自己的VHDL設計環境,或宣佈自己的設計工具支持VHDL。此後VHDL在電子設計領域得到了廣泛應用,並逐步取代了原有的非標準硬件描述語言。

VHDL作爲一個規範語言和建模語言,隨着它的標準化,出現了一些支持該語言的行爲仿真器。由於創建VHDL的最初目標是用於標準文檔的建立和電路功能模擬,其基本想法是在高層次上描述系統和元件的行爲。但到了20世紀90年代初,人們發現,VHDL不僅可以作爲系統模擬的建模工具,而且可以作爲電路系統的設計工具;可以利用軟件工具將VHDL源碼自動地轉化爲文本方式表達的基本邏輯元件連接圖,即網表文件。這種方法顯然對於電路自動設計是一個極大的推進。很快,電子設計領域出現了第一個軟件設計工具,即VHDL邏輯綜合器,它可以標準地將VHDL的部分語句描述轉化爲具體電路實現的網表文件。

1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展了VHDL的內容,公佈了新版本的VHDL,即IEEE標準的1076-1993版本。現在,VHDL和Verilog作爲IEEE的工業標準硬件描述語言,得到衆多EDA公司的支持,在電子工程領域,已成爲事實上的通用硬件描述語言。現在公佈的最新VHDL標準版本是IEEE 1076-2002。

VHDL語言具有很強的電路描述和建模能力,能從多個層次對數字系統進行建模和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性。

VHDL具有與具體硬件電路無關和與設計平臺無關的特性,並且具有良好的電路行爲描述和系統描述的能力,並在語言易讀性和層次化結構化設計方面,表現了強大的生命力和應用潛力。因此,VHDL在支持各種模式的設計方法、自頂向下與自底向上或混合方法方面,在面對當今許多電子產品生命週期的縮短,需要多次重新設計以融入最新技術,改變工藝等方面都表現了良好的適應性。用VHDL進行電子系統設計的一個很大的優點是設計者可以專心致力於其功能的實現,而不需要對不影響功能的與工藝有關的因素花費過多的時間和精力。

1.3.2 硬件描述語言的綜合

綜合(Synthesis),就其字面含義應該爲:把抽象的實體結合成單個或統一的實體。因此,綜合就是把某些東西結合到一起,把設計抽象層次中的一種表述轉化成另一種表述的過程。對於電子設計領域的綜合概念可以表示爲:將用行爲和功能層次表達的電子系統轉換爲低層次的便於具體實現的模塊組合裝配而成的過程。

事實上,設計過程中的每一步都可稱爲一個綜合環節。設計過程通常從高層次的行爲描述開始,以最低層的結構描述結束,每個綜合步驟都是上一層次的轉換。

● 從自然語言表述轉換到VHDL語言算法表述,是自然語言綜合。

● 從算法表述轉換到寄存器傳輸級(Register Transfer Level,RTL)表述,即從行爲域到結構域的綜合,是行爲綜合。

● 從RTL級表述轉換到邏輯門(包括觸發器)的表述,即邏輯綜合。

● 從邏輯門表述轉換到版圖表述(ASIC設計),或轉換到FPGA的配置網表文件,可稱爲版圖綜合或結構綜合。

有了版圖信息就可以把芯片生產出來了。有了對應的配置文件,就可以使對應的FPGA變成具有專門功能的電路器件。顯然,綜合器就是能夠自動將一種設計表示形式向另一種設計表示形式轉換的計算機程序,或協助進行手工轉換的程序。它可以將高層次的表述轉化爲低層次的表述,可以從行爲域轉化爲結構域,可以將高一級抽象的電路表述(如算法級)轉化爲低一級的表述(如門級),並可以用某種特定的硬件技術實現(如CMOS)。

對設計者而言,在高抽象層次進行系統設計,再利用綜合工具將設計轉化爲低層次的表示,與直接在低抽象層次來設計系統的情況相比,類似於一個程序員用高級語言編程並用編譯器將程序編譯成機器代碼和直接用機器代碼進行編程時的情況。前一種情況在於設計者可以將精力主要集中於系統級問題上,而由於不必關心低級層次的設計所面臨的細節問題,在高抽象層次上進行設計和編程將花費較少的時間和精力,並且減少錯誤的發生。

另一方面,儘管(如圖1-2所示)從表面上看,VHDL等硬件描述語言綜合器和軟件程序編譯器都不過是一種“翻譯器”,它們都能將高層次的設計表達轉化爲低層次的表達,但它們卻具有許多本質的區別。

編譯器將軟件程序翻譯成基於某種特定CPU的機器代碼,這種代碼僅限於這種CPU而不能移植,並且機器代碼不代表硬件結構,更不能改變CPU的硬件結構,只能被動地爲其特定的硬件電路結構所利用。如果脫離了已有的硬件環境(CPU),機器代碼將失去意義。此外,編譯器作爲一種軟件的運行,除了某種單一目標器件,即CPU的硬件結構外,不需要任何與硬件相關的器件庫和工藝庫參與編譯。因而,編譯器的工作單純得多,編譯過程基本屬於一種一一對應式的“翻譯”行爲。