《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 聽大神聊FPGA設計:豁然開朗

聽大神聊FPGA設計:豁然開朗

2018-03-22

  FPGA可編程芯片,因此FPGA的設計方法包括硬件設計和軟件設計兩部分。硬件包括FPGA芯片電路、存儲器、輸入輸出接口電路以及其他設備,軟件即是相應的HDL程序以及最新才流行的嵌入式C程序。硬件設計是基礎,但其方法比較固定,本書將在第4節對其進行詳細介紹,本節主要介紹軟件的設計方法。

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

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

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

  圖1-6 自頂向下的FPGA設計開發流程

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

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

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

  典型FPGA開發流程

  FPGA的設計流程就是利用EDA開發軟件和編程工具對FPGA芯片進行開發的過程。FPGA的開發流程一般如圖1-7所示,包括電路設計、設計輸入、功能仿真、綜合優化、綜合后仿真、實現、布線后仿真、板級仿真以及芯片編程與調試等主要步驟。

  圖1-7 FPGA開發的一般流程

  1. 電路設計

  在系統設計之前,首先要進行的是方案論證、系統設計和FPGA芯片選擇等準備工作。系統工程師根據任務要求,如系統的指標和復雜度,對工作速度和芯片本身的各種資源、成本等方面進行權衡,選擇合理的設計方案和合適的器件類型。一般都采用自頂向下的設計方法,把系統分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接使用EDA元件庫為止。

  2. 設計輸入

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

  3. 功能仿真

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

  4. 綜合優化

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

  5. 綜合后仿真

  綜合后仿真檢查綜合結果是否和原設計一致。在仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中去,可估計門延時帶來的影響。但這一步驟不能估計線延時,因此和布線后的實際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,對于一般的設計可以省略這一步,但如果在布局布線后發現電路結構和設計意圖不符,則需要回溯到綜合后仿真來確認問題之所在。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。

  6. 實現與布局布線

  實現是將綜合生成的邏輯網表配置到具體的FPGA芯片上,布局布線是其中最重要的過程。布局將邏輯網表中的硬件原語和底層單元合理地配置到芯片內部的固有硬件結構上,并且往往需要在速度最優和面積最優之間作出選擇。布線根據布局的拓撲結構,利用芯片內部的各種連線資源,合理正確地連接各個元件。目前,FPGA的結構非常復雜,特別是在有時序約束條件時,需要利用時序驅動的引擎進行布局布線。布線結束后,軟件工具會自動生成報告,提供有關設計中各部分資源的使用情況。由于只有FPGA芯片生產商對芯片結構最為了解,所以布局布線必須選擇芯片開發商提供的工具。

  7. 實現與布局布線

  時序仿真,也稱為后仿真,是指將布局布線的延時信息反標注到設計網表中來檢測有無時序違規(即不滿足時序約束條件或器件固有的時序規則,如建立時間、保持時間等)現象。時序仿真包含的延遲信息最全,也最精確,能較好地反映芯片的實際工作情況。由于不同芯片的內部延時不一樣,不同的布局布線方案也給延時帶來不同的影響。因此在布局布線后,通過對系統和各個模塊進行時序仿真,分析其時序關系,估計系統性能,以及檢查和消除競爭冒險是非常有必要的。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。

  8. 板級仿真與驗證

  板級仿真主要應用于高速電路設計中,對高速系統的信號完整性、電磁干擾等特征進行分析,一般都以第三方工具進行仿真和驗證。

  9. 芯片編程與調試

  設計的最后一步就是芯片編程與調試。芯片編程是指產生使用的數據文件(位數據流文件,Bitstream Generation),然后將編程數據下載到FPGA芯片中。其中,芯片編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等方面。邏輯分析儀(Logic Analyzer,LA)是FPGA設計的主要調試工具,但需要引出大量的測試管腳,且LA價格昂貴。目前,主流的FPGA芯片生產商都提供了內嵌的在線邏輯分析儀(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)來解決上述矛盾,它們只需要占用芯片少量的邏輯資源,具有很高的實用價值。

  1.3.3 基于FPGA的SOC設計方法

  基于FPGA的SOC設計理念將FPGA可編程的優點帶到了SOC領域,其系統由嵌入式處理器內核、DSP單元、大容量處理器、吉比特收發器、混合邏輯、IP以及原有的設計部分組成。相應的FPGA規模大都在百萬門以上,適合于許多領域,如電信、計算機等行業。

  系統設計方法是SOC常用的方法學,其優勢在于,可進行反復修改并對系統架構實現進行驗證,包括SOC集成硬件和軟件組件之間的接口。不過,目前仍存在很多問題,最大的問題就是沒有通用的系統描述語言和系統級綜合工具。隨著FPGA平臺的融入,將 SOC逐步地推向了實用。SOC平臺的核心部分是內嵌的處理內核,其硬件是固定的,軟件則是可編程的;外圍電路則由FPGA的邏輯資源組成,大都以IP 的形式提供,例如存儲器接口、USB接口以及以太網MAC層接口等,用戶根據自己需要在內核總線上添加,并能自己訂制相應的接口IP和外圍設備。

  基于FPGA的典型SOC開發流程為:

  1.芯片內的考慮

  從設計生成開始,設計人員需要從硬件/軟件協同驗證的思路入手,以找出只能在系統集成階段才會被發現的軟、硬件缺陷。然后選擇合適的芯片以及開發工具,在綜合過程得到優化,隨后進行精確的實現,以滿足實際需求。由于設計規模越來越大,工作頻率也到了數百兆赫茲,布局布線的延遲將變得非常重要。為了確保滿足時序,需要在布局布線后進行靜態時序分析,對設計進行驗證。

  2.板級驗證

  在芯片設計完畢后,需要再進行板級驗證,以便在印刷電路板(PCB)上保證與最初設計功能一致。因此,PCB布局以及信號完整性測試應被納入設計流程。由于芯片內設計所做的任何改變都將反映在下游的設計流程中,各個過程之間的數據接口和管理也必須是無誤的。預計SOC系統以及所必須的額外過程將使數據的大小成指數增長,因此,管理各種數據集本身是急劇挑戰性的任務。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线一区二区三区四区五区| 亚洲日本在线视频观看| 国产视频一区在线观看一区免费| 欧美激情精品久久久久久变态 | 午夜免费久久久久| 99在线精品视频在线观看| 在线观看一区视频| 国产欧美精品一区二区色综合| 欧美日韩激情网| 欧美大片在线看| 久久久999成人| 先锋资源久久| 日韩天堂在线视频| 欧美在线你懂的| 亚洲深夜福利在线| 亚洲激情视频在线播放| 国产一级一区二区| 国产农村妇女精品| 国产精品视频免费一区| 欧美一区二区三区日韩| 一本色道**综合亚洲精品蜜桃冫 | 亚洲欧美日韩另类精品一区二区三区 | 亚洲国产第一| 久久精品123| 欧美亚洲一区二区在线观看| 亚洲永久免费观看| 亚洲天堂网站在线观看视频| 一区二区日韩免费看| 一区二区三区欧美| 亚洲一区二区三区免费视频 | 亚洲人成网站色ww在线| 亚洲欧洲精品一区二区| 亚洲激情二区| 亚洲欧洲日韩综合二区| 亚洲精品免费在线| 亚洲裸体视频| 一区二区免费看| 99精品国产在热久久下载| 日韩一级精品| 一区二区三区视频免费在线观看| 日韩视频精品| 亚洲深夜福利视频| 午夜激情久久久| 性色av一区二区怡红| 欧美在线高清| 亚洲二区在线观看| 日韩视频中文字幕| 亚洲网站在线观看| 午夜亚洲影视| 久久蜜桃香蕉精品一区二区三区| 久久一区二区三区四区| 欧美不卡视频| 国产亚洲精品福利| 国产欧美日韩三区| 国产一区二区在线观看免费播放| 国产一区二区三区av电影| 国产一区二区三区免费在线观看| 韩国女主播一区| 在线观看亚洲| 99re亚洲国产精品| 亚洲免费观看视频| 亚洲欧美精品中文字幕在线| 久久精品30| 在线视频亚洲一区| 欧美一级淫片aaaaaaa视频| 久久精品理论片| 欧美成年人在线观看| 欧美天天综合网| 国产欧美亚洲精品| 在线观看欧美精品| 夜夜狂射影院欧美极品| 午夜精品久久久久久久白皮肤 | 日韩亚洲不卡在线| 亚洲福利视频专区| 欧美影视一区| 91久久精品国产91久久| 夜夜嗨av一区二区三区四区| 亚洲一级免费视频| 欧美中文字幕视频| 久久综合亚州| 欧美连裤袜在线视频| 国产伪娘ts一区| 亚洲欧洲一区二区天堂久久| 亚洲永久在线观看| 亚洲三级视频在线观看| 午夜精品福利视频| 欧美激情一区二区三区蜜桃视频 | 欧美日韩成人激情| 国产区欧美区日韩区| 亚洲激情成人在线| 午夜视频一区| 99国产精品久久久久久久久久| 亚洲欧美另类综合偷拍| 欧美va天堂在线| 国产欧美短视频| 亚洲人妖在线| 久久高清国产| 亚洲欧美久久久久一区二区三区| 男人的天堂亚洲| 国产精品久久久久久久久久妞妞| 亚洲国产精品激情在线观看| 一区二区国产精品| 亚洲国产欧美日韩另类综合| 亚洲欧美精品在线观看| 欧美激情第10页| 韩国一区电影| 亚洲一区二区三区影院| 99re66热这里只有精品3直播| 久久久噜噜噜久久人人看| 欧美精品免费在线观看| 国产精品一级二级三级| 国内精品久久久久影院薰衣草| 99精品欧美一区二区三区综合在线| 欧美在线日韩精品| 亚洲欧美日韩系列| 欧美高清视频www夜色资源网| 国产精品理论片在线观看| 伊人久久大香线| 中文有码久久| 亚洲少妇最新在线视频| 欧美—级a级欧美特级ar全黄| 今天的高清视频免费播放成人| 亚洲欧美国产三级| 亚洲午夜电影网| 欧美激情小视频| 在线观看av不卡| 久久精品视频在线| 久久精品女人| 国产日韩精品久久| 亚洲午夜电影在线观看| 亚洲一区二区三区高清 | 亚洲精品在线免费观看视频| 最新成人在线| 久久人人爽爽爽人久久久| 国产欧美日韩激情| 亚洲免费在线观看视频| 亚洲午夜久久久久久尤物 | 欧美在线观看www| 欧美一级免费视频| 国产精品国产三级国产专播品爱网| 亚洲精品一区二区三区樱花| 亚洲精品一区二区在线| 欧美69wwwcom| 在线不卡中文字幕| 亚洲国产成人久久综合| 久久精品123| 欧美日韩八区| 一区二区三区日韩欧美| 亚洲欧美国产精品专区久久| 国产精品激情av在线播放| 中文日韩在线视频| 性伦欧美刺激片在线观看| 国产精品视频男人的天堂 | 亚洲免费观看高清完整版在线观看| 亚洲精品五月天| 欧美黄免费看| 亚洲免费av网站| 亚洲一区欧美激情| 国产日韩综合一区二区性色av| 久久精品三级| 欧美吻胸吃奶大尺度电影| 欧美一区二区三区久久精品茉莉花 | 好吊色欧美一区二区三区四区| 亚洲人成欧美中文字幕| 国产精品久久福利| 亚洲国产精品嫩草影院| 欧美性理论片在线观看片免费| 久久成人人人人精品欧| 欧美日韩二区三区| 欧美一区二区三区四区在线| 欧美久久一区| 久久xxxx| 欧美色一级片| 亚洲国产日韩一区二区| 国产精品久久久久免费a∨| 亚洲大胆av| 欧美私人啪啪vps| 亚洲大片免费看| 国产精品久久影院| 日韩视频永久免费观看| 国产亚洲欧美激情| 亚洲午夜电影在线观看| 在线观看欧美一区| 欧美一区日韩一区| 亚洲免费观看| 免费高清在线一区| 亚洲欧美国产一区二区三区| 欧美护士18xxxxhd| 久久xxxx| 国产精品人人做人人爽人人添 | 亚洲一二区在线| 亚洲国产成人精品视频 | 免费观看成人www动漫视频| 亚洲综合精品一区二区| 欧美另类变人与禽xxxxx| 久久国产视频网站| 国产精品久久国产愉拍| 日韩写真视频在线观看| 樱桃视频在线观看一区| 久久精品国产99|