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

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

2022-12-23 12:03:12文豐韓冰袁小康
電子設(shè)計(jì)工程 2022年24期
關(guān)鍵詞:程序

文豐,韓冰,袁小康

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

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

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

1 原理簡(jiǎn)述

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,該芯片通過(guò)SPI 總線與FPGA 通信,內(nèi)存大小為128 MB。FPGA 收到配置文件后,通過(guò)SPI 讀寫(xiě)將配置文件寫(xiě)入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,用來(lái)存放緩存數(shù)據(jù)以及中轉(zhuǎn)位寬,F(xiàn)PGA 內(nèi)部更新結(jié)構(gòu)設(shè)計(jì)如圖2 所示,由以太網(wǎng)接口、FIFO、SPI 接口三部分組成[3]。就傳輸速度來(lái)說(shuō),以太網(wǎng)相對(duì)更快,所以傳完一整包數(shù)據(jù)后,需等待FIFO 中緩存的數(shù)據(jù)存到Flash中,再傳下一包數(shù)據(jù)。

圖2 FPGA處理框圖

1.3 SPI接口

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

圖3 SPI接口配置圖

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

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

FPGA 遠(yuǎn)距離更新配置文件分為Golden 配置文件和Multiboot 配置文件。其中,Golden 文件遠(yuǎn)程更新時(shí)不對(duì)它操作。Multiboot 文件則是由用戶(hù)定義的,用來(lái)實(shí)現(xiàn)系統(tǒng)主要功能(即FPGA 功能)的配置程序,遠(yuǎn)程更新時(shí)只對(duì)它進(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)部空間的最開(kāi)始部分用來(lái)存儲(chǔ)Golden配置文件,文件內(nèi)包含在線更新功能和一些基礎(chǔ)功能。而Multiboot 配置文件包含SPI 讀寫(xiě)及遠(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)距離更新一開(kāi)始,上位機(jī)先經(jīng)過(guò)以太網(wǎng)接口下發(fā)“擦除”命令給FPGA,等待FPGA 得到指令后,馬上擦除Flash 中的數(shù)據(jù)[9],完成該操作后反饋“已擦除”狀態(tài)給上位機(jī)。

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

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

上位機(jī)下發(fā)配置文件時(shí),由于FPGA配置SPI寫(xiě)數(shù)據(jù)時(shí)地址由高到低,F(xiàn)IFO 的半空標(biāo)志應(yīng)為256 字節(jié),檢測(cè)到半空標(biāo)志后,進(jìn)行頁(yè)編程,寫(xiě)入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)行比對(duì),如果文件內(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 流文件,并嘗試加載更新文件。如果在更新文件加載過(guò)程中檢測(cè)到配置錯(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約束文件配置

打開(kāi)約束文件,將以下內(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è)置看門(mén)狗時(shí)間,一個(gè)時(shí)鐘4 000 ns,暫設(shè)置為4 s,可根據(jù)不同PROM 設(shè)置)

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

4 驗(yàn)證方法

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

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

圖7 擦除Flash界面

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

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

圖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í)斷電異常情況測(cè)試

上位機(jī)軟件在圖8 配置文件配置任意時(shí)刻時(shí),將設(shè)備斷電并重新上電,上位機(jī)重新單擊“配置FPGA”按鈕,按4.1 節(jié)的步驟進(jìn)行操作,若上位機(jī)能配置FPGA 且彈出“配置FPGA 結(jié)束”提示框,則證明當(dāng)Multiboot 代碼配置文件被擦除后或者未寫(xiě)完時(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ǔ),通過(guò)對(duì)FPGA 配置流程、SPI 讀寫(xiě)控制的研究,提出了該方案,經(jīng)過(guò)實(shí)際測(cè)試,實(shí)現(xiàn)了遠(yuǎn)距離在線更新功能。克服了特殊環(huán)境下FPGA 程序無(wú)法在線更新的困難。對(duì)于密封結(jié)構(gòu),無(wú)法開(kāi)蓋的情況,在線更新程序流程簡(jiǎn)單、經(jīng)濟(jì)實(shí)用,使得程序更新的效率大大加快。該方法已經(jīng)應(yīng)用于具體設(shè)備中。另外,該方案的移植性強(qiáng),如在LVDS,光纖等其他通信接口也可以很容易被應(yīng)用,因此,在工程方面應(yīng)用前景廣闊。相比于之前的程序更新方法,為防止掉電導(dǎo)致更新失敗,該方案加入了保護(hù)措施,進(jìn)一步增加了在線更新的可靠性[16]。

猜你喜歡
程序
給Windows添加程序快速切換欄
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于VMM的程序行為異常檢測(cè)
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國(guó)刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 国产在线欧美| 91精品专区国产盗摄| 国产AV毛片| 白丝美女办公室高潮喷水视频| 欧美在线网| 26uuu国产精品视频| 无码电影在线观看| 亚洲av无码人妻| 71pao成人国产永久免费视频| 人妻中文久热无码丝袜| 91蝌蚪视频在线观看| 人妻一区二区三区无码精品一区| 亚洲自拍另类| 99热这里只有免费国产精品| 东京热av无码电影一区二区| 狠狠色狠狠综合久久| 欧美日韩亚洲国产主播第一区| 欧美国产日韩在线播放| 亚洲高清在线天堂精品| 亚国产欧美在线人成| 中文字幕久久亚洲一区| 精品国产免费观看| 亚洲精品桃花岛av在线| 国产成人狂喷潮在线观看2345| 91亚瑟视频| 99久久精品免费观看国产| 97视频精品全国免费观看| 欧美日韩免费| 自慰网址在线观看| 久久精品波多野结衣| 蜜桃视频一区| 亚洲国产精品日韩av专区| 四虎亚洲国产成人久久精品| 国产老女人精品免费视频| 就去吻亚洲精品国产欧美| 国产Av无码精品色午夜| 国产精品视频系列专区| 丁香婷婷综合激情| 亚洲一级色| 26uuu国产精品视频| 精品无码国产一区二区三区AV| 91福利在线看| 国产青青操| 国产精品护士| 国产精品爽爽va在线无码观看| 亚洲日本在线免费观看| 国产精品无码久久久久久| 在线免费看黄的网站| 亚洲欧美不卡视频| 亚洲国产在一区二区三区| 久久青青草原亚洲av无码| 亚洲天堂视频在线播放| 久久精品无码专区免费| 国产午夜看片| 亚洲精品午夜天堂网页| 国产农村1级毛片| 欧美精品啪啪| 国产自产视频一区二区三区| 欧美 国产 人人视频| 欧美成人午夜影院| 日韩AV无码免费一二三区| 欲色天天综合网| 在线观看网站国产| 青青青视频91在线 | 日韩无码一二三区| 亚洲69视频| a毛片基地免费大全| 一级全黄毛片| 国产av一码二码三码无码| 色欲综合久久中文字幕网| 九九这里只有精品视频| 日本一区二区不卡视频| 日韩精品一区二区深田咏美| 丁香亚洲综合五月天婷婷| 亚洲精品视频网| 996免费视频国产在线播放| 国产成人亚洲欧美激情| 伊在人亞洲香蕉精品區| 国产成人精品2021欧美日韩| 亚洲人成高清| 丁香五月亚洲综合在线 | 亚洲无码不卡网|