在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA的硬件設計技巧和流程

旺材芯片 ? 來源:雪球 ? 作者:雪球 ? 2020-10-12 11:23 ? 次閱讀

數字集成電路的發展歷史,經歷了從電子管晶體管、小規模集成電路到大規模以及超大規模集成電路等不同的階段。發展到現在,主要有3類電子器件:存儲器、處理器和邏輯器件。

存儲器保存隨機信息(電子數據表或數據庫的內容);處理器執行軟件指令,以便完成各種任務(運行數據處理程序或視頻游戲);而邏輯器件可以提供特殊功能(器件之間的通信和系統必須執行的其他所有功能)。邏輯器件分成兩類:

1.固定的或定制的。

2.可編程的或可變的。

其中,固定的或定制的邏輯器件通常稱為專用芯片(ASIC)。ASIC是為了滿足特定的用途而設計的芯片,例如MP3解碼芯片等。其優點是通過固化的邏輯功能和大規模的工業化生產,降低了芯片的成本,同時提高了產品的可靠性。隨著集成度的提高,ASIC的物理尺寸也在不斷的縮小。

FPGA的硬件設計技巧

1、管腳兼容性設計前面的內容提到過,FPGA在芯片選項的時候要盡量選擇兼容性好的封裝。那么,在硬件電路設計時,就要考慮如何兼容多種芯片的問題。2、根據電路布局來分配管腳功能FPGA的通用I/O功能定義可以根據需要來指定。在電路圖設計的流程中,如果能夠根據PCB的布局來對應的調整原理圖中FPGA的管腳定義,就可以讓后期的布線工作更順利。3、預留測試點目前FPGA提供的I/O數量越來越多,除了能夠滿足設計需要的I/O外,還有一些剩余I/O沒有定義。這些I/O可以作為預留的測試點來使用。 如果FPGA有預留的測試點,那么可以將要測試的信號從FPGA內部指定到這些預留的測試點上。這樣既能測試到這些信號的波形,又不會影響SDRAM的工作。 如果電路測試過程中發現需要飛線才能解決問題,那么這些預留的測試點還可以作為飛線的過渡點。-

FPGA設計者的5項基本功介紹

在小編看來,成為一名說得過去的FPGA設計者,需要練好5項基本功:仿真、綜合、時序分析、調試、驗證。 需要強調的一點是,以上基本功是針對FPGA設計者來說的,不是針對IC設計者的。對于IC設計,不太懂,所以不敢妄言。對于FPGA設計者來說,練好這5項基本功,與用好相應的EDA工具是同一過程,對應關系如下:1.、仿真:ModelsimQuartus II(Simulator Tool) 2.、綜合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner) 3、 時序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner) 4、調試:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor) 5、驗證:Modelsim, Quartus II(Test Bench Template Writer) 掌握HDL語言雖然不是FPGA設計的全部,但是HDL語言對FPGA設計的影響貫穿于整個FPGA設計流程中,與FPGA設計的5項基本功是相輔相成的。 對于FPGA設計者來說,用好“HDL語言的可綜合子集”可以完成FPGA設計50%的工作——設計編碼。練好仿真、綜合、時序分析這3項基本功,對于學習“HDL語言的可綜合子集”有如下幫助: 1. 通過仿真,可以觀察HDL語言在FPGA中的邏輯行為。 2. 通過綜合,可以觀察HDL語言在FPGA中的物理實現形式。 3. 通過時序分析,可以分析HDL語言在FPGA中的物理實現特性。對于FPGA設計者來說,用好“HDL語言的驗證子集”,可以完成FPGA設計另外50%的工作——調試驗證。1. 搭建驗證環境,通過仿真的手段可以檢驗FPGA設計的正確性。 2. 全面的仿真驗證可以減少FPGA硬件調試的工作量。 3.把硬件調試與仿真驗證方法結合起來,用調試解決仿真未驗證的問題,用仿真保證已經解決的問題不在調試中再現,可以建立一個回歸驗證流程,有助于FPGA設計項目的維護。 FPGA設計者的這5項基本功不是孤立的,必須結合使用,才能完成一個完整的FPGA設計流程。反過來說,通過完成一個完整的設計流程,才能最有效地練習這5項基本功。對這5項基本功有了初步認識,就可以逐個深入學習一些,然后把學到的知識再次用于完整的設計流程。如此反復,就可以逐步提高設計水平。采用這樣的循序漸進、螺旋式上升的方法,只要通過培訓入了門,就可以自學自練,自我提高。 市面上出售的有關FPGA設計的書籍為了保證結構的完整性,對FPGA設計的每一個方面分開介紹,每一方面雖然深入,但是由于缺少其他相關方面的支持,讀者很難付諸實踐,只有通讀完全書才能對FPGA設計獲得一個整體的認識。這樣的書籍,作為工程培訓指導書不行,可以作為某一個方面進階的參考書。如何使用現有的書籍進行自學,這是后話。 對于新入職的員工來說,他們往往對FPGA的整體設計流程有了初步認識,5項基本功的某幾個方面可能很扎實。但是由于某個或某幾個方面能力的欠缺,限制了他們獨自完成整個設計流程的能力。入職培訓的目的就是幫助他們掌握整體設計流程,培養自我獲取信息的能力,通過幾個設計流程來回的訓練,形成自我促進、自我發展的良性循環。在這一過程中,隨著對工作涉及的知識的廣度和深度的認識逐步清晰,新員工的自信心也會逐步增強,對個人的發展方向也會逐步明確,才能積極主動地參與到工程項目中來。

