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

?

基于CPLD+FLASH通用快速的FPGA配置方案*

2021-03-21 04:34:42李治輝
通信技術(shù) 2021年2期
關(guān)鍵詞:配置文件寄存器時序

袁 君,李治輝,姚 超

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

0 引言

由于FPGA數(shù)據(jù)掉電丟失的問題,F(xiàn)PGA配置是系統(tǒng)設(shè)計中必不可少的部分[1]。隨著FPGA配置文件的增大,配置時間在系統(tǒng)啟動過程中所占的時間比例越來越不可忽視。如果FPGA設(shè)計中包含PCIE、SDIO等從設(shè)備,還必須在CPU啟動掃描設(shè)備前就配置完成并進入工作態(tài),這時FPGA配置的速度尤為關(guān)鍵。實際應用中,每個項目選用的FPGA型號不盡相同,配置的相關(guān)參數(shù)也不同,但是FPGA的從模式配置時序卻基本一致[1]。為了保證足夠的配置速率和配置模塊的快速移植,針對嵌入式系統(tǒng)中CPU+FPGA的典型應用[2],本文提出了一種基于CPLD+FLASH的通用、快速、全國產(chǎn)化的FPGA配置方案。該方案兼顧靈活性和通用性,對實際項目具有極大的參考價值。

1 方案架構(gòu)

方案的系統(tǒng)組成如圖1所示。CPU與CPLD通信一般對速率不敏感,可通過SPI、I2C、LocalBus以及GPIO等簡單接口交互,幾乎每個系統(tǒng)的CPU都滿足條件。CPU不僅可以和CPLD通信,實現(xiàn)接口轉(zhuǎn)換或數(shù)據(jù)處理等邏輯功能,還可以通過CPLD內(nèi)部的SPI FLASH控制器操作外部FLASH。CPLD讀取FLASH內(nèi)的配置參數(shù)和數(shù)據(jù),按照從模式配置接口的時序要求實現(xiàn)FPGA的配置。

圖1 方案原理架構(gòu)

本方案主要有3個優(yōu)點:

(1)通用性強。硬件設(shè)計和CPLD邏輯設(shè)計保持不變,CPU僅僅通過改變FLASH上存儲的數(shù)據(jù)格式,便可以實現(xiàn)不同F(xiàn)PGA芯片的程序配置,能夠快速應用于新項目,縮短項目開發(fā)調(diào)試周期。

(2)配置速度快。CPLD整個配置期間無需CPU干預,而且可以上電后立即啟動配置[3],能夠最大程度地減少配置時間。

(3)靈活性高。支持CPU在線更新FPGA配置文件和配置參數(shù),實時獲取配置狀態(tài)和結(jié)果,方便項目調(diào)試。

本著國產(chǎn)化的產(chǎn)品目標,兼顧成本和性能,設(shè)計中CPLD采用安路公司的ELF2L45。該器件具有4 500個LUT和700 kb的BRAM,足夠?qū)崿F(xiàn)本方案的邏輯功能。FLASH型號選擇兆易創(chuàng)新的GD25Q系列,時鐘頻率高達104 MHz,不同存儲大小的型號能做到設(shè)計兼容。

2 FLASH數(shù)據(jù)存儲格式

當前市面上的主流FPGA(Xilinx、intel、安路、高云等)都支持從串、從并的配置方式,且遵循如圖2所示的配置時序波形。

圖2 FPGA從模式配置典型時序

不同型號的FPGA配置主要有復位脈沖時間T1、等待初始化完成的時間T2、等待時鐘和數(shù)據(jù)輸出的時間T3、配置文件長度L、比特序bs、字節(jié)序Bs、文件加載后DONE拉高前額外需要的CCLK數(shù)量N1、DONE拉高后啟動完成前額外需要的CCLK數(shù)量N2、配置接口數(shù)據(jù)位寬W等變化因素。

根據(jù)上述配置變量,方案中FLASH內(nèi)部存儲的數(shù)據(jù)格式定義如圖3所示。第0個page用于存儲配置過程的變量,可隨著FPGA配置參數(shù)的變化靈活改變。其中,標記定義為常數(shù),用于識別配置參數(shù)起始位置,并預留校驗和字段,用于驗證配置參數(shù)的正確性;文件長度包括配置文件后面的填充數(shù)據(jù);CPLD在填充數(shù)據(jù)輸出期間繼續(xù)輸出時鐘和特定的數(shù)據(jù),保證DONE拉高前FPGA能夠正常進入啟動過程;填充數(shù)據(jù)的最小長度PL可按PL=([N1/8]+1)×W計算。配置接口數(shù)據(jù)位寬W支持1 bit和8 bit兩種,足夠滿足實際應用。

