新聞中心

EEPW首頁 > 醫(yī)療電子 > 設(shè)計應(yīng)用 > 多種EDA工具進(jìn)行FPGA設(shè)計的原理及方法簡介

多種EDA工具進(jìn)行FPGA設(shè)計的原理及方法簡介

作者: 時間:2014-07-25 來源:網(wǎng)絡(luò) 收藏

  摘要:介紹了利用多種工具進(jìn)行設(shè)計的實現(xiàn)原理及方法,其中包括設(shè)計輸入、、功能、實現(xiàn)、時序、配置下載等具體內(nèi)容。并以實際操作介紹了整個的設(shè)計流程。

本文引用地址:http://www.butianyuan.cn/article/256057.htm

  關(guān)鍵詞:

  在數(shù)字系統(tǒng)設(shè)計的今天,片上系統(tǒng)(SoC)技術(shù)的出現(xiàn)已經(jīng)在設(shè)計領(lǐng)域引起深刻變革。為適應(yīng)產(chǎn)品盡快上市的要求,設(shè)計者必須合理選擇各廠家提供的加速設(shè)計的工具軟件,以使其產(chǎn)品在本領(lǐng)域良性發(fā)展。FPGA設(shè)計是當(dāng)前數(shù)字系統(tǒng)設(shè)計領(lǐng)域中的重要方式之一。本文以多種EDA廠家工具為基礎(chǔ),系統(tǒng)介紹 FPGA設(shè)計的流程。

  1 數(shù)字邏輯劃分與FPGA內(nèi)部結(jié)構(gòu)

  

 

  圖1所示為數(shù)字邏輯權(quán)狀分類圖,由其可以看出,現(xiàn)場可編程門陣列(FPGA)是專用集成電路中可編程邏輯器件的重要分支。

  隨著微電子工業(yè)的發(fā)展與進(jìn)步,F(xiàn)PGA的集成度已經(jīng)達(dá)到數(shù)百萬門,如Xilinx公司的Xcv3200e最大門數(shù)為320萬門,Altera公司的 Apex20k1500e為150萬門,且系統(tǒng)時鐘頻率已達(dá)到200MHz,支持多種I/I電壓標(biāo)準(zhǔn),并具有豐富的可重復(fù)利用的IP核,便于加速系統(tǒng)設(shè)計。

  FPGA的內(nèi)部資源(以Xilinx公司為例)一般分為可編程邏輯塊CLB、輸入輸出塊IOB和可編程連線PI三部分。通過編程控制PI連接各CLB單元,可以形成具有特定功能的電路。使用各公司的專用設(shè)計軟件設(shè)計FPGA,最終可形成由PI控制CLB單元的位流文件。

  Xilinx公司主推的Virtex系列FPGA產(chǎn)品采用0.22微米工藝,具有如下特性:支持9種I/O標(biāo)準(zhǔn)、4個延時鎖定環(huán)、塊存儲與分布存儲并存、可編程流水延時存儲、熱控制、配置速率為500Mb/s。而Altera公司的Apex20ke系列同樣是其公司主推的FPGA產(chǎn)品,在內(nèi)部嘏線資源方面與Xilinx公司產(chǎn)品不同。在Virtex器件中,分為雙長線、單長線、長線幾種,在布線時可以按最近原則進(jìn)行取舍;而在Apex20ke中,連線僅為一種等長,所以在時序分析時比較準(zhǔn)確。

  2 FPGA設(shè)計流程

  FPGA設(shè)計人體分為設(shè)計輸入、、功能仿真(前仿真)、實現(xiàn)、時序仿真(后仿真)、配置下載等六個步驟,設(shè)計流程如圖2所示。下面分別介紹各個設(shè)計步驟。

  2.1 設(shè)計輸入

  設(shè)計輸入包括使用硬件描述語言HDL、狀態(tài)圖與原理圖輸入三種方式。HDL設(shè)計方式是現(xiàn)今設(shè)計大規(guī)模數(shù)字集成電路的良好形式,除IEEE標(biāo)準(zhǔn)中 VHDL與Verilog HDL兩種形式外,尚有各自FPGA廠家推出的專用語言,如Quartus下的AHDL。HDL語言描述在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng),使其描述的電路能特定綜合器(如Synopsys公司的FPGA Compiler II或FPGA Express)作用下以具體硬件單元較好地實現(xiàn);而原理圖輸入在頂層設(shè)計、數(shù)據(jù)通路邏輯、手工最優(yōu)化電路等方面具有圖形化強(qiáng)、單元節(jié)儉、功能明確等特點,另外,在Altera公司Quartus軟件環(huán)境下,可以使用Momory Editor對內(nèi)部memory進(jìn)行直接編輯置入數(shù)據(jù)。常用方式是以HDL語言為主,原理圖為輔,進(jìn)行混合設(shè)計以發(fā)揮二者各自特色。

  通常,F(xiàn)PGA廠商軟件與第三方軟件設(shè)有接口,可以把第三方設(shè)計文件導(dǎo)入進(jìn)行處理。如Quartus與Foundation都可以把EDIF網(wǎng)表作為輸入網(wǎng)表而直接進(jìn)行布局布線,布局布線后,可再將生成的相應(yīng)文件交給第三方進(jìn)行后續(xù)處理。

  2.2 設(shè)計綜合

  綜合,就是針對給定的電路實現(xiàn)功能和實現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計算機(jī)進(jìn)行優(yōu)化處理,獲得一個能滿足上述要求的電路設(shè)計方案。也就是是說,被綜合的文件是HDL文件(或相應(yīng)文件等),綜合的依據(jù)是邏輯設(shè)計的描述和各種約束條件,綜合的結(jié)果則是一個硬件電路的實現(xiàn)方案,該方案必須同時滿足預(yù)期的功能和約束條件。對于綜合來說,滿足要求的方案可能有多個,綜合器將產(chǎn)生一個最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合的過程也就是設(shè)計目標(biāo)的優(yōu)化過程,最后獲得的結(jié)構(gòu)與綜合器的工作性能有關(guān)。

  FPGA Compiler II是一個完善的FPGA邏輯分析、綜合和優(yōu)化工具,它從HDL形式未優(yōu)化的網(wǎng)表中產(chǎn)生優(yōu)化的網(wǎng)表文件,包括分析、綜合和優(yōu)化三個步驟。其中,分析是采用 Synopsys標(biāo)準(zhǔn)的HDL語法規(guī)則對HDL源文件進(jìn)行分析并糾正語法錯誤;綜合是以選定的FPGA結(jié)構(gòu)和器件為目標(biāo),對HDL和FPGA網(wǎng)表文件進(jìn)行邏輯綜合;而優(yōu)化則是根據(jù)用戶的設(shè)計約束對速度和面積進(jìn)行邏輯優(yōu)化,產(chǎn)生一個優(yōu)化的FPGA網(wǎng)表文件,以供FPGA布局和布線工具使用,即將電路優(yōu)化于特定廠家器件庫,獨立于硅持性,但可以被約束條件所驅(qū)動。

  利用FPGA Compiler II進(jìn)行設(shè)計綜合時,應(yīng)在當(dāng)前Project下導(dǎo)入設(shè)計源文件,自動進(jìn)行語法分析,在語法無誤并確定綜合方式、目標(biāo)器件、綜合強(qiáng)度、多層保持選擇、優(yōu)化目標(biāo)等設(shè)置后,即可進(jìn)行綜合與優(yōu)化。在此可以將兩步獨立進(jìn)行,在兩步之間進(jìn)行約束指定,如時鐘的確定、通路與端口的延時、模塊的算子共享、寄存器的扇出等。如果設(shè)計模型較大,可以采用層次化方式進(jìn)行綜合,先綜合下級模塊,后綜合上級模塊。在進(jìn)行上級模塊綜合埋設(shè)置下級模塊為Don't Touch,使設(shè)計與綜合過程合理化。綜合后形成的網(wǎng)表可以以EDIF格式輸出,也可以以VHDL或Verilog HDL格式輸出,將其導(dǎo)入FPGA設(shè)計廠商提供的可支持第三方設(shè)計輸入的專用軟件中,就可進(jìn)行后續(xù)的FPGA芯片的實現(xiàn)。綜合完成后可以輸出報告文件,列出綜合狀態(tài)與綜合結(jié)果,如資源使用情況、綜合后層次信息等。

  2.3 仿真驗證

  從廣義上講,設(shè)計驗證包括功能與時序仿真和電路驗證。仿真是指使用設(shè)計軟件包對已實現(xiàn)的設(shè)計進(jìn)行完整測試,模擬實際物理環(huán)境下的工作情況。前仿真是指僅對邏輯功能進(jìn)行測試模擬,以了解其實現(xiàn)的功能否滿足原設(shè)計的要求,仿真過程沒有加入時序信息,不涉及具體器件的硬件特性,如延時特性;而在布局布線后,提取有關(guān)的器件延遲、連線延時等時序參數(shù),并在此基礎(chǔ)上進(jìn)行的仿真稱為后仿真,它是接近真實器件運行的仿真。

  2.4 設(shè)計實現(xiàn)

  實現(xiàn)可理解為利用實現(xiàn)工具把邏輯映射到目標(biāo)器件結(jié)構(gòu)的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進(jìn)行連線,并產(chǎn)生相應(yīng)文件(如配置文件與相關(guān)報告)。通??煞譃槿缦挛鍌€步驟。

fpga相關(guān)文章:fpga是什么



上一頁 1 2 3 下一頁

關(guān)鍵詞: FPGA 仿真 綜合 EDA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