FPGA的設計流程

FPGA的設計流程就是利用EDA開發軟件和編程工具對FPGA芯片進行開發的過程。典型FPGA的開發流程一般如圖4.1.1所示,包括功能定義/器件選型、設計輸入、功能仿真、綜合優化、綜合后仿真、實現、布線后仿真、板級仿真以及芯片編程與調試等主要步驟。1、功能定義/器件選型在FPGA設計項目開始之前,必須有系統功能的定義和模塊的劃分,另外就是要根據任務要求,如系統的功能和復雜度,對工作速度和器件本身的資源、成本、以及連線的可布性等方面進行權衡,選擇合適的設計方案和合適的器件類型。一般都采用自頂向下的設計方法,把系統分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接使用EDA元件庫為止。2、 設計輸入設計輸入是將所設計的系統或電路以開發軟件要求的某種形式表示出來,并輸入給EDA工具的過程。常用的方法有硬件描述語言(HDL)和原理圖輸入方法等。原理圖輸入方式是一種最直接的描述方式,在可編程芯片發展的早期應用比較廣泛,它將所需的器件從元件庫中調出來,畫出原理圖。這種方法雖然直觀并易于仿真,但效率很低,且不易維護,不利于模塊構造和重用。更主要的缺點是可移植性差,當芯片升級后,所有的原理圖都需要作一定的改動。目前,在實際開發中應用最廣的就是HDL語言輸入法,利用文本描述設計,可以分為普通HDL和行為HDL。普通HDL有ABEL、CUR等,支持邏輯方程、真值表和狀態機等表達方式,主要用于簡單的小型設計。而在中大型工程中,主要使用行為HDL,其主流語言是Verilog HDL和VHDL。這兩種語言都是美國電氣電子工程師協會(IEEE)的標準,其共同的突出特點有:語言與芯片工藝無關,利于自頂向下設計,便于模塊的劃分與移植,可移植性好,具有很強的邏輯描述和仿真功能,而且輸入效率很高。除了這IEEE標準語言外,還有廠商自己的語言。也可以用HDL為主,原理圖為輔的混合設計方式,以發揮兩者的各自特色。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、 綜合后仿真綜合后仿真檢查綜合結果是否和原設計一致。在仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中去,可估計門延時帶來的影響。但這一步驟不能估計線延時,因此和布線后的實際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,對于一般的設計可以省略這一步,但如果在布局布線后發現電路結構和設計意圖不符,則需要回溯到綜合后仿真來確認問題之所在。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。

