新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用ATmega32單片機(jī)對(duì)FPGA進(jìn)行配置

采用ATmega32單片機(jī)對(duì)FPGA進(jìn)行配置

作者: 時(shí)間:2013-12-12 來(lái)源:網(wǎng)絡(luò) 收藏

配置文件

Altera公司的開(kāi)發(fā)工具Quartus II和MAXPlus II可生成多種配置文件,包括sof、pof、hex、rbf、ttf等。該配置方案中采用的是rbf文件,rbf文件為二進(jìn)制文件,包含了全部配置數(shù)據(jù),1字節(jié)的rbf數(shù)據(jù)包含8bit的配置數(shù)據(jù),配置時(shí)最低位先由低位到高位依次裝入。

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

使用對(duì)FPGA的設(shè)計(jì)關(guān)鍵是軟件設(shè)計(jì)。在雙任務(wù)配置中,兩個(gè)任務(wù)的配置數(shù)據(jù)分別存放于不同起始地址的連續(xù)存儲(chǔ)器區(qū)域中。上電復(fù)位后,進(jìn)入按鍵查詢狀態(tài),檢測(cè)到按鍵按下后,從相應(yīng)起始地址中讀出數(shù)據(jù)并對(duì)FPGA進(jìn)行配置。配置過(guò)程按照PS方式的時(shí)序要求進(jìn)行,配置完成后重新進(jìn)入按鍵查詢狀態(tài)??刂瞥绦蛄鞒虉D如圖3所示。

采用ATmega32單片機(jī)對(duì)FPGA進(jìn)行配置
圖3 控制程序流程圖

在雙任務(wù)配置中,兩個(gè)任務(wù)的配置數(shù)據(jù)分別存放于指定的地址中,由引導(dǎo)程序從指定地址中讀出數(shù)據(jù)并對(duì)FPGA進(jìn)行配置。引導(dǎo)程序和rbf文件(配置數(shù)據(jù))的合并是軟件設(shè)計(jì)的關(guān)鍵,以下詳述其處理過(guò)程。

(1) 將引導(dǎo)程序在ICCAVR下編譯并生成mcu.hex,hex文件格式是由Intel公司定義的,是按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié),所有數(shù)據(jù)使用16進(jìn)制數(shù)字表示. 以下是一個(gè)例子。

:10008000AF5 F67F0602703E0322CFA92007780C361

:1000900089001C6B7EA7CA9200 FE10D2AA00477D81

:0B00A00080FA92006F3600 C3A00076CB

:00000001FF

第一行,“:”符號(hào)表明記錄的開(kāi)始。后面的兩個(gè)字符表明記錄的長(zhǎng)度,這里是10h。后面的四個(gè)字符給出調(diào)入的地址,這里是0080h。后面的兩個(gè)字符表明記錄的類(lèi)型后面則是真正的數(shù)據(jù)記錄, 最后兩位是校驗(yàn)和檢查,最后一行是結(jié)束串,總寫(xiě)成這樣;

(2)將fpga1.rbf改為fpga1.bin,使用“超級(jí)單片機(jī)工具”將fpga1.bin轉(zhuǎn)換成起始地址為0x0273(mcu.hex的數(shù)據(jù)長(zhǎng)度)的fpga1.hex;

(3)將fpga2.rbf改為fpga1.bin,使用“超級(jí)單片機(jī)工具”將fpga2.bin轉(zhuǎn)換成起始地址為0x3bd7(mcu.hex和fpga1.hex的數(shù)據(jù)長(zhǎng)度和)的fpga2.hex;

(4)將刪除結(jié)束串后的mcu.hex和fpga1.hex與fpga2.hex依次合并成config.hex;

(5)將config.hex用下載線下載到單片機(jī)中。

結(jié)論

以上方案可適用于3.3V和5V系統(tǒng)的,無(wú)須擴(kuò)展EEPROM,還能實(shí)現(xiàn)多任務(wù)配置。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ATmega32 單片機(jī) FPGA配置

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