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

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

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

一種簡單高效配置FPGA的方法

FPGA技術(shù)實(shí)戰(zhàn) ? 來源:FPGA技術(shù)實(shí)戰(zhàn) ? 2024-10-24 14:57 ? 次閱讀

引言:本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設(shè)備。這種方法減少了硬件組件、板空間和成本。

1. 介紹

產(chǎn)品中包含分立的嵌入式處理器和FPGA是常見的,帶FPGA的典型嵌入式微處理器系統(tǒng)如圖1所示。這些類型的系統(tǒng)包括兩個(gè)典型的子系統(tǒng),子系統(tǒng)具有獨(dú)立的SPI Flash配置芯片

wKgZomcZ7-WAIjnBAAINroizvyU375.png

圖1:帶FPGA的典型嵌入式微處理器系統(tǒng)配置方法

XAPP583中描述了利用微處理器配置FPGA的推薦方法。這種方法是將用戶固件以及配置位文件存儲在連接到微處理器的Flash設(shè)備上。微處理器通過SPI接口讀取比特文件,然后通過從串行或從SelectMAP接口將比特流發(fā)送到FPGA。這消除了對FPGA配置的額外PROM的需要??驁D如圖2所示。

wKgaomcZ7-WAcQlTAAGvghH1Av0699.png

圖2:XAPP583文檔配置嵌入式微處理器系統(tǒng)方法

本文描述的方法進(jìn)一步簡化了配置方案。它利用了FPGA的從串行配置引腳與標(biāo)準(zhǔn)SPI總線信號之間的兼容性。圖3展示了微處理器、Flash和FPGA之間的連接。

wKgZomcZ7-WAazq8AAF9ElC2HIs315.png

圖3:本文檔配置嵌入式微處理器系統(tǒng)方法

如圖3所示,連接到微處理器的Flash存儲用戶固件和FPGA比特文件。然而,微處理器并不直接通過FPGA配置端口來配置FPGA。相反,F(xiàn)PGA從串行DIN和CCLK引腳連接到Flash和微處理器之間的SPI總線。通過這種方法進(jìn)行配置是可能的,因?yàn)閺拇薪涌诤团渲眯蛄信cSPI協(xié)議一致。操作和實(shí)施詳細(xì)信息部分更詳細(xì)地解釋了兼容性。

此方法可以使用兩個(gè)連接。您只需要連接以下引腳即可將配置位流傳輸?shù)侥繕?biāo)FPGA:

?FPGA CCLK引腳連接到SPI總線SCLK引腳。

?FPGA DIN引腳連接到SPI總線MISO引腳。

還可以包括用于配置控制或監(jiān)控的附加信號。以下FPGA引腳應(yīng)連接到微處理器GPIO引腳以啟用功能:

?PROGRAM_B:重置FPGA配置序列。

?INIT_B:檢查配置初始化或錯(cuò)誤狀態(tài)。

?DONE:監(jiān)控配置成功。

與圖1中所示的帶有嵌入式微處理器和Flash的傳統(tǒng)系統(tǒng)相比,此解決方案提供了多種優(yōu)勢:

?減少了組件數(shù)量:系統(tǒng)只需要一個(gè)Flash;

?更少的微處理器GPIO和更少的代碼空間:與其他基于嵌入式微處理器的配置解決方案相比,可以改善配置時(shí)間。

?基于微處理器的FPGA配置控制和監(jiān)控功能:超過了本地FPGA配置功能。

?系統(tǒng)內(nèi)PROM更新:此解決方案支持在微處理器上使用標(biāo)準(zhǔn)Flash編程庫來更新存儲的比特流。

2. 操作和實(shí)施細(xì)節(jié)

本節(jié)介紹FPGA從串行配置接口和時(shí)序,以及使用Zynq-7000 AP SoC處理子系統(tǒng)配置FPGA的方法。

2.1 FPGA從串行配置模式

從串行模式(FPGA配置模式之一)由于其簡單性而高效。下面列出了它的一些關(guān)鍵屬性。本應(yīng)用說明中描述的配置方法利用了這些屬性。

2.2 簡化配置方法

如果系統(tǒng)通電后只需要配置一次FPGA,那么配置方法可以很簡單,只需連接以下引腳即可:

