<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 使用AVR單片機配置FPGA

          使用AVR單片機配置FPGA

          作者: 時間:2013-12-06 來源:網(wǎng)絡 收藏

          配置文件

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

          軟件設計

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

          圖3 控制程序流程圖

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

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

          :10008000AF5 F67F0602703E0322CFA92007780C361
          :1000900089001C6B7EA7CA9200 FE10D2AA00477D81
          :0B00A00080FA92006F3600 C3A00076CB
          :00000001FF

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

          (2)將fpga1.rbf改為fpga1.bin,使用“超級單片機工具”將fpga1.bin轉(zhuǎn)換成起始地址為0x0273(mcu.hex的數(shù)據(jù)長度)的FPGA1.hex;
          (3)將fpga2.rbf改為fpga1.bin,使用“超級單片機工具”將fpga2.bin轉(zhuǎn)換成起始地址為0x3bd7(mcu.hex和fpga1.hex的數(shù)據(jù)長度和)的FPGA2.hex;
          (4)將刪除結(jié)束串后的mcu.hex和fpga1.hex與FPGA2.hex依次合并成config.hex;
          (5)將config.hex用下載線下載到ATmega32單片機中。

          結(jié)論

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


          上一頁 1 2 下一頁

          關鍵詞: AVR單片機 FPGA

          評論


          相關推薦

          技術(shù)專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();