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