?FPGA CCLK引腳連接到SPI總線SCLK引腳。

?FPGA DIN引腳連接到SPI總線MISO引腳。

在Zynq-7000 AP SoC開始配置之前,F(xiàn)PGA應(yīng)準(zhǔn)備好接收配置數(shù)據(jù)。換句話說,F(xiàn)PGA應(yīng)該已經(jīng)完成了從初始通電開始的配置空間的擦除階段。

wKgaomcZ7-WAAwS2AAEgi2uqpe0132.png

圖4:FPGA配置時(shí)序圖

接下來,Zynq-7000 AP SoC向SPI Flash發(fā)送單個(gè)讀取命令,并從SPI Flash讀取整個(gè)比特流。在SPI Flash串行讀取操作期間,比特流也通過SPI總線MISO信號串行傳輸?shù)紽PGA DIN引腳。SPI Flash在SCLK/CCLK的下降沿上輸出每個(gè)串行數(shù)據(jù)位。FPGA在SCLK/CCLK的下一個(gè)上升沿捕獲串行數(shù)據(jù)位。在從SPI Flash讀取整個(gè)比特流時(shí),F(xiàn)PGA被有效地配置。

FPGA配置接口的三個(gè)特性使FPGA DIN和CCLK引腳能夠直接連接到用于FPGA配置的SPI總線:

?SPI總線串行數(shù)據(jù)(MISO)和時(shí)鐘(SCLK)信號分別與FPGA從串行數(shù)據(jù)(DIN)和時(shí)鐘引腳兼容。

?FPGA配置接口在比特流讀取操作之前忽略所有SPI總線活動(dòng)。因?yàn)镕PGA丟棄所有傳入數(shù)據(jù),直到它接收到有效的32位同步字,所以有效地忽略了所有SPI總線活動(dòng)。

?配置操作完成后,F(xiàn)PGA配置接口忽略所有SPI總線活動(dòng)。由于FPGA在配置完成后停止監(jiān)測其DIN輸入,因此FPGA有效地忽略了位流讀取操作后的所有SPI總線活動(dòng)。

圖5說明了SPI總線和FPGA配置事務(wù)的關(guān)系。

wKgZomcZ7-WAOVONAAF6XHIof24585.png

圖5:SPI與FPGA之間時(shí)序關(guān)系

2.3 帶有附加控件的配置方法

另一種增強(qiáng)配置操作和能力的方法是使用Zynq-7000 AP SoC來控制FPGA配置引腳。例如,Zynq-7000 AP SoC可以使用其GPIO引腳驅(qū)動(dòng)FPGA PROGRAM_B引腳來清除FPGA配置Flash并重新啟動(dòng)配置。這允許基于系統(tǒng)操作條件來重新配置用戶設(shè)計(jì)。它可以為某些用戶設(shè)計(jì)提供巨大的優(yōu)勢,這些用戶設(shè)計(jì)受益于操作過程中的功能變化。

此外,Zynq-7000 AP SoC可以通過將其GPIO引腳連接到FPGA DONE和INIT_B引腳來監(jiān)測FPGA配置準(zhǔn)備情況和結(jié)果。INIT_B是一個(gè)配置錯(cuò)誤或就緒信號。DONE信號是一個(gè)配置完成指示器。這些狀態(tài)信號為Zynq-7000 AP SoC提供信息,以做出有效決策,確保可靠配置。

例如,從配置故障中恢復(fù)的一種流行方案稱為配置回退。如果Flash中的目標(biāo)位文件損壞,則用戶設(shè)計(jì)不進(jìn)行配置,F(xiàn)PGA也不起作用。在這種情況下,固件通過檢查INIT_B和DONE信號來檢測情況。然后,它通過使用Flash中的已知良好(golden)位文件重新配置FPGA來緩解問題。這使FPGA達(dá)到已知的功能狀態(tài),以避免災(zāi)難性的系統(tǒng)故障。

2.4 SPI總線SCLK最大頻率

SPI總線上的數(shù)據(jù)在相反的時(shí)鐘邊沿上被啟動(dòng)和捕獲。SCLK頻率的限制因素是最小SCLK/CCLK低時(shí)間。如圖5所示,它由從SCLK的下降沿到CCLK的上升沿的SPI Flash MISO輸出數(shù)據(jù)有效時(shí)間和FPGA DIN輸入設(shè)置時(shí)間之和決定。

