999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2012-06-23 06:42:08杜永鋒許知博
電子科技 2012年3期
關鍵詞:功能

劉 釗,杜永鋒,許知博

(西安電子科技大學 電子工程學院,陜西 西安 710071)

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

1 基本概念

Spartan-6 FPGA在上電時從片外Flash加載mcs文件進行配置[1]。根據所包含的bit流文件的個數,mcs文件分為兩類:一類是由單bit流文件生成的mcs文件[2],即該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流配置可通過 SPI x1,x2,x4及BPI模式實現,文中只介紹基于SPI模式的MultiBoot特性的實現,用配置文件代替應用程序。

2 MultiBoot操作相關寄存器簡介

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

表1 操作編碼

(2)所有的操作數據可分為兩種:

TYPE1 包含兩部分:Header,Data。

TYPE2 包含 3 部分:Header,Word Count,Data。

用TPYE1就能實現MultiBoot和Fallback操作,故只介紹TYPE1。TYPE1的Header是個16位字,用其中6位表示相關寄存器的地址,如表2所示。

表2 TYPE1的Header

其中Operation位[12∶11]是表1中所列的操作碼,寄存器地址[10∶5]如表 4所示,字節數[4∶0]表示操作所需的字節數。

TYPE1的數據部分形式如表3所示。

表3 TYPE1的Data

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

表4 MultiBoot常用寄存器

寄存器功能介紹:

1)命令寄存器CMD。命令寄存器CMD存儲配置控制命令,以產生全局信號執行其配置功能。在MultiBoot操作中,常用的CMD命令如表5所示。

表5 命令寄存器MultiBoot常用命令

2)General寄存器。觸發 IPROG命令后,General1、General2中存放用于對FPGA進行重配置的下一個bit流文件的地址,其中General1存放地址的低16位,General2的高8位存放SPI操作碼,低8位存放地址的高8位。General3、General4存放Fallback時的配置文件地址,其中 General3存放低16位地址,General4的高8位存放SPI操作碼,低8位存放地址的高8位。General5中存放MultiBoot或Fallback時的用戶自定義數據。

3)模式寄存器MODE_REG。MODE_REG模式寄存器主要用于重配置時的一些模式設置,如SPI總線的位寬。模式寄存器中各位的功能如表6所示。MultiBoot和Fallback操作需對[13∶8]進行相應設置。

表6 模式寄存器

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

3 MultiBoot原理

如上所述,Spartan-6 FPGA內置有專用的MultiBoot邏輯控制模塊,來實現MultiBoot(IPROG)和Fallback操作。當觸發Fallback或IPROG時,片內會產生一個復位脈沖,使片內配置邏輯復位,但不會使專用的MultiBoot邏輯和BOOTSTS、MODE、G1-G5復位。

實現MultiBoot特性時,存儲器中的配置文件組織模式如圖1所示。

圖1 MultiBoot配置文件組織

如圖1所示,第一部分是Header,這個小的bit文件中包含同步字、下一個配置文件的地址以及IPROG命令。此段必須位于Flash存儲器中的0地址處。該部分可由命令文件生成[3]。第二部分是 MultiBoot Bitstream,由用戶的多個bit流配置文件組成,其地址可在生成mcs文件時指定到符合Flash操作要求的任何地方。進行 MultiBoot操作時只需通過 ICAP向MultiBoot邏輯控制模塊發送IPROG命令,之后控制模塊就會根據General1、General2指定的地址,加載下一個需要的配置文件。第三部分是Fallback或Golden配置文件,地址可由General3、General4指定。

Header、MultiBoot配置文件、Fallback配置文件在加載過程中,如果出錯,FPGA會根據相應寄存器的值,從配置文件的起始地址重新加載3次,加載次數的計數保存在 BOOTSTS寄存器的[15∶12]位,名稱為strike。

