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

        ?

        基于千兆以太網(wǎng)的FPGA 遠(yuǎn)距離在線更新設(shè)計(jì)

        2022-12-23 12:03:12文豐韓冰袁小康
        電子設(shè)計(jì)工程 2022年24期
        關(guān)鍵詞:遠(yuǎn)距離配置文件框圖

        文豐,韓冰,袁小康

        (中北大學(xué)電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)

        一般情況下,F(xiàn)PGA 需要通過JTAG 接口,使用配套的下載線和上位機(jī)進(jìn)行連接,來完成程序的更新。這種方法有很大的局限性,如一些產(chǎn)品的使用環(huán)境特殊,要求結(jié)構(gòu)密封,這樣就無法打開下載口更新程序。該文以此為出發(fā)點(diǎn),介紹了一種由Flash、FPGA 和以太網(wǎng)組成的遠(yuǎn)距離在線更新系統(tǒng)。

        Xilinx 7 系列FPGA 支持多重配置功能(即Reconfiguration and MultiBoot),具體劃分有:主串模式、從串模式、主并模式、從并模式和SelectMAP 模式,MultiBoot 特性允許用戶在不掉電重啟的情況下,針對不同的功能需求,從存儲(chǔ)于Flash 中的多個(gè)更新文件中選擇其中的一個(gè)進(jìn)行加載,便可實(shí)現(xiàn)FPGA 系統(tǒng)配置更新,完成對應(yīng)的設(shè)計(jì)任務(wù)。這就為FPGA遠(yuǎn)距離更新帶來極大的便捷性和操作性[1]。該文提出一種遠(yuǎn)距離更新方法,將待更新的配置文件編程到Flash,F(xiàn)PGA 將優(yōu)先更新配置這些文件,實(shí)現(xiàn)在線更新。

        1 原理簡述

        1.1 硬件框圖

        硬件設(shè)計(jì)框架如圖1 所示,主要可分為FPGA 控制,以太網(wǎng)傳輸和Flash 存儲(chǔ),以太網(wǎng)選用Marvell 的88E1111 芯片,它的功能主要是把上位機(jī)下發(fā)的指令和更新程序數(shù)據(jù)傳輸給FPGA,F(xiàn)PGA 選擇Xilinx公司的XC7A100T 芯片,7 系列芯片采用28 nm 加工工藝,集成度高、價(jià)格低廉、功耗控制較好。Flash 采用Micron 生產(chǎn)的N25Q128A,該芯片通過SPI 總線與FPGA 通信,內(nèi)存大小為128 MB。FPGA 收到配置文件后,通過SPI 讀寫將配置文件寫入Flash 指定的存儲(chǔ)空間[2]。

        圖1 總體結(jié)構(gòu)框圖

        1.2 FPGA內(nèi)部處理框圖

        以太網(wǎng)接口選用TCP/IP 通信協(xié)議,進(jìn)行上位機(jī)與FPGA 兩者之間的通信。以太網(wǎng)接口在很多方面與Flash 接口存在不同,例如傳輸?shù)乃俾屎蛿?shù)據(jù)位寬等,因此選擇加入FIFO,用來存放緩存數(shù)據(jù)以及中轉(zhuǎn)位寬,F(xiàn)PGA 內(nèi)部更新結(jié)構(gòu)設(shè)計(jì)如圖2 所示,由以太網(wǎng)接口、FIFO、SPI 接口三部分組成[3]。就傳輸速度來說,以太網(wǎng)相對更快,所以傳完一整包數(shù)據(jù)后,需等待FIFO 中緩存的數(shù)據(jù)存到Flash中,再傳下一包數(shù)據(jù)。

        圖2 FPGA處理框圖

        1.3 SPI接口

        該文選用的SPI 協(xié)議支持的是主串模式,這種模式的優(yōu)點(diǎn)是操作簡單,實(shí)用性強(qiáng),占用空間小,資源利用率高。當(dāng)配置FPGA 選擇主串模式時(shí),主設(shè)備選擇FPGA,從設(shè)備選擇Flash,SPI接口配置圖如圖3所示。

        圖3 SPI接口配置圖

        SPI 接口是一種高速的、全雙工、同步、串行的數(shù)據(jù)總線,F(xiàn)PGA 通過Flash_clk,F(xiàn)lash_cs,F(xiàn)lash_datain和Flash_dataout4 條信號線來控制與Flash 之間的數(shù)據(jù)傳輸[5]。其中Flash_clk 是時(shí)鐘信號,F(xiàn)PGA 通過控制Flash_clk 信號來控制通信時(shí)序。Flash_cs 的作用是片選功能,起作用時(shí)電平為低,當(dāng)Flash 處于選中狀態(tài)時(shí),寫入FPGA 的操作指令和數(shù)據(jù)信息就會(huì)通過Flash_datain 傳輸?shù)紽lash中,同時(shí)Flash_dataout 讀取Flash 的信息并發(fā)送到FPGA 上。

        2 Flash地址空間及配置文件跳轉(zhuǎn)

        FPGA 遠(yuǎn)距離更新配置文件分為Golden 配置文件和Multiboot 配置文件。其中,Golden 文件遠(yuǎn)程更新時(shí)不對它操作。Multiboot 文件則是由用戶定義的,用來實(shí)現(xiàn)系統(tǒng)主要功能(即FPGA 功能)的配置程序,遠(yuǎn)程更新時(shí)只對它進(jìn)行操作[7]。程序重新加載切換更新框圖如圖4 所示。

        圖4 配置文件跳轉(zhuǎn)框圖

        Flash 芯片內(nèi)部地址如圖5 所示。

        圖5 Flash芯片內(nèi)部地址

        FPGA 更新結(jié)束后,可以正常工作的前提:1)Flash 中指定的地址空間放置著相應(yīng)的配置文件;2)Golden配置文件能正確跳轉(zhuǎn)到Multiboot配置文件[8]。

        Flash 內(nèi)部空間的最開始部分用來存儲(chǔ)Golden配置文件,文件內(nèi)包含在線更新功能和一些基礎(chǔ)功能。而Multiboot 配置文件包含SPI 讀寫及遠(yuǎn)程更新接口,以及其余功能模塊,存放在指定的地址空間;最后放置狀態(tài)字,目的是驗(yàn)證Multiboot 配置文件是否準(zhǔn)確完整。

        3 功能實(shí)現(xiàn)

        3.1 實(shí)現(xiàn)流程

        遠(yuǎn)距離更新流程如圖6 所示。

        圖6 遠(yuǎn)距離更新流程

        遠(yuǎn)距離更新一開始,上位機(jī)先經(jīng)過以太網(wǎng)接口下發(fā)“擦除”命令給FPGA,等待FPGA 得到指令后,馬上擦除Flash 中的數(shù)據(jù)[9],完成該操作后反饋“已擦除”狀態(tài)給上位機(jī)。

        在SPI 讀寫程序編寫時(shí),擦除時(shí)地址由低到高,寫數(shù)據(jù)時(shí)地址由高到低,F(xiàn)PGA 加載Flash 數(shù)據(jù)時(shí),最先檢驗(yàn)同步字,檢測正確后再加載其余配置數(shù)據(jù)。同步字在bin 文件頭部,所以擦除時(shí)需先擦除同步字,避免先擦除其余配置數(shù)據(jù)由于同步字仍存在,F(xiàn)PGA 檢測到同步字后一直等待加載,從而卡死。寫數(shù)據(jù)時(shí)最后寫入同步字,避免寫數(shù)據(jù)時(shí)異常斷電,由于同步字存在,F(xiàn)PGA 檢測到同步字后一直等待加載,從而卡死[10]。

        上位機(jī)為擦除完成狀態(tài)后,就可以將需要傳輸?shù)呐渲梦募掳l(fā)給FPGA,F(xiàn)PGA 將配置文件解析后“存入”Flash,直到配置文件傳輸完成[11]。

        上位機(jī)下發(fā)配置文件時(shí),由于FPGA配置SPI寫數(shù)據(jù)時(shí)地址由高到低,F(xiàn)IFO 的半空標(biāo)志應(yīng)為256 字節(jié),檢測到半空標(biāo)志后,進(jìn)行頁編程,寫入256 字節(jié)數(shù)據(jù)。所以上位機(jī)發(fā)送配置文件時(shí),首先發(fā)送配置文件最底部的256 字節(jié)數(shù)據(jù),256 字節(jié)組成一幀,接著傳輸配置文件,由下往上發(fā)送數(shù)據(jù)信息,直到傳輸完所有數(shù)據(jù)[12]。

        上位機(jī)軟件發(fā)送完配置文件后,自動(dòng)讀取FPGA設(shè)備中Flash 的配置文件,并與下發(fā)的配置文件進(jìn)行比對,如果文件內(nèi)容一樣,則證明下發(fā)配置文件正確,如果不一樣,則提醒配置失敗。

        3.2 多重配置設(shè)計(jì)

        多重配置特性使FPGA 能夠從Flash 中的指定地址有選擇地加載bit流文件,將熱啟動(dòng)地址(WBSTAR)和內(nèi)部程序(IPROG)命令嵌入到bit 流文件中。內(nèi)部生成的脈沖(IPROG)啟動(dòng)配置邏輯在熱啟動(dòng)地址寄存器(Warm Boot Start AddRess)WBSTAR 中指定的地址位置跳轉(zhuǎn)到更新bit 流文件,并嘗試加載更新文件。如果在更新文件加載過程中檢測到配置錯(cuò)誤,則會(huì)觸發(fā)Fallback 加載Golden 文件。

        Golden 文件存儲(chǔ)在Flash 0 地址中,Multiboot 更新文件存儲(chǔ)在WBSTAR 寄存器指定的地址中[13]。當(dāng)WBSTAR 設(shè)置為默認(rèn)值以外的任何地址值時(shí),IPROG 會(huì)自動(dòng)嵌入到bit流中。

        3.3 Vivado約束文件配置

        打開約束文件,將以下內(nèi)容復(fù)制到Golden 文件的約束文件中并保存。

        set_propertyCFGBVS VCCO [current_design](根據(jù)FPGA 連接情況進(jìn)行設(shè)置)

        set_property CONFIG_VOLTAGE 3.3 [current_design](根據(jù)FPGA 連接情況進(jìn)行設(shè)置)set_property BITSTREAM.GENERAL.CO MPRESS TRUE[current_design](bit流壓縮)

        set_pr-operty BITSTREAM.CONFIG.CONFIGRA TE40[curr-ent_design](配置速度)

        set_property CONFIG_MODE SPIx1[current_de sign](X1 模式)

        set_property BITST REAM.CONFIG.SPI_BUSW IDTH 1[current_design](X1 模式)

        set_property BITSTREAM.CONFIG.CONFI GFA LLBACK ENABLE[current_design]

        (配置FPGA 失敗后可跳轉(zhuǎn))

        set_property BITSTREAM.CONFIG.NEXT_CONF IG_ADDR 0x0300000[current_design]

        (配置跳轉(zhuǎn)位置,暫定3 MB,可以根據(jù)bin 文件大小需求進(jìn)行更改,但需與程序中SPI—Flash 模塊設(shè)置一致)set_property BITSTREAM.CONFIG.TIMER_CFG 0x00 0F4240 [current_design](設(shè)置看門狗時(shí)間,一個(gè)時(shí)鐘4 000 ns,暫設(shè)置為4 s,可根據(jù)不同PROM 設(shè)置)

        同理,將上述內(nèi)容中配置地址語句去掉,然后復(fù)制到Multiboot 約束文件中并保存。最后將bit 文件生成mcs 文件下載到Flash 即可[14]。

        4 驗(yàn)證方法

        4.1 上位機(jī)配置Multiboot文件正常測試

        選擇配置文件并打開配置FPGA,結(jié)束后,將設(shè)備斷電并重新上電,觀察設(shè)備是否能正常工作,若能正常工作,則代表上位機(jī)軟件配置FPGA 成功[15]。更新過程中,上位機(jī)界面如圖7-9 所示。

        圖7 擦除Flash界面

        4.2 上位機(jī)配置Multiboot文件異常情況測試

        4.2.1 擦除時(shí)斷電異常情況測試

        圖9 配置完成界面

        上位機(jī)軟件在圖7 配置文件擦除任意時(shí)刻時(shí),將設(shè)備斷電并重新上電,上位機(jī)重新單擊“配置FPGA”按鈕,按4.1 節(jié)的步驟進(jìn)行操作,若上位機(jī)能配置FPGA,且彈出“配置FPGA 結(jié)束”提示框,則證明當(dāng)Multiboot 代碼配置文件被擦除后,設(shè)備能自動(dòng)跳轉(zhuǎn)并調(diào)用Golden 代碼配置文件。

        4.2.2 配置時(shí)斷電異常情況測試

        上位機(jī)軟件在圖8 配置文件配置任意時(shí)刻時(shí),將設(shè)備斷電并重新上電,上位機(jī)重新單擊“配置FPGA”按鈕,按4.1 節(jié)的步驟進(jìn)行操作,若上位機(jī)能配置FPGA 且彈出“配置FPGA 結(jié)束”提示框,則證明當(dāng)Multiboot 代碼配置文件被擦除后或者未寫完時(shí),設(shè)備能自動(dòng)跳轉(zhuǎn)并調(diào)用Golden 代碼配置文件。

        圖8 配置FPGA界面

        經(jīng)驗(yàn)證,兩種異常情況下,設(shè)備均能自動(dòng)跳轉(zhuǎn)并調(diào)用Golden 代碼配置文件。

        5 結(jié)論

        該文介紹的遠(yuǎn)距離在線更新方法,以Flash 和FPGA 主串模式配置為基礎(chǔ),通過對FPGA 配置流程、SPI 讀寫控制的研究,提出了該方案,經(jīng)過實(shí)際測試,實(shí)現(xiàn)了遠(yuǎn)距離在線更新功能??朔颂厥猸h(huán)境下FPGA 程序無法在線更新的困難。對于密封結(jié)構(gòu),無法開蓋的情況,在線更新程序流程簡單、經(jīng)濟(jì)實(shí)用,使得程序更新的效率大大加快。該方法已經(jīng)應(yīng)用于具體設(shè)備中。另外,該方案的移植性強(qiáng),如在LVDS,光纖等其他通信接口也可以很容易被應(yīng)用,因此,在工程方面應(yīng)用前景廣闊。相比于之前的程序更新方法,為防止掉電導(dǎo)致更新失敗,該方案加入了保護(hù)措施,進(jìn)一步增加了在線更新的可靠性[16]。

        猜你喜歡
        遠(yuǎn)距離配置文件框圖
        提示用戶配置文件錯(cuò)誤 這樣解決
        零距離與遠(yuǎn)距離
        捷豹I-PACE純電動(dòng)汽車高壓蓄電池充電系統(tǒng)(三)
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機(jī)root密碼怎么辦
        電路圖2017年凱迪拉克XT5
        高速公路遠(yuǎn)距離供電系統(tǒng)
        捐獻(xiàn)
        算法框圖的補(bǔ)全
        男女性生活视频免费网站| 国产看黄网站又黄又爽又色| 一本久道久久综合久久| 男男互吃大丁视频网站| 亚洲精品在线免费视频| 欧美亚洲国产一区二区三区| 国内少妇偷人精品视频免费| 无码一区二区三区久久精品| 人妖啪啪综合av一区| 玩弄人妻少妇精品视频| 国产真实乱人偷精品人妻| 99热这里只有精品久久6| 亚洲午夜经典一区二区日韩| 欧美不卡一区二区三区| 夜夜揉揉日日人人| 久久精品国产亚洲AⅤ无码剧情| 亚洲国产一区二区网站| 亚洲成av人在线播放无码| 亚洲男人av香蕉爽爽爽爽| 绿帽人妻被插出白浆免费观看| 一区二区三区四区草逼福利视频 | 亚洲精品国产成人| 女人被狂躁高潮啊的视频在线看 | 777米奇色8888狠狠俺去啦| 在线观看av中文字幕不卡| 国产亚洲一区二区三区三州| 免费国产在线精品一区二区三区免| 欧美大成色www永久网站婷| 欧美视频第一页| av成人资源在线观看| 国产精品久久久久久久久电影网| 囯产精品一品二区三区| 91福利精品老师国产自产在线| 久久伊人精品色婷婷国产| 亚洲精品无码久久久影院相关影片| 欧美日韩性视频| 日本在线观看一区二区视频| 欧洲成人一区二区三区| 国产亚洲精品久久久久秋霞| 亚洲福利第一页在线观看| 草逼动态图视频免费观看网站|