TMS320C61416控制FPGA數據加載設計(一)
系統采用2片Xilinx Virtex-4系列的600萬(wàn)門(mén)的FPGA XC4VLX60。主MCU是TI公司高性能定點(diǎn)處理器TMS320C6416,對外有2個(gè)EMIF總線(xiàn)接口,分別是64位寬EMIFA和16位寬EMIFB。EMIFB上掛有8位8MB的Flash和16位CPLD:Flash做2片FPGA的BIN文件保存,之前由仿真器燒寫(xiě);CPLD用于2片FPGA地址譯碼和DSP與FPGA配置部分的邏輯接口。整個(gè)數據流程是在DSP上電啟動(dòng)后,Bootloader自行引導用戶(hù)程序運行。該程序負責由EMIFB總線(xiàn)搬移Flash空間中BIN文件,通過(guò)CPLD分別對2片FPGA進(jìn)行配置加載。硬件系統拓撲圖如圖2所示。
3 軟件設計
軟件包括3部分:引導Bootloader代碼,加載FPGA用戶(hù)程序以及接口部分的CPLD Verilog代碼。
3.1 DSP Bootloader
本系統中目標板處于FPGA調試后期,需要固化其加載程序。整板上電后,要求脫離仿真器自行加載FPGA,因此這里采用DSP的EMIF BooT方式。它是由DSP上電復位后,以默認ROM時(shí)序通過(guò)EDMA自行搬移BCE1的ROM空間前1 KB內容到片內,在其0x0地址開(kāi)始運行。
一般由C編寫(xiě)的程序代碼長(cháng)度都遠大于1 KB,如果只是純粹由DSP搬移Flash前1 KB空間,這樣便會(huì )丟失數據,程序無(wú)法正常運行。這里采用由匯編語(yǔ)言寫(xiě)的一個(gè)兩次搬移的Bootloader程序,來(lái)引導較大的用戶(hù)程序。使用匯編語(yǔ)言是因為其代碼效率高,代碼長(cháng)度短(本系統中只有256字節)。兩次搬移是因為第一次DSP自行搬移后的Bootloader會(huì )占用片內的0x0地址前1 KB空間,與下一步的用戶(hù)程序0x0地址拷貝沖突(中斷向量表必須放在0x0地址,否則會(huì )丟失中斷跳轉的絕對地址),且運行中的Bootloader不能覆蓋自身。所以把拷貝用戶(hù)程序的那部分代碼放在片內較底端運行,騰出了用戶(hù)空間的0x0地址。最后整體拷貝結束后,Bootloader再跳轉到用戶(hù)程序入口地址c_int00運行。
評論