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

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

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

FPGA設(shè)計(jì)流程

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-03-22 09:48 ? 次閱讀

FPGA設(shè)計(jì)流程

FPGA設(shè)計(jì)流程包括以下關(guān)鍵步驟,如圖9.8所示。

1. 設(shè)計(jì)輸入

2. 設(shè)計(jì)仿真與綜合

3.設(shè)計(jì)實(shí)現(xiàn)

4.設(shè)備編程。

b2a319d8-a91b-11ec-952b-dac502259ad0.png

圖9.8 FPGA設(shè)計(jì)流程

設(shè)計(jì)輸入

在設(shè)計(jì)進(jìn)入之前,需要根據(jù)設(shè)計(jì)規(guī)范進(jìn)行設(shè)計(jì)規(guī)劃。設(shè)計(jì)規(guī)范需要轉(zhuǎn)換為體系結(jié)構(gòu)和微體系結(jié)構(gòu)。設(shè)計(jì)架構(gòu)和微架構(gòu)包括將總體設(shè)計(jì)分解為小模塊,以實(shí)現(xiàn)預(yù)期功能。在架構(gòu)設(shè)計(jì)階段,需要估計(jì)內(nèi)存、速度和功率的需求。根據(jù)需要,需要為實(shí)現(xiàn)選擇FPGA設(shè)備。

使用Verilog(.v)或VHDL(.vhd)文件完成設(shè)計(jì)輸入。設(shè)計(jì)輸入后,需要對設(shè)計(jì)進(jìn)行仿真,以確保設(shè)計(jì)的功能正確性。這稱為功能仿真。

設(shè)計(jì)仿真與綜合

在功能仿真期間,將輸入集應(yīng)用于設(shè)計(jì),以檢查設(shè)計(jì)的功能正確性。盡管在后期的設(shè)計(jì)周期中可能會出現(xiàn)時(shí)間或面積、電源問題,但設(shè)計(jì)師至少對設(shè)計(jì)的功能有把握。

硬件設(shè)計(jì)工程師的主要目標(biāo)是生成高效的硬件。綜合是將設(shè)計(jì)抽象的一個(gè)層次轉(zhuǎn)換為另一個(gè)層次的過程。在邏輯綜合中,HDL被轉(zhuǎn)換成網(wǎng)絡(luò)表。網(wǎng)絡(luò)列表獨(dú)立于設(shè)備,可以采用標(biāo)準(zhǔn)格式,如電子設(shè)計(jì)互換格式(EDIF)。

設(shè)計(jì)實(shí)施

該設(shè)計(jì)經(jīng)歷了translate, map and place and route等步驟。在設(shè)計(jì)實(shí)現(xiàn)過程中,EDA工具將設(shè)計(jì)轉(zhuǎn)換為所需格式,并根據(jù)所需區(qū)域?qū)⑵溆成涞紽PGA。EDA工具通過使用實(shí)際邏輯單元或宏單元來執(zhí)行映射。在映射過程中,EDA工具使用宏單元、可編程互連和IO塊。專用模塊,如乘法器、DSP和BRAM,也使用供應(yīng)商工具進(jìn)行映射。這些塊被放置在FPGA內(nèi)部的預(yù)定義幾何體上,并通過使用可編程互連來實(shí)現(xiàn)預(yù)期功能。這一步稱為布局和布線。

為了檢查設(shè)計(jì)計(jì)時(shí)性能以及是否滿足約束,將執(zhí)行時(shí)序分析,該分析稱為布局后STA。在STA期間,使用與可編程互連相關(guān)聯(lián)的延遲來檢查時(shí)序路徑。提取RC延遲并將其用于時(shí)序分析也稱為反向注釋。

設(shè)備編程

FPGA通過使用特定于供應(yīng)商或?qū)S械奈涣魑募M(jìn)行編程。位流是需要加載到FPGA中以執(zhí)行特定硬件設(shè)計(jì)的二進(jìn)制數(shù)據(jù)文件。

