色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2018-12-04 08:37 ? 次閱讀

引言

現代硬件程序設計規模越來越大,功能越來越復雜,當多個應用程序同時在一個硬件平臺上實現時,各個程序的資源使用和數據通路可能會沖突,這增加了控制電路設計的復雜程度,給開發人員增加了工作量和開發難度。通過多重配置,可以將多個應用程序根據需要分時加載到FPGA 中,不僅精簡了電路設計,而且使系統更加靈活。FPGA 多重配置的特點可以讓特定條件下的用戶選擇片上資源不多的FPGA 去實現需要很多資源FPGA 才能實現的功能,這大大降低了開發費用,同時提高了FPGA的利用率。

Xilinx 公司Virtex5 系列的FPGA 具有多重配置的特性,允許用戶在不掉電重啟的情況下,根據不同時刻的需求,可以從FLASH 中貯存的多個比特文件選擇加載其中的一個,實現系統功能的變換。

1 總體設計

當FPGA完成上電自動加載初始化的比特流后,可以通過觸發FPGA內部的多重啟動事件使得FPGA從外部配置存儲器(SPI FLASH)指定的地址自動下載一個新的比特流來重新配置。FPGA 的多重配置可以通過多種方式來實現。本文采用的是基于ICAP核的狀態機編碼方式。通過調用Xilinx 自帶的ICAP 核,編寫狀態機按照一定的指令流程對ICAP核進行不斷的配置,可以控制FPGA 重新配置。這種方式可以在源代碼中加很多注釋,讓后來的開發者很清楚地明白ICAP核指令流順序,以及多重配置地址計算方法,是一種簡單實用的實現方法。

1.1 硬件電路

多重配置的硬件主要包括FPGA 板卡和貯存配置文件的FLASH 芯片。FPGA 選用XILINX 公司Virtex-5系列中的ML507,該產品針對FPGA多重配置增加了專用的內部加載邏輯。FLASH 芯片選用XILINX 公司的SPI FLASH 芯片M25P32,該芯片存貯空間為32 Mb,存貯文件的數量與文件大小以及所使用的FPGA 芯片有關。實現多重配置首先要將FPGA 和外部配置存儲器連接為從SPI FLASH 加載配置文件的模式。配置電路硬件連接框圖如圖1所示。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

在FPGA配置模式中,M2,M1,M0為0,0,1,這種配置模式對應邊界掃描加上拉,FPGA在這種模式下所有的I/O只在配置期間有效。在配置完成后,不用的I/O將被浮空[5].M2,M1,M0 三個選擇開關對應于ML507 開發板上的SW3開關中的4,5,6位,在FPGA上電之前將上述開關撥為0,0,1狀態。

1.2 軟件設計

從軟件設計的角度可以將FPGA 多重配置主要分為兩個部分。第一部分是用戶自己開發的程序,這一部分包括用戶要在FPGA上邊實現的功能,同時也包括為重載模塊提供時鐘信號,以及觸發信號,本文觸發信號是通過用戶程序編寫串口通信協議棧來接收PC端傳輸的數字作為觸發信號。第二部分是FPGA 重載配置模塊。FPGA多重配置首先要調用ICAP核,當滿足觸發條件后,采用狀態機編碼的方式對ICAP 核進行賦值配置。FPGA多重配置的軟件結構圖如圖2所示。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

FPGA多重配置的軟件結構圖如圖2所示。

重載模塊首先要調用ICAP核。ICAP原語在Xilinx的編譯軟件ISE 中調用,調用路徑為Edit → LanguageTemplates,VHDL/Verilog → Device Primitive Instantia-tion→Virtex5FPGA → Config/BSCAN Components→ In-ternal Config Access Por(t ICAP_VIRTEX5)。

ICAP_VIRTEX5調用接口如下:

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

ICAP 核支持X8,X16,X32 三種數據帶寬模式。在整個FPGA 重配置的過程中并沒有用到ICAP核的輸出,因此在重載模塊的狀態機控制程序中不關注BUSY,O 信號的值,可以不對它們賦值。用戶程序在使用接口時只需對CE,CLK,I,WRITE4個信號不斷賦值來發送命令。

在調用了ICAP核接口之后,通過Verilog編碼的方式實現狀態機。通過狀態機發送IPROG指令給ICAP 核,ICAP 核在接收到這些指令后會根據指定的地址自動加載配置文件。