wKgZomcZ7-WAZvVbAAFFSh8QOc8677.png

圖6:SPI總線到FPGA時(shí)序

以下等式估計(jì)SPI總線支持FPGA配置的最大SCLK頻率:

wKgZomcZ7-WAJ9weAAA33Kum7qU071.png

其中:

?TV=SPI Flash SCLK到MISO數(shù)據(jù)輸出有效時(shí)間。

?TDCCK=FPGA DIN輸入設(shè)置到CCLK設(shè)置時(shí)間。

?SCLKLow duty cycle %, minimum=時(shí)鐘周期內(nèi)SCLK低的最小百分比。

為了獲得更準(zhǔn)確的估計(jì),SCLK/CCLK和MISO/DIN信號的PCB走線路徑和相應(yīng)傳播延遲的適用分量應(yīng)納入上述方程式。

此外,SCLK信號(FPGA CCLK引腳)的信號完整性至關(guān)重要。為了實(shí)現(xiàn)最大可能的時(shí)鐘頻率,請使用最佳實(shí)踐來設(shè)計(jì)并將此時(shí)鐘信號從Zynq-7000 AP SoC路由到SPI Flash和FPGA端點(diǎn)。
3.參考設(shè)計(jì)

本文提供了一個(gè)示范參考設(shè)計(jì)。它使用Zynq-7000全可編程SoC(AP SoC)和目標(biāo)板上的FPGA實(shí)現(xiàn)了圖2所示的解決方案。您可以從Xilinx網(wǎng)站下載本應(yīng)用說明的參考設(shè)計(jì)文件。表1顯示了參考設(shè)計(jì)矩陣。

3.1 硬件設(shè)計(jì)

硬件設(shè)計(jì)基于Zynq-7000 AP SoC 7Z045 CLG484器件。AP SoC Quad SPI控制器連接到支持SPI x1、x2或x4寬度的多I/O存儲器設(shè)備。盡管Zynq Quad SPI控制器也可以支持x1、x2、x4和x8寬度,但此參考設(shè)計(jì)適用于使用單比特總線寬度的傳統(tǒng)SPI協(xié)議。下圖顯示了Zynq-7000 AP SoC、SPI PROM和Kintex-7 FPGA之間的硬件連接。

wKgZomcZ7-WAPLbbAAJZ1_LhKvM151.png

圖7:示例硬件原理圖

參考硬件設(shè)計(jì)在Vivadodesign Suite項(xiàng)目中提供。AP SoC內(nèi)的系統(tǒng)框圖如圖8所示。

wKgaomcZ7-aANRgqAAIbasle33s669.png

圖8:Vivado實(shí)現(xiàn)框圖

3.1 固件流程

參考設(shè)計(jì)利用存儲在SPI Flash中的更新的(最新設(shè)計(jì)修訂版)比特流和Golden(已知良好的)比特流來實(shí)現(xiàn)嘗試和回退配置方案。Zynq-7000 AP SoC固件首先嘗試加載最新的預(yù)期比特流。然后,如果配置不成功,固件將重新啟動(dòng)配置并加載黃金比特流。此過程稱為回退配置。固件流程圖如圖9所示。

wKgaomcZ7-WAXve1AAHyIFgOWnI080.png

圖9:固件加載流程圖

固件配置算法的詳細(xì)信息:

(1)將Zynq-7000AP SoC Quad SPI接口配置寄存器初始化為I/O模式。

?執(zhí)行諸如設(shè)置時(shí)鐘分頻器、芯片選擇模式和啟用控制器等任務(wù)。

(2)清除FPGA配置內(nèi)存。

?斷言PROGRAM_B的時(shí)間段至少比TPROGRAM長,然后取消斷言。

(3)等待INIT_B釋放。

?輪詢INIT_B引腳,以確保FPGA已完成房屋清潔階段。

(4)設(shè)置Quad SPI控制器傳輸功能。

?演示使用輪詢數(shù)據(jù)傳輸函數(shù)XQspiPs_PolledTransfer()。功能原型為:int XQspiPs_PolledTransfer(XQspiPInstancePtr,u8SendBufTr,u8*RecvBufPtr,unsigned ByteCount);

