?

基于ARM和NAND Flash的FPGA加載配置在TD-LTE中的實現*

2012-12-07 06:17董宏成
電子技術應用 2012年7期
關鍵詞:測試儀時序時鐘

董宏成,魏 楊

(重慶郵電大學 通信與信息工程學院,重慶 400065)

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 配置模式

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所示。

圖1 配置流程框圖

2.2 硬件設計

圖2 SelectMAP模式配置時序圖

本系統采用的嵌入式微處理器為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配置部分波形展開圖。

圖5 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.

猜你喜歡
測試儀時序時鐘
SDL Atlas推出第二代HydroPro耐靜水壓測試儀
使用快速水洗色牢度測試儀檢測超細纖維脫落
清明
別樣的“時鐘”
古代的時鐘
基于不同建設時序的地鐵互聯互通方案分析
便攜式轉轍機轉換力測試儀
基于FPGA 的時序信號光纖傳輸系統
有趣的時鐘
一種毫米波放大器時序直流電源的設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合