99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA入門之FPGA 開發(fā)流程

jf_78858299 ? 來源:CSDN ? 作者:原來如此呀 ? 2023-03-21 10:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA 的設(shè)計流程就是利用 EDA 開發(fā)軟件和編程工具對 FPGA 芯片進(jìn)行開發(fā)的過程。原理圖和HDL(Hardware description language,硬件描述語言)是兩種最常用的數(shù)字硬件電路描述方法。其中,運用 HDL 設(shè)計方法具有更好的移植性、通用性以及利于模塊劃分的特點,在工作學(xué)習(xí)中被廣泛使用。典型 FPGA 的開發(fā)流程一般如下圖所示, 其包括功能定義/器件選型、設(shè)計輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實現(xiàn)、布線后仿真、板級仿真以及芯片編程與調(diào)試等主要步驟。

第1節(jié) 功能定義/器件選型

在 FPGA 設(shè)計項目開始之前需要進(jìn)行方案論證、系統(tǒng)設(shè)計和 FPGA 芯片的選型等準(zhǔn)備性工作,在確定并評估好方案后需要進(jìn)行系統(tǒng)功能的定義和模塊的劃分。根據(jù)方案中任務(wù)要求,如方案中所確定的系統(tǒng)功能以及復(fù)雜度,對硬件的工作速度和器件自身的資源、成本、以及性能指標(biāo)等各個方面進(jìn)行綜合考慮,選擇出較合適的器件類型。

**在設(shè)計方法上,一般都采用自頂向下的設(shè)計方法,首先將整個系統(tǒng)劃分成若干個基本模塊,然后再將每個基本模塊劃分為下一層次的基本單元,這樣依次劃分后確定好各個模塊的功能以及各個模塊需要設(shè)計的輸入輸出信號,再通過 EDA 工具進(jìn)行各個模塊的設(shè)計。**最終要實現(xiàn)的目標(biāo)是:針對每個輸入信號,利用 EDA 工具以及 FPGA 的資源設(shè)計出需要的輸出信號邏輯。

第2節(jié) 設(shè)計輸入( Design Entry)

設(shè)計輸入是指在 EDA 工具中,通過使用該開發(fā)軟件設(shè)計出所希望得到的系統(tǒng)或電路的一個過程。在日常工作學(xué)習(xí)中 最常使用的方式是通過硬件描述語言( HDL)的方式來描繪設(shè)計出最終的數(shù)字電路 。以此方式設(shè)計電路的過程需要在 EDA 軟件上通過文本描述,將實際的電路用硬件語言表述出來。

設(shè)計好文本后,編譯器會將硬件語言進(jìn)行綜合、布局布線,最后轉(zhuǎn)換成一個個的邏輯門、寄存器、數(shù)據(jù)選擇器等實際電路。 設(shè)計師接觸比較多的 HDL 語言是行為 HDL,其主流語言是 Verilog HDL 和 VHDL,這兩種語言都是 IEEE 的標(biāo)準(zhǔn),雖然兩者在語法結(jié)構(gòu)以及設(shè)計標(biāo)準(zhǔn)上存在差別,但是都有一個共同的特點:語言與芯片工藝無關(guān)。在任一款 FPGA 芯片上,使用任何一種語言都可以設(shè)計出想要的數(shù)字電路。

另一種設(shè)計方式是使用原理圖輸入的方法進(jìn)行設(shè)計輸入。原理圖輸入方式是一種最直接的描述方式,通過從元件庫中調(diào)出來需要的器件,畫出原理圖。

這一方式有點類似于硬件開發(fā)過程中設(shè)計原理圖的過程, 其在可編程邏輯陣列發(fā)展的前期應(yīng)用的比較廣泛。使用這種方法具有設(shè)計直觀且易于仿真的優(yōu)勢,但是設(shè)計效率不高,且難以維護(hù)改動,對模塊的構(gòu)造和重用的支持度極不友好。當(dāng)芯片升級后,所有的原理圖需要重新進(jìn)行一定的改動,可移植性很差。

