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

?

一種可靠的FPGA動態(tài)配置方法及實現(xiàn)

2012-08-04 06:37:32沈佐峰
通信技術(shù) 2012年3期
關(guān)鍵詞:時序時鐘芯片

陳 曦,沈佐峰

(中國電子科技集團公司第三十研究所,四川 成都 610041)

0 引言

現(xiàn)場可編程邏輯門陣列(FPGA,F(xiàn)ield Programmable Gate Array)以其高靈活性、豐富的邏輯和 I/O資源在電子、通信領(lǐng)域應(yīng)用越來越廣泛。目前主流的FPGA基本都基于SRAM工藝,掉電后FPGA會失去所有邏輯關(guān)系,所以一般都配備一個EPROM芯片用于存放FPGA的配置數(shù)據(jù),每次上電后對FPGA重新進行加載。這種加載方式不僅增加了系統(tǒng)成本,而且使系統(tǒng)靈活度大打折扣,配置過程中容易因環(huán)境因素導(dǎo)致配置失敗。

隨著FPGA在通信系統(tǒng)中的應(yīng)用越來越廣泛,多數(shù)場合要求 FPGA能夠支持在線動態(tài)配置和加載。這種配置方式的優(yōu)勢主要體現(xiàn)在[1]:①節(jié)約系統(tǒng)成本、降低功耗、減小系統(tǒng)體積對于對成本和體積敏感的系統(tǒng)非常適用;②適用于某些對安全性要求較高的領(lǐng)域,F(xiàn)PGA的程序文件必須進行加密保存,上電解密后動態(tài)加載;③由于可以在不開箱的情況下實現(xiàn)快速的程序加載,應(yīng)用靈活,在現(xiàn)場進行程序的升級和生產(chǎn)調(diào)試中顯得尤為重要。

針對FPGA動態(tài)配置的優(yōu)勢,本文提出了一種基于處理器(CPU,Central Processing Unit)+復(fù)雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)的FPGA快速動態(tài)加載方案,該方案具有靈活、安全和可靠的特點,在通信電子領(lǐng)域具有廣泛的應(yīng)用前景。

1 FPGA上電配置原理

目前主流FPGA生產(chǎn)廠家Altera公司和Xilinx公司生產(chǎn)的FPGA無論是在配置方法、專用配置引腳的功能設(shè)置以及配置接口時序上基本完全相同,配置方式主要分為主動式和被動式,數(shù)據(jù)寬度有 8位并行和串行方式2種。目前普遍采用的配置方式主要有幾種:主動串行配置(AS)、被動串行配置(PS)、被動并行配置(PPS)及JTAG。Altera公司的Quartus II和Xilinx公司的ISE開發(fā)平臺都可以根據(jù)選用的不同器件,生成大小、格式不同的配置文件。

FPGA的配置引腳主要分為專用和通用2類[2]:專用配置引腳接口時序可以由FPGA內(nèi)部產(chǎn)生,也可以由外部提供,它一般只在配置過程中有效;通用配置引腳只在上電配置過程中作為配置引腳使用,當(dāng)FPGA程序成功加載后可作為普通I/O使用。Altera公司 FPGA 專用配置引腳主要有[3]:nCONFIG、nSTATUS、CONF_DONE、DCLK、DATA。相對應(yīng)Xilinx公司的配置引腳功能設(shè)置和接口時序基本完全一致,只是命名有所差別,分別是[4]:PROGRAM_B、INIT_B、DONE、CCLK、D_IN。

這里以Altera公司Cyclone III系列FPGA在主動串行模式下的配置原理為例說明FPGA的上電配置過程。配置電路原理圖如圖1所示,首先PC機通過JTAG口向串行配置芯片中寫入數(shù)據(jù),每次上電后由FPGA主動發(fā)起配置過程,從串行配置芯片中讀取程序文件并完成配置過程。

圖1 AS配置電路原理

FPGA采用AS配置過程主要包含以下3個步驟,上電配置時序圖如圖2所示。

