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

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

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

FPGA上電時(shí)序加載過(guò)程詳解

FPGA設(shè)計(jì)論壇 ? 2022-12-26 18:10 ? 次閱讀

目前,大多數(shù)FPGA芯片是基于 SRAM 的結(jié)構(gòu)的, 而 SRAM 單元中的數(shù)據(jù)掉電就會(huì)丟失,因此系統(tǒng)上電后,必須要由配置電路將正確的配置數(shù)據(jù)加載到 SRAM 中,此后 FPGA 才能夠正常的運(yùn)行。

常見的配置芯片有EPCS 芯片 (EPCS4、EPCS8、EPCS16、EPCS64、EPCS128),還有通用的串行 SPI FLASH 芯片如 M25P40、 M25P16、 W25Q16 等。

配置(configuration)是對(duì)FPGA的內(nèi)容進(jìn)行編程的過(guò)程。每次上電后都需要進(jìn)行配置是基于SRAM工藝FPGA的一個(gè)特點(diǎn),也可以說(shuō)是一個(gè)缺點(diǎn)。FPGA配置過(guò)程如下:

f2b7bd00-84fb-11ed-bfe3-dac502259ad0.png

2.FPGA配置方式

根據(jù)FPGA在配置電路中的角色,可以將配置方式分為三類:

1.FPGA主動(dòng)串行(AS)方式

2. JTAG方式

3. FPGA被動(dòng)(Passive)方式

f2dbf1a2-84fb-11ed-bfe3-dac502259ad0.png

3.FPGA配置過(guò)程

FPGA的配置包括3各階段:復(fù)位、配置和初始化。

f2fd80ec-84fb-11ed-bfe3-dac502259ad0.png

FPGA正常上電后,當(dāng)其nCONFIG管腳被拉低時(shí),器件處于復(fù)位狀態(tài),這時(shí)所有的配置RAM內(nèi)容被清空,并且所有I/O處于高阻態(tài),F(xiàn)PGA的狀態(tài)管腳nSTATUS和CONFIG_DONE管腳也將輸出為低。當(dāng)FPGA的nCONFIG管腳上出現(xiàn)一個(gè)從低到高的跳變以后,配置就開始了,同時(shí)芯片還會(huì)去采樣配置模式(MSEL)管腳的信號(hào)狀態(tài),決定接受何種配置模式。

隨之,芯片將釋放漏極開路(open-drain)輸出的nSTATUS管腳,使其由片外的上拉電阻拉高,這樣,就表示FPGA可以接收配置數(shù)據(jù)了。在配置之前和配置過(guò)程中,F(xiàn)PGA的用戶I/O均處于高阻態(tài)。

在接收配置數(shù)據(jù)的過(guò)程中,配置數(shù)據(jù)由DATA管腳送入,而配置時(shí)鐘信號(hào)由DCLK管腳送入,配置數(shù)據(jù)在DCLK的上升沿被鎖存到FPGA中,當(dāng)配置數(shù)據(jù)被全部載入到FPGA中以后,F(xiàn)PGA上的CONF_DONE信號(hào)就會(huì)被釋放,而漏極開路輸出的CONF_DONE信號(hào)同樣將由外部的上拉電阻拉高。因此,CONF_DONE管腳的從低到高的跳變意味著配置的完成,初始化過(guò)程的開始,而并不是芯片開始正常工作。

INIT_DONE是初始化完成的指示信號(hào),它是FPGA中可選的信號(hào),需要通過(guò)Quartus II工具中的設(shè)置決定是否使用該管腳。在初始化過(guò)程中,內(nèi)部邏輯、內(nèi)部寄存器和I/O寄存器將被初始化,I/O驅(qū)動(dòng)器將被使能。

當(dāng)初始化完成以后,器件上漏極開始輸出的INIT_DONE管腳被釋放,同時(shí)被外部的上拉電阻拉高。這時(shí),F(xiàn)PGA完全進(jìn)入用戶模式,所有的內(nèi)部邏輯以及I/O都按照用戶的設(shè)計(jì)運(yùn)行,這時(shí),那些FPGA配置過(guò)程中的I/O弱上拉將不復(fù)存在。不過(guò),還有一些器件在用戶模式下I/O也有可編程的弱上拉電阻。在完成配置以后,DCLK信號(hào)和DATA管腳不應(yīng)該被浮空(floating),而應(yīng)該被拉成固定電平,高或低都可以。

