91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

在FPGA中如何通過(guò)ICAP原語(yǔ)實(shí)現(xiàn)Multiboot?

FPGA之家 ? 來(lái)源:林深雜談 ? 作者:林深雜談 ? 2021-05-11 14:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA的MultiBoot功能可以支持遠(yuǎn)程動(dòng)態(tài)更新bitstream images,實(shí)現(xiàn)bitstream images的實(shí)時(shí)切換。在MultiBoot配置過(guò)程中檢測(cè)到錯(cuò)誤時(shí),F(xiàn)PGA可以觸發(fā)fallback 功能,以確??梢詫⒁阎己玫脑O(shè)計(jì)加載到器件中。

MultiBoot的大致過(guò)程如下圖:

f204ff4a-b20b-11eb-bf61-12bb97331649.png

MultiBoot的配置文件由兩個(gè)比特流文件生成,第一個(gè)為備份文件,永遠(yuǎn)都不會(huì)變,稱為Golden_image,從Flash的0地址存儲(chǔ)。

第二個(gè)為更新文件,后面遠(yuǎn)程更新,更新的就是這個(gè)文件,稱為Update_image,存放在某個(gè)地址處,這個(gè)地址有熱啟動(dòng)地址寄存器(WBSTAR)指定。

配置過(guò)程大致如下:FPGA從FLASH的0地址處讀取配置,遇到IPROG Command命令時(shí),跳轉(zhuǎn)到WBSTAR寄存器指定的地址,該地址存放Update_image的地址,此時(shí)FPGA嘗試加載該地址處的比特流文件,配置成功的話,就執(zhí)行該配置的功能。如果遇到配置錯(cuò)誤,則觸發(fā)FallBack,F(xiàn)PGA重新加載Golden_image。

1、ICAPE3 接口

FPGA實(shí)現(xiàn)IPROG通常有兩種方式,一種是通過(guò)ICAP配置,一種是把相關(guān)指令嵌入bit文件中。與通過(guò)bit文件實(shí)現(xiàn)IPROG相比,通過(guò)ICAP更靈活。

在Xilinx FPGA 中ICAP(Internal Configuration Access Port) 指的是內(nèi)部配置訪問(wèn)端口,其主要作用是通過(guò)內(nèi)部配置訪問(wèn)端口(ICAP),用戶可以在FPGA邏輯代碼中直接讀寫FPGA內(nèi)部配置寄存器(類似SelectMAP),從而實(shí)現(xiàn)特定的配置功能,例如Multiboot。

ICAP目前為止有三個(gè)版本,包括ICAP,ICAPE2以及ICAPE3。UltraScale系列對(duì)應(yīng)ICAPE3,7系列對(duì)應(yīng)ICAPE2,7系列之前的對(duì)應(yīng)ICAP。

以下以ICAPE3 為例,ICAPE3 的接口如下:

f265be16-b20b-11eb-bf61-12bb97331649.png

f27218b4-b20b-11eb-bf61-12bb97331649.png

f2a5ad1e-b20b-11eb-bf61-12bb97331649.png

2、IPROG指令

每個(gè)UltraScale系列的FPAG包括2個(gè)ICAPE3,但實(shí)際使用時(shí)只能例化并使用一個(gè),默認(rèn)頂部ICAPE3, 初級(jí)玩家采用默認(rèn)的即可。

IPROG指令的作用跟外部Program_B管腳的作用類似,都是對(duì)FPGA芯片進(jìn)行復(fù)位操作,該復(fù)位操作對(duì)FPGA內(nèi)部的應(yīng)用程序進(jìn)行復(fù)位,復(fù)位過(guò)程中除專用配置管腳和JTAG管腳,其他輸入/輸出管腳均為高阻態(tài),同時(shí)IPROG指令不能復(fù)位專用重配置邏輯,如WBSTAR寄存器、TIMER寄存器、BSPI寄存器和BOOTSTS寄存器。IPROG指令能夠觸發(fā)FPGA開啟初始化流程,同時(shí)拉低INIT和Done信號(hào)。完成復(fù)位操作后,將默認(rèn)的加載地址用熱啟動(dòng)地址寄存器(Warm Boot Start Address,WB-STAR)中的新地址替換。

