《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM和NAND Flash的FPGA加載配置在TD-LTE中的實現
基于ARM和NAND Flash的FPGA加載配置在TD-LTE中的實現
來源:電子技術應用2012年第7期
董宏成,魏 楊
重慶郵電大學 通信與信息工程學院,重慶400065
摘要: 提出一種基于ARM和NAND Flash的FPGA加載配置的設計。選取Virtex-5系列的XC5VSX95T和ARM11系列的S3C6410處理器作為硬件平臺,研究了利用NAND Flash自啟動、以8 bit的SelectMAP模式配置FPGA的流程及實現。介紹了其配置原理、軟硬件實現過程以及實現結果分析,重點分析了ARM+NAND的控制方法。該方案已在TD-LTE無線綜合測試儀表中成功應用,是一套靈活和高效的FPGA配制方法。
中圖分類號: TN929.5
文獻標識碼: A
文章編號: 0258-7998(2012)07-0026-04
Implementation of FPGA configuration based on ARM and NAND Flash in TD-LTE
Dong Hongcheng,Wei Yang
College of Communications and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065,China
Abstract: A kind of FPGA configuration based on ARM and NAND Flash was proposed in this article. Selecting Virtex-5-series XC5VSX95 and ARM11-series S3C6410 processor as the hardware platform and introducing the FPGA configuration process and implementation of 8 bit SelectMAP mode by using NAND Flash. This paper described the configuration principle, hardware and software implementation process and implementation results, and put emphasis on the control method on ARM and NAND Flash. It is a flexible and efficient FPGA configuration method, the final solution has been applied successfully in TD-LTE wireless comprehensive test system.
Key words : FPGA configuration;S3C6410;SelectMAP mode;NAND Flash

    TD-LTE無線綜合測試儀平臺的主要功能是測試接收端與發射端信號的差異,即接收和發射端信號的誤碼率等性能的優劣,其物理層采用通用的FPGA+DSP+ARM硬件架構,具有開發周期短、可擴展性好等優點。

    現場可編程門陣列FPGA是基于門陣列方式為用戶提供可編程資源,其內部邏輯結構的形成是由配置數據決定的。由于SRAM的易失性,每次上電時,都必須對FPGA重新進行配置、完成下行鏈路OFDM信號以及底層交互相關信號的產生等功能。
    對于FPGA配置,大多數是采用將配置數據存放在FPGA組成的系統上[1-2]或者將配置數據存放在使用者自己攜帶的外部存儲器中的實現方式,后者在系統上電時需由其他外部控制器讀出配置數據再傳送給FPGA進行配置。本文提出在TD-LTE無線綜合測試儀平臺上,通過嵌入式微處理器ARM將配置數據存放于NAND Flash[3]中,由Flash上電啟動讀出配置數據再對FPGA進行配置。這種方法不但修改、升級簡便,而且由于NAND Flash在寫入數據時都需要先擦除再寫入,所以具有很好的保密性[4],并且可以方便地存儲大容量配置數據或多個配置數據文件等。本文介紹了TD-LTE無線綜合測試儀平臺上電后自動加載對FPGA器件進行配置的設計與實現的新方法,對無線TD-LTE系統的底層控制實現具有重要意義。
1 配置原理
1.1 配置模式

    Xilinx公司為其FPGA系列產品提供了多種數據配置方式,在TD-LTE綜合測試儀的研究中選用的是Virtex-5系列芯片XC5VSX95T。Virtex-5提供了如表1所示的幾種不同的配置模式,其中的從SelectMAP模式最高可以支持32 bit總線寬度[5]。在每次芯片上電初始化完畢后,芯片將以采樣模式引腳M[2:0]決定配置模式。