?InstancePtr是指向Quad SPI實(shí)例的指針

?SendBufPtr和RecvBufPtr分別是發(fā)送和接收緩沖區(qū)指針。此功能要求發(fā)送和接收緩沖器的字節(jié)數(shù)與將重新配置FPGA的比特流的長度相同。

?ByteCount是要傳輸?shù)淖止?jié)數(shù)。

?發(fā)送緩沖區(qū)的第一個(gè)字包含命令和地址,如表2所示。第一個(gè)字節(jié)包含用于Quad SPI存儲器設(shè)備的命令。在這種情況下,它將發(fā)送讀取字節(jié)命令(0x03)。只需要一個(gè)命令即可完成整個(gè)操作。目標(biāo)比特流的24比特起始地址被劃分為三個(gè)字節(jié)。緩沖區(qū)其余部分的內(nèi)容是未定義的,因?yàn)檫@是一個(gè)讀取操作。

表2:Quad SPI寫入緩沖區(qū)定義

wKgaomcZ7-WAYkXaAACSp-PJUIQ634.png

(5)呼叫輪詢傳輸功能

?調(diào)用該函數(shù)后,Quad SPI控制器將發(fā)送緩沖區(qū)的內(nèi)容發(fā)送到Quad SPI存儲器。同時(shí),它讀取的字節(jié)數(shù)與比特流的大小相同。由于FPGA的DIN和CCLK引腳連接到SPI控制器的MISO和SCK信號,當(dāng)檢測到SYNC字時(shí),F(xiàn)PGA(設(shè)置為從串行配置模式)將開始配置。FPGA是在比特流被完全讀取時(shí)配置的。

(6)檢查錯(cuò)誤

?配置FPGA后,如果INIT_B和DONE被斷言,則這表示成功讀取結(jié)束。

?但是,如果INIT_B和/或DONE引腳保持低位,固件將加載已知的良好配置(即Golden比特流)并重新配置FPGA。這被稱為配置回退。

4.結(jié)論

本文介紹的FPGA配置解決方案降低了包含微處理器、SPI Flash和FPGA的典型系統(tǒng)的硬件和固件要求。它利用了FPGA串行配置模式和SPI存儲器之間的兼容性。

聲明:本文內(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)注

    1629

    文章

    21736

    瀏覽量

    603318
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305147
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1635

    瀏覽量

    148016
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2263

    瀏覽量

    82444
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1706

    瀏覽量

    91578

原文標(biāo)題:基于微處理器實(shí)現(xiàn)SPI Flash配置FPGA設(shè)計(jì)