除了這 IEEE 標(biāo)準(zhǔn)語言外還有廠商自己的語言, 在實際的設(shè)計中也可以用 HDL 為主,原理圖為輔的混合設(shè)計方式,以發(fā)揮兩者的各自特色與優(yōu)勢。

第3節(jié) 功能仿真( RTL-Simulation)

功能仿真也稱為綜合前仿真,用戶設(shè)計好數(shù)字邏輯后需要檢查自己的設(shè)計是否符合預(yù)期,在不需要綜合之前通過仿真軟件對電路進(jìn)行邏輯驗證。

在功能仿真器件電路可以不用考慮延遲等因素,僅對初步的功能進(jìn)行檢驗。通過建立測試平臺即 Testbench,利用波形編譯器(仿真軟件)和硬件描述語言建立好波形文件和激勵信號,在仿真軟件上會模擬實際電路的波形顯示出輸出波形信號,并生成報告文件。用戶通過觀察各個時間點信號的變化情況來驗證自己所設(shè)計邏輯的正確性。

綜合前仿真在 FPGA 開發(fā)過程中不是一定要進(jìn)行的步驟,但卻是極為關(guān)鍵的一步。在實際的工作學(xué)習(xí)中,充分利用好仿真工具,能夠提高設(shè)計的效率并及時發(fā)現(xiàn)設(shè)計缺陷,從而為后續(xù)的開發(fā)過程提供保障。常用的硬件描述語言的仿真工具有 Model Tech 公司的 ModelSim、 VCS、 Ncsim 以及 NC-VHDL 等軟件。

第4節(jié) 綜合優(yōu)化( Synthesis)

綜合即針對給定的電路實現(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)。 常用的綜合工具有 Synplicity 公司的 Synplify/Synplify Pro 軟件以及各個 FPGA 廠家自己推出的綜合開發(fā)工具。

第5節(jié) 綜合后仿真

綜合后仿真是用來檢查綜合結(jié)果是否和原設(shè)計一致。后仿真與前仿真的區(qū)別在于: 前仿真是指綜合前的仿真,如在 Modelsim 對撰寫的代碼直接進(jìn)行仿真,而后仿真是綜合后的仿真,也就是功能仿真。

假設(shè)設(shè)計師在 Modelsim 中用 HDL 編寫了一個計數(shù)器代碼, 其通過了行為級的仿真后被加載到 quartus 或者其他的綜合工具中進(jìn)行綜合, 完成綜合后會生成功能網(wǎng)表, 將行為語言轉(zhuǎn)換成寄存器傳送級語言, 此時設(shè)計師再將其加載到 Modelsim 中進(jìn)行的仿真被叫做后仿真。

后仿真成功后還需要在 quartus 中進(jìn)行映射和布局布線, 并進(jìn)行時序分析生成時序網(wǎng)表,描述器件里門或者布線的延時。 最后將延時網(wǎng)表和功能網(wǎng)表一起加載到 Modelsim 中仿真,這一仿真為門級仿真,而在實際的設(shè)計過程中,一般來說不做綜合后仿真也不會帶來太大的影響。

第6節(jié) 布局布線( Place & Routes)

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

實現(xiàn)是 將綜合生成的邏輯網(wǎng)表配置到具體的 FPGA 芯片上,布局布線是其中最重要的過程 。在完成綜合之后,就是相當(dāng)于有了各種元件, 但如何建立元件之間的連接,就像在 PCB 上把元件放在哪里,元件之間的連接以及相連關(guān)系又是怎么樣的,這個都是布局布線完成的工作,綜合的結(jié)果可能每次都一樣,但是布局布線的結(jié)構(gòu)基本每次都不會一樣。

布局將邏輯網(wǎng)表中的硬件原語和底層單元合理地配置到芯片內(nèi)部的固有硬件結(jié)構(gòu)上,并且往往需要在速度最優(yōu)和面積最優(yōu)之間作出選擇。布線根據(jù)布局的拓?fù)浣Y(jié)構(gòu),利用芯片內(nèi)部的各種連線資源,合理正確地連接各個元件。

