《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > Perl在ESD保護(hù)電路中研究與應(yīng)用
Perl在ESD保護(hù)電路中研究與應(yīng)用
來源:微型機(jī)與應(yīng)用2014年第4期
蔣小平, 陽 鵬
(中國礦業(yè)大學(xué) 機(jī)電與信息工程學(xué)院,,北京100083)
摘要: 研究了Perl在ESD保護(hù)電路中的應(yīng)用,。基于Perl語言的強(qiáng)大功能,,在海量的數(shù)字電路仿真數(shù)據(jù)中準(zhǔn)確地抓取需要的數(shù)據(jù),并生成文件報(bào)表,。同時(shí)為數(shù)字仿真電路的驗(yàn)證提供了一種全新,、快速、準(zhǔn)確的方式,。
關(guān)鍵詞: FPGA Perl ESD電路 電路驗(yàn)證
Abstract:
Key words :

摘  要: 研究了Perl在ESD保護(hù)電路中的應(yīng)用,。基于Perl語言的強(qiáng)大功能,,在海量的數(shù)字電路仿真數(shù)據(jù)中準(zhǔn)確地抓取需要的數(shù)據(jù),,并生成文件報(bào)表。同時(shí)為數(shù)字仿真電路的驗(yàn)證提供了一種全新,、快速,、準(zhǔn)確的方式。
關(guān)鍵詞: Perl,; ESD電路,; 電路驗(yàn)證

    在一款電子產(chǎn)品投入生產(chǎn)前,數(shù)字后端設(shè)計(jì)工程師會(huì)對數(shù)字仿真電路進(jìn)行驗(yàn)證,,對整個(gè)版圖的線寬,、間距、短路等情況進(jìn)行檢查,,從而確保生產(chǎn)的產(chǎn)品都能夠正常工作,。這些仿真電路驗(yàn)證工作經(jīng)常需要面對海量的電路數(shù)據(jù)進(jìn)行篩選,識(shí)別出設(shè)計(jì)參數(shù)不合格的電路并進(jìn)行改善[1]。
    數(shù)字仿真電路的設(shè)計(jì)離不開仿真驗(yàn)證,,仿真驗(yàn)證過程是一個(gè)不斷重復(fù)的過程,,它貫穿了整個(gè)仿真電路的設(shè)計(jì)。據(jù)統(tǒng)計(jì),,設(shè)計(jì)驗(yàn)證會(huì)占用設(shè)計(jì)人員 70%以上的精力,,而且對于大型的電路,驗(yàn)證會(huì)更為繁瑣,,例如門級規(guī)模上億的電路,。
1 數(shù)字仿真電路驗(yàn)證方法分析
    作為可編程邏輯器件,FPGA(Field Programmable Gate Array)相比于ASIC(Application Specific Integrated Circuit)可以重復(fù)擦寫程序,通常用它來對現(xiàn)有的設(shè)計(jì)進(jìn)行仿真驗(yàn)證,。在數(shù)字 ASIC 的設(shè)計(jì)中,,由于測試向量的不完備,設(shè)計(jì)中很有可能存在相應(yīng)的Bug,。因?yàn)槊看?ASIC 的投片會(huì)花費(fèi)較大代價(jià),,為規(guī)避風(fēng)險(xiǎn),通常會(huì)對設(shè)計(jì)進(jìn)行 FPGA驗(yàn)證,,F(xiàn)PGA 驗(yàn)證無誤后才進(jìn)行投片,、量產(chǎn)[2]。
   目前FPGA數(shù)字后端驗(yàn)證的方法主要是基于人工的選擇,通過Linux下的條件查找功能,,逐個(gè)實(shí)現(xiàn)對電路參數(shù)的驗(yàn)證功能,。要驗(yàn)證的電路數(shù)目和需要驗(yàn)證的電路參數(shù)個(gè)數(shù)都是海量的,,而且需要驗(yàn)證的參數(shù)類型也是隨時(shí)變化的,,因此這種人工驗(yàn)證的方法,不僅效率低下,,而且驗(yàn)證準(zhǔn)確度難以確保,。
   本文將介紹一種新的利用Perl(Practical Extraction and Reporting Language)進(jìn)行數(shù)字仿真電路驗(yàn)證的方式。
2 Perl介紹及其在ESD保護(hù)電路中的應(yīng)用
2.1 Perl簡介

    Perl是解釋型的腳本語言,,它具有出色的處理文本能力,,是Windows和Linux跨平臺(tái)的編程語言,具備自主內(nèi)存管理功能,沒有內(nèi)存泄漏問題,,且具有強(qiáng)大便捷的模塊化功能[3],。
    Perl的解釋程序是開放源碼的免費(fèi)軟件,使用Perl不必?fù)?dān)心費(fèi)用,;Perl能在絕大多數(shù)操作系統(tǒng)下運(yùn)行,,可以方便地向不同操作系統(tǒng)遷移;它可以作為用在不同系統(tǒng)環(huán)境編程的高級語言,為電路驗(yàn)證提供了一種新的解決方式,;其高效,、準(zhǔn)確的特點(diǎn)給設(shè)計(jì)人員帶來了很大的便利[4]。
