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

?

基于EMIF總線的FPGA動態(tài)配置方案設(shè)計與實現(xiàn)

2020-04-01 20:22:17于長海
計算機與網(wǎng)絡(luò) 2020年21期

于長海

摘要:提出一種FPGA的動態(tài)配置方案,方案提供了一種FPGA芯片的Slave SelectMAP配置方式,用DSP芯片作為FPGA的外部配置控制器,利用EMIF總線完成配置數(shù)據(jù)和時鐘信號的輸出,利用DSP的部分IO管腳完成FPGA相關(guān)配置信號的控制,實現(xiàn)了對于FPGA配置文件的靈活加載和動態(tài)重構(gòu)功能。對于FPGA與DSP芯片的組合,設(shè)計中FPGA的配置方式給出一種實用化的高性能解決方法,對于實際工程應(yīng)用具有重要的參考價值。

關(guān)鍵詞:FPGA動態(tài)配置;EMIF總線;DSP;Slave SelectMAP

中圖分類號:TP393文獻標(biāo)志碼:A文章編號:1008-1739(2020)21-64-5

0引言

FPGA芯片的配置分為主串、主并、從串、從并及JTAG等方式。一般工程前期設(shè)計時,F(xiàn)PGA芯片都采用JTAG燒寫的方式為主,這樣可以和主機進行互動,方便調(diào)試和仿真工作[1]。設(shè)計實現(xiàn)后可外接Flash等非易失性存儲芯片,上電啟動時FPGA主動讀取芯片中的配置文件,完成自身的配置和初始化工作。這樣的配置方式需要硬件上額外增加Flash等存儲芯片支持,另外,需要用主機配合JTAG進行配置文件的燒寫,每次啟動只能加載固定的配置文件。在通信系統(tǒng)信號處理設(shè)計方案中,又常常將FPGA與DSP芯片一起組合設(shè)計,采用EMIF(External Memory Interface)總線進行數(shù)據(jù)交互,實際應(yīng)用中存在芯片載荷功能動態(tài)重構(gòu)的需求[2]。傳統(tǒng)外接Flash等存儲芯片的配置方式很難完成FPGA的在線動態(tài)重配置和靈活加載的功能需求,且硬件上需要額外的儲存資源支持。為了節(jié)約存儲芯片等硬件資源,同時提高FPGA芯片配置的靈活性,滿足動態(tài)重構(gòu)的功能需求,設(shè)計了一種Slave SelectMAP的FPGA芯片配置方案[3]。

1方案總體設(shè)計

方案設(shè)計時考慮了硬件資源的復(fù)用性,利用FPGA與DSP之間EMIF總線的數(shù)據(jù)和寫信號完成FPGA的配置數(shù)據(jù)和時鐘信號的控制[4]。利用DSP芯片的IO管腳實現(xiàn)FPGA相關(guān)配置信號的控制,利用DSP芯片的本地Flash完成FPGA配置文件的存儲,利用DSP芯片內(nèi)的執(zhí)行軟件實現(xiàn)FPGA配置文件的Flash讀取和動態(tài)配置功能,實現(xiàn)了硬件資源的節(jié)約,F(xiàn)PGA芯片的靈活配置及動態(tài)可重構(gòu)等功能需求總體方案分為硬件設(shè)計和軟件設(shè)計2個部分。

1.1硬件設(shè)計

方案設(shè)計時FPGA硬件采用Xilinx公司的7系列芯片XC7K410T,外部配置主控制器DSP采用TI的TMS320C6672實現(xiàn)。

Xilinx對于7系列FPGA的Slave SelectMAP配置方式的硬件設(shè)計要求如圖1所示,配置需要數(shù)據(jù)總線、片選信號、讀寫信號和時鐘信號,故方案設(shè)計時,外部處理器或微控制器需要按照FPGA的配置要求提供對應(yīng)的控制和數(shù)據(jù)信號接入,在特定的時序要求下完成配置[5]。

TMS320C6672芯片的EMIF總線是一個DSP的外部存儲接口,其信號組成結(jié)構(gòu)如圖2所示,主要由數(shù)據(jù)、地址、片選、字節(jié)使能、寫信號、讀信號、等待信號和讀寫控制信號組成[6]。綜合考慮FPGA端的配置時序需求,利用EMIF總線的16 bit數(shù)據(jù)線作為FPGA配置數(shù)據(jù)信號,因為TMS320C6672的EMIF總線沒有時鐘信號,設(shè)計時利用EMIF總線的寫信號作為FPGA的配置時鐘,其他EMIF接口信號只作為正常通信使用,不參與FPGA配置功能的實現(xiàn)。

