當前位置:
首頁 > 科技 > EDA技術與FPGA設計應用詳解

EDA技術與FPGA設計應用詳解

摘 要:eda技術是現代電子設計技術的核心,它在現代集成電路設計中佔據重要地位。隨著深亞微米與超深亞微米技術的迅速發展,fpga設計越來越多地採用基於vhdl的設計方法及先進的eda工具。本文詳細闡述了eda技術與fpga設計應用。

引言

---21世紀是電子信息產業主導的知識經濟時代,信息領域正在發生一場巨大變革,其先導力量和決定性因素正是微電子集成電路。矽片技術的日益成熟,特別是深亞微米(dsm,deep sub-micron)和超深亞微米(vdsm,very deep sub-micron)技術,極大促進了集成電路產業的快速發展。

---集成電路發展經歷了電路集成、功能集成、技術集成,直至今天基於計算機軟硬體的知識集成,這標誌著傳統電子系統已全面進入現代電子系統階段,這也被譽為進入3g時代,即單片集成度達到1g個晶體管、器件工作速度達到1ghz、數據傳輸速率達到1gbps。

---eda(electronic design automation,電子設計自動化)技術基於計算機輔助設計,它融合了應用電子技術、計算機技術、信息處理技術、智能化技術的最新成果,以實現電子產品的自動設計。eda是現代電子設計技術的核心,在現代集成電路設計中佔據重要地位。fpga(field programmable gate array,現場可編程門陣列)作為可編程邏輯器件的典型代表,它的出現及日益完善適應了當今時代的數字化發展浪潮,它正廣泛應用在現代數字系統設計中。

eda技術與fpga原理

1.eda技術特徵

---eda是電子設計領域的一場革命,它源於計算機輔助設計(cad,computer aided design)、計算機輔助製造(cam,computer aided made)、計算機輔助測試(cat,computer aided test)和計算機輔助工程(cae,computer aided engineering)。利用eda工具,電子設計師從概念、演算法、協議開始設計電子系統,從電路設計、性能分析直到ic版圖或pcb版圖生成的全過程均可在計算機上自動完成。

---eda代表了當今電子設計技術的最新發展方向,其基本特徵是設計人員以計算機為工具,按照自頂向下的設計方法,對整個系統進行方案設計和功能劃分,由硬體描述語言完成系統行為級設計,利用先進的開發工具自動完成邏輯編譯、化簡、分割、綜合、優化、布局布線(par,place and route)、模擬及特定目標晶元的適配編譯和編程下載,這被稱為數字邏輯電路的高層次設計方法。

---作為現代電子系統設計的主導技術,eda具有兩個明顯特徵:即並行工程(concurrent engineering)設計和自頂向下(top-down)設計。其基本思想是從系統總體要求出發,分為行為描述(behaviour description)、寄存器傳輸級(rtl,register transfer level)描述、邏輯綜合(logic synthesis)三個層次,將設計內容逐步細化,最後完成整體設計,這是一種全新的設計思想與設計理念。

2.fpga原理

---今天,數字電子系統的設計方法及設計手段都發生了根本性變化,正由分立數字電路向可編程邏輯器件(pld,programmable logic device)及專用集成電路(asic,application specific integrated circuit)轉變。fpga與cpld(programmable logic device,複雜可編程邏輯器件)都屬於pld的範疇,它們在現代數字系統設計中正佔據越來越重要的地位。

---fpga是由用戶編程來實現所需邏輯功能的數字集成電路,它不僅具有設計靈活、性能高、速度快等優勢,而且上市周期短、成本低廉。fpga設計與asic前端設計十分類似,在半導體領域中fpga應用日益普及,已成為集成電路中最具活力和前途的產業。同時,隨著設計技術和製造工藝的完善,器件性能、集成度、工作頻率等指標不斷提升,fpga已越來越多地成為系統級晶元設計的首選。

---fpga由pal(可編程陣列邏輯)、gal(通用陣列邏輯)發展而來,其基本設計思想是藉助於eda開發工具,用原理圖、狀態機、布爾表達式、硬體描述語言等方法進行系統功能及演算法描述,設計實現並生成編程文件,最後通過編程器或下載電纜用目標器件來實現。

