摘要: 隨著集成電路設(shè)計技術(shù)的發(fā)展和芯片集成度的提高,驗證已經(jīng)成為芯片設(shè)計流程中的主要瓶頸。本文設(shè)計了一個基于FPGA的智能卡驗證平臺,并對驗證方法做了詳細闡述。本文對于雙界面智能卡芯片驗證的成功實踐,不僅是對FPGA驗證理論的證實,而且驗證的思路和方法對其他芯片有一定的指導(dǎo)意義。
引言
隨著EDA技術(shù)和半導(dǎo)體制造工藝的不斷發(fā)展,單芯片的功能越來越強,結(jié)構(gòu)越來越復(fù)雜,設(shè)計和制造成本也大幅增加。尤其是進入90 nm后,芯片總體設(shè)計成本增加了20%左右,即使采用130 nm工藝,單次芯片制造的成本也在數(shù)十萬美元,這使得驗證工作在整個設(shè)計過程中的作用顯得越來越重要。驗證貫穿集成電路設(shè)計整個過程,從制定系統(tǒng)SPEC,驗證工作就已經(jīng)開始,從架構(gòu)設(shè)計、行為級的系統(tǒng)建模到模塊化的設(shè)計和實現(xiàn),再到生成網(wǎng)表和后端布局、布線等一系列過程中,驗證工作都一直伴隨其中,通過各個階段的驗證,可以避免把上一個階段的問題帶到下一個階段。
如今,整個集成電路行業(yè)逐步形成了IC設(shè)計、芯片制造、芯片封裝三大行業(yè)。在IC設(shè)計行業(yè)中,設(shè)計和驗證領(lǐng)域發(fā)展不均衡,驗證技術(shù)的發(fā)展水平要遠遠落后于設(shè)計的發(fā)展水平。對于驗證,傳統(tǒng)方法是通過軟件仿真來達到驗證設(shè)計的目的,但由于軟件仿真速度和仿真模型的局限性,當芯片復(fù)雜度和規(guī)模達到一定程度時,驗證往往難以達到令人滿意的效果。特別是對于模擬前端驗證,由于仿真模型的局限性導(dǎo)致仿真結(jié)果與實際器件的工作情況不一致,往往難以保證所設(shè)計電路的可靠性。
為了克服現(xiàn)有的驗證方法在效率和可靠性上面的不足,本文提供一個新型驗證平臺。一方面,該驗證平臺能夠?qū)崿F(xiàn)智能卡芯片設(shè)計中的硬件模塊,讓軟件可以在真正的硬件環(huán)境中高速運行,從而在功能上驗證設(shè)計的可行性;另一方面,該驗證平臺可以直接與MP300 TCL2型非接觸式智能卡測試儀以及各類讀卡器進行通信,在不同的通信環(huán)境下,通過調(diào)整驗證平臺本身的性能參數(shù),可以找到最優(yōu)的工作模式,從而對設(shè)計上性能的改善提供參考依據(jù)。
1 驗證平臺的設(shè)計方案
基于FPGA的智能卡驗證平臺總體設(shè)計方案如圖1所示。本驗證平臺主要由可調(diào)線圈、模擬前端部件、數(shù)字邏輯部件和存儲器部件4部分構(gòu)成。其中可調(diào)線圈是模擬前端獲取能量和信號的通道,模擬前端對信號進行調(diào)制和解調(diào),同時為數(shù)字部分和存儲器提供能量,數(shù)字邏輯部分完成信號的處理,存儲器則對系統(tǒng)軟件和用戶數(shù)據(jù)進行儲存。本驗證平臺實現(xiàn)了非接觸式智能卡應(yīng)有的基本功能,可以直接與市面上讀卡器進行通信,通過測試通信過程中驗證平臺上的模擬或數(shù)字信號,可以達到驗證設(shè)計方案是否合理的目的。
?
圖1 智能卡驗證平臺的總體設(shè)計方案
1.1 可調(diào)線圈的設(shè)計
可調(diào)線圈的感應(yīng)線圈部分是由非接觸式智能卡卡基制作而成,其電感值為2.1 μH;然后與感應(yīng)線圈并聯(lián)一個SG1036ND型可調(diào)電容,其電容值從0.9~30 pF可調(diào),由諧振頻率計算公式:ω=1/L×C可知,在電感不變的情況下,通過改變諧振電路中的電容值可以相應(yīng)地改變諧振電路的諧振頻率;最后與感應(yīng)線圈串聯(lián)一個3296W-101型可調(diào)電阻,其阻值從0~100 Ω可調(diào),由品質(zhì)因數(shù)(Q值)計算公式:Q=(1/G)C/L可知,通過改變諧振電路中的電阻可以相應(yīng)地改變諧振電路的Q值。可調(diào)線圈的結(jié)構(gòu)如圖2所示。
?
圖2 可調(diào)線圈的結(jié)構(gòu)
由上所述,本驗證平臺的可調(diào)線圈可以實現(xiàn)非接觸式智能卡諧振頻率和Q值的靈活調(diào)節(jié)。
1.2 模擬前端部件的設(shè)計
模擬前端部件由LDO芯片AMS11173.3和AMS11171.8、天線接口、與數(shù)字邏輯交互的接口以及模擬前端芯片BES2416C組成。模擬前端部件的主要功能是驗證智能卡芯片內(nèi)的模擬部分,為了保證每一部分電路都能得到有效的驗證,BES2416C內(nèi)部的大部分電路構(gòu)成與智能卡芯片保持一致,包括整流電路、限流電路、時鐘提取電路、鎖相環(huán)、基準電壓產(chǎn)生電路、上電復(fù)位電路、調(diào)制電路和解調(diào)電路。模擬前端芯片與智能卡不同之處在于智能卡受封裝的限制只能封出接觸式的Vcc、RST、CLK、GND、DATA 五個信號,而模擬前端芯片BES2416C為64引腳封裝,模擬與數(shù)字交互的信號以及表征上述模擬各部分電路工作狀態(tài)的信號都通過引腳拉出到芯片外部,因此可以通過測量上述信號實時監(jiān)測模擬前端各部分電路的工作狀態(tài),通過這種手段可以幫助設(shè)計者找出所設(shè)計電路的最佳的工作模式并將此模式設(shè)計到智能卡芯片中。
1.3 數(shù)字邏輯部件的設(shè)計
數(shù)字邏輯部件由Xilinx公司的XC5VLX110型FPGA芯片、與模擬前端交互的接口、與存儲器交互的接口組成。數(shù)字邏輯部件的主要功能是驗證智能卡芯片內(nèi)的數(shù)字部分,本文采用基于FPGA的快速系統(tǒng)原型驗證,這種驗證方法的本質(zhì)在于能夠快速地實現(xiàn)智能卡芯片設(shè)計中的數(shù)字邏輯部分的硬件模塊,讓軟件模塊在真正的硬件環(huán)境中高速運行,從而實現(xiàn)設(shè)計的軟硬件協(xié)同驗證。由于智能卡芯片采用低功耗設(shè)計,使用了較多的門控時鐘,因此本文選擇了一款具有較多全局時鐘網(wǎng)絡(luò)的FPGA芯片,該FPGA包含110 000個邏輯單元,32個全局時鐘網(wǎng)絡(luò)、1 200個用戶I/O、16.4 Mb塊存儲區(qū)。由于FPGA最大特點就是具有靜態(tài)可編程的特性或在線動態(tài)重構(gòu)特性,使硬件的功能同軟件一樣可以通過編程來修改,因此本驗證平臺不僅可以驗證已經(jīng)設(shè)計完成的數(shù)字邏輯,還可以對設(shè)計過程中數(shù)字邏輯的改動部分進行實時驗證。
1.4 存儲器部件的設(shè)計
存儲器部件是由LDO芯片AMS11173.3和AMS11171.8、容量為64 Kb的Eflash芯片BES2416B_E、與數(shù)字邏輯交互的接口組成。存儲器部件的主要功能是驗證智能卡芯片內(nèi)的Eflash部分,本文使用的Eflash芯片內(nèi)部的IP核與智能卡芯片保持一致,并且為64引腳封裝,所有地址總線、數(shù)據(jù)總線和控制信號都通過引腳拉出到芯片外部,可以利用FPGA內(nèi)的數(shù)字邏輯控制其讀、擦、寫操作,因此該芯片不僅能夠作為存儲器存儲片內(nèi)操作系統(tǒng)和數(shù)據(jù),還可以直觀驗證智能卡內(nèi)數(shù)字邏輯對Eflash的控制時序是否正確。
2 驗證方法
驗證方法分為功能驗證和性能驗證兩個部分,下面詳細闡述本平臺的驗證方法。
2.1 功能驗證
驗證平臺與讀卡器通信的前兩步的數(shù)字邏輯是在FPGA中實現(xiàn)的,如果讀卡器第一步發(fā)出尋卡請求信號,驗證平臺能夠應(yīng)答,并且讀卡器在第二步能夠成功選卡,說明驗證平臺的接收和發(fā)射功能正常,反之可以按照通信過程中各模塊的工作順序測試各部件測試點上的信號定位出有問題的模塊。
進一步驗證對Eflash的擦寫功能,讀卡器向驗證平臺分別發(fā)送讀、擦、寫Eflash的指令,如果驗證平臺給讀卡器回復(fù)操作成功的信號,說明Eflash功能正常,反之需要測試存儲器部件測試點上的信號找出對Eflash操作中時序出現(xiàn)的問題,然后修改代碼在FPGA中重新實現(xiàn)數(shù)字邏輯。
利用讀卡器向Eflash芯片中寫入符合PBOC2.0標準的片內(nèi)操作系統(tǒng),使驗證平臺支持電子錢包和電子存折功能,如果驗證平臺能夠成功完成PBOC2.0規(guī)定的圈存、圈提、消費、取余額等所有功能,說明驗證平臺的交易功能正常。
綜上,如果通過以上三步驗證,能夠說明所設(shè)計智能卡芯片在功能上是正常的。
2.2 性能驗證
諧振頻率和Q值的調(diào)節(jié):ISO/IEC 14443協(xié)議規(guī)定了非接觸式智能卡通信用載波頻率為13.56下MHz±7 KHz,但對智能卡本身的諧振頻率并未規(guī)定標準值,因此,客觀上造成了目前流通的智能卡諧振頻率的多樣性。通過測試發(fā)現(xiàn),智能卡在不同諧振頻率下的工作性能是不同的,每家智能卡廠商的芯片都有自己的最佳工作頻率范圍,但單純通過理論分析無法定位這個區(qū)域,而本驗證平臺可以通過調(diào)節(jié)可調(diào)線圈上的可調(diào)電容改變驗證平臺的諧振頻率,因此可以在不同的諧振頻率下與讀卡器進行通信找出智能卡芯片工作的最佳諧振頻率;同理通過調(diào)節(jié)可調(diào)線圈上的可調(diào)電阻改變驗證平臺的Q值可以找出最有利于智能卡芯片工作的Q值。
工作場強范圍的驗證:ISO/IEC 14443 TypeA協(xié)議規(guī)定非接觸式智能卡應(yīng)在1.5~7.5 A/m的場強范圍內(nèi)正常工作。本驗證平臺可以與MP300 TCL2型非接觸式智能卡測試儀器正常通信,首先將可調(diào)線圈置于TCL2的測試架上并調(diào)節(jié)TCL2發(fā)射的磁場強度到1.5 A/m,然后按照功能驗證的步驟進行測試,如果通過驗證說明智能卡在1.5 A/m場強下的功能正常,再調(diào)節(jié)場強到1.6 A/m進行同樣的驗證,按照以上方法將驗證平臺從1.5~7.5 A/m工作的情況做出統(tǒng)計,然后對驗證平臺通信不正常的場強區(qū)域進行詳細測試,按照通信過程中各模塊的工作順序測試各部件測試點上的信號定位出有問題的模塊并改進該模塊的設(shè)計,然后重復(fù)本驗證過程直到所有場強點都可以正常工作,最后將通過驗證的電路結(jié)構(gòu)設(shè)計到智能卡中。
接收性能的驗證:ISO/IEC 14443 TypeA協(xié)議規(guī)定讀卡器發(fā)出的信號為100% ASK調(diào)制,讀卡器發(fā)送的數(shù)據(jù)0用pause表示,pause的波形由4個參數(shù)t1、t2、t3、t4決定,并且給出了這4個參數(shù)的取值范圍。根據(jù)測試經(jīng)驗可知,智能卡的接收性能由t1和t2的決定,并且在t1和t2為兩種極限的情況下智能卡接收最困難,這兩種極限情況分別是:t1=3 μs、t2=0.5 μs以及t1=2 μs、t2=0.7 μs。首先將可調(diào)線圈置于TCL2的測試架上并調(diào)節(jié)TCL2發(fā)送的pause波形到一種極限情況,然后按照功能驗證的步驟進行測試,如果通過驗證說明智能卡在這種極限情況下的接收性能良好,再調(diào)節(jié)pause波形到另一種極限情況進行相同的驗證,如果驗證平臺在任意一種情況下不能正常通信,則配置模擬前端芯片內(nèi)解調(diào)電路解調(diào)閾值調(diào)節(jié)的控制字,然后重新進行接收性能的驗證,如此反復(fù)直到驗證平臺在兩種極限pause波形下正常工作,最后將通過驗證的解調(diào)電路的工作模式設(shè)計到智能卡中。
發(fā)送性能的驗證:ISO/IEC 14443 TypeA協(xié)議規(guī)定智能卡發(fā)送的負載波調(diào)制深度應(yīng)至少達到22/H0.5 mV。首先將可調(diào)線圈置于TCL2的測試架上并調(diào)節(jié)TCL2發(fā)射的磁場強度到1.5 A/m,然后利用TCL2的ISO 103736測試腳本計算出在當前場強下的負載調(diào)制深度并與協(xié)議要求值進行比較,如果滿足要求則說明智能卡的負載調(diào)制深度在當前場強下發(fā)送性能良好,再調(diào)節(jié)場強到2.0 A/m進行同樣的驗證,按照以上方法將驗證平臺從1.5~7.5 A/m的負載調(diào)制深度做出統(tǒng)計,如果負載調(diào)制深度在某些場強下不滿足協(xié)議要求,則配置模擬前端芯片內(nèi)調(diào)制電路負載調(diào)制深度的控制字,然后重新進行發(fā)送性能的驗證,如此反復(fù)直到驗證平臺的負載調(diào)制深度在各場強點上都滿足協(xié)議要求,最后將通過驗證的調(diào)制電路的工作模式設(shè)計到智能卡中。
Eflash操作時間的驗證:TBIT是標志本驗證平臺的Eflash芯片操作狀態(tài)的信號,TBIT信號為高表示正在操作,TBIT信號為低表示操作完成。對Eflash的操作包括讀、擦、寫三個動作,下面對這三個操作的時間分別進行驗證:首先將可調(diào)線圈置于讀卡器線圈上并將示波器的一個通道接到TBIT信號測試點上,然后讀卡器向驗證平臺發(fā)送讀取Eflash中1字節(jié)的指令,通過示波器抓取TBIT信號高電平的持續(xù)時間,這段時間就是Eflash讀取1字節(jié)的時間;讀卡器向驗證平臺發(fā)送擦除Eflash中1頁的指令,通過示波器抓取TBIT信號高電平持續(xù)的時間,這段時間就是Eflash擦除1頁的時間;讀卡器向驗證平臺發(fā)送向Eflash寫入1字節(jié)的指令,通過示波器抓取TBIT信號高電平持續(xù)的時間,這段時間就是Eflash寫入1字節(jié)的時間。經(jīng)過以上對Eflash操作時間的驗證,可以使研發(fā)人員精確地計算出智能卡與讀卡器交互過程中硬件操作需要的時間,用這個時間和實際智能卡操作時間作對比來評估片內(nèi)操作系統(tǒng)的效率,為軟件性能的改善提供參考依據(jù)。
綜上這些驗證方法可以幫助研發(fā)人員及時發(fā)現(xiàn)芯片設(shè)計中的不足,以便在流片前做出改進,提高智能卡芯片開發(fā)的成功率。
結(jié)語
本平臺可以適用于其他通信芯片的設(shè)計驗證中,具有很好的工程應(yīng)用價值。
參考文獻
[1] 黃麗. 百萬門級專用集成電路的FPGA驗證[D]. 西安:西安電子科技大學(xué),2007:16.
[2] 傅永杰. 關(guān)于FPGA在ASIC設(shè)計中的作用問題探討[J]. 今日電子,1996(2).
[3] 全國金融標準化技術(shù)委員會. 中國金融集成電路(IC)卡規(guī)范第二部分:電子錢包/電子存折應(yīng)用規(guī)范[M]. 北京: 中國金融出版社, 2010: 1938.
[4] 周宏華,李樹國,周潤德. 高安全性的智能卡芯片結(jié)構(gòu)與設(shè)計[J]. 清華大學(xué)學(xué)報, 2003,43(4).
[5] Xilinx. Virtex5 FPGA User Guide. , 2009: 2536.
[6] Akihiro Higashi, Kazuhide Tamaki, Takayuki Sasaki.Verification Methodology for a Complex SystemonaChip[J]. FUJITSU Sci. Tech. J.,2000(6):2430.
陳博(碩士生),主要研究方向為芯片驗證、測試和嵌入式系統(tǒng)設(shè)計;于忠臣(教授),主要研究方向為SoC設(shè)計和嵌入式系統(tǒng)。
評論
查看更多