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