---fpga器件採用邏輯單元陣列(lca,logic cell array)結構、sdram工藝,其中lca由三類可編程單元組成。

---(1)可配置邏輯塊(clb,configurable logic block):被稱為核心陣列,是實現自定義邏輯功能的基本單元,散佈於整個晶元;

---(2)輸入/輸出模塊(iob,input/output block):排列於晶元四周,為內部邏輯與器件封裝引腳之間提供可編程介面;

---(3)可編程互連資源(pi,programmable interconnect):包括不同長度的連線線段及連接開關,其功能是將各個可編程邏輯塊或i/o塊連接起來以構成特定電路。

---全球生產fpga的廠家很多,但影響力最大的是xilinx公司和altera公司,世界上第一片fpga是在20世紀80年代中期xilinx公司率先推出的。不同廠家生產的fpga在可編程邏輯塊的規模、內部互連線結構及所採用的可編程元件上存在較大差異,實際使用時應注意區分。

fpga設計應用及優化策略

1.fpga設計層次分析

---fpga設計包括描述層次及描述領域兩方面內容。通常設計描述分為6個抽象層次,從高到低依次為:系統層、演算法層、寄存器傳輸層、邏輯層、電路層和版圖層。對每一層又分別有三種不同領域的描述:行為域描述、結構域描述和物理域描述。

---系統層是系統最高層次的抽象描述,針對於電子系統整體性能。演算法層又稱為行為層,它是在系統級性能分析和結構劃分後對每個模塊的功能描述。演算法層所描述的功能、行為最終要用數字電路來實現。而數字電路本質上可視為由寄存器和組合邏輯電路組成,其中寄存器負責信號存儲,組合邏輯電路負責信號傳輸。寄存器傳輸層描述正是從信號存儲、傳輸的角度去描述整個系統。寄存器和組合邏輯本質上是由邏輯門構成,邏輯層正是從邏輯門組合及連接角度去描述整個系統。

---fpga各個描述層次及綜合技術關係如圖1所示。傳統的綜合工具是將寄存器傳輸級(rtl)的描述轉化為門級描述。隨著以行為設計為主要標誌的新一代系統設計理論的不斷成熟,能夠將系統行為級描述轉化為rtl描述的高層次綜合技術不斷湧現。

---作為現代集成電路設計的重點與熱點,fpga設計一般採用自頂向下、由粗到細、逐步求精的方法。設計最頂層是指系統的整體要求,最下層是指具體的邏輯電路實現。自頂向下是將數字系統的整體逐步分解為各個子系統和模塊,若子系統規模較大則進一步分解為更小的子系統和模塊,層層分解,直至整個系統中各子模塊關係合理、便於設計實現為止。

2.vhdl在fpga設計中的應用

---集成電路設計規模及複雜度不斷增大,用傳統原理圖方法進行系統級晶元設計已不能滿足設計要求,而硬體描述語言(hdl,hardware description language)在進行大規模數字系統設計時具有諸多優勢,因此利用硬體描述語言進行系統行為級設計已成為fpga與asic設計的主流。目前最流行、最具代表性的硬體描述語言是美國國防部(dod)開發的vhdl(vhsic hardware description language)和gda(gateway design automation)公司開發的verilog hdl。

---vhsic代表very high speed integrated circuit,因此vhdl即甚高速集成電路硬體描述語言。vhdl語法嚴格,1987年即成為ieee標準,即ieee std 1076-1987,1993年進一步修訂成為ieee std 1076-1993。

---vhdl作為ieee標準,已得到眾多eda公司支持,其主要優點有:

● 描述能力強,支持系統行為級、寄存器傳輸級和門級三個層次設計;

● 可讀性好、移植性強,其源文件既是程序又是文檔,便於復用和交流;

● 支持自頂向下的設計和基於庫(library-based)的設計;

● 支持同步、非同步及隨機電路的設計;

● 與工藝無關,生命周期長。