2.2 ESD保護(hù)電路
    靜電放電ESD(Electrostatic Discharge)會(huì)給電子器件環(huán)境帶來破壞性的后果,是造成集成電路失效的主要原因之一,。
    在正常工作情況下,,NMOS橫向晶體管不會(huì)導(dǎo)通,。當(dāng)ESD發(fā)生時(shí),漏極和襯底的耗盡區(qū)將發(fā)生雪崩,,并伴隨之產(chǎn)生電子空穴對,。一部分產(chǎn)生的空穴被源極吸收,其余的流過襯底,。由于襯底電阻Rsub的存在,,使襯底電壓提高。當(dāng)襯底與源之間的PN結(jié)正偏時(shí),,電子就從源發(fā)射進(jìn)入襯底,。這些電子在源漏之間電場的作用下被加速,產(chǎn)生電子,、空穴的碰撞電離,,從而形成更多的電子空穴對,使流過n-p-n晶體管的電流不斷增加,,最終使NMOS晶體管發(fā)生二次擊穿,,此時(shí)的擊穿不再可逆,則NMOS管損壞[5],。
    為了進(jìn)一步降低輸出驅(qū)動(dòng)上NMOS在ESD時(shí)兩端的電壓,,可在ESD 保護(hù)器件與GGNMOS之間加一個(gè)電阻。這個(gè)電阻不能影響工作信號,,因此不能太大,。畫版圖時(shí)通常采用多晶硅(poly)電阻R1和R2。如圖1所示,。
2.3 Perl在ESD保護(hù)電路驗(yàn)證中的應(yīng)用
    Perl在ESD保護(hù)電路驗(yàn)證中可以實(shí)現(xiàn)抓取所需要的數(shù)據(jù)信息并生成文件報(bào)表,。圖2所示為一款芯片的ESD保護(hù)電路報(bào)表中的一個(gè)小模塊仿真電路,其整個(gè)報(bào)告有上千個(gè)格式相同而R1,、R2數(shù)字不同的電路小模塊,。由圖1所示的電路說明,要實(shí)現(xiàn)對芯片的ESD保護(hù),,需要限定:R1或者R2不能大于某一個(gè)限定值Rm,。因此需要在這個(gè)文件報(bào)表中實(shí)現(xiàn)不滿足此條件(即:R1或R2電阻值有一個(gè)大于3.5 Ω)的所有電路Location、Power和Ground的信息抓取,。如果不用腳本程序,,只能對電路模塊的R1和R2數(shù)值信息一個(gè)一個(gè)分析比較,這樣不僅準(zhǔn)確率低,,容易出錯(cuò),,而且耗費(fèi)大量后端工程師的精力。但是現(xiàn)在可以通過一個(gè)Perl程序?qū)崿F(xiàn)對此類文件報(bào)告進(jìn)行條件抓取。這種方式不僅運(yùn)行速度快,,不會(huì)出錯(cuò),,而且大大減少了后端驗(yàn)證工程師的數(shù)據(jù)分析工作量?!?/p>


    運(yùn)行這個(gè)Perl腳本后,,只需要輸入電源電阻所需要滿足的條件,不同系列的芯片對R1和R2要求不一樣,。譬如,,對于某一系列芯片需要查找出R1或者R2大于3.5 ?贅的所有電路location、power,、ground信息(注:對于此系列芯片R1或者R2大于3.5 ?贅時(shí)的ESD保護(hù)電路都是不能通過檢查的,,需要重新設(shè)計(jì)參數(shù))。Perl可以在Windows,、Unix等多種平臺(tái)下運(yùn)行,,以在Windows系統(tǒng)下運(yùn)行為例[7],如圖3所示,。

    最后的運(yùn)行Perl腳本輸出為一個(gè)result文件名的文件報(bào)表,,結(jié)果如圖4所示。

 

 

    數(shù)字仿真電路驗(yàn)證是其數(shù)字后端設(shè)計(jì)中極其重要的一部分,,是保證每款芯片品質(zhì)的重要部分,。Perl語言可以很好地實(shí)現(xiàn)所有不滿足ESD保護(hù)電路設(shè)計(jì)的電路參數(shù)抓取,方便數(shù)字仿真電路設(shè)計(jì)后端查錯(cuò),。由此表明可以根據(jù)不同電路的實(shí)際仿真報(bào)告,,用Perl編程實(shí)現(xiàn)不同數(shù)字仿真電路驗(yàn)證的后端查錯(cuò),大大減少了驗(yàn)證者的工作量,??梢灶A(yù)見,,以后的硬件電路設(shè)計(jì)中會(huì)越來越多地見到Perl的身影[8],。
參考文獻(xiàn)
[1] 余曉文,強(qiáng)英.Perl語言在電路設(shè)計(jì)中的應(yīng)用[J]. 微型機(jī)與應(yīng)用,,2004, 23(1):24-25.
[2] 許川佩,,唐海,胡聰.基于FPGA的NoC硬件系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,,2012,,38(2):117-119.
[3] (美)施瓦茨. Perl語言入門(第6版)[M].盛春,譯.南京:東南大學(xué)出版社,,2012.
[4] (美)艾德爾曼.使用Perl實(shí)現(xiàn)系統(tǒng)管理自動(dòng)化(第2版)[M].盛春,,譯.南京:東南大學(xué)出版社,2011.
[5] 孫可平,劉勇.我國電子行業(yè)ESD防治技術(shù)現(xiàn)狀及對策[J].上海海運(yùn)學(xué)院學(xué)報(bào),1999(1):76-81.
[6] DEITEL H M. Perl編程金典[M]. 李晉宏,楊小平,,譯.北京:清華大學(xué)出版社,,2002.
[7] 華勝華,劉偉平. PERL在IC設(shè)計(jì)中的應(yīng)用[J].中國集成電路,,2004(5):36-41.
[8] WALL L, CHRISTIANSEN T, ORWANT J. Programming  Perl[M]. Third Edition, O′Reilly Media, 2000.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。