<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > FPGA開(kāi)發(fā)基本流程有哪些?

FPGA開(kāi)發(fā)基本流程有哪些?

作者: 時(shí)間:2018-08-03 來(lái)源:網(wǎng)絡(luò ) 收藏

是可編程芯片,因此的設計方法包括硬件設計和軟件設計兩部分。硬件包括芯片電路、 存儲器、輸入輸出接口電路以及其他設備,軟件即是相應的HDL程序以及最新才流行的嵌入式C程序。

本文引用地址:http://dyxdggzs.com/article/201808/385306.htm

目前技術(shù)已經(jīng)發(fā)展到階段,即集成系統(Integrated System)階段,相對于集成電路(IC)的設計思想有著(zhù)革命性的變化。是一個(gè)復雜的系統,它將一個(gè)完整產(chǎn)品的功能集成在一個(gè)芯片上,包括核心處理器、存儲單元、硬件加速單元以及眾多的外部設備接口等,具有設計周期長(cháng)、實(shí)現成本高等特點(diǎn),因此其設計方法必然是自頂向下的從系統級到功能模塊的軟、硬件協(xié)同設計,達到軟、硬件的無(wú)縫結合。

這么龐大的工作量顯然超出了單個(gè)工程師的能力,因此需要按照層次化、結構化的設計方法來(lái)實(shí)施。首先由總設計師將整個(gè)軟件開(kāi)發(fā)任務(wù)劃分為若干個(gè)可操作的模塊,并對其接口和資源進(jìn)行評估,編制出相應的行為或結構模型,再將其分配給下一層的設計師。這就允許多個(gè)設計者同時(shí)設計一個(gè)硬件系統中的不同模塊,并為自己所設計的模塊負責;然后由上層設計師對下層模塊進(jìn)行功能驗證。

自頂向下的設計流程從系統級設計開(kāi)始,劃分為若干個(gè)二級單元,然后再把各個(gè)二級單元劃分為下一層次的基本單元,一直下去,直到能夠使用基本模塊或者IP核直接實(shí)現為止,流行的FPGA開(kāi)發(fā)工具都提供了層次化管理,可以有效地梳理錯綜復雜的層次,能夠方便地查看某一層次模塊的源代碼以修改錯誤。

在工程實(shí)踐中,還存在軟件編譯時(shí)長(cháng)的問(wèn)題。由于大型設計包含多個(gè)復雜的功能模塊,其時(shí)序收斂與仿真驗證復雜度很高,為了滿(mǎn)足時(shí)序指標的要求,往往需要反復修改源文件,再對所修改的新版本進(jìn)行重新編譯,直到滿(mǎn)足要求為止。這里面存在兩個(gè)問(wèn)題:首先,軟件編譯一次需要長(cháng)達數小時(shí)甚至數周的時(shí)間,這是開(kāi)發(fā)所不能容忍的;其次,重新編譯和布局布線(xiàn)后結果差異很大,會(huì )將已滿(mǎn)足時(shí)序的電路破壞。因此必須提出一種有效提高設計性能,繼承已有結果、便于團隊化設計的軟件工具。FPGA廠(chǎng)商意識到這類(lèi)需求,由此開(kāi)發(fā)出了相應的邏輯鎖定和增量設計的軟件工具。例如,賽靈思公司的解決方案就是PlanAhead。

Planahead允許高層設計者為不同的模塊劃分相應FPGA芯片區域,并允許底層設計者在所給定的區域內獨立地進(jìn)行設計、實(shí)現和優(yōu)化,等各個(gè)模塊都正確后,再進(jìn)行設計整合。如果在設計整合中出現錯誤,單獨修改即可,不會(huì )影響到其它模塊。Planahead將結構化設計方法、團隊化合作設計方法以及重用繼承設計方法三者完美地結合在一起,有效地提高了設計效率,縮短了設計周期。

不過(guò)從其描述可以看出,新型的設計方法對系統頂層設計師有很高的要求。在設計初期,他們不僅要評估每個(gè)子模塊所消耗的資源,還需要給出相應的時(shí)序關(guān)系;在設計后期,需要根據底層模塊的實(shí)現情況完成相應的修訂。

4.1 典型FPGA開(kāi)發(fā)流程與注意事項

FPGA的設計流程就是利用EDA開(kāi)發(fā)軟件和編程工具對FPGA芯片進(jìn)行開(kāi)發(fā)的過(guò)程。典型FPGA的開(kāi)發(fā)流程一般如圖4.1.1所示,包括功能定義/器件選型、設計輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實(shí)現、布線(xiàn)后仿真、板級仿真以及芯片編程與調試等主要步驟。