如果設(shè)計(jì)針對特定的FPGA,則EDA工具將生成設(shè)備利用率摘要。

用FPGA實(shí)現(xiàn)邏輯

現(xiàn)代FPGA的體系結(jié)構(gòu)包括CLB陣列、塊RAM、乘法器、DSP、IOB和數(shù)字時(shí)鐘管理器(DCM)。延遲鎖定環(huán)(DLL)用于賦值具有均勻時(shí)鐘偏移的時(shí)鐘。XILINX SPARTAN系列FPGA的平面圖如下圖所示。

b2b91c42-a91b-11ec-952b-dac502259ad0.png

可配置邏輯塊

如下圖所示,基本CLB由LUT、觸發(fā)器和多路復(fù)用器邏輯組成。配置數(shù)據(jù)保存在鎖存器中。CLB體系結(jié)構(gòu)取決于供應(yīng)商,由多個(gè)LUT、觸發(fā)器、多路復(fù)用器和鎖存器組成。下面的Verilog代碼是使用單個(gè)四輸入LUT實(shí)現(xiàn)的,稱為組合邏輯。

b2d14c90-a91b-11ec-952b-dac502259ad0.png

圖9.9 Xilinx基本CLB結(jié)構(gòu)

下面的Verilog功能塊在實(shí)現(xiàn)過程中使用單LUT和單寄存器,因此該邏輯稱為時(shí)序邏輯。

b2e7b746-a91b-11ec-952b-dac502259ad0.png

圖9.9所示的CLB也用于實(shí)現(xiàn)16位移位寄存器。LUT可以級聯(lián)以設(shè)計(jì)較長尺寸的移位寄存器,也可以用于設(shè)計(jì)的流水線。

輸入-輸出塊(IOB)

輸入-輸出塊用于建立邏輯與外部世界的接口,由具有三態(tài)控制機(jī)制的寄存器和緩沖器的數(shù)量組成。該塊可用于寄存器輸入和寄存器輸出。

b2f796ca-a91b-11ec-952b-dac502259ad0.png

圖9.10 Xilinx基本IO塊

現(xiàn)代FPGA的IOB結(jié)構(gòu)非常復(fù)雜,可以包含許多IO控制支持,其中可能包括DDR、專用高速接口。基本IO塊結(jié)構(gòu)如圖9.10所示。

Block RAM

XILINX Spartan-7系列支持可配置18 kbit塊的形式組織的200 MHz塊RAM。每個(gè)塊RAM包含18432位,其中16kbit賦值用于數(shù)據(jù)存儲,其余2kbit賦值用于奇偶校驗(yàn)。塊RAM可用作單端口存儲器或雙端口存儲器,并具有獨(dú)立的端口訪問。每個(gè)端口與獨(dú)立時(shí)鐘、時(shí)鐘啟用和寫啟用同步。讀取操作本質(zhì)上也是同步的,需要啟用時(shí)鐘。塊RAM的應(yīng)用是存儲數(shù)據(jù)、FIFO設(shè)計(jì)、緩沖區(qū)和堆棧,甚至是在設(shè)計(jì)復(fù)雜的狀態(tài)機(jī)時(shí)。單端口RAM如圖9.11所示。

b30f9a68-a91b-11ec-952b-dac502259ad0.png

圖9.11 Xilinx單端口Block RAM

數(shù)字時(shí)鐘管理器(DCM)

Xilinx設(shè)備系列使用延遲鎖定環(huán)(DLL),Altera使用鎖相環(huán)(PLL)作為時(shí)鐘管理器。DCM、DLL的作用是提供對相移、時(shí)鐘偏移和時(shí)鐘頻率的完全控制。DCM、DLL支持以下功能。

相移?時(shí)鐘偏移消除

頻率綜合。

DCM由可變延遲線和時(shí)鐘賦值網(wǎng)絡(luò)組成,基本框圖如圖9.12所示。