文章出處:【微信號:FPGA技術(shù)實(shí)戰(zhàn),微信公眾號:FPGA技術(shù)實(shí)戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一種簡單的可控硅好壞判斷方法

    一種簡單的可控硅好壞判斷方法
    發(fā)表于 07-28 08:17 ?6293次閱讀

    一種簡單的OpenHarmony環(huán)境搭建方法

    本文介紹一種簡單的OpenHarmony環(huán)境搭建方法。
    的頭像 發(fā)表于 03-14 13:58 ?3431次閱讀
    <b class='flag-5'>一種</b><b class='flag-5'>簡單</b>的OpenHarmony環(huán)境搭建<b class='flag-5'>方法</b>

    一種基于FPGA的UART實(shí)現(xiàn)方法設(shè)計(jì)

    摘要:UART作為RS232協(xié)議的控制接口得到了廣泛的應(yīng)用,將UART的功能集成在FPGA芯片中,可使整個(gè)系統(tǒng)更為靈活、緊湊,減小整個(gè)電路的體積,提高系統(tǒng)的可靠性和穩(wěn)定性。提出了一種基于FPGA
    發(fā)表于 06-21 07:17

    一種基于FPGA的可配置FFT IP核實(shí)現(xiàn)設(shè)計(jì)

    。本文在串行方法的基礎(chǔ)上實(shí)現(xiàn)了一種FPGA上實(shí)現(xiàn)的可配置FFTIP核,具有輸入點(diǎn)數(shù)可配置(實(shí)現(xiàn)0~4 096點(diǎn)自由
    發(fā)表于 07-03 07:56

    一種高檔FPGA可重構(gòu)配置方法

    求大神分享一種高檔FPGA可重構(gòu)配置方法
    發(fā)表于 04-29 06:16

    Nexar如何為FPGA設(shè)計(jì)提供一種全新的方法?

     本文概述了開發(fā)這種系統(tǒng)所必須面對的各種設(shè)計(jì)挑戰(zhàn),并講解了Altium公司的最新電子設(shè)計(jì)環(huán)境Nexar如何為FPGA設(shè)計(jì)提供一種全新的方法。這種方法不僅可將處理器有效地集成入
    發(fā)表于 05-08 06:02

    分享一種FPGA的動(dòng)態(tài)配置方案

    本文提出了一種基于嵌入式系統(tǒng)和Internet的FPGA動(dòng)態(tài)配置方案。
    發(fā)表于 05-27 06:38

    一種密鑰可配置的DES加密算法的FPGA

    一種密鑰可配置的DES加密算法的FPGA 摘 要: 在傳統(tǒng)的DES加密算法的基礎(chǔ)上,提出一種對密鑰實(shí)行動(dòng)態(tài)管理的硬件設(shè)計(jì)方案,給出了其FPGA
    發(fā)表于 09-19 09:14 ?1048次閱讀
    <b class='flag-5'>一種</b>密鑰可<b class='flag-5'>配置</b>的DES加密算法的<b class='flag-5'>FPGA</b>

    一種基于SRAM的FPGA的加密方法

    FPGA在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中,由于其卓越性能、靈活方便而被廣泛使用,但基于SRAM的FPGA需要從外部進(jìn)行配置,配置數(shù)據(jù)很容易被截獲,故存遮安全隱患。總結(jié)了當(dāng)前
    發(fā)表于 03-16 14:22 ?48次下載

    一種通用SPI接口的FPGA設(shè)計(jì)與實(shí)現(xiàn)

    SPI 串行總線是一種常用的標(biāo)準(zhǔn)接口,其使用簡單方便而且占用系統(tǒng)資源少,應(yīng)用相當(dāng)廣泛。本文將介紹一種新的通用的SPI 總線的FPGA 實(shí)現(xiàn)方法
    發(fā)表于 09-09 11:58 ?67次下載
    <b class='flag-5'>一種</b>通用SPI接口的<b class='flag-5'>FPGA</b>設(shè)計(jì)與實(shí)現(xiàn)

    一種密鑰可配置的DES加密算法的FPGA實(shí)現(xiàn)

    一種密鑰可配置的DES加密算法的FPGA實(shí)現(xiàn)
    發(fā)表于 05-11 11:30 ?11次下載

    一種新的基于電穿孔的皮膚高效核酸遞送方法

    研究人員提出了一種新的基于電穿孔的皮膚高效核酸遞送方法,該方法結(jié)合醫(yī)療美容領(lǐng)域的微針滾輪與柔性插指電極芯片,實(shí)現(xiàn)了核酸分子在皮膚組織的高效
    的頭像 發(fā)表于 05-10 10:05 ?5150次閱讀
    <b class='flag-5'>一種</b>新的基于電穿孔的皮膚<b class='flag-5'>高效</b>核酸遞送<b class='flag-5'>方法</b>

    電子學(xué)報(bào)第七期《一種配置的CNN協(xié)加速器的FPGA實(shí)現(xiàn)方法

    電子學(xué)報(bào)第七期《一種配置的CNN協(xié)加速器的FPGA實(shí)現(xiàn)方法
    發(fā)表于 11-18 16:31 ?15次下載

    一種配置任意數(shù)量開關(guān)的方法

    電子發(fā)燒友網(wǎng)站提供《一種配置任意數(shù)量開關(guān)的方法.zip》資料免費(fèi)下載
    發(fā)表于 10-31 10:56 ?0次下載
    <b class='flag-5'>一種</b><b class='flag-5'>配置</b>任意數(shù)量開關(guān)的<b class='flag-5'>方法</b>

    一種高效、靈巧的多通信信號產(chǎn)生方法

    電子發(fā)燒友網(wǎng)站提供《一種高效、靈巧的多通信信號產(chǎn)生方法.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 09:54 ?0次下載
    <b class='flag-5'>一種</b><b class='flag-5'>高效</b>、靈巧的多通信信號產(chǎn)生<b class='flag-5'>方法</b>