通過(guò)ICAP發(fā)送IPROG指令實(shí)現(xiàn)Multiboot的步驟如下:

f2d4d8d2-b20b-11eb-bf61-12bb97331649.png

首先寫入同步頭 32’hAA995566, 然后將需要跳轉(zhuǎn)到的bit文件的起始地址寫入WBSTAR寄存器,最后寫入IPROG(internal PROGRAM_B)指令。

WBSTAR寄存器的格式,根據(jù)自己的要為Update_image分配在FLASH的地址,按照下面的格式生成一個(gè)32位數(shù)據(jù)。例如,我為Update_image分配的flash地址為2000000。

(1)對(duì)于BPI模式來(lái)說(shuō),可以通過(guò)RS[1:0]來(lái)控制具體位流的讀取,也可以通過(guò)STAT_ADDR[28:0]地址來(lái)控制具體位流的讀取。

(2)對(duì)于SPI模式來(lái)說(shuō),只有STAT_ADDR[23:0]地址來(lái)表征FLASH器件的地址,當(dāng)使用32位地址的SPI(容量大于等于256Mb)時(shí),需要將實(shí)際存儲(chǔ)的高24地址賦值給STAT_ADDR[23:0]。因此在位流存儲(chǔ)的起始地址早于255時(shí),這就要求位流中的dummy數(shù)目要大于256個(gè),否則就會(huì)出現(xiàn)易失部分有效位流讀取,導(dǎo)致加載失敗。為了安全起見,在使用大于等于256Mb的FLASH時(shí),可以適當(dāng)在位流頭前加入Dummy。

這里需要注意一點(diǎn),ICAP以及SelectMAP都存在位反轉(zhuǎn)(Bit Swapping),也就是說(shuō),上表中所有的數(shù)據(jù)需要進(jìn)行位反轉(zhuǎn)之后才能接到ICAP的輸入接口,同理,ICAP輸出的值需要進(jìn)行位反轉(zhuǎn)后才能與實(shí)際的值對(duì)應(yīng)起來(lái),位反轉(zhuǎn)的示例如下圖。

f2e99b1e-b20b-11eb-bf61-12bb97331649.png


3、ICAPE3 例化示例

ICAPE3 進(jìn)行例化,示例如下:

// ICAPE3: Internal Configuration Access Port

// UltraScale

// Xilinx HDL Language Template, version 2019.1

ICAPE3 #(

.DEVICE_ID(32‘h03628093),//pre-programmed Device ID value,used for simulation

// purposes.

.ICAP_AUTO_SWITCH(“DISABLE”),//Enable switch ICAP using sync word

.SIM_CFG_FILE_NAME(“NONE”)//Raw Bitstream (RBT) file,parsed by the simulation

// model

ICAPE3_inst (

.AVAIL(AVAIL), // 1-bit output: Availability status of ICAP

.O(O), // 32-bit output: Configuration data output bus

.PRDONE(PRDONE),//1-bit output: Indicates completion of Partial Reconfiguration

.PRERROR(PRERROR),//1-bit output: Indicates Error during Partial Reconfiguration

.CLK(CLK), // 1-bit input: Clock input

.CSIB(CSIB), // 1-bit input: Active-Low ICAP enable

.I(I), // 32-bit input: Configuration data input bus

.RDWRB(RDWRB) // 1-bit input: Read/Write Select input

);

// End of ICAPE3_inst instantiation

其中設(shè)備號(hào)DEVICE_ID需要查找USER GUIDE手冊(cè),而ICAP原語(yǔ)接口時(shí)序跟Select Map接口時(shí)序非常相似。SelectMap模式下,F(xiàn)PGA的配置和回讀是通過(guò)CSI_B,RDWR_B和CCLK來(lái)控制的。