1.2 配置方案
    本文在FPGA+ARM+NAND的硬件環境下,將ARM作為主控制器,介紹從SelectMAP模式或者從串行模式的配置方案,其中串行模式需要的I/O資源較少,但速度較慢;從SelectMAP模式需要的I/O資源較多,但速度較快。
    (1)在串行配置模式下,FPGA在每個CCLK周期載入一個比特的數據,CCLK引腳由外部時鐘源來驅動,而且總是每個數據字節的最高位先被寫到DIN引腳。從串行配置模式需要用到的配置引腳為模式選擇M[2:0]設置為111、配置時鐘CCLK、配置復位PROGRAM_B、初始化狀態INIT_B、配置完成DONE和配置數據D_IN。其中,ARM除了控制PROGRAM_B、INIT_B外,還需要控制時鐘CCLK、配置數據在CCLK的上升沿采樣一個比特。通過ARM拉低再拉高相應的GPIO產生CCLK上升沿時序,延時程序則由for循環實現,由時鐘控制和比特文件的載入需要分別控制可以知道串行配置耗時是比較多的。
    (2)SelectMAP模式提供了與 Virtex配置邏輯之間的一個8 bit雙向數據總線接口。從SelectMAP模式支持8、16、32 bit總線寬度。為了利于系統的調試及檢測方便,本文選擇8 bit總線寬度。該模式所用到的配置引腳為模式選擇M[2:0]、配置時鐘CCLK、配置復位PROGRAM_B、配置完成DONE、配置數據8 bit并行輸入DATA[0:7]和CRC[6]校驗信號INIT_B、片選信號CS_B、回讀信號BUSY以及從SelectMAP模式使能信號PDWR_B,其中的時鐘控制信號可編程實現。在綜合測試儀中,FPGA的數據線與雙端口RAM的數據線共用,并且將雙端口RAM的寫使能作為CCLK。因此不需要單獨控制,直接向雙端口RAM中寫數據可同時實現時鐘的產生和數據的傳送。
    在從SelectMAP模式中使用寫使能nWE作為時鐘線,在傳輸配置信息和時鐘控制上都節約了很多時間。因此,根據TD-LTE綜合測試儀的設計要求并考慮到測試的方便性,采用8 bit從SelectMAP模式對XC5VSX95T進行配置是較好選擇。
2 總體實現及流程
2.1 配置流程

    圖1給出了FPGA配置流程框圖。在上電時,PROGRAM_B輸入上的邏輯低電平將會復位配置邏輯,并且使FPGA保持在清空配置存儲器的狀態。只要PROGRAM_B引腳保持低電平,則FPGA將繼續清空它的配置存儲器并使INIT_B信號保持為低電平以表明配置存儲器在被清空。當PROGRAM_B被釋放時,FPGA將繼續使INIT_B保持為低電平,直到完成清空所有的配置存儲器。只要INIT_B信號變為高電平時,表明清除動作完成,配置就可以開始了。在INIT_B的上升沿,模式選擇引腳M[2:0]被采樣,以決定配置模式,若為110,則采用從SelectMAP模式。此后配置文件信息在CCLK的控制下由D[0:7]共8個配置引腳并行輸入XC5VSX95T中。配置數據在CCLK的上升沿采樣一個字節。在配置期間芯片會自動進行CRC錯誤檢驗,若發生了CRC校驗錯誤,則INIT_B引腳將被置低。當最后的CRC校驗成功完成后,FPGA進入啟動時序。這個時序期間將會釋放DONE引腳(變為高電平),FPGA釋放全局三態(GTS),激活I/O引腳,釋放全部置位復位(GSR) 和全局寫使能(GWE)有效,開始執行配置區的邏輯。此后芯片進入正常工作狀態。配置時序圖如圖2所示。

2.2 硬件設計
    本系統采用的嵌入式微處理器為S3C6410[7],將FPGA配置文件下載到ARM的存儲器存放入Flash中,以ARM處理器作為主設備,FPGA作為從設備。系統上電后,ARM通過讀取相應的配置文件對FPGA進行配置,256 MB的DDR SDRAM作為程序運行空間,將NAND Flash中代碼移至SDRAM中運行。
