• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 基于Xilinx-Spartan6 FPGA的MultiBoot設計的實現

    基于Xilinx-Spartan6 FPGA的MultiBoot設計的實現

    作者: 時間:2012-04-25 來源:網絡 收藏

    摘要 介紹了Multibool的兩種實現方法。通過Xilinx Spartan-6 的Multiboot特性,允許用戶一次將多個配置文件下載入Flash中,根據不同時刻的需求,在不掉電重啟的情況下,從中選擇一個來重配置,實現不同功能,提高器件利用率,增加系統安全性,降低系統成本。
    關鍵詞 ;Fallback;重配置

    Xilinx公司出品的Spartan6系列所具有的特性,允許用戶在不掉電重啟的情況下,根據不同時刻的需求,有選擇地從存儲于Flash中的多個配置文件中加載其中的一個,對FPCA在系統重配置,實現不同的功能。特性使得用戶可以在某些場合選擇較少邏輯資源的Xilinx FPGA,實現需要較大邏輯資源且較昂貴的FPGA或ASIC才能實現的功能,從而提高器件利用率及系統安全性、降低系統成本。

    1 基本概念
    Spartan-6 FPGA在上電時從片外Flash加載mcs文件進行配置。根據所包含的bit流文件的個數,mcs文件分為兩類:一類是南單bit流文件生成的mcs文件,即該mcs文件中只包含一個bit流文件,用此類mcs文件配置FPGA時,只能實現一種功能;另一類是由多個bit流文件生成的mcs文件,即該mcs文件包含多個bit流文件。用此類mcs文件配置FPGA時,可根據需求有選擇地加載其中的某個bit流文件對FPGA進行系統重配置,即MultiBoot特性。
    Spartan-6 FPGA擁有專用的MultiBoot邏輯配置模塊,來實現MultiBoot和Fallback操作。MultiBoot操作是在各配置bit流文件能正常加載的前提下,通過ICAP設置配置模塊中的相關寄存器并觸發IPROG命令,實現在不同配置bit流文件中的切換,達到FPGA實現不同功能的目的。Fallback操作是在從配置A切換到配置B的過程中出錯時,用另一個比較“安全”的bit流文件代替配置文件B配置FPGA的操作。這個比較“安全”的bit流文件稱為Golden。
    FPGA的重配置操作,是通過專用的ICAP_SPARTAN6原語向配置模塊發送IPROG命令來實現的。重配置操作可由FPGA外部的處理器、微控制器、計算機和按鍵等“智能”終端觸發。在應用設計中,只需在每個應用程序中例化一個ICAP_SPARTAN6原語來實現相關命令序列即可實現MultiBoot特性。
    Spartan6的多bit流配置可通過SPIx1,x2,x4及BPI模式實現,文中只介紹基于SPI模式的MultiBoot特性的實現,用配置文件代替應用程序。

    2 MultiBoot操作相關寄存器簡介
    (1)所有Spartan-6 FPGA的bit流控制命令都是通過讀寫相關配置寄存器實現的。配置數據都是16位寬的字,也有一些數據是多字的,配置數據包含的3個主要命令如表1所示。

    本文引用地址:http://www.czjhyjcfj.com/article/190467.htm

    b.JPG


    (2)所有的操作數據可分為兩種:
    TYPE1包含兩部分:Header,Data。
    TYPE2包含3部分:Header,Word Count,Data。
    用TPYE1就能實現MultiBoot和Fallback操作,故只介紹TYPE1。TYPE1的Header是個16位字,用其中6位表示相關寄存器的地址,如表2所示。

    c.JPG


    其中Operation位[12:11]是表1中所列的操作碼,寄存器地址[10:5]如表4所示,字節數[4:0]表示操作所需的字節數。
    TYPE1的數據部分形式如表3所示。

    d.JPG


    (3)Spartan-6 FPGA的MultiBoot常用配置寄存器及功能列表如表4所示。

    e.JPG

    fpga相關文章:fpga是什么



    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 平陆县| 惠州市| 屯门区| 孙吴县| 永泰县| 澄迈县| 电白县| 阳东县| 将乐县| 宁安市| 南郑县| 太康县| 文安县| 九寨沟县| 茶陵县| 旺苍县| 如东县| 陕西省| 平罗县| 郎溪县| 博罗县| 南充市| 旺苍县| 香格里拉县| 陵水| 瑞丽市| 高青县| 和顺县| 阳新县| 无锡市| 永州市| 天长市| 洱源县| 林口县| 金乡县| 杨浦区| 禹城市| 武山县| 黄陵县| 铁岭市| 鲜城|