圖4-1 FPGA典型設計流程 6、 實現與布局布線 布局布線可理解為利用實現工具把邏輯映射到目標器件結構的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能鏈接的布線通道進行連線,并產生相應文件(如配置文件與相關報告),實現是將綜合生成的邏輯網表配置到具體的FPGA芯片上,布局布線是其中最重要的過程。布局將邏輯網表中的硬件原語和底層單元合理地配置到芯片內部的固有硬件結構上,并且往往需要在速度最優和面積最優之間作出選擇。布線根據布局的拓撲結構,利用芯片內部的各種連線資源,合理正確地連接各個元件。目前,FPGA的結構非常復雜,特別是在有時序約束條件時,需要利用時序驅動的引擎進行布局布線。布線結束后,軟件工具會自動生成報告,提供有關設計中各部分資源的使用情況。由于只有FPGA芯片生產商對芯片結構最為了解,所以布局布線必須選擇芯片開發商提供的工具。7、 時序仿真時序仿真,也稱為后仿真,是指將布局布線的延時信息反標注到設計網表中來檢測有無時序違規(即不滿足時序約束條件或器件固有的時序規則,如建立時間、保持時間等)現象。時序仿真包含的延遲信息最全,也最精確,能較好地反映芯片的實際工作情況。由于不同芯片的內部延時不一樣,不同的布局布線方案也給延時帶來不同的影響。因此在布局布線后,通過對系統和各個模塊進行時序仿真,分析其時序關系,估計系統性能,以及檢查和消除競爭冒險是非常有必要的。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。8、 板級仿真與驗證板級仿真主要應用于高速電路設計中,對高速系統的信號完整性、電磁干擾等特征進行分析,一般都以第三方工具進行仿真和驗證。 9、 芯片編程與調試 設計的最后一步就是芯片編程與調試。芯片編程是指產生使用的數據文件(位數據流文件,Bitstream Generation),然后將編程數據下載到FPGA芯片中。其中,芯片編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等方面。邏輯分析儀(Logic Analyzer,LA)是FPGA設計的主要調試工具,但需要引出大量的測試管腳,且LA價格昂貴。目前,主流的FPGA芯片生產商都提供了內嵌的在線邏輯分析儀(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)來解決上述矛盾,它們只需要占用芯片少量的邏輯資源,具有很高的實用價值。

FPGA設計心得

工作過的朋友肯定知道,公司里是很強調規范的,特別是對于大的設計(無論軟件還是硬件),不按照規范走幾乎是不可實現的。邏輯設計也是這樣:如果不按規范做的話,過一個月后調試時發現有錯,回頭再看自己寫的代碼,估計很多信號功能都忘了,更不要說檢錯了;如果一個項目做了一半一個人走了,接班的估計得從頭開始設計;如果需要在原來的版本基礎上增加新功能,很可能也得從頭來過,很難做到設計的可重用性。在邏輯方面,我覺得比較重要的規范有這些: 1.設計必須文檔化。要將設計思路,詳細實現等寫入文檔,然后經過嚴格評審通過后才能進行下一步的工作。這樣做乍看起來很花時間,但是從整個項目過程來看,絕對要比一上來就寫代碼要節約時間,且這種做法可以使項目處于可控、可實現的狀態。 2.代碼規范。如果在另一個設計中的時鐘是40ns,復位周期不變,我們只需對CLK_PERIOD進行重新例化就行了,從而使得代碼更加易于重用。 3.信號命名要規范化。 a.信號名一律小寫,參數用大寫。 b.對于低電平有效的信號結尾要用_n標記,如rst_n。 c.端口信號排列要統一,一個信號只占一行,最好按輸入輸出及從哪個模塊來到哪個模塊去的關系排列,這樣在后期仿真驗證找錯時后方便很多。 d.一個模塊盡量只用一個時鐘,這里的一個模塊是指一個module或者是一個entity。在多時鐘域的設計中涉及到跨時鐘域的設計中最好有專門一個模塊做時鐘域的隔離。這樣做可以讓綜合器綜合出更優的結果。 e.盡量在底層模塊上做邏輯,在高層盡量做例化,頂層模塊只能做例化,禁止出現任何膠連邏輯(gluelogic),哪怕僅僅是對某個信號取反。理由同上。 f.在FPGA的設計上禁止用純組合邏輯產生latch,帶D觸發器的latch的是允許的,比如配置寄存器就是這種類型。 g.一般來說,進入FPGA的信號必須先同步,以提高系統工作頻率(板級)。 h.所有模塊的輸出都要寄存器化,以提高工作頻率,這對設計做到時序收斂也是極有好處的。 i.除非是低功耗設計,不然不要用門控時鐘,這會增加設計的不穩定性,在要用到門控時鐘的地方,也要將門控信號用時鐘的下降沿打一拍再輸出與時鐘相與。 j.禁止用計數器分頻后的信號做其它模塊的時鐘,而要用改成時鐘使能的方式,否則這種時鐘滿天飛的方式對設計的可靠性極為不利,也大大增加了靜態時序分析的復雜性。如FPGA的輸入時鐘是25M的,現在系統內部要通過RS232與PC通信,要以rs232_1xclk的速率發送數據。
責任編輯人:CC

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21983

    瀏覽量

    614689