---vhdl語言主要應用在行為層和寄存器傳輸層,這兩層可充分發揮出vhdl面向高層的優勢。利用vhdl實現數字電路的實質是利用綜合工具將高層次描述轉化為低層次門級描述,其中綜合可分為三個層次:高層次綜合(high-level synthesis)、邏輯綜合(logic synthesis)和版圖綜合(layout synthesis)。

3.基於vhdl的fpga系統行為級設計

---基於vhdl的fpga設計基本流程及詳細流程分別如圖2和圖3所示,具體包括以下重要環節:設計輸入(design entry)、設計綜合(design synthesis)、設計約束(design constraints)、設計實現(design implement)、設計模擬(design simulation)和器件編程(device programming)。

---設計輸入主要採用hdl(硬體描述語言)、ecs(engineering schematic capture,原理圖編輯器)和fsm(finite state machine,有限狀態機);

---設計綜合就是依據邏輯設計描述和約束條件,利用開發工具進行優化處理,將hdl文件轉變為硬體電路實現方案,其實質就是優化設計目標的過程;

---設計約束主要包括設計規則約束、時間約束、面積約束三種,通常時間約束的優先順序高於面積約束;

---設計實現對於fpga分為編譯規劃、布局布線(par,place and route)、程序比特流文件產生;對於cpld則是編譯、配置、比特流文件產生;

---設計模擬分為功能模擬和時序時延模擬。功能模擬在設計輸入之後、綜合之前進行,只進行功能驗證,又稱為前模擬。時序時延模擬在綜合和布局布線之後進行,能夠得到目標器件的詳細時序時延信息,又稱為後模擬;

---器件編程是指在功能模擬與時序時延模擬正確的前提下,將綜合後形成的位流編程下載到具體的fpga/cpld晶元中,又稱晶元配置。fpga/cpld編程下載通常可使用jtag編程器、prom文件格式器和硬體調試器三種方式,其中jtag(joint test action group,聯合測試行動組)是工業標準的ieee 1149.1邊界掃描測試的訪問介面,用作編程功能可省去專用的編程介面,減少系統引出線,有利於各可編程邏輯器件編程介面的統一,因此應用廣泛。

4.fpga設計優化及方案改進

---在fpga設計中,必須首先明確hdl源代碼編寫非常重要;不同綜合工具包含的綜合子集不同致使有些hdl語句在某些綜合工具中不能綜合;同一邏輯功能可用不同hdl語句進行描述,但佔用資源卻可能差別很大。同時應當深刻理解並發性是硬體描述語言與普通高級語言的根本區別,因而設計硬體電路不能受傳統順序執行思維的束縛。

---此外,我們應當清楚速度優化與面積優化在fpga設計中佔有重要地位。

對於大多數數字系統設計而言,速度常常是第一要求,但fpga結構特性、綜合工具性能、系統電路構成、pcb製版情況及hdl代碼表述都會對工作速度產生重要影響。我們通過在電路結構設計中採用流水線設計、寄存器配平、關鍵路徑法可以進行速度優化。

---(1)流水線設計

---流水線(pipelining)技術在速度優化中相當流行,它能顯著提高系統設計的運行速度上限,在現代微處理器、數字信號處理器、mcu單片機、高速數字系統設計中都離不開流水線技術。圖4與圖5是流水線設計的典型圖示,其中圖4未使用流水線設計,圖5採用了2級流水線設計,在設計中將延時較大的組合邏輯塊切割成兩塊延時大致相等的組合邏輯塊,並在這兩個邏輯塊中插入了觸發器,即滿足以下關係式:ta=t1+t2,t1≈t2。通過分析可知,圖4中fmax≈1/ta;圖5中流水線第1級最高工作頻率fmax1≈1/t1,流水線第2級最高工作頻率fmax2≈1/t2≈1/t1,總設計最高頻率為fmax≈fmax1≈fmax2≈1/t1,因此圖5設計速度較圖4提升了近一倍。流水線工作原理可用圖6表示。

---(2)寄存器配平(register balancing)