b324a1f6-a91b-11ec-952b-dac502259ad0.png

圖9.12 Xilinx基本DLL塊

乘法器

所有Spartan7 FPGA都有兩個(gè)18位輸入,并生成36位輸出。乘法器為嵌入式塊,每個(gè)設(shè)備有4~104個(gè)嵌入式乘法器塊。嵌入式乘法器的主要優(yōu)點(diǎn)是,與基于CLB的乘法器相比,它需要更少的功耗。它們用于以最小的通用資源實(shí)現(xiàn)快速算術(shù)函數(shù)。可以使用路由資源級聯(lián)乘法器,下圖顯示了配置為22位乘以16位的乘法器,以生成38位輸出的乘法器可用于有符號或無符號數(shù)字乘法。乘法器廣泛應(yīng)用于DSP應(yīng)用中?;緣K如圖9.13所示。

b3382e7e-a91b-11ec-952b-dac502259ad0.png

圖9.13 Xilinx基本乘法器塊

b34af57c-a91b-11ec-952b-dac502259ad0.jpg

FPGA中仿真概念

b35e40c8-a91b-11ec-952b-dac502259ad0.jpg

Verilog復(fù)雜邏輯設(shè)計(jì)指南-奇偶校驗(yàn)生成器和校驗(yàn)器及筒式移位器

b38dbab0-a91b-11ec-952b-dac502259ad0.png

b3a5abd4-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序電路設(shè)計(jì)指南

b3b31e72-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(五)異步計(jì)數(shù)器&總結(jié)

b3c72b1a-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(四)移位寄存器

b3dc9efa-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(三)同步計(jì)數(shù)器

b3ecfdf4-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(二)同步和異步復(fù)位

b402e8bc-a91b-11ec-952b-dac502259ad0.jpg

Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(一)鎖存器D-latch和觸發(fā)器Flip-Flop

Verilog組合邏輯設(shè)計(jì)指南

b432a6ce-a91b-11ec-952b-dac502259ad0.jpg

組合邏輯硬件建模設(shè)計(jì)(二)算術(shù)電路

Verilog 里面,always,assign和always@(*)區(qū)別

b4522698-a91b-11ec-952b-dac502259ad0.jpg

組合邏輯硬件建模設(shè)計(jì)(一)邏輯門

數(shù)字硬件建模-重新從另一方面理解Verilog(二)

b4763290-a91b-11ec-952b-dac502259ad0.jpg

數(shù)字硬件建模-從另一方面理解Verilog(一)

數(shù)字硬件建模綜述

審核編輯 :李倩

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598982
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3972

    瀏覽量

    132967

