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