Header在加載過程中分配有3個strike計數值:6、7、8。當檢測到 CRC 錯誤,且 RESET_ON_ERROR為1、strike<9,則strike計數器加1,并重新開始配置過程。若看門狗計時器超時也會觸發相同操作,但此時會忽略RESET_ON_ERROR的狀態。若strike等于9,則停止配置,且將INIT和DONE引腳拉低。

MultiBoot配置文件在加載過程也分配有3個strike計數值:0、1、2。當在加載過程檢測到錯誤時,如果strike<3且RESET_ON_ERROR為1,則strike計數器加1,且從General1、General2指定的地址處重新加載配置文件。若strike計數器等于3,則觸發Fallback操作。

Fallback或Golden配置文件在加載過程也分配有3個計數值:3、4、5。當在加載工程中檢測到錯誤時,若strike計數器值 <6,則 strike計數器加 1,并從General3和General4指定的配置文件地址處重新加載配置文件。若strike計數器為6,則從0地址處加載Header配置文件。此時,FPGA會執行循環加載過程:Header→MultiBoot→Fallback(或 Golden)→ Header,每次循環都會使strike計數器加1,最多3次。若其間某個配置文件加載成功,則停止循環,否則直到strike計數為9,停止加載過程。Strike計數器只能通過復位或重啟系統清零。

Fallback是一種出于安全性考慮的操作。一旦該操作被觸發且加載Golden成功,若再想退出Golden加載其他用戶配置文件,只能復位FPGA或重啟系統。

4 MultiBoot實現簡例

實現MultiBoot操縱有兩種方法:(1)基于ICAP的寄存器編程實現。(2)通過在生成bit流文件時,設置相關選項實現。

4.1 基于ICAP的寄存器編程實現

如上所述,通過 ICAP_SPARTAN6原語發送IPROG命令,其發送命令序列如下:(1)發送同步字。(2)配置General1-General4,指定相關操作所需配置文件地址及操作碼。(3)發送IPROG命令。ICAP_SPARTAN6原語接口定義如表7所示。

表7 ICAP_SPARTAN6接口定義

在主SPI模式下,ICAP_SPARTAN6的輸入數據在從總線I[15∶0]輸入前,要進行字節范圍內的位交換,即16位寬的字分為高8位1 Byte,低8位1 Byte,各字節的最高位[7]和最低位[0]交換,位[6]與位[1]交換,其他以此類推。

通過ICAP觸發IPROG的命令序列舉例如表8所示。

表8 ICAP命令序列舉例

IPROG命令后需經過一段時間后,FPGA內部才會產生相應的重配置信號,因此在IPROG命令后需跟幾個空操作命令,一般為4個。GENERAL2、GENERAL4中的操作碼:0x0B、0x3B、0x6B 分別為 SPI x1、SPI x2、SPI x4。

ICAP邏輯模塊是FPGA中的專有邏輯模塊,因此在生成bit文件的各源文件中必須都實例化一個ICAP模塊。一般情況下對ICAP模塊的控制操作通過狀態機實現[4]。

4.2 選項設置實現

實現MultiBoot功能所需配置的所有寄存器,均可在生成bit文件時通過添加相關的生成設置選項實現[5-6]。在進程菜單中單擊 Generate Programming File,選擇 Process Properties,彈出配置窗口如圖2 所示[7-8]。

圖2 選項配置

5 結束語

介紹了實現MultiBoot操作的兩種方式,一種是基于ICAP的寄存器編碼配置方式。可通過源代碼中的注釋,使后續開發維護人員閱讀代碼、擴展功能時思路清晰,缺點是需編寫大量代碼,并需對ICAP的操作與命令序列有一定了解。第二種通過在生成bit文時添加相關設置選項實現,方便簡單,但需大量的文本注釋,以便后續的開發與維護。當然,實際的應用開發過程中可同時使用這兩種方法,實現更高效便捷的編碼開發。