①FPGA上電后首先進入復(fù)位狀態(tài),由 FPGA專用配置芯片給FPGA的nCONFIG引腳輸入一個低電平,使得FPGA進入復(fù)位狀態(tài);之后信號變高,在脈沖上升沿 FPGA進入配置狀態(tài),F(xiàn)PGA的nSTATUS引腳產(chǎn)生一個低脈沖復(fù)位FPGA內(nèi)存;②配置階段開始后FPGA通過DCLK引腳發(fā)送時鐘給串行配置芯片,配置時鐘驅(qū)動串行配置芯片的地址計數(shù)器并讀出數(shù)據(jù),送到FPGA的DATA引腳;③FPGA在讀取數(shù)據(jù)同時,會根據(jù)數(shù)據(jù)文件格式對數(shù)據(jù)進行 CRC校驗。加載完成后,若校驗正確,則FPGA的配置完成指示引腳CONF_DONE拉高,表示加載過程完成;若校驗錯誤,CONF_DONE保持為低電平,同時會將nSTATUS引腳拉低報錯。

以上步驟都由FPGA廠商固化在芯片中的程序決定,用戶無法干預(yù)配置過程,只能通過示波器簡單的測試配置引腳接口時序。如該過程中因為某些原因?qū)е屡渲檬。瑳]有任何信號發(fā)起重新加載過程,只有重新加電。

圖2 AS配置時序

2 FPGA配置系統(tǒng)的設(shè)計與實現(xiàn)

2.1 系統(tǒng)架構(gòu)設(shè)計

隨著通信設(shè)備復(fù)雜化、多樣化,同一套硬件設(shè)備可能應(yīng)用于不同的環(huán)境。軟件實現(xiàn)有靈活、擴展性強的特點,但是單純軟件實現(xiàn)對于處理速度高、并發(fā)性強的環(huán)境并不適合[5];硬件的并行、流水線處理方式可以極大程度上提高處理效率,但是單純使用FPGA實現(xiàn),從實現(xiàn)難度、成本、資源、靈活性方面都無法滿足實際的應(yīng)用需求。所以在設(shè)計中要充分發(fā)揮FPGA邏輯可變,相對于傳統(tǒng)ASIC實現(xiàn)又具備一定靈活性的優(yōu)點,在加電過程中動態(tài)的改變FPGA內(nèi)部邏輯,使得設(shè)備能夠滿足“一機多能”的應(yīng)用需求。

針對日益增長的這幾類應(yīng)用需求,本文提出了一種采用CPU+CPLD的硬件配置系統(tǒng)。CPU用于完成配置過程的控制,程序的加解密存儲和讀取,同時根據(jù)應(yīng)用環(huán)境選擇相應(yīng)的 FPGA程序。CPLD用于完成對FPGA的被動加載接口時序,同時完成對FPGA和DSP的看門狗功能。

FPGA配置系統(tǒng)框圖如圖3所示,在該配置方案下,F(xiàn)PGA采用被動加載方式,本文選擇被動并行配置(FPP)。這種加載電路支持在線加載和SD卡離線加載2種方式,同時支持加載程序的加密保存。原始的數(shù)據(jù)文件經(jīng)過以太網(wǎng)接口或存儲卡 SPI總線送入CPU,CPU根據(jù)命令選擇是否將數(shù)據(jù)文件進行加密,并根據(jù)文件版本編號選擇存儲到板卡Flash相應(yīng)的分片空間中。在完成了Flash程序更新后,每次上電時,CPU可以根據(jù)應(yīng)用環(huán)境動態(tài)的選擇從Flash相應(yīng)的分片中讀取配置數(shù)據(jù),經(jīng)解密處理后通過CPLD對FPGA進行在線動態(tài)加載。CPLD可以實時的監(jiān)控FPGA的加載狀態(tài),若加載過程出錯,由CPLD上報CPU,并重新發(fā)起配置過程。該系統(tǒng)配置方式靈活、可靠,應(yīng)用廣泛,同時具備保密、安全的特點。