目前, FPGA 的結(jié)構(gòu)非常復(fù)雜,特別是在有時序約束條件時,需要利用時序驅(qū)動的引擎進(jìn)行布局布線。布線結(jié)束后,軟件工具會自動生成報告,提供有關(guān)設(shè)計中各部分資源的使用情況。由于只有 FPGA 芯片生產(chǎn)商對芯片結(jié)構(gòu)最為了解,所以布局布線必須選擇芯片開發(fā)商提供的工具。

第7節(jié) 時序仿真( Timing)

時序仿真,也稱為后仿真,是指將布局布線的延時信息反標(biāo)注到設(shè)計網(wǎng)表中來檢測有無時序違規(guī)(即不滿足時序約束條件或器件固有的時序規(guī)則,如建立時間、保持時間等)現(xiàn)象。

時序仿真使用布局布線后器件給出的模塊和連線的延時信息, 在最壞的情況下對電路的行為作出實際地估計。時序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激勵也是相同的,唯一的差別是: 時序仿真加載到仿真器的設(shè)計包括基于實際布局布線設(shè)計的最壞情況的布局布線延時,并且在仿真結(jié)果波形圖中時序仿真后的信號加載了時延,而功能仿真沒有。

由于不同芯片的內(nèi)部延時不一樣,不同的布局布線方案也給延時帶來不同的影響。因此在布局布線后,通過對系統(tǒng)和各個模塊進(jìn)行時序仿真,分析其時序關(guān)系,估計系統(tǒng)性能,以及檢查和消除競爭冒險是非常有必要的。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。

第8節(jié) 板級仿真與驗證

板級仿真主要應(yīng)用于高速電路設(shè)計中,對高速系統(tǒng)的信號完整性、電磁干擾等特征進(jìn)行分析,一般都以第三方工具進(jìn)行仿真和驗證,在實際的工作中一般接觸較少。

第9節(jié) 編程與調(diào)試

設(shè)計的最后一步就是芯片的編程與調(diào)試。編程是指將 FPGA 開發(fā)工具最后產(chǎn)生使用的數(shù)據(jù)文件(位數(shù)據(jù)流文件, Bitstream Generation)加載到 FPGA 芯片中。

其中,芯片編程需要滿足一定的條件,如編程電壓、 編程時序和編程算法等,而這些條件一般廠家都會事先完成設(shè)計, 設(shè)計師直接按照規(guī)范操作即可。

數(shù)據(jù)文件下載到 FPGA 芯片中以后還需要進(jìn)行調(diào)試驗證,=邏輯分析儀(Logic Analyzer, LA)便是 FPGA 設(shè)計的主要調(diào)試工具。使用 LA 需要引出大量的測試管腳,且 LA 價格昂貴,但是當(dāng)工程較大、所需要調(diào)試觀察的信號過多時,仍舊需要 LA 來對芯片內(nèi)部的信號進(jìn)行觀察驗證。

目前,主流的 FPGA 芯片生產(chǎn)商都提供了內(nèi)嵌的在線邏輯分析儀(如 Xilinx ISE 中的 ChipScope、 Altera QuartusII 中的 SignalTapII 以及 SignalProb),它們只需要占用芯片少量的邏輯資源便可達(dá)到同樣的效果,在實際的工程調(diào)試中發(fā)揮了極大的作用。之后將會詳細(xì)介紹 SIGNALTAP 工具的使用。

