亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-06-23 06:42:08杜永鋒許知博
        電子科技 2012年3期
        關(guān)鍵詞:配置文件計(jì)數(shù)器寄存器

        劉 釗,杜永鋒,許知博

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

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

        1 基本概念

        Spartan-6 FPGA在上電時(shí)從片外Flash加載mcs文件進(jìn)行配置[1]。根據(jù)所包含的bit流文件的個(gè)數(shù),mcs文件分為兩類:一類是由單bit流文件生成的mcs文件[2],即該mcs文件中只包含一個(gè)bit流文件,用此類mcs文件配置FPGA時(shí),只能實(shí)現(xiàn)一種功能;另一類是由多個(gè)bit流文件生成的mcs文件,即該mcs文件包含多個(gè)bit流文件。用此類mcs文件配置FPGA時(shí),可根據(jù)需求有選擇地加載其中的某個(gè)bit流文件對(duì)FPGA進(jìn)行系統(tǒng)重配置,即MultiBoot特性。

        Spartan-6 FPGA擁有專用的MultiBoot邏輯配置模塊,來實(shí)現(xiàn)MultiBoot和Fallback操作。MultiBoot操作是在各配置bit流文件能正常加載的前提下,通過ICAP設(shè)置配置模塊中的相關(guān)寄存器并觸發(fā)IPROG命令,實(shí)現(xiàn)在不同配置bit流文件中的切換,達(dá)到FPGA實(shí)現(xiàn)不同功能的目的。Fallback操作是在從配置A切換到配置B的過程中出錯(cuò)時(shí),用另一個(gè)比較“安全”的bit流文件代替配置文件B配置FPGA的操作。這個(gè)比較“安全”的bit流文件稱為Golden。

        FPGA的重配置操作,是通過專用的 ICAP_SPARTAN6原語(yǔ)向配置模塊發(fā)送IPROG命令來實(shí)現(xiàn)的。重配置操作可由FPGA外部的處理器、微控制器、計(jì)算機(jī)和按鍵等“智能”終端觸發(fā)。在應(yīng)用設(shè)計(jì)中,只需在每個(gè)應(yīng)用程序中例化一個(gè)ICAP_SPARTAN6原語(yǔ)來實(shí)現(xiàn)相關(guān)命令序列即可實(shí)現(xiàn)MultiBoot特性。

        Spartan6的多bit流配置可通過 SPI x1,x2,x4及BPI模式實(shí)現(xiàn),文中只介紹基于SPI模式的MultiBoot特性的實(shí)現(xiàn),用配置文件代替應(yīng)用程序。

        2 MultiBoot操作相關(guān)寄存器簡(jiǎn)介

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

        表1 操作編碼

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

        TYPE1 包含兩部分:Header,Data。

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

        用TPYE1就能實(shí)現(xiàn)MultiBoot和Fallback操作,故只介紹TYPE1。TYPE1的Header是個(gè)16位字,用其中6位表示相關(guān)寄存器的地址,如表2所示。

        表2 TYPE1的Header

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

        TYPE1的數(shù)據(jù)部分形式如表3所示。

        表3 TYPE1的Data

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

        表4 MultiBoot常用寄存器

        寄存器功能介紹:

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

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

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

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

        表6 模式寄存器

        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 FPGA內(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所示。

        圖1 MultiBoot配置文件組織

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

        Header、MultiBoot配置文件、Fallback配置文件在加載過程中,如果出錯(cuò),F(xiàn)PGA會(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、strike<9,則strike計(jì)數(shù)器加1,并重新開始配置過程。若看門狗計(jì)時(shí)器超時(shí)也會(huì)觸發(fā)相同操作,但此時(shí)會(huì)忽略RESET_ON_ERROR的狀態(tài)。若strike等于9,則停止配置,且將INIT和DONE引腳拉低。

        MultiBoot配置文件在加載過程也分配有3個(gè)strike計(jì)數(shù)值:0、1、2。當(dāng)在加載過程檢測(cè)到錯(cuò)誤時(shí),如果strike<3且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ù)位FPGA或重啟系統(tǒng)。

        4 MultiBoot實(shí)現(xiàn)簡(jiǎn)例

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

        4.1 基于ICAP的寄存器編程實(shí)現(xiàn)

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

        表7 ICAP_SPARTAN6接口定義

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

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

        表8 ICAP命令序列舉例

        IPROG命令后需經(jīng)過一段時(shí)間后,F(xiàn)PGA內(nèi)部才會(huì)產(chǎn)生相應(yīng)的重配置信號(hào),因此在IPROG命令后需跟幾個(gè)空操作命令,一般為4個(gè)。GENERAL2、GENERAL4中的操作碼:0x0B、0x3B、0x6B 分別為 SPI x1、SPI x2、SPI x4。

        ICAP邏輯模塊是FPGA中的專有邏輯模塊,因此在生成bit文件的各源文件中必須都實(shí)例化一個(gè)ICAP模塊。一般情況下對(duì)ICAP模塊的控制操作通過狀態(tài)機(jī)實(shí)現(xiàn)[4]。

        4.2 選項(xiàng)設(shè)置實(shí)現(xiàn)

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

        圖2 選項(xiàng)配置

        5 結(jié)束語(yǔ)

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

        [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].美國(guó):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實(shí)現(xiàn)及應(yīng)用[J].電子設(shè)計(jì)工程,2010(2):78-80.

        [6]劉宇,陳文藝.SDH中E1接口數(shù)字分接復(fù)用的ASIC電路設(shè)計(jì)與實(shí)現(xiàn)[J].西安郵電學(xué)院學(xué)報(bào),2001(1):62-66.

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

        [8]宋杰,趙巨波,丁昊.基于FPGA的雷達(dá)中/視頻數(shù)據(jù)采集與回放系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(11):176-179.

        猜你喜歡
        配置文件計(jì)數(shù)器寄存器
        提示用戶配置文件錯(cuò)誤 這樣解決
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        搭建簡(jiǎn)單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機(jī)root密碼怎么辦
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
        任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
        河南科技(2014年10期)2014-02-27 14:09:30
        基于單片機(jī)的仰臥起坐計(jì)數(shù)器
        亚洲亚洲网站三级片在线| 免费a级毛片在线播放不收费| 牛牛在线视频| 国产熟妇人妻精品一区二区动漫| 大陆一级毛片免费播放| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲精品综合久久中文字幕| 国产区女主播一区在线| 免费不卡在线观看av| 丰满少妇大力进入av亚洲| 久久久久久99精品| av在线手机中文字幕| 亚洲国产精品国自产拍性色| 厨房人妻hd中文字幕| 国产一区二区三精品久久久无广告| 国产成人户外露出视频在线| 国产精品一区二区日韩精品| 一区二区高清免费日本| 97在线视频人妻无码| 在线精品国产一区二区三区| 99热成人精品国产免国语的| 丝袜美女美腿一区二区| 亚洲av熟女中文字幕| 强开少妇嫩苞又嫩又紧九色 | 人成在线免费视频网站| 国产综合精品| 少妇对白露脸打电话系列| 2021最新久久久视精品爱| 国产精品久久久久国产a级| 亚洲aⅴ久久久噜噜噜噜| 无码人妻少妇久久中文字幕| 久久熟女少妇一区二区三区| 国产亚洲精品久久午夜玫瑰园 | 欧美大肥婆大肥bbbbb| 2021年国产精品每日更新| 日本中出熟女一区二区| 在线视频精品少白免费观看| 久久九九精品国产av| 亚洲啪av永久无码精品放毛片| 偷窥村妇洗澡毛毛多| 国产青青草自拍视频在线播放|