一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

縮短MultiBoot流程中的回跳 (Fallback)時間

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:Ivy Guo ? 2022-12-09 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來自AMD XILINX工程師 Ivy Guo。

MultiBoot 是 FPGA 遠程更新配置文件時一種非常普遍的應(yīng)用--為了確保安全,我們通常需要安排一個 Golden Image,升級失敗后 FPGA 能回跳 (Fallback) 到此配置,從而使 FPGA 始終處于可被檢測的工作狀態(tài)。

很多客戶有同樣的問題:我在升級 Update Image 一半時突然掉電了,為什么回跳機制不起作用了呢?FPGA 怎么掛死了呢?其實這個現(xiàn)象是"符合預(yù)期"的,回跳機制不能應(yīng)付這種異常。如果配置文件寫到一半突然中斷,嵌在配置數(shù)據(jù)流里面的指令序列同樣也沒有了,并且有可能中斷在任意位置。FPGA 的控制邏輯此時就失去了工作方向,不知道下一步該做什么。

Xapp1247, Appendix A提供了一個很好的解決方案。利用兩個 timer 或者稱之為 barrier 的小image,嵌在 Golden 和 Update 之間或附在 Update 之后,通過合理的給兩個 timer 賦值,可以解決 Update Image 刷新時同步字丟失或者半程掉電的情況。

但是同時又有客戶提出了問題:我的應(yīng)用對回跳時間要求很高,Xapp1247,Appendix A的方案對于半程掉電的場景,只有搜索完整個 Update Image 區(qū)域,看到 Timer#2 的設(shè)置才能完成回跳。有沒有辦法縮短這段時間呢?

MultiBoot 的跳轉(zhuǎn)實際上是非常靈活的,我們這里就嘗試提供一種思路:

1. 去掉 Timer#2,只保留 Timer#1 作為 Golden 和 Update Image 之間的 barrier Image。

2. Update Image采取從后往前倒著燒錄的辦法。(在實際應(yīng)用中,燒寫 flash 都是用CPU/MCU/FPGA 控制或者第三方編程器實現(xiàn)的,所以這一點也很容易實現(xiàn))。

3. 精確設(shè)定 Timer#1的值,使其看到Update中的TIMER指令及賦值但不需更多。

工作原理

Timer 寄存器的值只有在 Power-Cycle 或者 PROG_B 過程中才能被清除,或者被新的 Timer值覆蓋,或者在整個配置數(shù)據(jù)加載完畢后自動失效。

我們通過精確設(shè)定 Timer#1的值,使 FPGA 控制邏輯有足夠時間看到 Update Image 中新的Timer 值。TIMER 指令位于 Image 的頭部。因為 Update Image 是倒著寫入的,能看到新的Timer 值,說明 Update Image 基本已經(jīng)更新好了。由于新的 timer 值是足夠控制邏輯加載完整的配置數(shù)據(jù)的,Timer 寄存器被新值更新后,Timer#1 相當(dāng)于失效了。FPGA 有充足時間可以順利讀入完整配置數(shù)據(jù),開啟正常工作。

如果由于斷電等原因,Update 更新到一半就停止了,此時會缺失 Update 的同步字,TIMER指令等等位于頭部的信息。Timer#1 在一個有限的時間內(nèi)搜索 Update Timer 但是沒有看到,timeout 之后就會直接觸發(fā)回跳。因此不用等待搜索整個 Update 存儲空間完畢,依靠尾部的Timer#2 才能觸發(fā)回跳了。

整個解決方案的重點就在于設(shè)定 Timer#1 的值。

這個其實很簡單,根據(jù)你自己生成的 Timer#1和Update的MCS文件 (方法參考Xapp1247),計算一下 Timer#1 的指令到 Update 的 TIMER 之間的字節(jié)數(shù)即可。

以 KU040 的 bit 為例,觀察 Update Image 頭部的命令/數(shù)據(jù)序列,可以看到有 3002 2001,這就是設(shè)置 Timer 寄存器的命令TIMER。我們想Timer#1的時間足夠看到 Update 中的3002 2001命令以及賦值,其他不需要了,隨意添加幾個 cycle 或者幾個字的裕量即可。

edacbbd8-7715-11ed-8abf-dac502259ad0.png