綜合以上XC7K410T芯片的配置硬件需求與TMS320C6672芯片EMIF總線組成情況,硬件總體設(shè)計結(jié)構(gòu)如圖3所示。DSP端的EMIF總線數(shù)據(jù)和寫信號分別連接FPGA配置數(shù)據(jù)和時鐘管腳,其余FPGA配置需要的控制信號和狀態(tài)信號與DSP的IO管腳連接。根據(jù)FPGA端配置的時序要求,完成相應(yīng)信號的控制和狀態(tài)讀取,F(xiàn)PAG的配置文件存儲在DSP端本地Flash之中,配置工作啟動后由DSP完成文件的讀取和FPGA端的寫入。

1.2軟件設(shè)計

FPGA配置主控軟件在DSP芯片中運行,采用C語言實現(xiàn),CCS開發(fā)環(huán)境中進行設(shè)計。針對方案所要實現(xiàn)的功能,軟件的設(shè)計分為Flash配置文件讀取、EMIF總線接口時序配置、FPGA配置信號管理和FPGA配置文件寫4個模塊,總體結(jié)構(gòu)如圖4所示。

主控軟件主要完成對于FPGA配置文件的讀取、EMIF總線時序的配置、FPGA配置信號的時序管理及FPGA端配置文件的寫入等工作的流程化控制,軟件系統(tǒng)各個模塊的功能如下:

①Flash配置文件讀取模塊主要完成對于FPGA配置文件的讀取相關(guān)工作,包括動態(tài)配置文件的識別和獲取,F(xiàn)lash數(shù)據(jù)的讀取和緩存等;②EMIF總線時序配置模塊主要完成EMIF總線的時序配置,包括數(shù)據(jù)和寫信號的產(chǎn)生周期控制,完成FPGA加載時間的控制功能;③FPGA配置文件寫模塊主要完成配置文件的EMIF寫入,按照配置的時序要求,在指定時刻完成配置文件的數(shù)據(jù)時鐘輸出;④FPGA配置信號管理模塊主要完成FPGA相關(guān)的配置信號控制和管理功能,包括IO管腳方向、電平狀態(tài)和配置時序的控制等。

2方案實現(xiàn)流程

方案主要實現(xiàn)的功能是通過外部DSP芯片完成FPGA的動態(tài)配置,給出Slave SelectMAP配置模式的一種實現(xiàn)方式。由于配置所需的數(shù)據(jù)、時鐘和控制信號由DSP的EMIF總線數(shù)據(jù)、寫信號和IO管腳實現(xiàn),具體實現(xiàn)時主要流程包含F(xiàn)PGA的配置時序分析、EMIF總線時序的控制、控制信號的接入和配置、配置數(shù)據(jù)格式實現(xiàn)和DSP端主控軟件的實現(xiàn)。

2.1 FPGA的配置時序分析

Xilinx公司給出的7系列FPGA芯片Slave SelectMAP配置方式下各個配置信號的時序關(guān)系圖,如圖5所示。從圖中可以看出配置功能實現(xiàn)過程中各個信號的邏輯以及依賴關(guān)系,配置開始時首先拉低PROGRAM_B信號至少一個時鐘周期,然后判斷INT_B的信號電平狀態(tài),若INT_B為低電平則表示FPGA芯片內(nèi)部還沒準(zhǔn)備完成,需要繼續(xù)等待,直到INT_B信號為高,表示FPGA芯片可以進行配置工作。配置寫數(shù)據(jù)的過程中,首先應(yīng)拉低RDWR_B信號,然后等待一個時鐘周期拉低CSI_B信號,此時可以進行數(shù)據(jù)的寫入工作,等待配置數(shù)據(jù)全部寫入完成后,需要判斷DONE信號的電平狀態(tài),若DONE信號拉高說明FPGA內(nèi)部配置完成,否則表示FPGA沒有配置完成。

DONE信號拉高后仍需要提供幾個時鐘周期的時鐘信號,因為FPGA內(nèi)部需要繼續(xù)進行初始化的操作,然后可以拉高CSI_B信號,接著拉高RDWR_B信號,此時整個FPGA芯片的配置工作完成。從配置時序圖可知,部分信號的先后順序和持續(xù)時間需要進行嚴格的控制,只有滿足特定的時序關(guān)系才能完成FPGA芯片的配置工作。因此DSP芯片的IO管腳和EMIF總線的部分信號需要根據(jù)時序要求嚴格進行設(shè)計。

2.2 EMIF總線的時序控制

