精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

XILINX開發者社區 ? 來源:XILINX開發者社區 ? 作者:Ivy Guo ? 2022-12-09 09:50 ? 次閱讀

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

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

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

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

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

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

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

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

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

工作原理

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

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

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

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

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

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

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

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

Timer的格式如下:

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

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

Timer#1 的值設置為 h‘3C0.

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

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

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

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21671

    瀏覽量

    601922
  • amd
    amd
    +關注

    關注

    25

    文章

    5444

    瀏覽量

    133950
  • 寄存器
    +關注

    關注

    31

    文章

    5322

    瀏覽量

    120022

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

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    如何手動縮短PLL鎖定時間

    如何手動縮短PLL鎖定時間?你知道嗎?利用手動頻段選擇,鎖定時間可從典型值4.5 ms 縮短到典型值360 μs。本文以高度集成的解調器和頻率合成器ADRF6820 為例,告訴大家如何
    發表于 07-31 07:54

    如何創建Golden鏡像和Multiboot鏡像?

    升級。基本的防止變磚功能,即在升級過程任何時刻,出現異常情況,如斷電,線纜斷開等,都應該能保證重新上電后,還可以再次完成升級流程,防止芯片變磚。升級流程的優化,可靠的通訊協議,例如握手、校驗、應答
    發表于 04-04 17:11

    μC/OS-II縮短中斷關閉時間方法

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

    基于概率時間Petri網的流程推薦方法

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

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

    在5G網絡語音業務,EPS fallback方案允許5G終端駐留在5G網絡,但在4G網絡上提供語音業務。當終端發起語音呼叫時,網絡通過EPS Fallback流程將終端切換到4G網絡
    發表于 06-14 10:19 ?1216次閱讀

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

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

    7 eries FPGAs SPI MultiBoot實現方式

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

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

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

    在FPGA如何通過ICAP原語實現Multiboot

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

    深入探究Xilinx Multiboot實例

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

    基于ZYNQ的multiBoot測試說明

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

    5G EPS Fallback語音方案流程總結

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

    iPhone 16 Pro機型發貨時間縮短

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