新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于Xilinx-Spartan6 FPGA的MultiBoot設(shè)計(jì)的實(shí)現(xiàn)

基于Xilinx-Spartan6 FPGA的MultiBoot設(shè)計(jì)的實(shí)現(xiàn)

作者: 時(shí)間:2012-04-25 來源:網(wǎng)絡(luò) 收藏

寄存器功能介紹:
1)命令寄存器CMD。命令寄存器CMD存儲(chǔ)配置控制命令,以產(chǎn)生全局信號(hào)執(zhí)行其配置功能。在操作中,常用的CMD命令如表5所示。

本文引用地址:http://butianyuan.cn/article/190467.htm

f.JPG


2)General寄存器。觸發(fā)IPROG命令后,General1、General2中存放用于對(duì)進(jìn)行重配置的下一個(gè)bit流文件的地址,其中General1存放地址的低16位,General2的高8位存放SPI操作碼,低8位存放地址的高8位。General3、General4存放FMlback時(shí)的配置文件地址,其中Gener al3存放低16位地址,General4的高8位存放SPI操作碼,低8位存放地址的高8位。General5中存放或Fallback時(shí)的用戶自定義數(shù)據(jù)。
3)模式寄存器MODE_REG。MODE_REG模式寄存器主要用于重配置時(shí)的一些模式設(shè)置,如SPI總線的位寬。模式寄存器中各位的功能如表6所示。和Fallback操作需對(duì)[13:8]進(jìn)行相應(yīng)設(shè)置。

g.JPG


4)控制寄存器CTL、配置選項(xiàng)寄存器COR2。因CRC校驗(yàn)錯(cuò)誤也可能觸發(fā)Fallback操作,因此為安全起見,如果可能發(fā)生CRC校驗(yàn)錯(cuò)誤,需將CTL寄存器的CRC_EXTSTAT位清零,使能CRC校驗(yàn),并將COR2寄存器的RESET_ON_ERROR置1,使能CRC錯(cuò)誤時(shí)的Fallback操作。但如果能確定不發(fā)生CRC錯(cuò)誤,可不設(shè)置這兩位。

3 MultiBoot原理
如上所述,Spartan-6 內(nèi)置有專用的MultiBoot邏輯控制模塊,來實(shí)現(xiàn)MultiBoot(IPROG)和Fallback操作。當(dāng)觸發(fā)Fallback或IPROG時(shí),片內(nèi)會(huì)產(chǎn)生一個(gè)復(fù)位脈沖,使片內(nèi)配置邏輯復(fù)位,但不會(huì)使專用的MultiBoot邏輯和BOOTSTS、MODE、G1-G5復(fù)位。
實(shí)現(xiàn)MultiBoot特性時(shí),存儲(chǔ)器中的配置文件組織模式如圖1所示。

h.JPG


如圖1所示,第一部分是Header,這個(gè)小的bit文件中包含同步字、下一個(gè)配置文件的地址以及IPROG命令。此段必須位于Flash存儲(chǔ)器中的0地址處。該部分可由命令文件生成。第二部分是MultiBootBitstream,由用戶的多個(gè)bit流配置文件組成,其地址可在生成mcs文件時(shí)指定到符合Flash操作要求的任何地方。進(jìn)行MultiBoot操作時(shí)只需通過ICAP向MuhiBoot邏輯控制模塊發(fā)送IPROG命令,之后控制模塊就會(huì)根據(jù)Gene ral1、General2指定的地址,加載下一個(gè)需要的配置文件。第三部分是Fallback或Golden配置文件,地址可由General3、General4指定。
Header、MultiBoot配置文件、Fallback配置文件在加載過程中,如果出錯(cuò),會(huì)根據(jù)相應(yīng)寄存器的值,從配置文件的起始地址重新加載3次,加載次數(shù)的計(jì)數(shù)保存在BOOTSTS寄存器的[15:12]位,名稱為strike。
Header在加載過程中分配有3個(gè)strike計(jì)數(shù)值:6、7、8。當(dāng)檢測(cè)到CRC錯(cuò)誤,且RESET_ON_ERROR為1、strike9,則strike計(jì)數(shù)器加1,并重新開始配置過程。若看門狗計(jì)時(shí)器超時(shí)也會(huì)觸發(fā)相同操作,但此時(shí)會(huì)忽略RESE_ON_ERROR的狀態(tài)。若strike等于9,則停止配置,且將INIT和DONE引腳拉低。
MultiBoot配置文件在加載過程也分配有3個(gè)strike計(jì)數(shù)值:0、1、2。當(dāng)在加載過程檢測(cè)到錯(cuò)誤時(shí),如果strike3且RESET_ON_ERROR為1,則strike計(jì)數(shù)器加1,且從General1、General2指定的地址處重新加載配置文件。若strike計(jì)數(shù)器等于3,則觸發(fā)Fallback操作。
Fallback或Golden配置文件在加載過程也分配有3個(gè)計(jì)數(shù)值:3、4、5。當(dāng)在加載工程中檢測(cè)到錯(cuò)誤時(shí),若strike計(jì)數(shù)器值6,則strike計(jì)數(shù)器加1,并從General3和General4指定的配置文件地址處重新加載配置文件。若strike計(jì)數(shù)器為6,則從0地址處加載Header配置文件。此時(shí),F(xiàn)PGA會(huì)執(zhí)行循環(huán)加載過程:Header→MultiBoot→Fallback(或Golden)→Header,每次循環(huán)都會(huì)使strike計(jì)數(shù)器加1,最多3次。若其間某
個(gè)配置文件加載成功,則停止循環(huán),否則直到strike計(jì)數(shù)為9,停止加載過程。Strike計(jì)數(shù)器只能通過復(fù)位或重啟系統(tǒng)清零。
Fallback是一種出于安全性考慮的操作。一旦該操作被觸發(fā)且加載Golden成功,若再想退出Golden加載其他用戶配置文件,只能復(fù)位FP GA或重啟系統(tǒng)。

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: Xilinx-Spartan MultiBoot FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