• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-04-01 20:22:17于長(zhǎng)海

      于長(zhǎng)海

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

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

      中圖分類(lèi)號(hào):TP393文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2020)21-64-5

      0引言

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

      1方案總體設(shè)計(jì)

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

      1.1硬件設(shè)計(jì)

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

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

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

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

      1.2軟件設(shè)計(jì)

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

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

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

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

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

      2.1 FPGA的配置時(shí)序分析

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

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

      2.2 EMIF總線的時(shí)序控制

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

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

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

      2.3控制信號(hào)的接入和配置

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

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

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

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

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

      3方案測(cè)試結(jié)果

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

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

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

      4結(jié)束語(yǔ)

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

      參考文獻(xiàn)

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

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

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

      [4]孔石,王春雷.基于EMIF16模塊的TMS320C6678與FPGA接口設(shè)計(jì)與實(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.

      重庆市| 两当县| 东方市| 十堰市| 南部县| 山东| 河东区| 本溪| 安图县| 永年县| 东阳市| 巴林左旗| 砀山县| 白山市| 阜南县| 高台县| 潜山县| 甘孜| 涞源县| 拉萨市| 沂水县| 扎兰屯市| 沈丘县| 岗巴县| 高密市| 漳州市| 舒兰市| 全州县| 吉安县| 新龙县| 江阴市| 清水县| 濉溪县| 淅川县| 绥宁县| 龙江县| 韶关市| 锡林浩特市| 塘沽区| 汾阳市| 吕梁市|