陳宏
摘要:本文介紹了電子設計自動化的概念,涉及需要學習的主要內(nèi)容,以及自動化設計的設計流程。
關鍵詞:EDA;定義;主要內(nèi)容;流程
一、什么是EDA
EDA是電子設計自動化的縮寫,在20世紀90年代初從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CRE)的概念發(fā)展而來的。EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。
廣義定義:以計算機硬件和系統(tǒng)軟件為基本工作平臺,繼承和借鑒前人在電路和系統(tǒng)、數(shù)據(jù)庫、圖形學、圖論和拓撲邏輯、計算數(shù)學、優(yōu)化理論等多學科的最新科技成果而研制的商品化EDA通用支撐軟件和應用軟件包。
一般的定義:EDA技術是以大規(guī)模可編程邏輯器件為設計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟件,自動完成用軟件的方法設計電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術。
EDA技術不僅具有電子系統(tǒng)設計的能力,而且能提供獨立于工藝和廠家的系統(tǒng)級設計能力,具有高級抽象的設計構(gòu)思手段。設計工具完全集成化,可以實現(xiàn)以HDL語言為主的系統(tǒng)級綜合與仿真,從設計輸入到版圖的形成,幾乎不需要人工干預,因此整個流程實現(xiàn)自動化。該階段的EDA的發(fā)展還促進設計方法的轉(zhuǎn)變,由傳統(tǒng)的自底向上的設計方法逐漸轉(zhuǎn)變?yōu)樽皂斚蛳碌脑O計方法。EDA技術的出現(xiàn),極大地提高了電路設計的效率,減輕了設計者的勞動強度。
二、EDA技術的主要內(nèi)容
(1)可編程邏輯器件。(Programmable Logic Device,簡稱PLD)它是一種由用戶編程以實現(xiàn)某種邏輯功能的邏輯器件。
可編程邏輯器件中應用最廣泛的是:現(xiàn)場可編程門陣列(Field Programmable Gate Arrays,簡稱FPGA)和復雜可編程邏輯器件(Complex Programmable Logic Device,簡稱CPLD)。
FPGA/CPLD的集成規(guī)模非常大,可利用先進的EDA工具進行電子系統(tǒng)設計和產(chǎn)品開發(fā)。由于開發(fā)工具的通用性、設計語言的標準化以及設計過程幾乎與所用器件的硬件結(jié)構(gòu)沒有關系,因而設計開發(fā)的各類邏輯功能塊軟件具有很好的兼容性和可移植性。 它幾乎可用于任何型號和規(guī)模的FPGA/CPLD中,從而使得產(chǎn)品設計效率大幅度提高。
(2)硬件描述語言。HDL是電子系統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述的語言。硬件描述的語言種類很多,有的從PASCAL發(fā)展而來,也有一些從C語言發(fā)展而來。有些HDL已成為IEEE標準,但大部分是本企業(yè)標準。
目前常用的硬件描述語言有:
VHDL語言: 作為IEEE的工業(yè)標準硬件描述語言,在電子工程領域,已成為通用硬件描述語言
Verilog語言:支持的EDA工具較多,適用于RTL級和門電路級的描述,其綜合過程較VHDL稍簡單,但其在高級描述方面不如VHDL。
ABEL語言:一種支持各種不同輸入方式的HDL,被廣泛用于各種可編程邏輯器件的邏輯功能設計,由于其語言描述的獨立性,因而能夠適用于各種不同規(guī)模的可編程器件的設計。
(3)軟件開發(fā)工具。EDA工具在EDA技術應用中占據(jù)及其重要的地位。EDA工具大致可以分為五個模塊:設計輸入編輯器、 HDL綜合器、仿真器、適配器(或布局布線器)、下載器。
(4)實驗開發(fā)系統(tǒng)。實驗開發(fā)系統(tǒng)包括芯片下載電路及EDA實驗/開發(fā)的外圍資源(類似于用于單片機開發(fā)的仿真器),供硬件驗證用。
三、EDA技術設計流程
完整地了解EDA技術的設計流程,對于正確選擇和使用EDA軟件、優(yōu)化設計項目、提高設計效率十分有益。一個完整的EDA設計流程既是自頂向下設計方法的具體實施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。在實踐中進一步了解支持這一設計流程的諸多設計工具,有效地排除設計中出現(xiàn)的問題,提高設計質(zhì)量及總結(jié)經(jīng)驗。
設計流程如下:
(1)設計輸入(原理圖/HDL等)。利用EDA技術進行一項工程設計,首先需要利用EDA工具的文本編輯器或圖形編輯器將設計工程用文本方式或圖形方式表達出來,進行排錯編譯,為進一步的邏輯綜合作準備。常用的源程序輸入方式有三種:①原理圖輸入方式; ②HDL程序的文本輸入方式; ③狀態(tài)圖(波形圖)輸入方式。
(2)邏輯綜合和優(yōu)化。綜合就是把某些東西結(jié)合到一起,把抽象層次上的一種表述方式轉(zhuǎn)換到另一種表述的過程。在電子設計領域,綜合的概念可以理解為:將用行為和功能層次表達的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實現(xiàn)的模塊組合裝配的過程。
(3)目標器件的適配。邏輯綜合通過后必須利用適配器將綜合后的網(wǎng)表文件針對某一具體的目標器進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作,適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時序仿真。
適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標器件中,產(chǎn)生最終的下載文件,如JEDEC格式的文件。適配所選定的目標器件(FPGA/CPLD芯片)必須屬于原綜合器指定的目標器件系列。對于一般的可編程模擬器件所對應的EDA軟件來說,一般僅需包含一個適配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應商自己提供,因為適配器的適配對象直接與器件結(jié)構(gòu)相對應。
(4)器件編程下載。如果編譯、綜合、適配和行為仿真、功能仿真、時序仿真等過程都沒有發(fā)現(xiàn)問題,即滿足原設計的要求,則可以將由FPGA/CPLD適配器產(chǎn)生的配置/下載文件通過編程器或下載電纜載入目標芯片F(xiàn)PGA或CPLD中。通常,將對CPLD器件的下載稱為“編程”(Program),對FPGA器件中的SRAM的下載稱為“配置”(Configure)。
(5)硬件仿真/硬件測試。硬件仿真和硬件測試的目的,是為了在更真實的環(huán)境中檢驗VHDL設計的運行情況。許多設計中的因素可能會導致設計與結(jié)果的不一致。所以,VHDL設計的硬件仿真和硬件測試是十分必要的。一般的FPGA/CPLD器件都支持JTGA技術,具有邊界掃描測試能力BST(Board Scan Test)和在線編程ISP(In System Programing)能力,測試起來非常方便。