2.2.1 外圍芯片
    (1)S3C6410
    S3C6410基于ARM1176JZF-S處理器核,是一類低功率、高性價比、高性能、用于手持和移動等終端設備的通用RISC處理器。其主頻芯片可達667 MHz,采用64/32 bit的內部總線架構,擁有比S3C2440、S3C2410等更加豐富的接口。
    在S3C6410中,由系統時鐘控制邏輯生成所需要的系統時鐘信號,用于CPU的ARMCLK、AXI/AHB總線外設的HCLK和APB總線外設的PCLK。本系統中,采用12 MHz的外部晶體作為S3C6410的外部時鐘,ARMCLK:HCLK×2:HCLK:PCLK分別設置為553 MHz:266 MHz:133 MHz:66 MHz。
    (2)NAND Flash
    系統采用K9F1G08U0C型的128 MB×8 bit的NAND Flash。該芯片總共有1024塊,每塊有64(頁)×2 GB的容量。額定電壓為3.3 V,支持隨機讀寫功能。
    (3)雙端口RAM
    采用IDT70V28L系列的雙端口RAM,其寫使能nWE作為配置文件加載控制時鐘CCLK。
2.2.2 硬件連接
    S3C6410與XC5VSX95T以及雙端口RAM主要通過CCLK、PROGRAM_B、DONE、D[0:7]和INIT_B信號線相連接,如圖3所示。采用S3C6410的通用接口GPN10、GPN12、GPN13分別控制INIT_B、DONE、PRORAM_B,用ARM的外部存儲器雙端口RAM的寫使能信號nWE控制CCLK,同時其數據線DATA[0:7]作為信息輸入的D[0:7]。

 

 

2.3 軟件設計
    根據圖2 FPGA配置時序圖,主設備ARM編程要實現各信號的時序要求。ARM軟件控制設計流程如圖4所示,其中應用代碼包含FPGA 的配置驅動。
2.3.1 比特文件的下載
    對所設計的FPGA在Xilinx公司的ISE10.1軟件平臺上運用Verilog語言編譯運行后產生4.25 MB的.bit文件。將此.bit文件通過ARM仿真器RVDS4.1的調試環境Realview Debugger加載到ARM的一段可用內存中。主要方法:在Target選項中選擇Load Binary,內存選擇為以DDR SDRAM的0x59 000 000作為暫時存放.bit文件起始地址的內存區。這樣做的好處是不需要進行額外的下載電纜連接操作,使芯片系統重構時沒有對電纜的插拔要求,只需要通過相應軟件操作即可。
2.3.2 從NAND啟動
    將初始化代碼和應用代碼燒寫到Flash后,ARM處理器以NAND Flash模式啟動時,內置的NAND Flash控制器將訪問控制接口,將其第0塊前8 KB的代碼自動加載到內部SRAM中,而片內SRAM被映射到地址0x0,上電后運行實現初始化硬件等基本功能。利用片內SRAM中的代碼把NAND Flash中的程序代碼復制到DDR SDRAM以0x51 000 000作為起始地址的內存中去,通過MMU實現0x51 000 000到0x0的映射,采用PC指針實現跳轉至0x0執行應用代碼。
2.3.3 對FPGA發送配置數據
    在S3C6410中,通用接口的大多數引腳都是多功能引腳,可以通過端口配置寄存器選擇相應的引腳功能。對于端口N,控制寄存器GPNCON用于設定引腳的輸入、輸出或者特殊的功能。如圖3硬件連接框圖所示,數據寄存器GPNDAT[10]對應GPN10引腳上的數據,在時鐘產生的同時對其寫1、0、1實現INIT_B的初始時序控制。NAND Flash啟動完成初始化后,應用代碼實現從Flash相應存儲區域讀出FPGA配置信息到一段可用地址(如DDR SDRAM中以0x59 000 000開始的存儲區),然后從將其中的數據寫到雙端口RAM中,由FPGA與雙端口RAM的數據線復用,完成配置數據加載到FPGA,實現配置。
    由于采用了寫使能信號nWE作為配置時鐘CCLK,向雙端口RAM的地址線中寫配置信息即產生時鐘,并且在nWE寫使能信號的上升沿來實現數據采集的功能。