圖 3 FPGA配置系統(tǒng)框

2.2 系統(tǒng)配置流程

系統(tǒng)的配置流程圖如圖4所示,整個配置流程由CPU進行控制,下面簡單的介紹配置流程。

圖4 系統(tǒng)配置流程

首先CPU根據(jù)應(yīng)用狀態(tài)從本地程序存儲Flash相應(yīng)的分片中讀取FPGA加載數(shù)據(jù),并對數(shù)據(jù)進行解密。數(shù)據(jù)準(zhǔn)備完成后,查詢CPLD給出的硬件準(zhǔn)備就緒標(biāo)志。若CPU查詢到該標(biāo)志有效,則發(fā)送清空配置緩存命令,對CPLD進行復(fù)位處理,目的在于保證每次配置前清除緩存中的殘留數(shù)據(jù)以提升配置的可靠性。完成以上過程后開始進行配置過程,CPLD先將FPGA的nCONFIG信號置1,接著開始檢測nSTATUS信號,當(dāng)檢測到nSTATUS信號變高后,CPLD通知CPU開始發(fā)送數(shù)據(jù),并將CPU發(fā)送的配置數(shù)據(jù)存放在本地緩存里,考慮到配置效率,CPLD每次取完 1KB的配置數(shù)據(jù)后再給 FPGA的DATA0-DATA7引腳發(fā)送數(shù)據(jù),同時提供和數(shù)據(jù)同步的配置時鐘信號。當(dāng)CPU將配置數(shù)據(jù)發(fā)送完成后,通知CPLD停止接收數(shù)據(jù),CPLD將緩存中剩余的數(shù)據(jù)一起發(fā)送到FPGA。配置過程結(jié)束后,CPLD啟動定時器,延遲一定時間后檢測 FPGA的CONF_DONE引腳是否拉高,如果拉高則配置成功,上報CPU;否則配置失敗,通知CPU重啟配置過程。

3 影響FPGA配置成功的因素分析

在實際的調(diào)試過程中發(fā)現(xiàn),F(xiàn)PGA偶爾會出現(xiàn)配置失敗的情況,其標(biāo)志就是CONF_DONE信號一直為低電平,在這種情況下本系統(tǒng)會重啟配置過程[6],但是在諸如航天、軍工等應(yīng)用背景下,對FPGA加載可靠性提出了很高的要求,下面就從3個方面討論一下影響FPGA上電配置成功率的因素和解決措施。

3.1 PCB信號完整性

信號完整性(SI,Signal Integrity)是指信號在信號線上的質(zhì)量。由于信號在傳輸過程中很容易出現(xiàn)反射、串?dāng)_、延時、過沖、邊沿畸變等現(xiàn)象,導(dǎo)致信號的建立和保持時間不滿足要求,引起誤碼,最終導(dǎo)致配置過程失敗。配置FPGA的幾個關(guān)鍵引腳,DCLK、DATA如果布線的信號完整性不好,就可能導(dǎo)致配置失敗。

3.2 配置時鐘

FPGA的配置時鐘是配置過程的基準(zhǔn),任何FPGA都有配置時鐘的有效范圍[7],允許設(shè)計人員動態(tài)的選擇配置速率,以Altera最新推出的Stratix IV系列芯片為例,支持的最大配置時鐘為125 MHz。曾經(jīng)遇到過配置頻率過低時配置不成功的情況。在加載過程中,理論上講配置時鐘越高,配置時間越短,配置速度越快,但是也給配置過程帶來一定的風(fēng)險。因為時鐘頻率越高,信號的建立和保持時間越難滿足要求,越容易出現(xiàn)時序風(fēng)險。

在本設(shè)計中采取了措施有:①配置速率選定40 Mb/s;②嚴(yán)格采用同步時序設(shè)計。為了保證時鐘跳變沿能夠穩(wěn)定的對數(shù)據(jù)進行采樣,對配置時鐘進行了反向后再提供給 FPGA,示波器上顯示,采樣時鐘基本和數(shù)據(jù)中心對齊。