根據(jù)Xilinx官方Slave SelectMAP模式的配置時鐘與數(shù)據(jù)關(guān)系的要求,配置時鐘低電平持續(xù)時間至少是所提供的時鐘最小低電平時間與數(shù)據(jù)產(chǎn)生到時鐘上升沿建立時間的最大值。配置時鐘的高電平持續(xù)時間至少是所提供時鐘高電平最小時間與時鐘上升沿到數(shù)據(jù)保持的最小時間的最大值。

TMS320C6672芯片的EMIF總線寫時序如圖6所示,一個16 bit的數(shù)據(jù)寫操作主要包含setup,strobe,hold三個階段,3個階段的時間參數(shù)可以由DSP進行配置,是EMIF內(nèi)部時鐘周期的整數(shù)倍。

本方案設(shè)計時選用的TMS320C6672芯片EMIF總線的內(nèi)部時鐘為主頻的固定分頻值208 MHz,時鐘周期約為4.8 ns,Write setup參數(shù)設(shè)置為3,Write strobe參數(shù)設(shè)置為4,Write hold參數(shù)設(shè)置為3。本方案設(shè)計時由于此款DSP芯片EMIF總線無時鐘信號,利用EMIFWE信號作為FPGA的配置時鐘,故時鐘周期為Write setup,Write strobe,Write hold的總和,也就是(3+4+3)×4.8 ns=48 ns,加載數(shù)據(jù)速率為333.3 Mbit/s。

2.3控制信號的接入和配置

根據(jù)Xilinx對于7系列FPGA的Slave SelectMAP方式配置硬件需求及TMS320C6672芯片實際硬件接口組成情況,綜合考慮設(shè)計如圖7所示的硬件詳細配置信號連接關(guān)系。配置數(shù)據(jù)采用DSP芯片EMIF接口的16 bit數(shù)據(jù)信號連接,配置時鐘信號由EMIF接口的寫信號接入,片選信號由DSP的IO0管腳連接,讀寫控制信號由DSP的IO1管腳連接,PROGRAM_B信號由DSP的IO2管腳連接,INT_B信號由DSP的IO3管腳連接,DONE信號由DSP的IO4管腳連接。其中,數(shù)據(jù)管腳是雙向連接,時鐘、片選、讀寫控制和PROGRAM_B信號由DSP輸出到FPGA端,INT_B與DONE信號由FPGA輸入到DSP端。配置功能啟動時,DSP端主動產(chǎn)生數(shù)據(jù)和時鐘信號,并通過片選、讀寫控制和PROGRAM_B信號完成關(guān)鍵信號的配置,通過INT_B查詢FPGA的準(zhǔn)備配置狀態(tài),通過DONE信號的狀態(tài)查詢FPGA配置工作完成情況,通過以上所有管腳的有效配合完成FPGA芯片的配置功能。

2.4 FPGA配置數(shù)據(jù)格式實現(xiàn)

Xlinx公司7系列FPGA芯片Slave SelectMAP模式下配置的數(shù)據(jù)格式要求,如圖8所示。本方案設(shè)計時TMS320C6672的EMIF總線數(shù)據(jù)為16位,故遵循圖中x16的數(shù)據(jù)bit序,方案設(shè)計時DSP芯片采用小端模式,故在進行bit序轉(zhuǎn)換時,首先進行大小端字節(jié)序變換,然后再進行每個字節(jié)內(nèi)bit序反轉(zhuǎn),配置文件中每隔16 bit數(shù)據(jù)都要進行轉(zhuǎn)換,分別發(fā)送到EMIF總線之中。是簡化DSP端軟件執(zhí)行過程,可以選擇存儲前進行FPGA配置文件bit轉(zhuǎn)換,此時DSP配置可以省去bit轉(zhuǎn)換過程。

2.5 DSP端主控軟件的實現(xiàn)

主控軟件運行在DSP芯片中,完成各個控制信號和配置數(shù)據(jù)的產(chǎn)生、數(shù)據(jù)格式轉(zhuǎn)換以及配置時序的控制等工作,其實現(xiàn)流程如圖9所示。根據(jù)Xilinx公司提供的7系列FPGA配置時序要求,DSP的軟件首先進行相關(guān)信號及接口的初始化工作,如配置DSP芯片運行主頻、EMIF總線的時序參數(shù)和配置信號IO管腳的方向和電平狀態(tài)等;其次,在所有信號初始化完成的基礎(chǔ)上,按時序要求,拉低PROGRAM_B信號若干時鐘周期后再拉高,清除FPGA內(nèi)已經(jīng)存在的配置信息;接著輪詢INT_B管腳的電平狀態(tài),直到判定為高電平,表示FPGA芯片可以繼續(xù)進行配置操作;接著拉低RDWR_B和CSI_B管腳,進行Flash內(nèi)指定地址的配置文件讀取和bit序轉(zhuǎn)換操作;繼而將轉(zhuǎn)換后的數(shù)據(jù)通過EMIF總線輸出給FPGA;在將所有的配置文件讀取、轉(zhuǎn)換和寫出后,輪詢DONE管腳的電平狀態(tài),直到其輸出為高電平表示FPGA芯片配置成功;繼續(xù)輸出幾個時鐘,等待FPGA內(nèi)部初始化完成后,將CSI_B和RDWR_B管腳拉高,整個配置工作完成。