版權(quán)聲明:本文為CSDN博主「原來如此呀」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/Royalic/article/details/120995615

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618657
  • 芯片
    +關(guān)注

    關(guān)注

    460

    文章

    52520

    瀏覽量

    441141
  • eda
    eda
    +關(guān)注

    關(guān)注

    71

    文章

    2930

    瀏覽量

    178025
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    48067
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA開發(fā)流程簡介

    FPGA開發(fā)基本流程包括:設(shè)計輸入、設(shè)計仿真、設(shè)計綜合、布局布線,它們的連接關(guān)系如圖1 所示。
    發(fā)表于 06-10 08:24 ?1796次閱讀

    FPGA開發(fā)流程及仿真技術(shù)解析

    FPGA開發(fā)流程是遵循著ASIC的開發(fā)流程發(fā)展的,發(fā)展到目前為止,FPGA
    發(fā)表于 01-06 11:19 ?2284次閱讀

    FPGA入門教程

    FPGA入門教程 FPGA 入門教程 1 .?dāng)?shù)字電路設(shè)計入門 2 .FPGA 簡介 3
    發(fā)表于 08-11 11:40

    FPGA入門:基本開發(fā)流程概述

    FPGA入門:基本開發(fā)流程概述 本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA/CPLD邊練邊學(xué)——快速入門
    發(fā)表于 02-09 20:14

    FPGA基本開發(fā)流程概述

    FPGA入門:基本開發(fā)流程概述 在第一章中,已經(jīng)給出了FPGA/CPLD的基本開發(fā)
    發(fā)表于 01-28 02:29

    FPGA開發(fā)流程

    。總而言之,FPGA開發(fā)流程雖然有些復(fù)雜,但是隨著學(xué)習(xí)的逐步深入,對流程全貌由更深入的認(rèn)知,你會發(fā)現(xiàn)其實FPGA
    發(fā)表于 01-28 04:24

    FPGA入門開發(fā)具體流程有哪些?求過程

    FPGA入門開發(fā)具體流程有哪些?求過程
    發(fā)表于 07-26 06:44

    FPGA-SOPC入門中文教程V2.03

    SOPC FPGA 快速入門教程 本教程以豐富的實例和詳細(xì)的步驟講解基于QuartusII的FPGA開發(fā)流程和基于Nios II的SOPC
    發(fā)表于 06-05 18:47 ?308次下載

    FPGA/SOPC開發(fā)快速入門教程

    FPGA/SOPC開發(fā)快速入門教程
    發(fā)表于 08-06 16:56 ?79次下載
    <b class='flag-5'>FPGA</b>/SOPC<b class='flag-5'>開發(fā)</b>快速<b class='flag-5'>入門</b>教程

    FPGA開發(fā)流程及編程思想

    FPGA開發(fā)流程及編程思想,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-18 15:17 ?31次下載

    FPGA開發(fā)流程

    FPGA開發(fā)流程,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-18 15:17 ?33次下載

    Xilin ISE設(shè)計流程FPGA系統(tǒng)設(shè)計入門免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Xilin ISE設(shè)計流程FPGA系統(tǒng)設(shè)計入門免費下載。
    發(fā)表于 10-29 08:00 ?9次下載
    Xilin ISE設(shè)計<b class='flag-5'>流程</b><b class='flag-5'>FPGA</b>系統(tǒng)設(shè)計<b class='flag-5'>入門</b>免費下載

    關(guān)于FPGA它的開發(fā)流程是怎樣的

    FPGA的設(shè)計流程就是利用EDA開發(fā)軟件和編程工具對FPGA芯片進(jìn)行開發(fā)的過程。FPGA
    發(fā)表于 11-06 15:17 ?2686次閱讀

    FPGA基礎(chǔ)知識----第二章 FPGA 開發(fā)流程

    第二章 FPGA 開發(fā)流程FPGA 的設(shè)計流程就是利用 EDA 開發(fā)軟件和編程工具對
    發(fā)表于 12-29 19:40 ?9次下載
    <b class='flag-5'>FPGA</b>基礎(chǔ)知識----第二章 <b class='flag-5'>FPGA</b> <b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    FPGA的詳細(xì)開發(fā)流程

    ??FPGA 的詳細(xì)開發(fā)流程就是利用 EDA 開發(fā)工具對 FPGA 芯片進(jìn)行開發(fā)的過程,所以
    的頭像 發(fā)表于 07-04 14:37 ?5974次閱讀
    <b class='flag-5'>FPGA</b>的詳細(xì)<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>