IPROG 指令的作用是對FPGA 芯片進行復位操作,該復位操作對FPGA 內部的應用程序進行復位,復位過程中除專用配置管腳和JTAG 管腳,其他輸入/輸出管腳均為高阻態。完成復位操作后,將默認的加載地址用熱啟動地址寄存器(Warm Boot Start Address,WB-STAR)中的新地址替換。

在發送IPROG 指令之前,需要對ICAP核進行預配置。重載控制模塊在收到觸發信號后,第一個時鐘周期將ICAP 核的WRITE 信號和CE 信號置高,第二個周期將WRITE 信號置底,CE 信號置高,第三個周期將WRITE信號置底,CE信號也置底。接著在下面的8 個時鐘周期里,將指令隊列中的控制命令逐個發出。狀態機指令流程如圖3所示。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

在狀態機發送IPROG 指令的過程中,為了保證ICAP 核接收到正確的指令,每一個發送出去的命令和數據必須遵循SelectMAP數據順序。SelectMAP數據順序是將每個指令都按字節劃分,劃分后每個字節的數據都按比特位翻轉。如果為“X32”模式,則劃分為4個字節,每個字節進行位翻轉。圖4 以“X16”為例說明Se-lectMAP數據順序。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

當狀態機從用戶程序接收到一個觸發條件后,會發送一系列如圖3所示的IPROG 命令。Verilog編碼實現狀態機的過程中,必須按照圖3給出的指令順序發送這些IPROG命令,否則無法正確的與ICAP核通信。同時這些指令都具有自己特殊的定義而且必須服從Select-MAP 數據順序,否則無法通信。IPROG 指令的具體定義及說明如表1所示。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

在上述配置指令過程中,第五步Warm Boot StartAddress Register(WBSTAR)指定了滿足觸發條件的比特流在SPI FLASH中的起始地址,WBSTAR被賦值的地址必須和即將配置的bit流在SPI FLASH中的物理位置相同,否則FPGA就無法從外部讀取bit流。WBSTAR被賦值的數值都是提前根據程序的要求計算好的。計算WBSTAR值的時候需要了解WBSTAR寄存器每一位的具體含義,如圖5所示。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

WBSTAR寄存器共31位,高三位是保留位,RS[1:0]

兩位指定了可以多重配置的bit流的個數。RS_TS_B是RS[1:0]的使能信號:0 表示Disabled,1 表示Enabled.

START_ADDR表示要回讀的比特流在外部配置存儲器的起始地址。狀態機在對WBSTAR 進行賦值時,要根據自己選擇的bit流個數以及對應各個bit流在外部配置存儲器貯存的地址自行計算WBSTAR地址。這里以4個bit流為例說明WBSTAR地址的計算方法,如表2所示。狀態機使用的地址是服從SelectMAP數據順序的地址。FPGA 專用配置邏輯在收到IPROG 指令后,開始執行內部復位操作(JATG 管角和重載控制部分不進行復位操作),擦除板卡上原有的程序,從FLASH 芯片中WBSTAR 所指向的起始地址開始讀取新配置文件完成FPGA的重配置。

以Virtex5開發板和SPI FLASH為基礎的FPGA多重配置分析

2 多重配置的實現

Xilinx系列的FPGA 需要將后綴名為mcs的內存鏡像文件固化到外部配置存儲器中,FPGA上電后才能自動加載配置文件。一般的mcs文件只包含一個bit流文件,多重啟動的固化文件(。mcs)包含多bit流文件。在將多個bit流整合到mcs 文件的過程中,需要指定每個bit流的起始地址,這樣FPGA專用配置邏輯才能根據地址找到對應的bit流。首先將用戶開發的應用程序和重載控制模塊添加到一個工程當中,利用ISE編譯軟件生成位流文件(。bit)。由于Virtex5 系列器件本身的特性,一般情況下生產的bit 流文件大約為3 300 KB,而SPIFLASH 的容量為32 Mb 即4 MB,這個容量無法滿足在一個SPI FLASH 上貯存多個bit流文件,需要對生成的bit流進行壓縮。在用ISE 軟件生成bit流文件時,當完成了Synthesize-XST以及Implement Design后,執行到最后一步Generate Programming File時,在Process Proper-ties 中General Options 選項中勾選Enable BitstreamCompression.通過這個壓縮設置可以對bit 流進行壓縮,壓縮后的bit流大約在500~600 KB 之間,可以滿足在一個容量為32 Mb的SPI FLASH上貯存多個bit流文件。其次將需要進行重配置的多個位流文件拷貝至一個工程目錄下,有兩種方法可以將多個bit流整合為一個mcs文件。第一種方法是通過ISE 編譯軟件的命令行窗口,使用命令行命令將多個位流文件合并為一個FLASH 存貯芯片M25P32 中燒寫的內存鏡像文件(。mcs)。第二種方法是用Impact 軟件創建MultibootSPI FLASH,選擇相應的FPGA 型號和FLASH 的容量以及要包含的bit 流的個數(版本的個數)。本文使用第一種方法來將多個bit 流文件形成一個內存鏡像文件(。mcs)。使用promgen 命令的具體格式為:

promgen -spi -pmcs -oMulitBoot.mcs-s4096 -u0rev0.bit -u100000rev1.bit -u200000rev0.bit -u300000rev0.bit命令中各參數的說明如下所述。-spi:表示生成的mcs文件要固化到SPI FLASH中;-p mcs:生成文件的格式是mcs格式;-o ML507.mcs:要生成的文件名,可以根據需要修改;-s 4096:定義了外部存儲器的容量,4096 表示32 Mb;- u 0rev0.bit:表示名字為rev0 的比特流文件在外部存儲器的起始地址為0;-u 100000 rev1.bit:表示名字為rev1的比特流文件在外部貯存的起始地址為100000.在生成mcs 文件后,通過IM-PACT 軟件將mcs 文件固化到SPI FLASH 中。

FPGA 上電自動從外部SPI FLASH 加載一個初始化的bit流,當需要執行新的程序時,會根據觸發條件以及啟動地址重新配置。在實驗中,通過PC機串口終端發送指令當做觸發條件實現多重配置。在實際應用中,還可以根據具體硬件實現,采用其他通信方式傳送控制指令來進行觸發。

3 結語

本文通過硬件電路和軟件設計兩個方面對FPGA的多重配置方法進行了詳細介紹,本文所介紹的多重配置方法靈活方便、易于操作、電路簡單,在工程中有很高的應用價值,同時關于bit流壓縮的方法也值得參考。

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

    關注

    1629

    文章

    21729

    瀏覽量

    603013
  • 存儲器
    +關注

    關注

    38

    文章

    7484

    瀏覽量

    163765
  • Xilinx
    +關注

    關注

    71

    文章

    2167

    瀏覽量

    121307
