国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

信號模擬設(shè)備中的FPGA重配置設(shè)計

2012-06-28 03:05:04偉,安
艦船電子對抗 2012年5期
關(guān)鍵詞:配置文件字節(jié)被動

洪 偉,安 濤

(船舶重工集團(tuán)公司723所,揚州225001)

0 引 言

信號模擬設(shè)備在雷達(dá)或其他偵察設(shè)備的調(diào)試、測試和檢修過程中發(fā)揮了重要的作用。隨著我軍信息化程度的不斷提高,偵察設(shè)備的種類也越來越多,為了適應(yīng)這種變化,多功能成為信號模擬設(shè)備的一個重要發(fā)展方向。

隨著現(xiàn)場可編程門陣列(FPGA)技術(shù)的發(fā)展及其在信號模擬設(shè)備中的廣泛應(yīng)用,各種信號模擬功能越來越集中于FPGA中實現(xiàn),因此FPGA重配置成為信號模擬設(shè)備多功能化的一個重要手段。本文正是為了滿足這種應(yīng)用需求,設(shè)計并實現(xiàn)了FPGA重配置。

1 FPGA配置技術(shù)簡介

FPGA是目前電子設(shè)備中應(yīng)用非常廣泛的電子器件,其集成度很高,器件密度從數(shù)萬系統(tǒng)門到數(shù)千萬系統(tǒng)門不等,可以完成極其復(fù)雜的時序與組合邏輯電路,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計。除了一些專用器件采用Flash工藝或反熔絲工藝以外,目前使用的FPGA器件一般是基于靜態(tài)隨機(jī)存儲器(SRAM)工藝的,這種FPGA每次上電后都需要進(jìn)行配置,配置過程就是對FPGA內(nèi)容進(jìn)行編程的過程[1]。

根據(jù)FPGA在配置電路中的角色,配置方式分為聯(lián)合測試行動組(JTAG)方式、主動方式和被動方式3種。JTAG方式一般用于設(shè)計調(diào)試階段,設(shè)計完成后一般使用主動方式或者被動方式進(jìn)行配置。

在主動方式下,配置數(shù)據(jù)存放在外部配置芯片中,上電之后FPGA主動輸出控制信號和同步信號,配置芯片在FPGA的控制下將數(shù)據(jù)發(fā)送到FPGA,完成配置過程。配置數(shù)據(jù)一般使用FPGA廠商提供的軟件工具直接寫入配置芯片。

在被動方式下,配置過程由系統(tǒng)中的其他設(shè)備發(fā)起并控制,配置設(shè)備一般是微處理器、微控制器或者復(fù)雜可編程邏輯器件(CPLD)等。配置數(shù)據(jù)一般存放在連接到配置設(shè)備的存儲器中,需要自行設(shè)計程序?qū)⑵鋵懭氪鎯ζ鞑⑦M(jìn)行管理。

FPGA重配置是利用FPGA可編程的特性,在設(shè)備正常工作期間,通過調(diào)用不同的配置文件對FPGA重新配置以實現(xiàn)特定功能的過程。采用這種方式能夠在不增加或者只增加很少設(shè)備和成本的情況下在單一設(shè)備上實現(xiàn)更多的功能。FPGA的3種配置方式理論上均可用于實現(xiàn)重配置,但是由于被動方式方便靈活,所以在設(shè)計中較常采用。

2 FPGA重配置設(shè)計

2.1 電路設(shè)計

本設(shè)計中使用的FPGA為Altera公司Stratix II系列中的EP2S90,配置設(shè)備微控制器(MCU)為TI公司的TMS320F2812。Stratix II系列FPGA的被動配置方式根據(jù)接口信號及時序的不同細(xì)分為多種具體模式,包括被動串行(PS)、快速被動并行(FPP)、被動并行同步(PPS)、被動并行異步(PPA)以及被動串行異步(PSA)等。PS方式由于使用的引腳少,便于在各種配置設(shè)備上實現(xiàn),所以本設(shè)計采用這種方式[2]。

使用PS方式首先要正確設(shè)置FPGA芯片上的配置方式選擇引腳 MSEL[3.0],根據(jù)器件手冊要求,這4個引腳狀態(tài)分別為0,0,1,0。

PS方式使用DCLK(配置時鐘)、DATA0(配置數(shù)據(jù))、nCONFIG(配置命令)、nSTATUS(狀態(tài)信號)和CONF_DONE(配置完成指示)5個引腳來完成配置過程。本設(shè)計電路連接如圖1所示,F(xiàn)PGA的5根配置信號線全部連接到MCU的通用輸入輸出(IO)上,MCU通過其IO引腳實現(xiàn)FPGA配置時序。配置數(shù)據(jù)存儲在Flash芯片中,F(xiàn)lash芯片通過串行外圍設(shè)備接口(SPI)接口與MCU連接。

圖1 電路連接框圖

