《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SD卡的Virtex FPGA 配置方案
基于SD卡的Virtex FPGA 配置方案
摘要: 本文首先簡略介紹了幾種當前對Virtex 系列FPGA 進行配置的方式和其不足之處, 在此基礎上提出了一種使用微處理器讀取SD 卡中的配置數據,并通過SELECTMAP 接口 對FPGA 進行配置的方案,并輔以電路圖和工作流程圖,以及配置數據在SD 卡中的存儲方 式進行說明。采用此配置方案可以使產品更新只涉及到修改SD 卡中的數據,方便靈活,有 利于降低大規模產品升級時的成本,適用于通信、工控等多個領域。
關鍵詞: FPGA SD卡 Virtex
Abstract:
Key words :

  摘 要:本文首先簡略介紹了幾種當前對Virtex 系列FPGA 進行配置的方式和其不足之處, 在此基礎上提出了一種使用微處理器讀取SD 卡中的配置數據,并通過SELECTMAP 接口 對FPGA 進行配置的方案,并輔以電路圖和工作流程圖,以及配置數據在SD 卡中的存儲方 式進行說明。采用此配置方案可以使產品更新只涉及到修改SD 卡中的數據,方便靈活,有 利于降低大規模產品升級時的成本,適用于通信、工控等多個領域。

  1.引言

  由于 FPGA 良好的可編程性和優越的性能表現,當前采用FPGA 芯片的嵌入式系統數 量呈現迅速增加的趨勢,特別是在需要進行大規模運算的通信領域。目前FPGA 配置數據一 般使用基于SRAM 的存儲方式,掉電后數據消失,每次上電后都要重新寫入。配置數據的 寫入方式有3 種,即使用JTAG 仿真器、使用專用芯片以及使用微處理器。JTAG 仿真器的 方式在調試的時候使用較多,能隨時修改,但缺點是FPGA 芯片必須與電腦主機連接,失去 了靈活性。使用專用芯片的方式可以將配置數據事先存儲在非易失性存儲介質中,為大規模 升級提供了方便,但不利之處在于專用芯片往往價格較高,并且也必須采用特定的存儲介質, 提升了系統成本,而且沒有利用到板上的現有資源,需要為配置芯片設置出專用的空間,占 用了電路板上的空間資源。而第三種方式可以利用當前嵌入式系統中一般都存在的微處理 器,同時也可以自行選擇合適的存儲介質。下面就這種配置方案進行說明。

  2. 系統介紹

  2.1 系統工作原理

  本配置方案中使用的微控制器是Philips 公司生產的ARM7 處理器LPC2468。FPGA 則 是Xilinx 公司的Virtex SX95T。存儲配置數據的介質是成本較低而且使用廣泛的SD 卡。

  系統的工作原理是上電時微控制器LPC2468 從SD 卡中讀取FPGA 的配置文件,然后 通過其通用IO 管腳模擬FPGA 的某種配置模式的時序,將配置文件寫入到FPGA 的配置 RAM 中。Virtex 系列FPGA 有幾種不同的配置模式,每種配置模式使用到的管腳以及配置 信號的時序都是不同的, 因此對配置模式需要作出合適的選擇。

  2.2 Viretex 系列FPGA 的配置模式

  Viretex 系列FPGA 的配置模式是由上電時其專用配置管腳的狀態決定的,對應的關系 如下表所示:

 

  

  

 

  因在系統中使用微處理器作為主控制器,因此FPGA 的模式需選擇Slave 方式,所以有 2 種模式可以選擇,即Slave SelectMap 和Slave Serial。這2 種模式的區別在與數據管腳的數 目不同,Slave Serial 模式只有1 個管腳用于數據傳輸,屬于串行傳輸,而Slave SelectMap 模式有8 個管腳用于數據傳輸,屬于并行傳輸。這2 種模式可以任意選擇,本文選擇的是 Slave SelectMap 模式。

  2.3 Slave SelectMap 配置模式

  Slave SelectMap 配置模式在管腳信號功能、配置流程、配置數據等方面有自己的特點, 在進行電路板設計以及程序編寫時需要注意。下面對其主要特點進行說明。

  2.3.1 Slave SelectMap 模式使用的管腳信號:

  SelectMap 模式下使用的FPGA 管腳為:

 

  

 

  根據上表,可以將微控制器的通用IO 管腳與上述FPGA 管腳連接起來,連接電路圖如圖1 所示:

 

  

 

  2.3.2 Slave SelectMap 模式的配置流程

  Slave SelectMap 模式下提供時鐘的是外部器件,本方案中的時鐘信號是CCLK 使用 ARM 芯片的通用IO 進行模擬。同時,該模式下數據管腳有8 個,因此在每個CCLK 的上 升沿,FPGA 可以讀入1 個字節的數據。需要注意的是這1 字節的最高位是D0,而不是一 般微處理器默認的D7,在電路板布線和編寫配置程序時應給予相應改變。

  配置過程的具體流程如圖2 所示。

 

  

 

  接收完配置數據后,DONE 管腳會被拉高。但這并不是表示配置過程已經結束,系統仍 需要時鐘來進行后續的上電啟動工作。為保證上電配置過程的正確進行,最好的辦法是將配 置文件中的所有數據寫入FPGA 中之后,然后繼續輸出CCLK 信號,直到DONE 管腳被拉 高。之后,再輸出8 個周期的CCLK,保證配置能正常完成。

  根據上述流程,配置程序的主要函數的偽碼如下。

  1.初始化函數SelectMAP_Init,在其它函數之前運行。

  SelectMAP_Init(){

  將ARM 通用IO 設置為對應的SelectMap 管腳信號;

  設置 PROGRAM#,CS#和WRITE#管腳為低電平;

  延時至少300ns;

  設置 PROGRAM#為高電平;

  循環檢查INIT#是否變為高電平;

  }

  2.發送數據的函數SendData_Byte,發送1 字節的數據。

  SendData(uint8 data){

  拉低CCLK;

  將 D0~D7 電平設置為與data 對應的狀態;

  拉高 CCLK;

  }

  3.發送數據的函數SendData_Sector,發送SD 卡中1 個扇區的數據。

  void SendData_Sector(uint8 * data){

  聲明計數器,并將初始值設為0;

  調用 SendData_Byte 發送1 個字節的數據,計數器加1;

  檢查 BUSY 管腳的狀態,等待其變為低電平;

  檢查計數器是否到達規定的數據塊大小,達到時函數返回,未到達時繼續發送數據;

  }

  2.3.3 配置文件的格式

  FPGA 支持將配置文件生成為幾種不同的格式,但在本方案中不是所有格式都可以使用 的。一般最常用的格式是.BIN 和.BIT 格式。由于.BIT 格式包含頭部開銷,會增加額外的處 理過程,因此本方案沒有支持.BIT 格式的數據,僅推薦使用.BIN 格式。

  2.4 文件在SD 卡中的存儲

  發送數據前,需要先從SD 卡中讀取配置文件。所有文件在SD 卡中都是按照一定的格式來組織的,本方案默認文件采用FAT16 格式進行存儲。FAT16 格式下,SD 卡的結構如下圖所示[3]。

 

  

 

  主引導記錄中最重要的參數是邏輯扇區的起始地址。獲得該參數后即可以讀取BIOS 參 數數據塊(BPB)。BPB 中存儲了扇區(Sector)、簇(Cluster)、文件分配表(FAT)的 大小,以及分區總扇區數等參數,是文件進行操作時必不可少的。文件分配表則是指明了文 件存儲的位置,這些位置是以簇為單位的。每個簇包含的扇區數目在BPB 中說明。根文件 夾中存儲了各不同文件的文件名和起始簇以及文件大小等信息。

  2.5 配置文件的讀取和發送

  根據上述SD 卡存儲格式的說明,可以對存儲在其中的配置數據進行讀取并發送出去。在本方案中,數據的讀取和發送是同時進行的。

  在對 SD 卡進行讀取時,首先需要讀取主引導記錄(MBR),獲得邏輯扇區的位置,然 后根據該位置讀取BIOS 參數數據塊(BPB),得到文件分配表(FAT)的位置以及扇區大 小等參數。在讀取文件分配表之前,需要先讀取根文件夾來獲得文件的起始位置,然后再 通過文件分配表獲得后續數據的位置。

  得到文件的起始簇號之后,在文件分配表中讀取對應該起始簇的字節,獲得文件存儲的 下一個簇的簇號,這樣可以連續的進行讀取。在讀取一個簇后,即將整簇的數據發送出去。 如果發現文件分配表中某一簇對應的數值是0xFFFF,則說明是文件最后一個簇,這時該簇 的數據可以不足一個整簇,需要對其中的數據進行取舍,以保證發送數據的正確性。

  對配置文件讀取和發送的函數偽碼如下所示。

  ReadSD_FAT16(){

  讀取物理第0 扇區內容,即MBR,獲取邏輯0 扇區的位置;

  讀取邏輯0 扇區的內容,獲取每扇區字節數,每簇扇區數,FAT 表占據的扇區數等參數;

  讀取根文件夾的內容,根據配置文件的文件名獲取其起始簇號和文件長度;

  將當前簇設置為起始簇;

  While(1){

  讀取FAT 中對應當前簇的內容,獲得下一個簇的簇號;

  FAT 表中對應當前簇的內容為0xFFFF 時,即說明當前簇是最后一個簇,計算該簇內的有效數據,并進行發送;

  讀取當前簇內容,進行發送;

  當前簇指向下一個簇;

  }

  }

 

  3 結束語

  在當前FPGA 使用領域日趨廣泛的情況下,對現有的含有FPGA 的嵌入式產品進行升 級更新成為了一項比較繁瑣的工作,特別是在產品數量較多的情況下。本方案提出了采用 SD 卡存儲配置數據的配置方案,使用了目前嵌入式系統中常見的ARM 微處理器和SD 卡, 不僅降低了成本,而且利用了現有資源,節省了電路板布線布局的空間。最重要的是使升級 過程更加簡潔,在進行調試時也可以靈活使用。本文只給出了對Virtex FPGA 進行配置的情 況,該方案也可以適用于Spartan 系列FPGA。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品毛片在线看| 日韩午夜激情| 欧美日韩国产不卡| 老司机午夜精品| 久久久国产精品一区| 性欧美xxxx大乳国产app| 亚洲性感激情| 亚洲一区在线观看免费观看电影高清| 日韩午夜av在线| 日韩亚洲一区二区| 一区二区欧美精品| 亚洲校园激情| 午夜日韩福利| 欧美一区二区三区视频免费播放| 性色av一区二区三区在线观看| 亚洲欧美日韩成人| 久久不射电影网| 久久影视精品| 欧美a级在线| 欧美激情第三页| 欧美日韩色综合| 欧美午夜影院| 国产精品日韩久久久| 国产精品自拍一区| 国产一区二区你懂的| 国产综合香蕉五月婷在线| 国产色爱av资源综合区| 国内一区二区在线视频观看| 在线精品福利| 日韩一二三区视频| 午夜欧美理论片| 亚洲第一精品夜夜躁人人爽| 亚洲激情欧美激情| 一本久久a久久精品亚洲| 亚洲一区精品电影| 欧美专区在线播放| 欧美 日韩 国产精品免费观看| 欧美精品一区二区三区久久久竹菊| 欧美日韩一区二区三区在线 | 一区二区动漫| 性久久久久久| 亚洲黄一区二区三区| 亚洲午夜电影在线观看| 欧美一区二区三区久久精品| 久久久天天操| 欧美精品日韩一区| 国产乱码精品一区二区三区五月婷| 国产婷婷精品| 91久久中文字幕| 亚洲在线1234| 亚洲美女色禁图| 亚洲欧美国产高清| 鲁鲁狠狠狠7777一区二区| 欧美日本精品一区二区三区| 国产精品一区二区久久精品 | 亚洲人成在线免费观看| 亚洲欧美国内爽妇网| 久久综合九色综合欧美就去吻| 欧美日本成人| 国产在线高清精品| 99精品国产在热久久| 欧美在线免费播放| 亚洲天堂黄色| 久久亚洲欧美| 国产精品九九| 亚洲国产精品久久久| 在线亚洲欧美| 亚洲精品一二| 久久精品国产一区二区电影| 欧美日韩精品免费观看视频完整 | 亚洲国产精品ⅴa在线观看| 亚洲视频在线免费观看| 快射av在线播放一区| 国产精品久久久久久一区二区三区 | 久久国产夜色精品鲁鲁99| 欧美激情精品久久久久久蜜臀| 国产精品视频yy9099| 亚洲欧洲精品成人久久奇米网 | 国内视频精品| 亚洲一区二区久久| 亚洲美女毛片| 久久亚洲国产成人| 国产精品夜夜夜| 一本色道久久| 日韩视频免费观看| 美女任你摸久久| 国模精品娜娜一二三区| 亚洲一区二区三区欧美| 99国产精品国产精品久久| 久久先锋影音| 国产亚洲欧美另类中文| 亚洲一区二区三区精品视频| 99国产精品久久久| 你懂的网址国产 欧美| 国产一区二区高清不卡| 亚洲专区一区二区三区| 国产精品99久久久久久白浆小说 | 亚洲三级免费观看| 亚洲区国产区| 久久综合久色欧美综合狠狠| 国产日韩欧美制服另类| 国产精品99久久久久久久久久久久| 亚洲精品视频在线观看免费| 久久综合伊人| 狠狠做深爱婷婷久久综合一区| 午夜精品一区二区三区电影天堂| 亚洲中字黄色| 国产精品国内视频| aaa亚洲精品一二三区| 一区二区三区久久精品| 欧美精品电影在线| 91久久精品国产91久久性色tv| 亚洲国产精品ⅴa在线观看| 久久青草欧美一区二区三区| 国内成人精品一区| 久久不射2019中文字幕| 久久久www成人免费精品| 国产精品自拍网站| 香蕉av777xxx色综合一区| 欧美一级午夜免费电影| 国产伦精品免费视频| 亚洲欧美日韩在线播放| 欧美一区91| 国产亚洲一区二区三区在线播放| 午夜欧美精品久久久久久久| 久久精品免费看| 狠狠噜噜久久| 亚洲国产欧洲综合997久久| 久久偷看各类wc女厕嘘嘘偷窃| 精品999在线播放| 91久久中文字幕| 欧美欧美午夜aⅴ在线观看| 亚洲精品久久久久久久久久久久 | 免费在线成人av| 亚洲人被黑人高潮完整版| 日韩视频在线免费观看| 欧美日韩国产在线播放网站| 99这里有精品| 欧美在线免费观看视频| 国产一区二区三区四区在线观看 | 久久最新视频| 亚洲精品国精品久久99热| 亚洲天堂av在线免费| 国产精品女主播在线观看| 先锋影音网一区二区| 久久综合九色综合久99| 亚洲精品久久久久久一区二区| 亚洲一区二区三区四区五区午夜 | 欧美激情无毛| 一区二区日韩伦理片| 久久成人精品无人区| 在线观看欧美成人| 一区二区三区四区国产| 国产精品一区=区| 亚洲二区三区四区| 欧美日本一区| 亚洲欧美日本国产有色| 美女被久久久| 一本色道久久综合精品竹菊| 欧美中文字幕视频在线观看| 激情欧美一区| 亚洲天堂男人| 国内一区二区在线视频观看| 日韩视频―中文字幕| 国产精品综合视频| 亚洲人精品午夜| 国产精品主播| 亚洲乱码国产乱码精品精98午夜| 国产精品久久777777毛茸茸| 久久精品国产77777蜜臀| 欧美日韩一区二区在线观看视频| 欧美一级艳片视频免费观看| 欧美精品免费在线| 午夜在线a亚洲v天堂网2018| 欧美成年人视频网站| 在线视频亚洲欧美| 免费观看在线综合色| 亚洲天堂视频在线观看| 美女脱光内衣内裤视频久久影院| 一区二区日韩| 欧美成人精品h版在线观看| 亚洲午夜久久久久久久久电影院| 久久一区二区三区超碰国产精品| 9l国产精品久久久久麻豆| 久久亚洲影音av资源网| 亚洲午夜激情| 欧美精品1区| 久久精品亚洲一区二区| 欧美日韩亚洲一区二区三区| 亚洲大胆av| 国产伦精品一区二区三区高清| 一区二区日韩免费看| 在线成人亚洲| 久久黄金**| 正在播放亚洲| 欧美美女bbbb| 亚洲国产精品嫩草影院| 国产欧美日韩中文字幕在线| 亚洲色图自拍| 亚洲国产精彩中文乱码av在线播放|