新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > TMS320C61416控制FPGA數據加載設計(一)

        TMS320C61416控制FPGA數據加載設計(一)

        作者: 時間:2013-09-25 來源:網絡 收藏
        PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">  2 硬件實現

          系統采用2片Xilinx Virtex-4系列的600萬門的 XC4VLX60。主MCU是TI公司高性能定點處理器TMS320C6416,對外有2個EMIF總線接口,分別是64位寬EMIFA和16位寬EMIFB。EMIFB上掛有8位8MB的Flash和16位CPLD:Flash做2片的BIN文件保存,之前由仿真器燒寫;CPLD用于2片地址譯碼和DSP與FPGA配置部分的邏輯接口。整個數據流程是在DSP上電啟動后,Bootloader自行引導用戶程序運行。該程序負責由EMIFB總線搬移Flash空間中BIN文件,通過CPLD分別對2片FPGA進行配置加載。硬件系統拓撲圖如圖2所示。

        TMS320C61416控制FPGA數據加載硬件框圖

          3 軟件設計

          軟件包括3部分:引導Bootloader代碼,加載FPGA用戶程序以及接口部分的CPLD Verilog代碼。

          3.1 DSP Bootloader

          本系統中目標板處于FPGA調試后期,需要固化其加載程序。整板上電后,要求脫離仿真器自行加載FPGA,因此這里采用DSP的EMIF BooT方式。它是由DSP上電復位后,以默認ROM時序通過EDMA自行搬移BCE1的ROM空間前1 KB內容到片內,在其0x0地址開始運行。

          一般由C編寫的程序代碼長度都遠大于1 KB,如果只是純粹由DSP搬移Flash前1 KB空間,這樣便會丟失數據,程序無法正常運行。這里采用由匯編語言寫的一個兩次搬移的Bootloader程序,來引導較大的用戶程序。使用匯編語言是因為其代碼效率高,代碼長度短(本系統中只有256字節)。兩次搬移是因為第一次DSP自行搬移后的Bootloader會占用片內的0x0地址前1 KB空間,與下一步的用戶程序0x0地址拷貝沖突(中斷向量表必須放在0x0地址,否則會丟失中斷跳轉的絕對地址),且運行中的Bootloader不能覆蓋自身。所以把拷貝用戶程序的那部分代碼放在片內較底端運行,騰出了用戶空間的0x0地址。最后整體拷貝結束后,Bootloader再跳轉到用戶程序入口地址c_int00運行。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 墨江| 辽阳县| 通化县| 彭水| 甘南县| 西城区| 萍乡市| 兴义市| 五华县| 光泽县| 奉贤区| 秦皇岛市| 麟游县| 长岛县| 正蓝旗| 利川市| 唐海县| 建瓯市| 武清区| 会同县| 武邑县| 龙游县| 聂拉木县| 砀山县| 高州市| 阿拉尔市| 孝义市| 石狮市| 宾阳县| 邵阳县| 玛多县| 景洪市| 富宁县| 泸西县| 兴海县| 梓潼县| 博爱县| 闽清县| 根河市| 合水县| 临沭县|