因為重配置是在設(shè)備正常工作的狀態(tài)下進(jìn)行的,因此在電路設(shè)計時必須考慮FPGA的配置過程對設(shè)備中其他電路的影響。FPGA在配置過程中,其IO引腳為高阻,但是因為FPGA的控制信號都是通過電平轉(zhuǎn)換芯片與其他電路相連,所以在FPGA輸出為高阻的狀態(tài)下,電平轉(zhuǎn)換芯片輸入相當(dāng)于懸空,導(dǎo)致其輸出為高電平。對于在FPGA配置期間必須保持低電平的信號需要在電平轉(zhuǎn)換芯片的輸入端增加下拉電阻。

2.2 數(shù)據(jù)存儲設(shè)計

FPGA的配置數(shù)據(jù)如何寫入Flash芯片、在Flash芯片中如何存儲是FPGA重配置設(shè)計中一個重要的部分,它不僅與FPGA和Flash芯片型號相關(guān),還會直接影響軟件設(shè)計的復(fù)雜度。

本設(shè)計使用的Flash芯片為M25P128,其總存儲量為128Mbit,分為64個Sector,每個Sector分為1 024個Page,每個Page包含256個字節(jié)。本設(shè)計將Flash芯片等分為8個子存儲區(qū),每個子存儲區(qū)由8個Sector組成,大小為16Mbit,分別用來存儲不同的FPGA配置數(shù)據(jù)或者其他數(shù)據(jù)。子存儲區(qū)從0到7進(jìn)行編號,這樣只需知道子存儲區(qū)編號,即可計算出每個子存儲區(qū)的起始段地址(等于子存儲區(qū)編號乘8)和起始頁地址(等于子存儲區(qū)編號乘8 192)。

FPGA EP2S90的原始配置數(shù)據(jù)大小約為25.7Mbit,直接使用的話將無法放進(jìn)1個子存儲區(qū)中,因此配置數(shù)據(jù)必須先進(jìn)行壓縮處理,壓縮處理在Altera公司的設(shè)計軟件Quartus II中完成。配置數(shù)據(jù)壓縮之后體積可以減少35%~55%,考慮到FPGA在正常使用中并不會用完所有資源,所以壓縮后的配置數(shù)據(jù)完全可以存儲到一個16Mbit的子存儲區(qū)中。

壓縮之后的配置數(shù)據(jù)大小是字節(jié)的整數(shù)倍但并不固定,根據(jù)FPGA設(shè)計的不同,其大小也不同,為了盡量降低MCU程序的復(fù)雜度和代碼尺寸,本設(shè)計對壓縮后的配置數(shù)據(jù)按照統(tǒng)一的格式進(jìn)行處理。在配置數(shù)據(jù)的前面插入256字節(jié)的數(shù)據(jù)用來存儲描述信息,其前4個字節(jié)用于描述配置文件的大小(單位為字節(jié)),其他字節(jié)根據(jù)需要可以存儲如文件版本、編譯時間等信息,未使用的全部填充0xFF,在配置數(shù)據(jù)的后面添加若干個0xFF,將整個配置數(shù)據(jù)大小湊成256字節(jié)的整數(shù)倍。

因為經(jīng)過處理后的文件大小為256字節(jié)(Page)的整數(shù)倍,所以MCU在數(shù)據(jù)存儲操作中只需要用到并 實 現(xiàn) “sector erase”和 “page program”2 條Flash操作指令,在FPGA配置操作中只需要用到并實現(xiàn)“page read”1條Flash操作指令,降低了程序設(shè)計的復(fù)雜度。

2.3 軟件設(shè)計

軟件設(shè)計主要是MCU指令處理子程序的設(shè)計,包括數(shù)據(jù)存儲和FPGA配置程序2個部分。

數(shù)據(jù)存儲程序由段擦除指令處理子程序和頁編程指令處理子程序共同構(gòu)成,其執(zhí)行流程如圖2所示。

圖2 數(shù)據(jù)存儲程序流程圖

MCU正常加電初始化后處于等待指令狀態(tài),接收到段擦除指令后,根據(jù)指令中的子存儲區(qū)編號zone計算得到本存儲區(qū)的起始段地址s,并通過串行外設(shè)接口(SPI)向Flash芯片發(fā)出擦除段s的指令,段s擦除完畢后繼續(xù)擦除下一個段,直到本存儲區(qū)8個段都擦除完畢。

在程序返回主程序之前根據(jù)子存儲區(qū)編號zone計算得到本存儲區(qū)的起始頁地址p供頁編程指令處理子程序執(zhí)行時使用。段擦除指令執(zhí)行完畢后告知主控系統(tǒng)并返回主程序,等待執(zhí)行下一條指令。

因為整個配置文件的大小已經(jīng)被預(yù)處理為Page大小的整數(shù)倍,所以頁編程指令處理子程序每次都將收到一個完整Page大小的數(shù)據(jù),MCU只需調(diào)用一次Flash的頁編程指令將數(shù)據(jù)寫入當(dāng)前頁p,然后將p指向下一個Page的起始地址即可。每次執(zhí)行完畢后,告知主控系統(tǒng)并返回主程序,等待執(zhí)行下一條指令。