比如我們設(shè)到3000 8001,多3個字的余量。

Timer的格式如下:

edd03c8e-7715-11ed-8abf-dac502259ad0.png

Barrier/Timer#1 里從 TIMER 及賦值開始,后面有兩個 NOOP 字,加上后續(xù) Update 里從FFFFFFFF 開始直到 3000 8001 有28個字,一共30個字,那么就是30*32=960 bit。SPIx1 串行配置中,一個 CCLK 讀取一個 bit,所以

Timer#1 的值設(shè)置為 h‘3C0.

ede07e3c-7715-11ed-8abf-dac502259ad0.png

如上圖,30 03 E0 01是把 bus width 從默認(rèn)的 x1 切到 x4 的命令。如果在讀入 Timer#1 之前中執(zhí)行了該命令(比如 Golden 里面),那么 Timer#1 的值需要按照一個 CCLK cycle,讀取4個 bit 來計算。和 Timer 命令類似,在 FPGA 控制邏輯讀取數(shù)據(jù)的過程中,如果沒有碰到新的30 03 E0 01設(shè)定新的數(shù)據(jù)寬度,那么將一直按照之前設(shè)定的 bus width 來讀入數(shù)據(jù)或者指令。

假設(shè) Timer#1 以及 Update 都是以x4讀取的,那么 Timer#1 需設(shè)為 h’F0.

綜上,通過合理設(shè)定 barrier#1 中的 Timer#1 數(shù)值,我們可以極大地縮短升級掉電這種MultiBoot 失效場景的回跳時間。

審核編輯:湯梓紅

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

    瀏覽量

    618673
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5589

    瀏覽量

    136391
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124572