[1]Maozheng7989680,XilixISE 生成文件與下載[EB/OL].(2010-12-08)[2011 -05 -11]http://maozheng7989680.blog.163.com/blog/static/50465343201011803924785.

[2]Zuiaitao,Xilinx+ISE 下載文件生成步驟[EB/OL].(2010-11-06)[2011 -05 -11]http://download.csdn.net/download/zuiaitao/2812779.

[3]Xilinx.ISE12.3 幫助文檔[M].美國:Xilinx公司,2010.

[4]Xilinx.Rdf0006_13.2[EB/OL].(2011 -08 -10)[2011 -08 - 12]http://www.xilinx.com/products/boards/sp601/reference_designs.htm.

[5]秦鴻剛,劉京科,吳迪.基于FPGA的雙口RAM實現及應用[J].電子設計工程,2010(2):78-80.

[6]劉宇,陳文藝.SDH中E1接口數字分接復用的ASIC電路設計與實現[J].西安郵電學院學報,2001(1):62-66.

[7]何賓,王瑜.基于Xilinx MicroBlaze多核嵌入式系統的設計[J].電子設計工程,2011(13):147-150.

[8]宋杰,趙巨波,丁昊.基于FPGA的雷達中/視頻數據采集與回放系統設計[J].現代電子技術,2010(11):176-179.

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 人妻精品全国免费视频| 国产SUV精品一区二区6| 欧美黄网在线| 91口爆吞精国产对白第三集| 国产成人乱无码视频| 又黄又湿又爽的视频| 色综合久久综合网| 午夜天堂视频| 欧美一区精品| 国产在线精品美女观看| 一级做a爰片久久毛片毛片| 国产精品深爱在线| 色网在线视频| 在线99视频| 国产鲁鲁视频在线观看| 国产成人亚洲精品无码电影| 日韩精品亚洲一区中文字幕| 欧美日韩精品一区二区视频| 国内精自线i品一区202| 国产清纯在线一区二区WWW| 国产一区二区三区精品欧美日韩| 永久免费精品视频| 免费国产黄线在线观看| 国产区成人精品视频| 久久99精品久久久久久不卡| 人妻夜夜爽天天爽| 日韩AV无码免费一二三区| 日韩精品久久久久久久电影蜜臀 | 欧美国产日产一区二区| 亚洲成人手机在线| 亚洲福利视频网址| 精品综合久久久久久97| 另类重口100页在线播放| 玖玖精品视频在线观看| 国产精品尤物铁牛tv| 小说区 亚洲 自拍 另类| 91精品国产综合久久香蕉922 | 国产精品久久久久鬼色| 亚洲av无码牛牛影视在线二区| 久热这里只有精品6| 亚洲色精品国产一区二区三区| 亚洲高清资源| 国产尤物jk自慰制服喷水| 成年av福利永久免费观看| 国产亚洲第一页| 日韩无码黄色| 亚洲资源站av无码网址| 国产在线日本| 午夜色综合| 91视频日本| 无码专区在线观看| 国产三级成人| 永久天堂网Av| 精品三级网站| 91亚瑟视频| 青草视频久久| 伊人五月丁香综合AⅤ| 国产菊爆视频在线观看| 国产精品成人久久| 国产亚洲精品97在线观看| 久久综合五月婷婷| 国产a v无码专区亚洲av| 无码在线激情片| 亚洲女人在线| 欧美一级高清视频在线播放| 91网在线| 免费人成网站在线高清| 美女被操91视频| 55夜色66夜色国产精品视频| 99久久精品免费看国产免费软件| 日韩欧美中文| 国产麻豆另类AV| 日韩视频福利| 成人日韩视频| 91精品国产自产在线观看| 国产在线一二三区| 精品無碼一區在線觀看 | 九九热精品在线视频| 毛片免费在线视频| 亚洲最大综合网| 最新亚洲人成无码网站欣赏网| 爆乳熟妇一区二区三区|