---寄存器配平是通過配平寄存器之間的組合延時邏輯塊來實現速度優化,如圖7、圖8所示。圖7中兩個組合邏輯塊延時差別過大,導致設計總體工作頻率fmax取決於t1,即最大的延時模塊,從而使設計整體性能受限。通過對圖7設計進行改進,將延時較大的組合邏輯1的部分邏輯轉移到組合邏輯2中,成為圖8結構,以減小延時t1,使t1≈t2,且滿足t1+t2=t1+t2。寄存器配平後的圖8結構中fmax≈1/t1>1/t1,從而提高了設計速度。

---(3)關鍵路徑法

---關鍵路徑是指設計中從輸入到輸出經過的延時最長的邏輯路徑,優化關鍵路徑是提高設計工作速度的有效方法。圖9中td1>td2,td1>td3,關鍵路徑為延時td1的模塊,由於從輸入到輸出的延時取決於延時最長路徑,而與其他延時較小的路徑無關,因此減少td1則能改善輸入到輸出的總延時。

---在優化設計過程中關鍵路徑法可反覆使用,直到不可能減少關鍵路徑延時為止。

---在fpga設計中,面積優化實質上就是資源利用優化,面積優化有多種實現方法,諸如資源共享、邏輯優化、串列化,其中資源共享使用較多,下面舉例說明。

---在利用fpga設計數字系統時經常遇到同一模塊需要反覆被調用,例如多位乘法器、快速進位加法器等算術模塊,它們佔用晶元資源很多,使系統成本及器件功耗大幅上升,因而使用資源共享技術能夠顯著優化資源。圖10和圖11是資源共享的一個典型實例,由圖可見使用資源共享技術節省了一個多位乘法器,從而達到減少資源消耗、優化面積的目的。

---最後針對fpga的設計實現提出一些改進方案,fpga實現分為編譯規劃、布局布線(par,place and route)、程序比特流文件生成三個階段,當設計不滿足性能指標或不能完全布線時,可進行以下改進工作:

● 使用定時約束(timing constraints);

● 增大布局布線級別(par effort);

● 對關鍵通路(critical paths)的數字邏輯重新設計;

● 運行重布線(re-entrant routing);

● 運行mppr(multi-pass place & route,多通路布局布線);

● 運行平面布局(floorplan)查看布局圖及連通性。

---下面重點介紹re-entrant routing與mppr,它們都可改進布局布線結果,提高系統性能。其中re-entrant routing是指已運行過par後再次運行par,但跳過布局過程直接進行布線,如圖12所示。mppr則是根據不同功耗表(cost tables)來運行par多次,通過對每一個par迭代評分來確定最好路徑並保留,其中評分依據是未布線的連線個數、連線延遲與時序約束,如圖13所示。

結束語

---當今社會,集成電路產業已成為高技術產業群的核心戰略產業,已逐漸演化為設計、製造、封裝、測試協調發展的產業結構,它正進入以知識產權為創新核心的新時期。這標誌著集成電路產業的競爭已由技術競爭、資本競爭進入到智力和知識產權競爭的高級階段。

---fpga在集成電路設計應用中佔有重要地位,現場可編程性是fpga最突出的優點。用戶通過利用強大的開發工具,能在最短時間內對fpga內部邏輯進行反覆設計及修改,直至滿意為止,這大大縮短了產品設計開發周期,提高了最終產品性能。因而fpga以其獨有的技術優勢在電子設計領域得到越來越廣泛的應用。隨著科學發展及工藝進步,作為重中之重的集成電路設計業必將遇到更大的挑戰及發展機遇。

參考文獻

1 王鎖萍,龔建榮等. 電子設計自動化教程. 成都: 電子科技大學出版社, 2000.2

2 褚振勇,翁木雲. fpga設計及應用. 西安: 西安電子科技大學出版社, 2002.7

3 潘松,黃繼業. eda技術實用教程. 北京: 科學出版社. 2002,10

4 http://www.xilinx.com

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子產品世界 的精彩文章:

手機ESD靜電防護的重要性
碩凱ESD保護二極體如何為智能電視HDMI介面提供保護
家電巨頭康佳主動求變,為 「下一個37年」描繪宏偉藍圖
彩電行業低迷 康佳為何逆勢增長
英飛凌憑藉其在雷達駕駛輔助系統方面的領先地位推動自動駕駛的發展

TAG:電子產品世界 |