3.3 環(huán)境溫度

當(dāng)設(shè)備主要應(yīng)用于野外環(huán)境時,設(shè)備的工作環(huán)境相對惡劣,對設(shè)備的在極端溫度下的工作穩(wěn)定性提出了很高的要求。一般芯片都有合理的工作溫度范圍,超過這個范圍芯片工作穩(wěn)定性會受較大影響。在本文設(shè)計中,選用工業(yè)級芯片,保證芯片的工作溫寬。

4 實驗和仿真

為了對本文設(shè)計的配置系統(tǒng)功能和性能進行驗證,根據(jù)圖3搭建了系統(tǒng)驗證平臺。對Altera公司生產(chǎn)的EP3C120F780芯片進行動態(tài)配置,選用的配置文件格式為.rbf的文件,配置文件大小為 1.14 MB,選用的配置時鐘為40 MHz,采用FPP的配置方式,配置時間大致為3 s,根據(jù)配置結(jié)束后的在線示波器采樣的信號時序,F(xiàn)PGA的CONF_DONE引腳拉高,配置成功。

5 結(jié)語

隨著FPGA應(yīng)用的越來越廣泛,對FPGA程序的動態(tài)加載提出了更高的要求,同時要保證加載過程中的安全性、可靠性[8]。本文提出的動態(tài) FPGA加載方案使得FPGA配置過程更加靈活、可靠,在通信電子、保密安全領(lǐng)域具有一定的參考價值。

[1] 張煒,楊虎,張爾揚. 一種靈活的實時FPGA數(shù)據(jù)配置方法[J]. 通信技術(shù),2003(02):23-27.

[2] 姜韜,倪振濤,白立鋒.利用CPLD實現(xiàn)多片F(xiàn)PGA的配置[J]. 信號與信息處理,2008(08):21-24.

[3] ALTERA. Stratix IV Device Handbook[EB/OL].(2009-02-11)[2011-12-15].http://www.altera.com,2009.

[4] XLINX.Virtex-5 FPGA Configuration User Guide[EB/OL].(2008-11-18)[2011-12-15].http://www.xil inx.com, 2008.

[5] 李庭勝. 基于DSP+FPGA系統(tǒng)在線重構(gòu)技術(shù)[J]. 信息安全與保密通信,2005(11):62-64.

[6] 王文華,韓雙麗,張宇,等. 航天應(yīng)用FPGA配置可靠性研究[J]. 空間科學(xué)學(xué)報,2011(01):106-111.

[7] 呂書東,徐光輝. FPGA被動串行配置控制器的研究與實現(xiàn)[J]. 軍事通信技術(shù),2006(04):66-69.

[8] 徐新民,洪波. 改進的 FPP方式 FPGA配置電路及應(yīng)用[J]. 電子技術(shù),2004(11):27-29.

猜你喜歡
時序時鐘芯片
基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
基于Sentinel-2時序NDVI的麥冬識別研究
別樣的“時鐘”
古代的時鐘
有趣的時鐘
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
芯片測試
時鐘會開“花”
多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
DPBUS時序及其設(shè)定方法
河南科技(2014年15期)2014-02-27 14:12:36
禹城市| 行唐县| 望谟县| 达日县| 高邮市| 文昌市| 公安县| 昌平区| 阆中市| 旅游| 吉首市| 巴楚县| 延吉市| 浠水县| 东台市| 彰武县| 富蕴县| 瓮安县| 微山县| 常熟市| 无锡市| 丰宁| 晋州市| 铜川市| 炎陵县| 正定县| 台山市| 台北县| 余江县| 临城县| 仙居县| 万山特区| 襄汾县| 桂阳县| 温宿县| 吕梁市| 营口市| 海伦市| 万荣县| 黄浦区| 哈密市|