嵌入式系統中從串配置FPGA的實現
本文主要論述在ARM嵌入式系統中如何實現FPGA從串配置的方法,將系統程序及配置數據存儲在系統Flash中,利用ARM的通用I/O口產生配置時序,省去專用的配置PROM。
文中ARM微處理器采用samsung公司的ARM7TDMI系列中的S3C4480X,FPGA采用xilinx
公司spartan3E系列中的XC3S100E,詳細討論FPGA的從串配置的時序,同時論述S3C4480X從串配置spartan3E系列FPGA的軟、硬件實現方法。實踐證明,該方法在成本、體積、靈活性上均具有優勢,將此方法應用在嵌入式系統中具有很強的實用價值。
引言
基于ARM微處理器技術的應用已經得到了廣泛、深入的應用,包括工業控制領域、網絡應用、消費類電子產品、成像和安全產品等領域。
FPGA通過把設計生成的數據文件配置到芯片內部的SRAM完成其邏輯功能,具有可重復編程性,可靈活實現各種邏輯功能,FPGA的這種特性使其在現代電子系統設計中得到了廣泛應用。
基于SRAM工藝的FPGA是易失性的,系統掉電后SRAM內的數據將全部丟失,需要外接ROM保存其配置數據,系統每次上電時必須重新配置數據才能正常工作。通常設計時采用兩種方案保存SRAM內的數據,一是使用專用的PROM,Xilinx公司的XCFxx系列PROM提供FPGA的配置時序,上電時自動加載PROM中的配置數據到FPGA的SRAM中;另一種是在含有微控制器的系統中,如嵌入式系統,采用其他非易失性存儲器來存儲配置數據,如EEPROM、FLASH等,微控制器模擬FPGA的配置時序將ROM中的數據置入FPGA中。與前面一種方案相比,在對成本和體積敏感的系統中,該方案更適用。
從串配囂原理
1.從串配置原理
Xilinx公司的Spartan3E系列FPGA采用90nm工藝的2.5V低電壓FPGA芯片,高性能、低功耗、可無限次編程。XC3S100E總門數達10萬門,可采用從串、主串、從并、主并、JTAG等方式進行配置,與從串配置相關的引腳功能及配置如下:
①M[2:O]:配置模式選擇位。M2,M1,M0均接上拉電阻,即M[2:O]=111時為從串模式。
②CCLK:配置時鐘位,由微處理器提供,上升沿有效。
③DIN:串行數據輸入位。
④DOUT:串行數據輸出位,用于菊花鏈式配置。
⑤)PROG_B:低電平異步復位FPGA內部邏輯位。內部配置Memory完全復位后,該引腳指示高電平,此時才能配置FPGA。
⑥ INIT_B:由低電平到高電平跳變時,采樣配置模式選擇位M[2:0],確定配置方式;配置過程中若出現配置錯誤,INIT_B將呈現低電平。
⑦DONE:復位時為低電平,配置成功,則為高電平。
2.微處理器從串配置FPGA的時序
FPGA的配置過程:
①系統上電后,將PROG_B置為低電平,復位FPGA內部邏輯重新配置FPGA,延時100 μs充分復位內部邏輯后,將PROG_B置為高電平。
②INIT_B保持低電平,將PROG_B置高電平大于300ns后,FPGA將INILB置為高電平,在INIT_B由低向高跳變的瞬間,采樣配置模式選擇位M[2:0],采用從串配置模式。
③FPGA采樣配置模式后,微處理器開始配置FPGA時鐘CCLK和數據,在CCLK的每個上升沿,每bit數據被傳入到DIN,數據字節先發低位,再發高位,配置過程中若發生錯誤,則INIT_B呈現低電平。
④所有配置數據傳送完成,CRC校驗無誤,則DONE呈現高電平,否則為低電平。
⑤DONE為高后,FPGA釋放全局三態(GTS),激活IO管腳,釋放全部置位復位(GSR)和全局寫使能(GWE)有效,開始執行配置區里的邏輯。
微處理器從串配置FPGA的時序如圖1所示。

3.配置文件產生的方法
用Xilinx公司提供的開發工具ISE8.1將工程經過綜合、映射、布局、布線后產生編程文件,編程文件有.bit、.bin、.mcs、.tek、.hex等格式,其中.bit格式用作JTAG下載,其他幾種格式用作專用PROM編程。系統產生配置文件時首先按照產生專用PROM編程文件的方法產生.bin文件,然后將該bin文件轉換成ASC Il碼文件存儲,并且各個字節之間用逗號分隔,最后把該配置數據存放在系統程序的一個頭文件的數組Config_data_array[]中,作為系統程序源代碼的一部分,和其它程序一起編譯。
硬件設計
ARM微處理器S3C44BOX片內集成ARM7TDMI核,同時集成了豐富的外圍功能模塊,內部增加的8K高速緩;中器大大提高了性能。S3C44BOX可訪問256MB的地址空間,最高運行頻率達66MHz,包含4M Flash程序存儲器,XC3S100E從串配置程序和配置文件都固化于其中保存,該FIash支持低電壓寫入(1.65~3.3V)。SDRAM具有8M的運行空間,系統在直接運行Flastl時速度非常慢,通常將Flash中的代碼搬到SDRAM中運行。
S3C4480X與XC3S100E接口主要是PROG_B、lNIT_B、DONE、CCLK、DIN五根信號線,硬件接口電路如圖2所示,其中VCC33表示3.3V,VCC25表示2.5V。

軟件設計
1.軟件設計流程圖
系統軟件設計流程圖如圖3所示,采用C語言編程。

2.在S3C44BOX中實現配置時序
Xilinx公司的每個特定型號的FPGA器件,其配置文件大小是相同的,跟FPGA內部邏輯設計的復雜度無關,Spartan3E系列的10萬門FPGA
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論