3 CPLD設(shè)計與實現(xiàn)

3.1 原理框圖

如圖4所示,CPLD主要完成與CPU的數(shù)據(jù)通信,實現(xiàn)SPI FLASH控制器和FPGA配置控制等功能。

圖3 FLASH數(shù)據(jù)存儲格式

圖4 CPLD內(nèi)部實現(xiàn)

主要有5個子模塊。第一,CPU通信接口。按照自定義協(xié)議與CPU進行數(shù)據(jù)收發(fā),并進行通道的分流和合流。第二,SPI FLASH控制器,實現(xiàn)CPU和CPLD對外部FLASH的各種命令操作。第三,寄存器讀寫,提供RAM讀寫操作接口。第四,配置控制模塊,負責主動發(fā)起FLASH的讀請求和處理讀返回數(shù)據(jù)。第五,從配置接口,完成FPGA從配置時序的控制。

3.2 SPI FLASH控制器

SPI FLASH控制器支持兩個8 bit的FIFO通道訪問,按數(shù)據(jù)幀的方式仲裁和處理,實現(xiàn)過程如圖5所示。外部CPU實現(xiàn)FLASH的擦除、編程以及讀等操作。FLASH編程后置QE位,使能SPI接口的四線模式。CPLD實現(xiàn)配置期間FLASH數(shù)據(jù)的快速讀取。由于FLASH接口沒有流控,控制器輸入需要做整包處理,保證一幀寫數(shù)據(jù)能夠連續(xù)發(fā)往FLASH。控制器輸出緩存需預留足夠的空間,保證每次的讀數(shù)據(jù)完整不丟失。命令序列控制主要實現(xiàn)與FLASH交互的字節(jié)順序。SPI控制器完成并串轉(zhuǎn)換和SPI總線的時序控制。

圖5 SPI FLASH控制器實現(xiàn)

為優(yōu)化CPLD資源占用,控制器僅支持讀ID、寫使能、讀寫狀態(tài)寄存器、擦除(扇區(qū)擦除、塊擦除、芯片擦除)、單線/四線讀和頁編程[4]命令。圖6是用安路開發(fā)軟件抓取到的FLASH四線讀操作時序。波形中可以看到8 bit位寬檢測碼0xBB11220044、同步字0xAA995566等標志性字段,讀數(shù)據(jù)是四線傳輸,但是命令、地址和dummy都是單線傳輸??紤]到該部分時間開銷,一次操作讀取的數(shù)據(jù)越長效率越高。此外,F(xiàn)LASH的SPI接口時鐘頻率應滿足條件:

圖6 邏輯分析儀捕獲的FLASH四線讀操作波形

3.3 內(nèi)部寄存器

考慮到設(shè)計的靈活性和調(diào)試的便捷性,CPLD內(nèi)部定義以下5個和配置相關(guān)的通用寄存器。

寄存器1:讀FLASH起始page,默認page0。

寄存器2:配置啟動信號,CPLD自清零。

寄存器3:配置結(jié)束標志和配置結(jié)果,包含錯誤狀態(tài)。

寄存器4:配置文件長度,從FLASH中讀取的參數(shù)值。

寄存器5:當前配置已輸出的數(shù)據(jù)長度。

當FLASH上存儲多份配置數(shù)據(jù)時,可通過寄存器1選擇當前配置的版本。如果系統(tǒng)對FPGA上電配置時間有要求,可以修改寄存器2的默認值使能配置啟動。CPLD上電后會立即開始FPGA的配置,不占用CPU的啟動時間。CPU啟動后還可以寫寄存器2觸發(fā)在線配置。CPLD開始配置后自動清零該寄存器。配置過程中,CPLD實時更新寄存器5。CPU任意時刻都可以讀相應的寄存器判斷配置狀態(tài)和進度,實時獲取配置結(jié)果,定位配置失敗原因,在項目調(diào)試和問題排查中極為方便。