1、功能定義/器件選型

在FPGA設計項目開(kāi)始之前,必須有系統功能的定義和模塊的劃分,另外就是要根據任務(wù)要求,如系統的功能和復雜度,對工作速度和器件本身的資源、成本、以及連線(xiàn)的可布性等方面進(jìn)行權衡,選擇合適的設計方案和合適的器件類(lèi)型。 一般都采用自頂向下的設計方法,把系統分成若干個(gè)基本單元,然后再把每個(gè)基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接使用EDA元件庫為止。

2、 設計輸入

設計輸入是將所設計的系統或電路以開(kāi)發(fā)軟件要求的某種形式表示出來(lái),并輸入給EDA工具的過(guò)程。常用的方法有硬件描述語(yǔ)言(HDL)和原理圖輸入方法等。原理圖輸入方式是一種最直接的描述方式,在可編程芯片發(fā)展的早期應用比較廣泛,它將所需的器件從元件庫中調出來(lái),畫(huà)出原理圖。這種方法雖然直觀(guān)并易于仿真,但效率很低,且不易維護,不利于模塊構造和重用。更主要的缺點(diǎn)是可移植性差,當芯片升級后,所有的原理圖都需要作一定的改動(dòng)。目前,在實(shí)際開(kāi)發(fā)中應用最廣的就是HDL語(yǔ)言輸入法,利用文本描述設計,可以分為普通HDL和行為HDL。普通HDL有ABEL、CUR等,支持邏輯方程、真值表和狀態(tài)機等表達方式,主要用于簡(jiǎn)單的小型設計。而在中大型工程中,主要使用行為HDL,其主流語(yǔ)言是Verilog HDL和VHDL。這兩種語(yǔ)言都是美國電氣與電子工程師協(xié)會(huì )(IEEE)的標準,其共同的突出特點(diǎn)有:語(yǔ)言與芯片工藝無(wú)關(guān),利于自頂向下設計,便于模塊的劃分與移植,可移植性好,具有很強的邏輯描述和仿真功能,而且輸入效率很高。 除了這IEEE標準語(yǔ)言外,還有廠(chǎng)商自己的語(yǔ)言。也可以用HDL為主,原理圖為輔的混合設計方式,以發(fā)揮兩者的各自特色。

3、 功能仿真

功能仿真也稱(chēng)為前仿真是在編譯之前對用戶(hù)所設計的電路進(jìn)行邏輯功能驗證,此時(shí)的仿真沒(méi)有延遲信息,僅對初步的功能進(jìn)行檢測。仿真前,要先利用波形編輯器和HDL等建立波形文件和測試向量(即將所關(guān)心的輸入信號組合成序列),仿真結果將會(huì )生成報告文件和輸出信號波形,從中便可以觀(guān)察各個(gè)節點(diǎn)信號的變化。如果發(fā)現錯誤,則返回設計修改邏輯設計。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等軟件。

4、 綜合優(yōu)化

所謂綜合就是將較高級抽象層次的描述轉化成較低層次的描述。綜合優(yōu)化根據目標與要求優(yōu)化所生成的邏輯連接,使層次設計平面化,供FPGA布局布線(xiàn)軟件進(jìn)行實(shí)現。就目前的層次來(lái)看,綜合優(yōu)化(Synthesis)是指將設計輸入編譯成由與門(mén)、或門(mén)、非門(mén)、RAM、觸發(fā)器等基本邏輯單元組成的邏輯連接網(wǎng)表,而并非真實(shí)的門(mén)級電路。真實(shí)具體的門(mén)級電路需要利用FPGA制造商的布局布線(xiàn)功能,根據綜合后生成的標準門(mén)級結構網(wǎng)表來(lái)產(chǎn)生。為了能轉換成標準的門(mén)級結構網(wǎng)表,HDL程序的編寫(xiě)必須符合特定綜合器所要求的風(fēng)格。由于門(mén)級結構、RTL級的HDL程序的綜合是很成熟的技術(shù),所有的綜合器都可以支持到這一級別的綜合。常用的綜合工具有Synplicity公司的Synplify/Synplify Pro軟件以及各個(gè)FPGA廠(chǎng)家自己推出的綜合開(kāi)發(fā)工具。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 微電子 SOC FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>