4.FPGA配置模式選擇

用戶可以通過(guò)設(shè)置FPGA上的MSEL0、MESL1兩個(gè)引腳的狀態(tài)來(lái)選擇配置方式。各種方式的MSEL0、MESL1設(shè)置如下表所列:

f32d0ccc-84fb-11ed-bfe3-dac502259ad0.png

說(shuō)明:

在上表中,如果只采用一種配置方式,則可以直接將MSEL0、MESL1連接到VCC(注意要與FPGA的IO口的供電VCCIO相同)或GND;

如果需要多種配置方式,那么MSEL要用控制器單片機(jī)CPLD等)來(lái)控制以進(jìn)行切換;

MSEL管腳在配置開始前必須處于一個(gè)固定的狀態(tài),因此不能將MSEL管腳懸空。

5.主動(dòng)串行配置

主動(dòng)串行配置方式(AS)是將配置數(shù)據(jù)事先存儲(chǔ)在串行配置器件EPCS中,然后在系統(tǒng)上電時(shí)Cyclone IV FPGA通過(guò)串行接口讀取配置數(shù)據(jù)(如果是壓縮數(shù)據(jù),還會(huì)進(jìn)行解壓縮處理)對(duì)內(nèi)部的SRAM單元進(jìn)行配置。

因?yàn)樯鲜雠渲眠^(guò)程中FPGA控制配置接口,因此通常稱為主動(dòng)配置方式。在配置期間,Cyclone IV用過(guò)串行接口來(lái)讀配置數(shù)據(jù),來(lái)對(duì)里面的SRAM編程。串行配置器件的四個(gè)接口包括,串行時(shí)鐘輸入DCLK,串行數(shù)據(jù)輸出DATA,低有效的片選信號(hào)NCE,串行數(shù)據(jù)輸入ASDI。

主動(dòng)串行配置電路圖:

f348b332-84fb-11ed-bfe3-dac502259ad0.png

因?yàn)镕PGA上的nSTATUS、CONFIG_DONE管腳都是開漏結(jié)構(gòu),所以都要接上拉電阻。FPGA的片選腳nCE必須接地。

6.JTAG配置

通過(guò)JTAG接口,利用Quartus II軟件可以直接對(duì)FPGA進(jìn)行單獨(dú)的硬件重新配置。Quartus II軟件在編譯時(shí)會(huì)自動(dòng)生成用于JTAG配置的.sof文件。

如果同時(shí)使用AS方式和JTAG方式來(lái)配置FPGA,JTAG配置方式擁有最高的優(yōu)先級(jí),此時(shí)AS方式將停止,而執(zhí)行JTAG方式配置。

f360a942-84fb-11ed-bfe3-dac502259ad0.png

利用Quartus II軟件和USB Blaster等下載電纜可下載配置數(shù)據(jù)到FPGA。Quartus II軟件可以驗(yàn)證JTAG配置是否成功。JTAG配置通過(guò)下載電纜使用SOF、Jam或者JBC文件直接對(duì)FPGA進(jìn)行配置,這種配置方式只能用于調(diào)試階段,因?yàn)?,掉電后FPGA中的配置數(shù)據(jù)將丟失。

7.被動(dòng)串行配置

被動(dòng)串行PS配置方式是Altera Cyclone IV系列FPGA配置方式中比較常用的方式。但是,在工程應(yīng)用中若采用這種配置方式,F(xiàn)PGA需要連接一個(gè)智能主機(jī)(比如復(fù)雜可編程邏輯器件CPLD/微控制單元MCU等)以給其提供配置時(shí)鐘和配置數(shù)據(jù)。