3 實現結果及分析
    實現結果如圖5、圖6所示,圖中解釋了FPGA的CCLK、INIT_B、PROGRAM_B幾個控制信號的變化以及部分配置數據。其中,橫縱坐標分別表示時間變化和在相應時間變化中的信號采樣值,縱坐標D9、D10、D11分別表示CCLK、INIT_B、PROGRAM_B,D0:D7作為數據線D[0:7]。其中時鐘的產生可以通過向雙端口RAM某個可用地址中寫數據來實現(這里寫的是0x8)。圖5中,D10一段連續低電平是FPGA自動CRC校驗過程,在CRC校驗完畢,D10拉高后開始傳送配置信息。圖6為FPGA配置部分波形展開圖。


    SelectMAP模式中總線寬度為8 bit的配置方案在TD-LTE綜合測試儀表中已經成功實現。這種配置方式也可以用在其他具有相似硬件環境的情況,如果采用16 bit或者32 bit的傳輸,相應地時速會成倍提高。
    本文介紹的系統采用了ARM+NAND Flash的FPGA配置模式,外圍利用SDRAM和DP_RAM的硬件電路,實現FPGA自動加載配置。這種方法靈活且具有保密性,修改、升級簡便,可實現多任務電路結構重構和自動重載,滿足自動配置的要求,同時也有益于整個系統啟動,方便了整個系統啟動控制,對無線TD-LTE系統的底層控制實現具有重要意義,應用范圍非常廣泛。
參考文獻
[1] 梅安華,田建生,劉歡,等.基于PCI總線的FPGA配置系統的設計[J].計算機測量與控制,2005,13(4):375-377.
[2] 王爾申,張淑芳,胡青.嵌入式GPS接收機系統的FPGA配置方法研究[J].計算機工程與應用,2009,45(4):86-88.
[3] 128 M×8 bit NAND flash memory REV 0.2[EB].Samsung Electronics.2008.
[4] 柔性材料.數據銷毀背后的16條法則[EB/OL].(2010-04-16)[2012-1-9].http://www.mcplive.cn/index.php/article/index/id/5347/page/4.htm.
[5] Xilinx, Inc.Virtex-5 FPGA Configuration User Guide[EB].UG191(v3.1) April 25,2008.
[6] Yang Wenlong,Wang Lingli,Zhou Xuegong.CRC circuit design for SRAM-Based FPGA configuration bit correction[J].IEEE,2010(11).
[7] S3C6410X RISC Microprocessor User's Manual[EB].Samsung Electronics.REV 1.10.2008.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 黄页网址大全免费观看12网站| 99视频精品全部在线观看| 最新国产精品拍自在线播放| 亚洲精品国产高清嫩草影院| 精品四虎免费观看国产高清午夜| 国产伦子沙发午休| 欧美大bbbxxx视频| 国产精品美女久久久免费| av2021天堂网手机版| 希岛婚前侵犯中文字幕在线| 中文字幕看片在线a免费| 日韩一区二区三区免费体验| 亚洲不卡av不卡一区二区| 欧美精品亚洲精品日韩专区| 人人添人人妻人人爽夜欢视av| 精品一区二区三区四区| 四虎影视久久久免费| 草草影院地址ccyycom浮力影院37| 国产成人亚洲精品| 欧美色图校园春色| 国产精品久久免费视频| 337p色噜噜| 国产麻豆天美果冻无码视频| aa级女人大片喷水视频免费| 嫩草视频在线免费观看| 丝袜高跟浓精受孕h文| 扒开双腿疯狂进出爽爽爽动态图 | 国产一卡2卡3卡四卡高清| 韩国一级在线观看| 国产女人高潮视频在线观看 | 成人国产一区二区三区| 中文字幕看片在线a免费| 日本69xxxx| 久久丁香五月天综合网| 日本免费电影在线观看| 久久亚洲国产成人亚| 日本精品高清一区二区2021| 久久国产精品老人性| 日本精品久久久久中文字幕8| 久久国产精彩视频| 日本大胆欧美艺术337p|