4、程序步驟

在發(fā)送IPROG指令之前,將默認(rèn)的加載地址用熱啟動(dòng)地址寄存器(Warm Boot Start Address,WB-STAR)中的新地址。

然后對(duì)ICAP核進(jìn)行預(yù)配置。重載控制模塊在收到觸發(fā)信號(hào)后,第一個(gè)時(shí)鐘周期將ICAP核的RDWRB信號(hào)和CSIBCSIB信號(hào)置高,第二個(gè)周期將RDWRB信號(hào)置底,CE信號(hào)置高,第三個(gè)周期將RDWRB信號(hào)置底,CSIB信號(hào)也置底。

接著在下面的8個(gè)時(shí)鐘周期里,將指令隊(duì)列中的控制命令逐個(gè)發(fā)出。

運(yùn)行工程,生成位流Bit,在約束XDC文件中添加壓縮等命令即可。

f3269406-b20b-11eb-bf61-12bb97331649.png

固化Mcs生成。Xilinx系列的FPGA需要將后綴名為mcs的內(nèi)存鏡像文件固化到外部配置存儲(chǔ)器中,F(xiàn)PGA上電后才能自動(dòng)加載配置文件。一般的mcs文件只包含一個(gè)bit流文件,多重啟動(dòng)的mcs固化文件包含多個(gè)bit流文件。在將多個(gè)bit流整合到mcs文件的過(guò)程中,需要指定每個(gè)bit流的起始地址,這樣FPGA專用配置邏輯才能根據(jù)地址找到對(duì)應(yīng)的bit流。在程序設(shè)計(jì)WBSTAR地址時(shí),確定了Golden位流存儲(chǔ)的起始地址為0X00000000,Update位流存儲(chǔ)的起始地址為0X00800000,因此在將Bit整合到Mcs過(guò)程中需要指定對(duì)應(yīng)的存儲(chǔ)起始地址,否則就無(wú)法加載成功了。

在SPI的flash里燒寫有A和B兩個(gè)程序,F(xiàn)PGA上電后,自動(dòng)加載A程序,根據(jù)外部給FPGA指示信號(hào),F(xiàn)PGA自動(dòng)切換加載B的程序,同時(shí)在B程序運(yùn)行期間,根據(jù)外部給FPGA指示信號(hào),F(xiàn)PGA自動(dòng)切換加載A的程序。

原文標(biāo)題:FPGA中利用ICAP原語(yǔ)實(shí)現(xiàn)Multiboot功能

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    1660

    文章

    22412

    瀏覽量

    636415