在該配置方式下,智能主機(jī)在保證與存儲(chǔ)配置數(shù)據(jù)的閃存通信無(wú)誤的情況下,只需向FPGA提供一個(gè)DCLK信號(hào)和一個(gè)DATA0信號(hào)即可實(shí)現(xiàn)對(duì)FPGA的配置。另外,該DCLK信號(hào)還可以實(shí)現(xiàn)多種頻率以滿足用戶對(duì)配置時(shí)間的需求,這是該配置方式的一大亮點(diǎn)。

f37f3dee-84fb-11ed-bfe3-dac502259ad0.png

本文介紹了以Altera型的FPGA芯片為例介紹了FPGA的上電過(guò)程,并描述了三種常見的配置模式,用戶可以根據(jù)不同的需求來(lái)采用對(duì)應(yīng)的配置模式,每種配置模式下對(duì)應(yīng)的配置數(shù)據(jù)類型也是不相同的。

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

    關(guān)注

    1620

    文章

    21509

    瀏覽量

    598860
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    757

    瀏覽量

    114450
  • EPCS
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    13299
  • Altera
    +關(guān)注

    關(guān)注

    37

    文章

    772

    瀏覽量

    153668
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    393

    瀏覽量

    71424

原文標(biāo)題:FPGA上電時(shí)序加載過(guò)程詳解

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA加載時(shí)序介紹

    大多數(shù)FPGA芯片是基于 SRAM 的結(jié)構(gòu)的, 而 SRAM 單元中的數(shù)據(jù)掉電就會(huì)丟失,因此系統(tǒng)后,必須要由配置電路將正確的配置數(shù)據(jù)加載到 SRAM 中,此后
    的頭像 發(fā)表于 07-01 17:16 ?1.7w次閱讀

    FPGA加載時(shí)序介紹

    目前,大多數(shù)FPGA芯片是基于 SRAM 的結(jié)構(gòu)的, 而 SRAM 單元中的數(shù)據(jù)掉電就會(huì)丟失,因此系統(tǒng)后,必須要由配置電路將正確的配置數(shù)據(jù)加載到 SRAM 中,此后
    發(fā)表于 10-24 14:52 ?834次閱讀

    現(xiàn)在的FPGA還嚴(yán)格要求時(shí)序嗎?

    現(xiàn)在的FPGA還嚴(yán)格要求時(shí)序嗎?想請(qǐng)教一下大家
    發(fā)表于 09-26 15:39

    詳解FPGA時(shí)序以及時(shí)序收斂

    1. FPGA時(shí)序的基本概念FPGA器件的需求取決于系統(tǒng)和上下游(upstream and downstrem)設(shè)備。我們的設(shè)計(jì)需要和其他的devices進(jìn)行數(shù)據(jù)的交互,其他的devices可能是
    發(fā)表于 07-09 09:14

    詳解FPGA加載時(shí)序

    目前,大多數(shù)FPGA芯片是基于 SRAM 的結(jié)構(gòu)的, 而 SRAM 單元中的數(shù)據(jù)掉電就會(huì)丟失,因此系統(tǒng)后,必須要由配置電路將正確的配置數(shù)據(jù)加載到 SRAM 中,此后
    發(fā)表于 07-18 08:10

    FPGA配置引腳說(shuō)明及加載時(shí)序

    。使用BITSTREAM.CONFIG.EXTMASTERCCLK_EN屬性在Vivado中設(shè)置ExMasterCclk_en選項(xiàng)  三、FPGA加載時(shí)序  
    發(fā)表于 01-15 16:43

    TMS320C61416控制FPGA數(shù)據(jù)加載設(shè)計(jì)

    根據(jù)FPGA芯片加載時(shí)序分析,本文提出了采用通過(guò)市面上常見的Flash ROM芯片替代專用PROM的方式,通過(guò)DSP的外部高速總線進(jìn)行FPGA加載
    發(fā)表于 08-16 16:26 ?1713次閱讀
    TMS320C61416控制<b class='flag-5'>FPGA</b>數(shù)據(jù)<b class='flag-5'>加載</b>設(shè)計(jì)

    主板開機(jī)原理與時(shí)序

    主板開機(jī)原理與時(shí)序
    發(fā)表于 12-17 21:30 ?0次下載

    不同場(chǎng)景的FPGA外圍電路的時(shí)序分析與設(shè)計(jì)

    時(shí)序以及各階段I/O 管腳狀態(tài),說(shuō)明了FPGA配置對(duì)電路功能的嚴(yán)重影響,最后針對(duì)不同功能需求的FPGA外圍電路提出了有效的設(shè)計(jì)建議。
    發(fā)表于 11-22 07:18 ?6933次閱讀
    不同場(chǎng)景的<b class='flag-5'>FPGA</b>外圍電路的<b class='flag-5'>上</b><b class='flag-5'>電</b><b class='flag-5'>時(shí)序</b>分析與設(shè)計(jì)

    FPGA自動(dòng)加載系統(tǒng)方案設(shè)計(jì)詳解

    加載系統(tǒng)。該系統(tǒng)通過(guò)USB芯片將PC中的配置文件傳送給CPLD,CPLD再將其寫入FLASH芯片,F(xiàn)LASH芯片可以長(zhǎng)久地存儲(chǔ)配置文件。這樣FPGA每次后CPLD將FLASH中的配
    發(fā)表于 02-20 15:36 ?3173次閱讀
    <b class='flag-5'>FPGA</b>自動(dòng)<b class='flag-5'>加載</b>系統(tǒng)方案設(shè)計(jì)<b class='flag-5'>詳解</b>

    基于ARM-Linux平臺(tái)的FPGA程序加載模式淺析

    在系統(tǒng)時(shí),需要從外部載入所要運(yùn)行的程序,此過(guò)程被稱為程序加載。多數(shù)情況下,從外部專用的 讀入程序。這種方式速度慢,而且只能加載固定的程序
    發(fā)表于 03-22 16:20 ?1076次閱讀

    基于外部處理器的FPGA加載應(yīng)用程序的方法研究

    FPGA在系統(tǒng)時(shí),需要從外部載入所要運(yùn)行的程序,此過(guò)程被稱為程序加載。多數(shù)情況下,FPGA
    發(fā)表于 08-13 17:16 ?2093次閱讀
    基于外部處理器的<b class='flag-5'>FPGA</b><b class='flag-5'>加載</b>應(yīng)用程序的方法研究

    基于DSP芯片TMS320C6416實(shí)現(xiàn)Flash自行加載FPGA的應(yīng)用設(shè)計(jì)

    基于SRAM結(jié)構(gòu)的FPGA容量大,可重復(fù)操作,應(yīng)用相當(dāng)廣泛;但其結(jié)構(gòu)類似于SRAM,掉電后數(shù)據(jù)丟失,因此每次時(shí)都需重新加載
    的頭像 發(fā)表于 03-26 13:52 ?4794次閱讀
    基于DSP芯片TMS320C6416實(shí)現(xiàn)<b class='flag-5'>上</b><b class='flag-5'>電</b>Flash自行<b class='flag-5'>加載</b><b class='flag-5'>FPGA</b>的應(yīng)用設(shè)計(jì)

    FPGA過(guò)程介紹

    目前,大多數(shù)FPGA芯片是基于 SRAM 的結(jié)構(gòu)的, 而 SRAM 單元中的數(shù)據(jù)掉電就會(huì)丟失,因此系統(tǒng)后,必須要由配置電路將正確的配置數(shù)據(jù)加載到 SRAM 中,此后
    發(fā)表于 08-15 09:13 ?2210次閱讀

    如何讀懂FPGA開發(fā)過(guò)程中的Vivado時(shí)序報(bào)告?

    FPGA開發(fā)過(guò)程中,vivado和quartus等開發(fā)軟件都會(huì)提供時(shí)序報(bào)告,以方便開發(fā)者判斷自己的工程時(shí)序是否滿足時(shí)序要求。
    發(fā)表于 06-26 15:29 ?829次閱讀
    如何讀懂<b class='flag-5'>FPGA</b>開發(fā)<b class='flag-5'>過(guò)程</b>中的Vivado<b class='flag-5'>時(shí)序</b>報(bào)告?