文獻標識碼: A
文章編號: 0258-7998(2010)07-0056-02
隨著SoC設計復雜度的提高,驗證所需時間已經占到整個設計周期的70%以上,如何減少驗證時間成為一個十分重要的問題。GPS基帶芯片是一個典型的SoC,其主要功能模塊是相關器,用以實現GPS信號的解調和解擴。相關器占據了基帶芯片中的大部分硬件資源,其仿真過程十分復雜且耗費大量時間,因此僅僅依靠軟件仿真是不現實的。隨著FPGA的性能和容量不斷提高,基于FPGA的原型驗證能夠減小開發風險,避免軟件仿真的缺點,加快產品上市時間,并且能夠真實地反映硬件的特性。這些優點使得基于FPGA的原型驗證越來越多地被用于SoC系統的設計過程。
1 從ASIC到FPGA原型的移植
理論上,FPGA原型驗證要與SoC的結構保持高度一致,但是,由于ASIC和FPGA結構上的差異,導致從ASIC到FPGA的移植需要做出適當的調整。
首先,當設計規模很大時,單片的FPGA容量不足以容納整個設計規模,需要2個或多個FPGA芯片來實現整個驗證系統。這時,FPGA之間的布線延時給整個系統的時序要求帶來困難,尤其對于高性能的設計。其次,結構上的差異導致的ASIC和FPGA IP模塊在時序上不兼容,需要額外的工作進行時序轉換。再次,某些硬IP核無法移植到FPGA上,需要構造適當的電路或者增加外圍輔助電路。
2 GPS基帶系統架構
整個GPS衛星導航系統包括前端射頻部分和基帶部分。前端射頻部分完成信號接收、濾波、AD轉換等;基帶部分完成GPS信號的解調、解擴、實現信號的跟蹤和捕獲。其系統框圖如圖1所示。
該衛星導航基帶芯片基于ARM7TDMI構建,擁有為捕獲跟蹤功能所設置的特殊硬件器件以及大量的常用外設。例如DMA、UART接口、SPI接口、GPIO、實時時鐘(RTC)等。256 KB的ROM和96 KB的SRAM用于存儲代碼和運行程序以及中間數據,并可外接FLASH進行程序調試及下載。其基帶框圖如圖2所示。
3 FPGA驗證平臺設計和實現
FPGA驗證平臺的結構如圖3所示。
FPGA芯片采用Altera公司Stratix III系列的EP3SL-150F1152C3,ARM7CPU采用ARM7TDMI的驗證測試芯片,ARM9芯片采用Samsung的S3C2410芯片。
由于ARM7內核無法移植,所以采用外接的ARM7TDMI測試芯片作為CPU,同時電路板上集成了一塊ARM9芯片。因此該平臺也可用于基于ARM9內核的SOC驗證平臺,并且板上預留的擴展接口可以再接一塊ARM9芯片,可用于雙核的開發。
基帶芯片其他部分都位于FPGA芯片中。編譯后的電路通過FPGA旁邊的JTAG接口下載到FPGA芯片中,通過ARM旁邊的JTAG接口進行軟件下載和調試。軟件調試工具使用ADS1.2。信號可以通過RS232串口或者USB接口與上位機進行通訊。
4 驗證中的問題分析和解決
從ASIC到FPGA的移植需要根據實際情況做一些調整。在該系統中,采用ARM7TDMI測試芯片的CPU時鐘由FPGA內部產生,經由電路板送到ARM7芯片,由于板級布線延時,FPGA內部時鐘和ARM7時鐘在相位上不再保持同步,由此造成時序混亂。因此,在FPGA輸出時鐘到ARM7之前要做相位調整,以補償在板級線路的延時。
FPGA驗證也有不足之處。
首先,調試困難,由于EDA工具不夠完善,所以缺乏有效的調試手段。示波器和邏輯分析儀作為主要的調試工具,在問題的定位上給驗證人員提出了更高的要求;雖然目前的EDA軟件集成了內部的在線邏輯分析儀,但是在使用上仍然有缺陷。協助調試方法主要有2種:(1)軟件仿真和硬件模擬結合,當硬件調試很難對問題定位時,可以將代碼編譯成二進制文件保存到ROM中,在軟件平臺上運行程序,提高信號的可觀察性。(2)在基帶結構中增加測試電路,對關鍵信號進行監視,當出現問題時可利用測試電路所保存的數據進行分析。
其次,ASIC和FPGA結構上的差異給驗證工作帶來了額外的負擔。驗證人員需要時刻保持ASIC和FPGA在版本上的一致性。原則上,ASIC上的任何的改動都要精準地反映在FPGA中,二者的一致性是相對的,驗證人員需要做到心中有數。要做好二者的一致性,要對模塊進行正確劃分。把從ASIC到FPGA需要調整的部分單獨劃分出來(不影響系統系能的前提下)。這樣,當ASIC部分進行代碼更新時,只要不涉及到需要調整的部分,全部替換即可。這樣即節省了時間,又保證了二者的一致性。
再次,FPGA平臺運行性能較差。在本系統中,CPU和AHB總線的時鐘可以穩定運行在100 MHz左右,但是,ARM7和FPGA之間布線延時造成ARM7最高運行在32 MHz左右,否則就不能保證功能以及時序上的正確性。因此,FPGA原型驗證在性能上要低于ASIC平臺。采取的方式是:在ARM7平臺上測試功能,在ARM9平臺上測試性能。采用ARM9芯片時,系統可以運行在100 MHz左右,完全滿足系統整體性能的要求。板級系統的可擴展性有助于解決在驗證過程中的某些問題。
經過充分的驗證,本系統實現了基于FPGA原型驗證平臺的GPS基帶芯片的導航定位功能。
參考文獻
[1] ANTTI I.FPGA prototyping:untapping potential within the multimillion-gate system-on-chip design space,2005,133-136.
[2] LIN Yi Li,YOUNG Chung Ping,Alvin W.Y.Su,Versatile PC/FPGA-based verification/fast prototyping platform with multimedia Applications.IEEE Transactions on Instrumentation and Measurement,2007,56(6).
[3] HU Tsung Yu,CHEN Liang Bi,HUANG Ing-Jer.An efficient HW/SW integrated verification methodology for 3D Graphics SoC development.The 13th IEEE International Symposium on Consumer Electronics,2009.
[4] LINDA E.M,LUIS A.P,JEFFREY P.System-on-Chip design and implementation.IEEE Transactions on Education,2009.
[5] 張開明,王新安,張國新,等.WLAN SoC芯片BX501的FPGA驗證平臺設計與實現.微電子學與計算機,2006,23(1):97-102.
[6] 竇建華,孫強,陸俊峰.基于JTAG和FPGA的嵌入式SoC驗證系統設計與實現.合肥工業大學學報,2009,32(3):336~339.