原文標題:設計 | 一文解讀FPGA設計者的5項基本功及設計流程

文章出處:【微信號:wc_ysj,微信公眾號:旺材芯片】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    適用于Versal的AMD Vivado 加快FPGA開發完成Versal自適應SoC設計

    設計、編譯、交付,輕松搞定。更快更高效。 Vivado 設計套件提供經過優化的設計流程,讓傳統 FPGA 開發人員能夠加快完成 Versal 自適應 SoC 設計。 面向硬件開發人員的精簡設計
    的頭像 發表于 05-07 15:15 ?460次閱讀
    適用于Versal的AMD Vivado  加快<b class='flag-5'>FPGA</b>開發完成Versal自適應SoC設計

    FPGA芯片選型的核心原則

    本文總結了FPGA選型的核心原則和流程,旨在為設計人員提供決策依據,確保項目成功。
    的頭像 發表于 04-30 10:58 ?479次閱讀

    大規模硬件仿真系統的編譯挑戰

    引言隨著集成電路設計復雜度的不斷提升,硬件仿真系統在現代芯片設計流程中扮演著越來越重要的角色。基于FPGA(現場可編程門陣列)的商用硬件仿真系統因其靈活性、全自動化、高性能和可重構性,
    的頭像 發表于 03-31 16:11 ?781次閱讀
    大規模<b class='flag-5'>硬件</b>仿真系統的編譯挑戰

    友晶科技攜手中國地質大學舉辦FPGA硬件在線實驗云平臺公開課

    近日,友晶科技攜手中國地質大學,成功舉辦了一場FPGA硬件在線實驗云平臺公開課。
    的頭像 發表于 03-11 11:36 ?455次閱讀

    FPGA設計調試流程

    調試,即Debug,有一定開發經驗的人一定會明確這是設計中最復雜最磨人的部分。對于一個龐大復雜的FPGA工程而言,出現問題的概率極大,這時如果沒有一個清晰的Debug思路,調試過程只能是像無頭蒼蠅一樣四處亂撞。
    的頭像 發表于 03-04 11:02 ?1141次閱讀
    <b class='flag-5'>FPGA</b>設計調試<b class='flag-5'>流程</b>

    數據中心中的FPGA硬件加速器

    ? 再來看一篇FPGA的綜述,我們都知道微軟包括國內的云廠商其實都在數據中心的服務器中部署了FPGA,所以這篇論文就以數據中心的視角,來看下FPGA這個硬件加速器。 還是一樣,想要論文
    的頭像 發表于 01-14 10:29 ?551次閱讀
    數據中心中的<b class='flag-5'>FPGA</b><b class='flag-5'>硬件</b>加速器

    【米爾-Xilinx XC7A100T FPGA開發板試用】Key-test

    硬件: 一Xilinx XC7A100T FPGA開發板 二12V電源適配器 三下載器 四 win10筆記本 軟件: 一Vivado (指導手冊有詳細的安裝下載流程) 二官方按鍵示例工程 按鍵示例
    發表于 01-09 16:08

    FPGA與ASIC的優缺點比較

    適應各種應用場景。這意味著用戶可以根據需要,通過編程來更改FPGA的功能,而無需更改硬件設計。 設計周期短 :與ASIC相比,FPGA的設計、驗證和生產周期更短。這主要是因為FPGA
    的頭像 發表于 10-25 09:24 ?1587次閱讀

    Altera推出一系列FPGA軟、硬件和開發工具

    近期,英特爾子公司Altera推出了一系列FPGA軟、硬件和開發工具,使其可編程解決方案更易應用于廣泛的用例和市場。Altera在年度開發者大會上公布了下一代能效與成本優化的Agilex 3 FPGA情況,并宣布針對Agilex
    的頭像 發表于 10-12 10:47 ?924次閱讀

    為什么FPGA屬于硬件,還需要搞算法?

    交流學習,共同進步。 交流問題(一) Q:為什么FPGA屬于硬件,還需要搞算法? 剛入門準備學fpga但一開始學的是語法,感覺像是電路用軟件語言描述出來,fpga
    發表于 09-09 16:54

    萊迪思Propel工具套件加速FPGA應用開發

    許多嵌入式系統的開發者都對使用基于FPGA的SoC系統感興趣,但是基于傳統HDL硬件描述語言的FPGA開發工具和復雜流程往往會令他們望而卻步。為了解決這一問題,萊迪思的Propel工具
    的頭像 發表于 08-30 17:23 ?1309次閱讀

    FPGA的內部架構和設計流程

    之前大多數軟件都是與它們各自的硬件一起發布,沒有辦法對其進行更改。但隨著技術的成熟,制造商找到了在現有硬件上更新軟件以增加附加功能的方法。
    的頭像 發表于 08-06 11:31 ?1594次閱讀
    <b class='flag-5'>FPGA</b>的內部架構和設計<b class='flag-5'>流程</b>

    基于FPGA的CCD工業相機系統設計

    基于FPGA的CCD工業相機系統設計是一個綜合性的項目,它結合了硬件電路設計、FPGA編程以及圖像處理技術。以下是一個詳細的系統設計方案,包括設計概述、硬件架構、
    的頭像 發表于 07-17 11:24 ?2016次閱讀

    FPGA無芯片HDMI接入方案及源碼

    DIGILENT提供的(輸出也是),下面以AMD-Xilinx 7系列FPGA為例,一步一步搭建一個HDMI輸入DEMO. Digilent 提供了使用其提供的DEMO的特定流程
    發表于 07-16 19:25

    FPGA的學習筆記---FPGA的開發流程

    與通常的單片機應用開發不同,FPGA有自己的開發流程。但具體上怎樣操作,作為初學者,沒有一點經驗。網站獎勵的清華FPGA需要的開發軟件,到目前還沒有安裝成功。暫且先看看相關學習,慢慢積累這方面的知識
    發表于 06-23 14:47
    主站蜘蛛池模板: 尻老逼| 黄a毛片| 国产资源在线视频 | 一级毛片在线不卡直接观看 | 国产综合色在线视频区色吧图片 | 91华人在线视频 | 色视频欧美| 天天好比| 曰本性l交片视频视频 | 在线免费观看视频 | 影院午夜 | 青草精品视频 | 国产在线精彩视频二区 | 青青操久久 | 奇米欧美| 性日韩| 午夜噜噜噜私人影院在线播放 | 成年大片免费播放视频人 | 天天射天天舔 | yellow中文字幕久久网 | 午夜亚洲 | 日韩黄色成人 | 免费成人看片 | 久久综合久色欧美婷婷 | 日韩高清性爽一级毛片免费 | 中文字幕在线视频第一页 | www.操你啦 | 俺不色| 女人的逼毛片 | 色婷婷视频在线观看 | 日本亚洲欧美美色 | 1024你懂的在线播放欧日韩 | 亚洲色图欧美视频 | 美女黄18| 在线视频永久在线视频 | 久草资源网| 亚洲婷婷国产精品电影人久久 | 欧美日一区二区三区 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 视频网站在线 | 亚洲一区二区在线播放 |