3.4 配置流程

根據(jù)上述原理,CPLD的配置邏輯按照圖7的流程圖設(shè)計。上電自動啟動配置或者CPU命令啟動配置都會觸發(fā)該流程。每次配置CPLD先主動讀FLASH的控制參數(shù)page,獲取本次配置所需要的參數(shù),隨后只要緩存空間足夠,就繼續(xù)讀取FLASH的配置數(shù)據(jù),且地址依次遞增直到累計讀取長度達到配置參數(shù)L。讀返回數(shù)據(jù)寫入一個位寬8 bits、深度1 024 words的異步FIFO中。寫入前需根據(jù)bs進行比特序調(diào)整,根據(jù)W進行位寬轉(zhuǎn)換。從串模式下,F(xiàn)IFO中只有最低比特有效。異步FIFO采用showahead模式,初始化完成再等待T3時間后開始讀FIFO。只要FIFO非空即讀,同時將讀數(shù)據(jù)輸出到DATA。讀時鐘取反后輸出到DCLK,保證時鐘上升沿處于數(shù)據(jù)最佳采樣窗口。FIFO空時,DCLK和數(shù)據(jù)都輸出低電平。配置數(shù)據(jù)輸出完成后檢測到DONE拉高,再根據(jù)配置參數(shù)N2繼續(xù)輸出時鐘,然后結(jié)束本次配置。無論配置是否成功,CPLD都會將配置結(jié)果記錄在寄存器中。

圖7 CPLD內(nèi)部狀態(tài)跳轉(zhuǎn)示意

4 實測與分析

本文以FPGA型號為復旦微電子公司的JFM7K325T為例[5],配置文件約11 MB,F(xiàn)LASH接口的SPI時鐘頻率fQSPI為50 MHz,每幀讀取一頁,配置接口時鐘頻率fDCLK為25 MHz,數(shù)據(jù)位寬W為8 bit。

圖8 邏輯分析儀捕獲的CPLD配置過程波形

CPLD完成一次成功的配置需經(jīng)歷圖8中的5個步驟。其中,cfg_timer記錄配置FPGA所消耗的時間,波形中顯示的是十進制;計數(shù)的時鐘為25 MHz;CPLD從啟動配置到DONE管腳拉高大約需要522 ms;CPU完全能在BOIS階段掃描到FPGA實現(xiàn)的從設(shè)備,滿足項目對配置時間的要求。如果提高SPI時鐘速率、配置位寬、配置時鐘頻率和每幀從FLASH讀取的數(shù)據(jù)長度等,配置時間還可進一步縮短。

5 結(jié)語

針對CPU+FPGA的應用架構(gòu),提出一種基于CPLD+FLASH的FPGA配置方案。該方案的硬件和邏輯設(shè)計通用性高,可以實現(xiàn)模塊化,便于項目移植且配置速率高,滿足系統(tǒng)啟動要求。CPU還可以靈活更新配置內(nèi)容,調(diào)試和升級方便。該方案具有可行性,已成功應用于多個實際項目,為工程實踐提供了良好的借鑒。

猜你喜歡
配置文件寄存器時序
基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
提示用戶配置文件錯誤 這樣解決
基于Sentinel-2時序NDVI的麥冬識別研究
Lite寄存器模型的設(shè)計與實現(xiàn)
計算機應用(2020年5期)2020-06-07 07:06:44
搭建簡單的Kubernetes集群
互不干涉混用Chromium Edge
忘記ESXi主機root密碼怎么辦
分簇結(jié)構(gòu)向量寄存器分配策略研究*
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
DPBUS時序及其設(shè)定方法
河南科技(2014年15期)2014-02-27 14:12:36
民权县| 齐河县| 璧山县| 灵宝市| 伊春市| 兴文县| 汝州市| 唐山市| 嵩明县| 章丘市| 申扎县| 南澳县| 东乡族自治县| 元氏县| 泰来县| 辽宁省| 静安区| 双鸭山市| 驻马店市| 丹棱县| 当阳市| 凤阳县| 库伦旗| 通榆县| 伊通| 遵义市| 怀化市| 铁岭县| 且末县| 海口市| 台州市| 哈巴河县| 旬邑县| 巴林右旗| 道真| 涡阳县| 咸丰县| 沙洋县| 开封市| 顺昌县| 巴林右旗|