3方案測試結(jié)果

針對方案所要實現(xiàn)的FPGA芯片動態(tài)配置功能,對各個實現(xiàn)環(huán)節(jié)及相關(guān)參數(shù)進行配置和驗證。實際測試硬件環(huán)境中TMS320C6672芯片的EMIF和IO管腳分別連接XC7K410T的配置數(shù)據(jù)、時鐘和相關(guān)控制和狀態(tài)信號之上,F(xiàn)lash芯片掛接在DSP端,如圖10所示。

軟件配置上,DSP運行主頻為1.25 GHz,EMIF接口時鐘為208 MHz。配置連接CSI_B、RDWR_B和PROGRAM_B信號的IO管腳為輸出,INT_B和DONE信號連接的IO管腳為輸入。配置EMIF接口Write setup,Write strobe,Write hold參數(shù)分別為3,4,3個EMIF時鐘周期,配置仿真EMIF傳輸時序如圖11所示。

FPGA使用一個閃燈程序進行測試,配置文件存儲在DSP的本地Flash中。上電啟動,DSP首先完成自身及配置信號的初始化,然后按照Xilinx公司要求的7系列FPGA的Slave SelectMAP模式配置時序,控制各個信號的狀態(tài)和時序,讀取Flash的數(shù)據(jù)進行bit序轉(zhuǎn)換后寫入到FPGA芯片之中,DONE信號拉高后,繼續(xù)輸入幾個時鐘周期,可以看到此時FPGA端的燈開始閃爍,代表配置工作已經(jīng)成功。DSP端可以接收上位機命令,實現(xiàn)配置文件的靈活加載和動態(tài)重構(gòu)功能。

4結(jié)束語

本文研究實現(xiàn)了一種FPGA芯片Slave SelectMAP模式的配置方案,該方案利用DSP作為配置主控制器,利用EMIF總線的數(shù)據(jù)、寫信號以及部分IO管腳分別完成FPGA芯片配置數(shù)據(jù)、時鐘和控制狀態(tài)信號的控制,利用DSP中運行的主控軟件實現(xiàn)加載流程的控制。省去了FPGA端存儲芯片的硬件資源,且可以實現(xiàn)FPGA的靈活加載和動態(tài)重構(gòu)功能,為DSP與FPGA組合的通信系統(tǒng)信號處理工程實際提供一種FPGA高效配置方案,該設(shè)計思想也可以應(yīng)用于其他DSP與FPGA組合設(shè)計中,對于需要在線載荷重構(gòu)的工程應(yīng)用具有一定的參考價值。

參考文獻

[1]孫少華,屈盼讓,韓佳瑋.基于JTAG協(xié)議的FPGA在線加載[J].航空計算技術(shù),2019,49(6):89-91,95.

[2]陳勇.基于FPGA+DSP彈載SAR信號處理系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(9):101-105.

[3]文發(fā),尹君.基于CPU控制的FPGA配置文件遠程更新方法[J].控制與信息技術(shù),2019(3):56-59,69.

[4]孔石,王春雷.基于EMIF16模塊的TMS320C6678與FPGA接口設(shè)計與實現(xiàn)[J].航空兵器,2015(1):35-38.

[5] 7 Series FPGAs Configuration User Guide[R].Xilinx.USA. 2018.

[6] External Memory Interface (EMIF16) for KeyStone Devices Users Guide[R]. Texas Instruments.USA.2011.

怀来县| 镇平县| 甘孜县| 潮州市| 黑河市| 清镇市| 阿城市| 抚州市| 昌都县| 石林| 明水县| 恩施市| 隆昌县| 五指山市| 宜良县| 霍城县| 满城县| 城步| 沙田区| 贡嘎县| 通城县| 峡江县| 哈尔滨市| 河津市| 德钦县| 兴安县| 周口市| 克什克腾旗| 泰来县| 西华县| 永登县| 平遥县| 孝感市| 凤山市| 陈巴尔虎旗| 乐业县| 安仁县| 南部县| 越西县| 广饶县| 丹东市|