原文標(biāo)題:FPGA中利用ICAP原語(yǔ)實(shí)現(xiàn)Multiboot功能

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【ALINX 教程】FPGA Multiboot 功能實(shí)現(xiàn)——基于 ALINX Artix US+ AXAU25 開發(fā)板

    系統(tǒng)級(jí)設(shè)計(jì) 階段的學(xué)習(xí)者 Multiboot 功能概述 基礎(chǔ)實(shí)驗(yàn),FPGA 通常通過(guò) JTAG 下載 bitstream,這種方式掉電
    的頭像 發(fā)表于 01-05 15:41 ?1235次閱讀
    【ALINX 教程】<b class='flag-5'>FPGA</b> <b class='flag-5'>Multiboot</b> 功能<b class='flag-5'>實(shí)現(xiàn)</b>——基于 ALINX Artix US+ AXAU25 開發(fā)板

    為什么FPGA設(shè)計(jì)中使用MicroBlaze V處理器

    各類行業(yè)與應(yīng)用,經(jīng)常能看到許多 FPGA 設(shè)計(jì)。一個(gè)非常常見的現(xiàn)象是:設(shè)計(jì)者常常用復(fù)雜的有限狀態(tài)機(jī)(FSM)來(lái)實(shí)現(xiàn) I2C、SPI、GPIO 時(shí)序控制等功能。
    的頭像 發(fā)表于 12-19 15:29 ?8333次閱讀
    為什么<b class='flag-5'>在</b><b class='flag-5'>FPGA</b>設(shè)計(jì)中使用MicroBlaze V處理器

    易靈思FPGA DSP原語(yǔ)使用方法

    現(xiàn)代數(shù)字信號(hào)處理(DSP)應(yīng)用,FPGA(現(xiàn)場(chǎng)可編程門陣列)憑借其高度并行性、可定制性和靈活性,已成為加速信號(hào)處理任務(wù)的核心硬件平臺(tái)之一。
    的頭像 發(fā)表于 12-10 10:32 ?5584次閱讀
    易靈思<b class='flag-5'>FPGA</b> DSP<b class='flag-5'>原語(yǔ)</b>使用方法

    如何使用FPGA實(shí)現(xiàn)SRIO通信協(xié)議

    本例程詳細(xì)介紹了如何在FPGA實(shí)現(xiàn)Serial RapidIO(SRIO)通信協(xié)議,并通過(guò)Verilog語(yǔ)言進(jìn)行編程設(shè)計(jì)。SRIO作為一種高速、低延遲的串行互連技術(shù),高性能計(jì)算和嵌
    的頭像 發(fā)表于 11-12 14:38 ?5771次閱讀
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>SRIO通信協(xié)議

    FPGA設(shè)計(jì)中集成事件斷點(diǎn)的實(shí)現(xiàn)過(guò)程

    如果對(duì)處于全速(at-speed)運(yùn)行下的FPGA調(diào)試,工程師現(xiàn)有通用“能力技術(shù)”基礎(chǔ)上,再增加“硬件斷點(diǎn)”功能,那么對(duì)高速運(yùn)行FPGA,也就擁有像調(diào)試軟件程序類似的完整可觀測(cè)能力(Full Visibility)和可控制能力
    的頭像 發(fā)表于 11-07 11:20 ?5394次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>FPGA</b>設(shè)計(jì)中集成事件斷點(diǎn)的<b class='flag-5'>實(shí)現(xiàn)</b>過(guò)程

    以太網(wǎng)通訊FPGA上的實(shí)現(xiàn)

    一、介紹本項(xiàng)目由于我們需要使用PC實(shí)時(shí)的向FPGA發(fā)送將要識(shí)別的圖片,所以我們最終選擇使用以太網(wǎng)來(lái)從PC向FPGA發(fā)送圖片并暫存在DDR,下面是對(duì)以太網(wǎng)協(xié)議和硬件
    發(fā)表于 10-30 07:45

    基于FPGA平臺(tái)的蜂鳥E203 JTAG debug出錯(cuò)問(wèn)題的解決思路

    固化存在的問(wèn)題并不大,只需要按照硬件電路完成管腳的刪減和映射(約束)即可,這里重點(diǎn)說(shuō)明一下debug出錯(cuò)問(wèn)題的解決思路。 我FPGA固化文件完成后,在上位機(jī)SDKdebug helloworld
    發(fā)表于 10-28 07:38

    如何利用Verilog HDLFPGA實(shí)現(xiàn)SRAM的讀寫測(cè)試

    本篇將詳細(xì)介紹如何利用Verilog HDLFPGA實(shí)現(xiàn)SRAM的讀寫測(cè)試。SRAM是一種非易失性存儲(chǔ)器,具有高速讀取和寫入的特點(diǎn)。FPGA
    的頭像 發(fā)表于 10-22 17:21 ?4349次閱讀
    如何利用Verilog HDL<b class='flag-5'>在</b><b class='flag-5'>FPGA</b>上<b class='flag-5'>實(shí)現(xiàn)</b>SRAM的讀寫測(cè)試

    使用VerilogFPGA實(shí)現(xiàn)FOC電機(jī)控制系統(tǒng)

    自動(dòng)駕駛、電動(dòng)滑板車、無(wú)人機(jī)甚至工業(yè)自動(dòng)化領(lǐng)域,高性能電機(jī)控制是不可或缺的核心技術(shù)。而如果你對(duì)硬件有足夠的熱情,你會(huì)發(fā)現(xiàn):傳統(tǒng)用 MCU 實(shí)現(xiàn) FOC(Field-Oriented Control,磁場(chǎng)定向控制)也能“搬”到 FPGA
    的頭像 發(fā)表于 08-21 15:27 ?5346次閱讀
    使用Verilog<b class='flag-5'>在</b><b class='flag-5'>FPGA</b>上<b class='flag-5'>實(shí)現(xiàn)</b>FOC電機(jī)控制系統(tǒng)

    FPGA機(jī)器學(xué)習(xí)的具體應(yīng)用

    ,越來(lái)越多地被應(yīng)用于機(jī)器學(xué)習(xí)任務(wù)。本文將探討 FPGA 機(jī)器學(xué)習(xí)的應(yīng)用,特別是加速神經(jīng)網(wǎng)絡(luò)推理、優(yōu)化算法和提升處理效率方面的優(yōu)勢(shì)。
    的頭像 發(fā)表于 07-16 15:34 ?2901次閱讀

    如何使用FPGA通過(guò)CYUSB3014連接U盤?

    你好, 我考慮使用CYUSB3014擴(kuò)展FPGA的USB接口,然后通過(guò)USB接口連接U盤,這種情況下需要FPGA+CYUSB3014實(shí)現(xiàn)
    發(fā)表于 07-16 07:34

    基于FPGA的壓縮算法加速實(shí)現(xiàn)

    本設(shè)計(jì),計(jì)劃實(shí)現(xiàn)對(duì)文件的壓縮及解壓,同時(shí)優(yōu)化壓縮中所涉及的信號(hào)處理和計(jì)算密集型功能,實(shí)現(xiàn)對(duì)其的加速處理。本設(shè)計(jì)的最終目標(biāo)是證明充分并行化的硬件體系結(jié)構(gòu)
    的頭像 發(fā)表于 07-10 11:09 ?2398次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮算法加速<b class='flag-5'>實(shí)現(xiàn)</b>

    PLL技術(shù)FPGA的動(dòng)態(tài)調(diào)頻與展頻功能應(yīng)用

    隨著現(xiàn)代電子系統(tǒng)的不斷發(fā)展,時(shí)鐘管理成為影響系統(tǒng)性能、穩(wěn)定性和電磁兼容性(EMI)的關(guān)鍵因素之一。FPGA設(shè)計(jì),PLL因其高精度、靈活性和可編程性而得到廣泛應(yīng)用,本文將深入探討PLL技術(shù)
    的頭像 發(fā)表于 06-20 11:51 ?2638次閱讀
    PLL技術(shù)<b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的動(dòng)態(tài)調(diào)頻與展頻功能應(yīng)用

    微芯Microchip PolarFire? SoC FPGA通過(guò)AEC-Q100汽車級(jí)認(rèn)證

    通過(guò) AEC-Q100 認(rèn)證的器件都經(jīng)過(guò)嚴(yán)格的測(cè)試,能夠承受汽車應(yīng)用的極端條件。PolarFire SoC FPGA通過(guò)汽車行業(yè)1級(jí)溫度認(rèn)證,支持-40°C至125°C工作范圍。
    的頭像 發(fā)表于 03-31 19:26 ?2411次閱讀

    ISERDESE2原語(yǔ)端口及參數(shù)介紹

    前面講解HDMI接口之前,講解過(guò)IDDR、ODDR、OSERDESE2、IBUF等原語(yǔ),之后一直有讀者問(wèn)什么時(shí)候更新ISERDESE2這個(gè)原語(yǔ)。前文講解過(guò)這些
    的頭像 發(fā)表于 03-17 10:52 ?2678次閱讀
    ISERDESE2<b class='flag-5'>原語(yǔ)</b>端口及參數(shù)介紹