多種EDA工具的FPGA設計方案
概述:介紹了利用多種EDA工具進(jìn)行FPGA設計的實(shí)現原理及方法,其中包括設計輸入、綜合、功能仿真、實(shí)現、時(shí)序仿真、配置下載等具體內容。并以實(shí)際操作介紹了整個(gè)FPGA的設計流程。
本文引用地址:http://dyxdggzs.com/article/191704.htm在數字系統設計的今天,片上系統(SoC)技術(shù)的出現已經(jīng)在設計領(lǐng)域引起深刻變革。為適應產(chǎn)品盡快上市的要求,設計者必須合理選擇各EDA廠(chǎng)家提供的加速設計的工具軟件,以使其產(chǎn)品在本領(lǐng)域良性發(fā)展。FPGA設計是當前數字系統設計領(lǐng)域中的重要方式之一。本文以多種EDA廠(chǎng)家工具為基礎,系統介紹FPGA設計的流程。
1 數字邏輯劃分與FPGA內部結構
圖1所示為數字邏輯樹(shù)狀分類(lèi)圖,由其可以看出,現場(chǎng)可編程門(mén)陣列(FPGA)是專(zhuān)用集成電路中可編程邏輯器件的重要分支。
隨著(zhù)微電子工業(yè)的發(fā)展與進(jìn)步,FPGA的集成度已經(jīng)達到數百萬(wàn)門(mén),如Xilinx公司的Xcv3200e最大門(mén)數為320萬(wàn)門(mén),Altera公司的Apex20k1500e為150萬(wàn)門(mén),且系統時(shí)鐘頻率已達到200MHz,支持多種I/O電壓標準,并具有豐富的可重復利用的IP 核,便于加速系統設計。
FPGA的內部資源(以Xilinx公司為例)一般分為可編程邏輯塊CLB、輸入輸出塊IOB和可編程連線(xiàn)PI三部分。通過(guò)編程控制PI連接各CLB單元,可以形成具有特定功能的電路。使用各公司的專(zhuān)用設計軟件設計FPGA,最終可形成由PI控制CLB單元的位流文件。
Xilinx公司主推的Virtex系列FPGA產(chǎn)品采用0.22微米工藝,具有如下特性:支持9種I/O標準、4個(gè)延時(shí)鎖定環(huán)、塊存儲與分布存儲并存、可編程流水延時(shí)存儲、熱控制、配置速率為500Mb/s。而Altera公司的Apex20ke系列同樣是其公司主推的FPGA產(chǎn)品,在內部布線(xiàn)資源方面與Xilinx公司產(chǎn)品不同。在Virtex器件中,分為雙長(cháng)線(xiàn)、單長(cháng)線(xiàn)、長(cháng)線(xiàn)幾種,在布線(xiàn)時(shí)可以按最近原則進(jìn)行取舍;而在A(yíng)pex20ke中,連線(xiàn)僅為一種等長(cháng),所以在時(shí)序分析時(shí)比較準確。
2 FPGA設計原理
FPGA設計大體分為設計輸入、綜合、功能仿真(前仿真)、實(shí)現、時(shí)序仿真(后仿真)、配置下載等六個(gè)步驟,設計流程如圖2所示。下面分別介紹各個(gè)設計步驟。
2.1 設計輸入
設計輸入包括使用硬件描述語(yǔ)言HDL、狀態(tài)圖與原理圖輸入三種方式。HDL設計方式是現今設計大規模數字集成電路的良好形式,除IEEE標準中VHDL與Verilog HDL兩種形式外,尚有各自FPGA廠(chǎng)家推出的專(zhuān)用語(yǔ)言,如Quartus下的AHDL。HDL語(yǔ)言描述在狀態(tài)機、控制邏輯、總線(xiàn)功能方面較強,使其描述的電路能在特定綜合器(如Synopsys公司的FPGA Compiler II 或FPGA Express)作用下以具體硬件單元較好地實(shí)現;而原理圖輸入在頂層設計、數據通路邏輯、手工最優(yōu)化電路等方面具有圖形化強、單元節儉、功能明確等特點(diǎn)。另外,在A(yíng)ltera公司Quartus軟件環(huán)境下,可以使用Memory Editor對內部memory進(jìn)行直接編輯置入數據。常用方式是以HDL語(yǔ)言為主,原理圖為輔,進(jìn)行混合設計以發(fā)揮二者各自特色。
通常,FPGA廠(chǎng)商軟件與第三方軟件設有接口,可以把第三方設計文件導入進(jìn)行處理。如Quartus與Foundation都可以把EDIF網(wǎng)表作為輸入網(wǎng)表而直接進(jìn)行布局布線(xiàn),布局布線(xiàn)后,可再將生成的相應文件交給第三方進(jìn)行后續處理。
2.2 設計綜合
綜合,就是針對給定的電路實(shí)現功能和實(shí)現此電路的約束條件,如速度、功耗、成本及電路類(lèi)型等,通過(guò)計算機進(jìn)行優(yōu)化處理,獲得一個(gè)能滿(mǎn)足上述要求的電路設計方案。也就是說(shuō),被綜合的文件是HDL文件(或相應文件等),綜合的依據是邏輯設計的描述和各種約束條件,綜合的結果則是一個(gè)硬件電路的實(shí)現方案,該方案必須同時(shí)滿(mǎn)足預期的功能和約束條件。對于綜合來(lái)說(shuō),滿(mǎn)足要求的方案可能有多個(gè),綜合器將產(chǎn)生一個(gè)最優(yōu)的或接近最優(yōu)的結果。因此,綜合的過(guò)程也就是設計目標的優(yōu)化過(guò)程,最后獲得的結果與綜合器的工作性能有關(guān)。
FPGA Compiler II是一個(gè)完善的FPGA邏輯分析、綜合和優(yōu)化工具,它從HDL形式未優(yōu)化的網(wǎng)表中產(chǎn)生優(yōu)化的網(wǎng)表文件,包括分析、綜合和優(yōu)化三個(gè)步驟。其中,分析是采用Synopsys標準的HDL語(yǔ)法規則對HDL源文件進(jìn)行分析并糾正語(yǔ)法錯誤;綜合是以選定的FPGA結構和器件為目標,對HDL和FPGA網(wǎng)表文件進(jìn)行邏輯綜合;而優(yōu)化則是根據用戶(hù)的設計約束對速度和面積進(jìn)行邏輯優(yōu)化,產(chǎn)生一個(gè)優(yōu)化的FPGA網(wǎng)表文件,以供FPGA布局和布線(xiàn)工具使用,即將電路優(yōu)化于特定廠(chǎng)家器件庫,獨立于硅特性,但可以被約束條件所驅動(dòng)。
利用FPGA Compiler II進(jìn)行設計綜合時(shí),應在當前Project下導入設計源文件,自動(dòng)進(jìn)行語(yǔ)法分析,在語(yǔ)法無(wú)誤并確定綜合方式、目標器件、綜合強度、層次保持選擇、優(yōu)化目標等設置后,即可進(jìn)行綜合與優(yōu)化。在此可以將兩步獨立進(jìn)行,在兩步之間進(jìn)行約束指定,如時(shí)鐘的確定、通路與端口的延時(shí)、模塊的算子共享、寄存器的扇出等。如果設計模型較大,可以采用層次化方式進(jìn)行綜合,先綜合下級模塊,后綜合上級模塊。在進(jìn)行上級模塊綜合時(shí)設置下級模塊為Don′t Touch,使設計與綜合過(guò)程合理化。綜合后形成的網(wǎng)表可以以EDIF格式輸出,也可以以VHDL或Verilog HDL格式輸出,將其導入FPGA設計廠(chǎng)商提供的可支持第三方設計輸入的專(zhuān)用軟件中,就可進(jìn)行后續的FPGA芯片的實(shí)現。綜合完成后可以輸出報告文件,列出綜合狀態(tài)與綜合結果,如資源使用情況、綜合后層次信息等。
評論