原文標(biāo)題:開發(fā)者分享|縮短MultiBoot流程中的回跳 (Fallback) 時間

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    multiboot什么意思 MultiBoot的功能簡介、流程介紹

    本文主要包含MultiBoot的功能簡介、流程介紹和工程實現(xiàn)幾個部分的講解。 我們先從它的功能介紹講起來;MultiBoot功能是大部分Xilinx FPGA可以實現(xiàn)的固有特性;其主要優(yōu)點如下所示
    的頭像 發(fā)表于 08-04 16:32 ?2w次閱讀
    <b class='flag-5'>multiboot</b>什么意思 <b class='flag-5'>MultiBoot</b>的功能簡介、<b class='flag-5'>流程</b>介紹

    有什么辦法可以更快地為Main_multiboot.mcs獲得總的舞會校驗和嗎?

    嗨,我使用promgen命令兩次生成我的多重引導(dǎo)文件,一次用于標(biāo)題,第二次用于黃金和多重引導(dǎo)(參見下面的命令)。我覺得找到最終mcs文件(Main_multiboot.mcs)的正確舞會校驗和的唯一
    發(fā)表于 07-16 11:00

    如何創(chuàng)建Golden鏡像和Multiboot鏡像?

    升級?;镜姆乐棺兇u功能,即在升級過程任何時刻,出現(xiàn)異常情況,如斷電,線纜斷開等,都應(yīng)該能保證重新上電后,還可以再次完成升級流程,防止芯片變磚。升級流程的優(yōu)化,可靠的通訊協(xié)議,例如握手、校驗、應(yīng)答
    發(fā)表于 04-04 17:11

    μC/OS-II縮短中斷關(guān)閉時間方法

    筆者將以μC/OS-II實時內(nèi)核為例,通過對μC/OS-II的改進,向讀者描述一種縮短實時操作系統(tǒng)中斷關(guān)閉時間的方法。
    發(fā)表于 05-23 11:15 ?1371次閱讀
    μC/OS-II<b class='flag-5'>中</b><b class='flag-5'>縮短</b>中斷關(guān)閉<b class='flag-5'>時間</b>方法

    基于概率時間Petri網(wǎng)的流程推薦方法

    為了向用戶推薦結(jié)構(gòu)相似且時間效率較高的流程,提出了一種基于流程活動發(fā)生的概率和時間流程推薦方
    發(fā)表于 01-14 16:45 ?0次下載
    基于概率<b class='flag-5'>時間</b>Petri網(wǎng)的<b class='flag-5'>流程</b>推薦方法

    中國移動攜手華為打通了首個5G EPS Fallback語音視頻通話

    在5G網(wǎng)絡(luò)語音業(yè)務(wù),EPS fallback方案允許5G終端駐留在5G網(wǎng)絡(luò),但在4G網(wǎng)絡(luò)上提供語音業(yè)務(wù)。當(dāng)終端發(fā)起語音呼叫時,網(wǎng)絡(luò)通過EPS Fallback流程將終端切換到4G網(wǎng)絡(luò)
    發(fā)表于 06-14 10:19 ?1380次閱讀

    屏障定時器流程測試方法以及使用此方法

    XAPP1247 是對應(yīng)使用屏障鏡像時的多重啟動 (Multiboot) 和回退 (Fallback) 的示例應(yīng)用。
    的頭像 發(fā)表于 06-09 14:51 ?1698次閱讀

    7 eries FPGAs SPI MultiBoot實現(xiàn)方式

    bitstream”,即已知正常不出錯的BIT; b. MultiBoot, or “updatebitstream”,即多個其它BITs或待更新的BITs。 其中,MultiBoot流程如下圖:
    的頭像 發(fā)表于 12-11 14:58 ?2099次閱讀
    7 eries FPGAs SPI <b class='flag-5'>MultiBoot</b>實現(xiàn)方式

    介紹“基于測量切換的EPS Fallback”5G語音信令流程資料下載

    電子發(fā)燒友網(wǎng)為你提供介紹“基于測量切換的EPS Fallback”5G語音信令流程資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-16 08:42 ?124次下載
    介紹“基于測量切換的EPS <b class='flag-5'>Fallback</b>”5G語音信令<b class='flag-5'>流程</b>資料下載

    在FPGA如何通過ICAP原語實現(xiàn)Multiboot?

    fallback 功能,以確保可以將已知良好的設(shè)計加載到器件。 MultiBoot的大致過程如下圖: MultiBoot的配置文件由兩個比特流文件生成,第一個為備份文件,永遠都不會變
    的頭像 發(fā)表于 05-11 14:20 ?7780次閱讀
    在FPGA<b class='flag-5'>中</b>如何通過ICAP原語實現(xiàn)<b class='flag-5'>Multiboot</b>?

    深入探究Xilinx Multiboot實例

    閃存返回。SCK是時鐘引腳,SS是低電平從選擇引腳。 參考:UG470 Vivado工具流程Multiboot大致流程) 為Multiboot程序準(zhǔn)備bit流 本節(jié)概述
    的頭像 發(fā)表于 09-26 09:37 ?4299次閱讀
    深入探究Xilinx <b class='flag-5'>Multiboot</b>實例

    基于ZYNQ的multiBoot測試說明

    基于ZYNQ的multiBoot測試
    的頭像 發(fā)表于 02-16 16:21 ?6828次閱讀
    基于ZYNQ的<b class='flag-5'>multiBoot</b>測試說明

    5G EPS Fallback語音方案流程總結(jié)

    選擇EPS Fallback作為5G SA的語音方案,是因為考慮到目前5G SA建網(wǎng)初期,5G信號覆蓋還處于初期階段,沒有大規(guī)模的覆蓋,而4G的覆蓋已經(jīng)進入成熟期。
    的頭像 發(fā)表于 04-20 11:11 ?2.5w次閱讀

    iPhone 16 Pro機型發(fā)貨時間縮短

    據(jù)最新TechInsights報告揭示,iPhone 16系列的高端機型——iPhone 16 Pro及Pro Max,在黑色256GB版本上,其在美國、中國和英國等關(guān)鍵市場的發(fā)貨時間相較于前代
    的頭像 發(fā)表于 09-24 15:11 ?904次閱讀

    一文搞懂軟核的固化、啟動和MultiBoot實現(xiàn)

    這也是《FPGA實現(xiàn)串口升級及MultiBoot》系列的一篇文章,作為一個專題單獨出來說明。 本篇文章分為三個主題:固化、啟動和MultiBoot實現(xiàn)。 固化分為SPI和BPI FLASH兩種情況
    的頭像 發(fā)表于 12-07 11:23 ?2063次閱讀
    一文搞懂軟核的固化、啟動和<b class='flag-5'>MultiBoot</b>實現(xiàn)