收藏 人收藏

    評論

    相關推薦

    基于SPI FLASHFPGA多重配置

    通過FPGA多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA器件實現需要很大資源才能實現的程序。Virtex5系列
    發表于 01-24 14:17 ?1.5w次閱讀
    基于<b class='flag-5'>SPI</b> <b class='flag-5'>FLASH</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>多重配置</b>

    揭秘FPGA多重配置硬件電路設計方案

    FPGA 完成上電自動加載初始化的比特流后,可以通過觸發FPGA 內部的多重啟動事件使得FPGA 從外部配置存儲器(
    發表于 02-02 11:09 ?1338次閱讀
    揭秘<b class='flag-5'>FPGA</b><b class='flag-5'>多重配置</b>硬件電路設計方案

    中端FPGA開發板

    。 Lattice公司最近還發布了一個針對其最新SC系統級芯片系列FPGA器件的開發板。該開發板配有一款該系列產品中更大的一款芯片SC25,該芯片采用900引腳的小間距BGA封裝。這款開發板
    發表于 04-27 14:40

    誰有Virtex5 FPGA到TI公司64系列的EMIF設計文檔??

    誰有Virtex5 FPGA到TI公司64系列的EMIF設計文檔??如果有的話,發給我一下,多謝啦
    發表于 11-22 15:24

    求xilinx virtex5例程

    剛剛學習FPGA,不知道怎么用virtex5,想看看例程,網上找不到,想問問各位大神,能給給看看么
    發表于 12-03 21:56

    IDDR最大速度virtex5 sx95t

    嗨,我想在FPGA中捕獲串行ADC樣本。我將ADS5281(12位,50Msps)連接到Virtex5 SX95T。ADC時鐘和數據饋入Virtex5中的iDDR。如果adc時鐘低至120 MHz
    發表于 04-17 09:26

    Virtex5無法正確讀取XCF32P是為什么?

    Virtex5無法正確讀取XCF32P。 Impact可以編程到PROM和VIRTEX5,但是當Virtex5上電時,看起來PROM只在D0上輸出串行數據,D1..D7高電平(3.3
    發表于 05-27 13:35

    virtex5與部分重新配置教程?

    嗨,我是學生 我嘗試使用virtex5與部分重新配置教程UG702,但本教程設計virtex6(ML605)所以我需要修復它
    發表于 06-16 07:28

    SPI方式FPGA配置SPI flash編程

    SPI方式FPGA配置SPI flash編程
    發表于 05-16 18:01 ?165次下載
    <b class='flag-5'>SPI</b>方式<b class='flag-5'>FPGA</b><b class='flag-5'>配置</b>和<b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>編程

    Virtex5 FPGA在ISE + Planahead上部分可重構功能的流程和技術要點

    部分可重構技術是Xilinx FPGA的一項重要開發流程。本文結合Virtex5 FPGA,詳細講解在ISE + Planahead上完成部分可重構功能的流程和技術要點。
    的頭像 發表于 07-04 02:17 ?3845次閱讀
    <b class='flag-5'>Virtex5</b> <b class='flag-5'>FPGA</b>在ISE + Planahead上部分可重構功能的流程和技術要點

    FPGA多重配置硬件電路的原理及其設計方案的介紹

    工作效率。通過FPGA多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA 器件實現需要很大資源才能實現的程序。Virtex
    發表于 10-12 17:57 ?15次下載

    FPGA開發板使用和配置方式

    本節旨在通過給定的工程實例“按鍵開關控制LED”來熟悉Xilinx ISE軟件的基本操作、設計、編譯及仿真流程。同時使用基于Xilinx FPGA開發板將該實例進行下載、驗證及調試,完成工程設計的硬件實現,熟悉Xilinx FPGA
    發表于 11-22 15:31 ?6740次閱讀

    digilent Virtex-5 FPGA開發板簡介

    Genesys Virtex-5 FPGA開發板集成了功能強大的Xilinx Virtex?-5 FPG
    的頭像 發表于 11-14 17:01 ?4417次閱讀
    digilent <b class='flag-5'>Virtex-5</b> <b class='flag-5'>FPGA</b><b class='flag-5'>開發板</b>簡介

    fpga開發板是什么?fpga開發板有哪些?

    FPGA開發板是一種基于FPGA(現場可編程門陣列)技術的開發平臺,它允許工程師通過編程來定義和配置FP
    的頭像 發表于 03-14 18:20 ?1996次閱讀

    【GD32F303紅楓派開發板使用手冊】第二十講 SPI-SPI NAND FLASH讀寫實驗

    通過本實驗主要學習以下內容: ?SPI通信協議,參考19.2.1東方紅開發板使用手冊 ?GD32F303 SPI操作方式,參考19.2.2東方紅開發板使用手冊 ?NAND
    的頭像 發表于 06-20 09:50 ?886次閱讀
    【GD32F303紅楓派<b class='flag-5'>開發板</b>使用手冊】第二十講 <b class='flag-5'>SPI-SPI</b> NAND <b class='flag-5'>FLASH</b>讀寫實驗
    主站蜘蛛池模板: 国产精品手机在线视频| 亚洲青青草原| 中国女人精69xxxxxx视频| 日韩中文无线码在线视频| 内射人妻骚骚骚| 麻豆婷婷狠狠色18禁久久| 久久黄色网址| 久久99re6热在线播放| 国产在线中文字幕| 蜜芽国产在线精品欧美| 播色屋97超碰在人人| 月夜直播免费看| 午夜伦伦电影理论片费看| 欧美成人猛片aaaaaaa| 精品国产国产精2020久久日| 俄罗斯6一9泑女网站| 69国产精品人妻无码免费| 亚洲妈妈精品一区二区三区| 日本乱hd高清videos| 免费成人高清在线视频| 花蝴蝶在线直播观看| 少妇被阴内射XXXB少妇BB| 暖暖 免费 高清 日本在线| 欧美Av无码高清在线| 人妻超级精品碰碰在线97视频| 欧美一级久久久久久久大| 人妻中文字幕无码系列| 日韩亚洲欧美中文高清在线| 色姣姣狠狠撩综合网| 無码一区中文字幕少妇熟女H| 亚洲第一免费播放区| 伊人色啪啪天天综合婷婷| 4480YY旧里番在线播放| JIZZ19学生第一次| 国产99久久久国产精品成人 | 麻豆一二三区果冻| 裸妇厨房风流在线观看| 暖暖日本 在线 高清| 色老板影视| 亚洲男人天堂2018av| 2021精品乱码多人收藏|