原文標(biāo)題:FPGA設(shè)計(jì)流程

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Xilinx_fpga_設(shè)計(jì)流程

    Xilinx_fpga_設(shè)計(jì)流程
    發(fā)表于 08-02 23:51

    華為FPGA設(shè)計(jì)流程指南

    華為FPGA設(shè)計(jì)流程指南
    發(fā)表于 09-03 10:47

    發(fā)個(gè)FPGA的設(shè)計(jì)流程

    FPGA的設(shè)計(jì)流程
    發(fā)表于 09-09 12:04

    華為FPGA設(shè)計(jì)流程指南

    前言 本部門所承擔(dān)的FPGA設(shè)計(jì)任務(wù)主要是兩方面的作用:系統(tǒng)的原型實(shí)現(xiàn)和ASIC的原型驗(yàn)證。編寫本流程的目的是:l在于規(guī)范整個(gè)設(shè)計(jì)流程,實(shí)現(xiàn)開發(fā)的合理性、一致性、高效性。l形成風(fēng)格良好和完整的文檔
    發(fā)表于 12-08 14:47

    華為FPGA設(shè)計(jì)流程指南

    華為FPGA設(shè)計(jì)流程指南本部門所承擔(dān)的FPGA設(shè)計(jì)任務(wù)主要是兩方面的作用:系統(tǒng)的原型實(shí)現(xiàn)和ASIC的原型驗(yàn)證。編寫本流程的目的是:l在于規(guī)范整個(gè)設(shè)計(jì)
    發(fā)表于 12-18 10:45

    FPGA的設(shè)計(jì)流程是怎樣的

    第二章 FPGA 開發(fā)流程FPGA 的設(shè)計(jì)流程就是利用 EDA 開發(fā)軟件和編程工具對 FPGA 芯片進(jìn)行開發(fā)的過程。原理圖和HDL(Hard
    發(fā)表于 02-23 06:23

    Alter FPGA的設(shè)計(jì)流程以及DSP設(shè)計(jì)

    Alter FPGA的設(shè)計(jì)流程以及DSP設(shè)計(jì).
    發(fā)表于 03-16 15:52 ?127次下載
    Alter <b class='flag-5'>FPGA</b>的設(shè)計(jì)<b class='flag-5'>流程</b>以及DSP設(shè)計(jì)

    FPGA設(shè)計(jì)流程指南

    FPGA設(shè)計(jì)的流程,步驟,選型,仿真,軟硬件設(shè)計(jì),調(diào)試流程。
    發(fā)表于 05-11 14:33 ?29次下載

    從賽靈思FPGA設(shè)計(jì)流程看懂FPGA設(shè)計(jì)

    不斷 從賽靈思FPGA設(shè)計(jì)流程看懂FPGA設(shè)計(jì) 1.XILINX ISE傳統(tǒng)FPGA設(shè)計(jì)流程 利用XilinxISE軟件開發(fā)
    發(fā)表于 02-20 20:32 ?1.6w次閱讀
    從賽靈思<b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>流程</b>看懂<b class='flag-5'>FPGA</b>設(shè)計(jì)

    FPGA設(shè)計(jì)流程“又臭又長”?從eda工具理解超級簡單!

    對于初學(xué)者而言,FPGA的設(shè)計(jì)流程是否顯的“又臭又長”呢??嗬嗬,如果真的有這樣的感覺,沒有關(guān)系,下面我就通過對軟體的使用來了解FPGA的設(shè)計(jì)流程
    發(fā)表于 06-02 07:17 ?1240次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>流程</b>“又臭又長”?從eda工具理解超級簡單!

    FPGA的設(shè)計(jì)流程是怎么樣的?FPGA設(shè)計(jì)流程指南詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA的設(shè)計(jì)流程是怎么樣的?FPGA設(shè)計(jì)流程指南詳細(xì)資料免費(fèi)下載內(nèi)容包括了:1.基于HDL 的FPGA 設(shè)計(jì)
    發(fā)表于 10-17 17:50 ?30次下載
    <b class='flag-5'>FPGA</b>的設(shè)計(jì)<b class='flag-5'>流程</b>是怎么樣的?<b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>流程</b>指南詳細(xì)資料免費(fèi)下載

    FPGA設(shè)計(jì)流程及原理

    01 FPGA的設(shè)計(jì)流程 FPGA是可編程芯片,因此FPGA的設(shè)計(jì)內(nèi)容包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。硬件包括FPGA芯片電路、 存儲器、輸入
    的頭像 發(fā)表于 11-12 18:22 ?6305次閱讀

    華為FPGA設(shè)計(jì)流程指南電子版下載

    華為FPGA設(shè)計(jì)流程指南電子版下載
    發(fā)表于 06-04 11:03 ?0次下載

    FPGA設(shè)計(jì)流程指南

    FPGA設(shè)計(jì)流程指南
    發(fā)表于 11-02 16:29 ?9次下載

    FPGA設(shè)計(jì)流程

    FPGA的設(shè)計(jì)流程主要包括HDL代碼編寫、RTL綜合、布局布線、靜態(tài)時(shí)序分析、生成下載文件。下面將逐一介紹各部分。下面是FPGA設(shè)計(jì)的流程圖。
    的頭像 發(fā)表于 07-04 12:06 ?1265次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>流程</b>