FPGA配置程序執(zhí)行流程如圖3所示。

圖3 FPGA配置程序流程圖

MCU首先將nCONFIG引腳置0,保持5μs后再置1,由此啟動FPGA配置,等待200μs后查看nSTATUS引腳狀態(tài),如果不等于1,則FPGA沒能進(jìn)入配置狀態(tài),本次配置失敗,MCU告知主控系統(tǒng)本次配置失敗,然后程序返回,等待主控系統(tǒng)下一條指令。如果nSTATUS引腳為1,則表示FPGA已經(jīng)進(jìn)入配置狀態(tài),可以接收外部配置數(shù)據(jù)。

MCU根據(jù)接收指令中的子存儲區(qū)編號計算得到該子存儲區(qū)起始頁地址,先讀取第1個Page的數(shù)據(jù)以獲得該配置文件大小,接著讀取下一個Page的數(shù)據(jù)并寫入MCU緩存區(qū),記錄當(dāng)前有效數(shù)據(jù)個數(shù)N為256個字節(jié),然后通過改變DATA0和DCLK引腳狀態(tài)將1個字節(jié)的數(shù)據(jù)串行發(fā)送給FPGA,并將總配置文件剩余字節(jié)數(shù)Size減1,當(dāng)前緩存區(qū)有效字節(jié)數(shù)N減1。

每發(fā)送1個字節(jié)給FPGA后查看一下nSTATUS引腳狀態(tài),判斷配置過程是否出錯,判斷一下剩余字節(jié)數(shù)是否為0,判斷一下當(dāng)前緩存區(qū)有效數(shù)據(jù)個數(shù)是否為0。如果nSTATUS引腳為0,則配置過程出錯,MCU告知主控系統(tǒng)本次配置失敗,然后程序返回,等待主控系統(tǒng)下一條指令。如果剩余字節(jié)數(shù)為0,則配置數(shù)據(jù)發(fā)送完畢;如果不為0,則需要繼續(xù)寫入數(shù)據(jù)。

如果緩存區(qū)有效數(shù)據(jù)不為0,則繼續(xù)從緩存區(qū)讀取一個字節(jié)數(shù)據(jù)寫入FPGA,如果緩存區(qū)有效數(shù)據(jù)為0,則需要先讀取下一個Page的數(shù)據(jù)寫入緩存區(qū),再從緩存區(qū)讀取一個字節(jié)數(shù)據(jù)寫入FPGA。

所有數(shù)據(jù)都寫入FPGA后,MCU查看CONF_DONE引腳狀態(tài),如果該引腳為1,則表示本次配置成功;否則,本次配置不成功。配置結(jié)束后MCU將結(jié)果告知主控系統(tǒng)并返回主程序,等待主控系統(tǒng)下一條指令。

3 結(jié)束語

本文基于EP2S90和TMS320F2812設(shè)計實現(xiàn)了FPGA重配置功能,并已成功應(yīng)用于某型信號模擬設(shè)備中,使得該設(shè)備以較小體積和成本實現(xiàn)了多種功能的集成,競爭力顯著增強,經(jīng)濟(jì)效益明顯。本設(shè)計通用性強,實用性高,未來可以推廣到其他設(shè)備和應(yīng)用中。

[1]王誠,蔡海寧.Altera FPGA/CPLD 設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2011.

[2]蘇奎峰,呂強,常天慶.TMS320X281xDSP原理及C程序開發(fā) [M].北京:北京航空航天大學(xué)出版社,2008.

猜你喜歡
配置文件字節(jié)被動
提示用戶配置文件錯誤 這樣解決
No.8 字節(jié)跳動將推出獨立出口電商APP
新聞?wù)Z篇中被動化的認(rèn)知話語分析
搭建簡單的Kubernetes集群
互不干涉混用Chromium Edge
主動句都能轉(zhuǎn)換成被動句嗎
第五課 拒絕被動
趣味(語文)(2019年5期)2019-09-02 01:52:44
No.10 “字節(jié)跳動手機(jī)”要來了?
忘記ESXi主機(jī)root密碼怎么辦
簡談MC7字節(jié)碼
松桃| 磐石市| 普兰店市| 三明市| 宁强县| 监利县| 河西区| 确山县| 临西县| 吉林市| 神农架林区| 阿拉善盟| 三台县| 黔西| 清苑县| 崇礼县| 财经| 交口县| 上高县| 灯塔市| 彰武县| 富蕴县| 谷城县| 清流县| 盘锦市| 红原县| 兰溪市| 武威市| 湖南省| 永定县| 通渭县| 苏尼特右旗| 安多县| 新干县| 阳山县| 灵寿县| 德兴市| 宁化县| 和平区| 房产| 荔波县|