Leon3的接口配置設(shè)計(jì)
該配置邏輯模塊完成以下幾方面的功能:啟動(dòng)FPGA1配置時(shí)序;向FPGA1內(nèi)部傳入配置數(shù)據(jù);監(jiān)測FPGA1是否正常配置。使用嵌入式CPU軟核配置FPGA1的流程如下:
?、賳?dòng)FPGA1的配置時(shí)序。CPU地址線選中FPGA2內(nèi)部編程寄存器,數(shù)據(jù)線輸出FPGA1配置控制信號(hào)CS、WRITE和PROGRAM,將CS和WRITE置低,PROGRAM置高。
?、诒O(jiān)測FPGA的配置狀態(tài)。CPU地址線選中FPGA2內(nèi)部輸入寄存器,接收FPGA1的輸出信號(hào)INIT,若其值為高,那么CPU開始發(fā)出FPGA1的配置數(shù)據(jù),否則持續(xù)檢查INIT的值,直到其值為1。
?、巯騀PGA1內(nèi)傳送配置數(shù)據(jù)。CPU地址線選中FPGA2內(nèi)部配置寄存器,數(shù)據(jù)線Data[15:8]輸出FPGA1的配置數(shù)據(jù),Data[0]產(chǎn)生配置時(shí)鐘CCLK,在CCLK的上升沿FPGA1接收配置數(shù)據(jù)。配置數(shù)據(jù)傳送分兩步,首先Data[0]置0,然后Data[0]置1。CCLK產(chǎn)生一個(gè)上升沿,在此過程中Data[15:8]數(shù)據(jù)保持不變。重復(fù)此過程,CPU輸出FPGA1全部配置數(shù)據(jù)。
?、軝z查FPGA1是否配置成功。FPGA1的配置數(shù)據(jù)被傳送至結(jié)束時(shí),CPU地址線選中FPGA2內(nèi)部輸入寄存器,接收FPGA1的輸出信號(hào)DONE。若其值為高時(shí),說明FPGA1配置成功,否則需要重新配置FPGA1。
SelectMap接口配置方式下FPGA的時(shí)序如圖3所示。
3 仿真及分析
FPGA2采用Xilinx公司的Virtex-5 XC5VFX70T,SelectMap接口控制IP核采用VHDL語言實(shí)現(xiàn),嵌入式CPU軟核采用的是歐空局開發(fā)的Lcon3軟核。在XilinxISE 10.1平臺(tái)下完成對Lcon3 CPU軟核處理器、外圍控制器及自定義SelectMap接口控制IP核集成的設(shè)計(jì)、綜合,利用Modelsim SE6.0完成仿真。
SelectMap配置仿真波形如圖4所示。由于FPGA1(Virtex-5 XC5VSX95T)的配置數(shù)據(jù)較大,仿真出完整的配置過程是不現(xiàn)實(shí)的,圖中用5個(gè)字節(jié)的配置數(shù)據(jù)來代替FPGA的完整配置過程。為了把配置寄存器數(shù)據(jù)Data和并行配置的8位數(shù)據(jù)相對照,分離出了Data的高8位Data[15:8]。從圖中可以看出,在一次完整的配置過程中,CS和WRITE為低,PROGRAM為高,當(dāng)監(jiān)測到INIT為高時(shí)發(fā)出配置數(shù)據(jù),在配置時(shí)鐘CCLK的上升沿接收8位配置數(shù)據(jù),DONE信號(hào)為高電平指示配置完成。該仿真結(jié)果和SelectMap配置方式的FPGA時(shí)序一致,證明了本設(shè)計(jì)的正確性及可行性。
結(jié)語
通過使用嵌入式Lcon3 CPU軟核和FPGA及開發(fā)板上的存儲(chǔ)器件,實(shí)現(xiàn)了對Xilinx公司的FPGA進(jìn)行SelectMap配置的一種有效的方案。該方法除了可以完成FPGA芯片的配置外,更重要的是可以靈活地在線升級(jí)系統(tǒng)、修改和調(diào)試FPGA程序。如果存儲(chǔ)空間夠大,可以存儲(chǔ)不同功能的FPGA程序代碼,這樣就可根據(jù)實(shí)際情況來加載不同代碼,甚至通過通信接口也可以方便地實(shí)現(xiàn)遠(yuǎn)程下載代碼和更新系統(tǒng),使整個(gè)系統(tǒng)可在線配置,增強(qiáng)了系統(tǒng)的適用性和靈活性。
評(píng)論