文獻標識碼: A
文章編號: 0258-7998(2010)07-0056-02
隨著SoC設(shè)計復(fù)雜度的提高,驗證所需時間已經(jīng)占到整個設(shè)計周期的70%以上,如何減少驗證時間成為一個十分重要的問題。GPS基帶芯片是一個典型的SoC,其主要功能模塊是相關(guān)器,用以實現(xiàn)GPS信號的解調(diào)和解擴。相關(guān)器占據(jù)了基帶芯片中的大部分硬件資源,其仿真過程十分復(fù)雜且耗費大量時間,因此僅僅依靠軟件仿真是不現(xiàn)實的。隨著FPGA的性能和容量不斷提高,基于FPGA的原型驗證能夠減小開發(fā)風(fēng)險,避免軟件仿真的缺點,加快產(chǎn)品上市時間,并且能夠真實地反映硬件的特性。這些優(yōu)點使得基于FPGA的原型驗證越來越多地被用于SoC系統(tǒng)的設(shè)計過程。
1 從ASIC到FPGA原型的移植
理論上,F(xiàn)PGA原型驗證要與SoC的結(jié)構(gòu)保持高度一致,但是,由于ASIC和FPGA結(jié)構(gòu)上的差異,導(dǎo)致從ASIC到FPGA的移植需要做出適當(dāng)?shù)恼{(diào)整。
首先,當(dāng)設(shè)計規(guī)模很大時,單片的FPGA容量不足以容納整個設(shè)計規(guī)模,需要2個或多個FPGA芯片來實現(xiàn)整個驗證系統(tǒng)。這時,F(xiàn)PGA之間的布線延時給整個系統(tǒng)的時序要求帶來困難,尤其對于高性能的設(shè)計。其次,結(jié)構(gòu)上的差異導(dǎo)致的ASIC和FPGA IP模塊在時序上不兼容,需要額外的工作進行時序轉(zhuǎn)換。再次,某些硬IP核無法移植到FPGA上,需要構(gòu)造適當(dāng)?shù)碾娐坊蛘咴黾油鈬o助電路。
2 GPS基帶系統(tǒng)架構(gòu)
整個GPS衛(wèi)星導(dǎo)航系統(tǒng)包括前端射頻部分和基帶部分。前端射頻部分完成信號接收、濾波、AD轉(zhuǎn)換等;基帶部分完成GPS信號的解調(diào)、解擴、實現(xiàn)信號的跟蹤和捕獲。其系統(tǒng)框圖如圖1所示。
該衛(wèi)星導(dǎo)航基帶芯片基于ARM7TDMI構(gòu)建,擁有為捕獲跟蹤功能所設(shè)置的特殊硬件器件以及大量的常用外設(shè)。例如DMA、UART接口、SPI接口、GPIO、實時時鐘(RTC)等。256 KB的ROM和96 KB的SRAM用于存儲代碼和運行程序以及中間數(shù)據(jù),并可外接FLASH進行程序調(diào)試及下載。其基帶框圖如圖2所示。
3 FPGA驗證平臺設(shè)計和實現(xiàn)
FPGA驗證平臺的結(jié)構(gòu)如圖3所示。
FPGA芯片采用Altera公司Stratix III系列的EP3SL-150F1152C3,ARM7CPU采用ARM7TDMI的驗證測試芯片,ARM9芯片采用Samsung的S3C2410芯片。
由于ARM7內(nèi)核無法移植,所以采用外接的ARM7TDMI測試芯片作為CPU,同時電路板上集成了一塊ARM9芯片。因此該平臺也可用于基于ARM9內(nèi)核的SOC驗證平臺,并且板上預(yù)留的擴展接口可以再接一塊ARM9芯片,可用于雙核的開發(fā)。
基帶芯片其他部分都位于FPGA芯片中。編譯后的電路通過FPGA旁邊的JTAG接口下載到FPGA芯片中,通過ARM旁邊的JTAG接口進行軟件下載和調(diào)試。軟件調(diào)試工具使用ADS1.2。信號可以通過RS232串口或者USB接口與上位機進行通訊。
4 驗證中的問題分析和解決
從ASIC到FPGA的移植需要根據(jù)實際情況做一些調(diào)整。在該系統(tǒng)中,采用ARM7TDMI測試芯片的CPU時鐘由FPGA內(nèi)部產(chǎn)生,經(jīng)由電路板送到ARM7芯片,由于板級布線延時,F(xiàn)PGA內(nèi)部時鐘和ARM7時鐘在相位上不再保持同步,由此造成時序混亂。因此,在FPGA輸出時鐘到ARM7之前要做相位調(diào)整,以補償在板級線路的延時。
FPGA驗證也有不足之處。
首先,調(diào)試困難,由于EDA工具不夠完善,所以缺乏有效的調(diào)試手段。示波器和邏輯分析儀作為主要的調(diào)試工具,在問題的定位上給驗證人員提出了更高的要求;雖然目前的EDA軟件集成了內(nèi)部的在線邏輯分析儀,但是在使用上仍然有缺陷。協(xié)助調(diào)試方法主要有2種:(1)軟件仿真和硬件模擬結(jié)合,當(dāng)硬件調(diào)試很難對問題定位時,可以將代碼編譯成二進制文件保存到ROM中,在軟件平臺上運行程序,提高信號的可觀察性。(2)在基帶結(jié)構(gòu)中增加測試電路,對關(guān)鍵信號進行監(jiān)視,當(dāng)出現(xiàn)問題時可利用測試電路所保存的數(shù)據(jù)進行分析。
其次,ASIC和FPGA結(jié)構(gòu)上的差異給驗證工作帶來了額外的負擔(dān)。驗證人員需要時刻保持ASIC和FPGA在版本上的一致性。原則上,ASIC上的任何的改動都要精準地反映在FPGA中,二者的一致性是相對的,驗證人員需要做到心中有數(shù)。要做好二者的一致性,要對模塊進行正確劃分。把從ASIC到FPGA需要調(diào)整的部分單獨劃分出來(不影響系統(tǒng)系能的前提下)。這樣,當(dāng)ASIC部分進行代碼更新時,只要不涉及到需要調(diào)整的部分,全部替換即可。這樣即節(jié)省了時間,又保證了二者的一致性。
再次,F(xiàn)PGA平臺運行性能較差。在本系統(tǒng)中,CPU和AHB總線的時鐘可以穩(wěn)定運行在100 MHz左右,但是,ARM7和FPGA之間布線延時造成ARM7最高運行在32 MHz左右,否則就不能保證功能以及時序上的正確性。因此,F(xiàn)PGA原型驗證在性能上要低于ASIC平臺。采取的方式是:在ARM7平臺上測試功能,在ARM9平臺上測試性能。采用ARM9芯片時,系統(tǒng)可以運行在100 MHz左右,完全滿足系統(tǒng)整體性能的要求。板級系統(tǒng)的可擴展性有助于解決在驗證過程中的某些問題。
經(jīng)過充分的驗證,本系統(tǒng)實現(xiàn)了基于FPGA原型驗證平臺的GPS基帶芯片的導(dǎo)航定位功能。
參考文獻
[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驗證平臺設(shè)計與實現(xiàn).微電子學(xué)與計算機,2006,23(1):97-102.
[6] 竇建華,孫強,陸俊峰.基于JTAG和FPGA的嵌入式SoC驗證系統(tǒng)設(shè)計與實現(xiàn).合肥工業(yè)大學(xué)學(xué)報,2009,32(3):336~339.