?

如何在先進工藝節點利用Virtuoso Check/Assertion Flow

2016-12-01 03:57劉歡艷
電子技術應用 2016年8期
關鍵詞:圖形界面電路設計瞬態

王 超,劉歡艷

(1.Spreadtrum,上海 201203;2.Cadence,上海201204)

如何在先進工藝節點利用Virtuoso Check/Assertion Flow

王超1,劉歡艷2

(1.Spreadtrum,上海 201203;2.Cadence,上海201204)

Virtuoso和MMSIM有效結合,完整的 Check/Assertion flow包含:在圖形界面設置Check/Assert,通過仿真得到Check/Assert的結果,在圖形界面直接顯示Check/Assert的結果,對結果進行各種靈活的后處理,并在 schematic直接進行反標。該流程可以覆蓋電路設計常用check需求,完全不依賴腳本,圖形界面讓工程師更容易上手,基于瞬態仿真的Dynamic Check相比其他工具更具優勢。有效利用Check/Assert flow,可以幫助避免或及早發現設計中的一些常見問題,從而減少設計迭代,該流程在TSMC 16 nm和Intel 14 nm實際項目上得到應用,很大程度地提高了設計效率。

Assert;Device Checking;Circuit Check;Check/Assertion flow

0 引言

隨著集成電路設計和先進工藝技術的飛速發展,電路規模越來越大,電路越來越復雜,電路設計過程中,如何盡可能地避免潛在問題,遇到問題時,如何盡快有效地定位和解決,成為電路設計工程師普遍關注的話題。電路仿真工具在提供大容量以及快速仿真能力的同時,如果能支持器件級別及電路級別的各種檢查機制,對于有效地避免問題,定位問題和解決問題,會有幫助。電路設計平臺(Virtuoso)如果支持方便靈活地設置、看結果以及對結果進行后處理,會使流程更順暢,使用更方便,工程師更容易上手,從而提高設計效率。

Assert又稱 Device Checking,是 Spectre/APS提供的主要用于器件級別的檢查機制,主要用于檢查電路中的器件電壓、電流、工作點、模型參數及自定義表達式等;Circuit Check是 Spectre/APS/XPS提供的主要用于電路級別的檢查機制,主要用于檢查特定的電路設計問題,最常見的包括檢查電路中的懸空輸入點、高阻點、低壓MOS管接到了高電壓域等。IC617/IC122的Virtuoso環境支持在 VSE XL圖形界面進行 Assert和 Circuit Check的設置,Check的結果和其他仿真結果一起直接在 ADE XL界面顯示,可以方便地對Check/Assert的結果進行各種后處理,并將有 Violation的器件及路徑直接反標到schematic。該流程可以覆蓋電路設計常用check需求,完全不依賴腳本,圖形界面讓工程師更容易上手,基于瞬態仿真的Dynamic Check相比其他工具更具優勢。有效利用 Check/Assert flow,可以幫助避免或及早發現設計中的一些常見問題,從而減少設計迭代,該流程在TSMC 16 nm和Intel 14 nm實際項目上得到應用,很大程度地提高了設計效率。

1 Circuit Check

Circuit Check分為 Static Check和 Dynamic Check,前者主要基于電路拓撲結構進行檢查,后者主要基于瞬態仿真結果進行檢查。

Spectre/APS/XPS支持的Static Check主要包含如圖1所示的幾個類型,Static Check主要在電路解析階段基于電路拓撲結構和電壓傳遞信息進行分析,不需要設置任何仿真類型,因此速度快,對于仿真速度幾乎沒有影響。

圖1 Static Check

其中,static_erc可以說是最簡單實用的 Static Check類型,可以用來檢查 dangling node,floatgate,floatbulk以及 hotwell等。Floatgate和 floatbulk比較容易理解,dangling node是指任意器件的 unconnected terminal;hotwell是指沒有連接到電源或地的 bulk node。這些都是常見的可能引入問題的連接關系或拓撲結構,如果是仿真或測試結果出錯再去查,往往費時費力而且會影響產品交付周期,如果在電路設計前期能及時或盡早地發現,會很有意義。

另外兩個常用的 Static Check是 static_highz和 static_voltdomain.Static_highz從靜態的角度找出到電源和地之間沒有任何導電通路的節點,也就是所謂的high impedance node,如圖2所示圓形節點,這是電路設計中引入不確定電位從而導致漏電的一類常見問題。Static_voltdomain從靜態的角度找出電壓域連接出錯的問題,最常見的是低閾值電壓的MOS管接到了高電壓域,容易導致擊穿失效的問題。如圖3所示。

圖2 static_highz示例

圖3 static_voltdomain示例

Spectre/APS/XPS支持的 Dynamic Check主要包含如圖4所示的幾個類型,Dynamic Check主要在電路瞬態仿真階段基于瞬態仿真結果進行分析,檢查結果和所加激勵有關。

圖4 Dynamic Check

前面提到的關于 high impedance node的檢查,除了有static_highz,也有對應的dyn_highz,前者是靜態的,后者是動態的。

除 dyn_highz以外,另外兩個常用的 dynamic check分別是 dyn_exi和 dyn_setuphold.Dyn_exi幫助找到在指定時間窗口內,電流超過某個指定門限的器件,這對于debug掉電模式時的漏電流問題會非常有幫助。Dyn_setuphold可以幫助檢查時序問題,對于時鐘和數據之間setup time或 hold time不滿足指定要求的會報錯。關于這兩個 Dynamic Check,后面我們會用實際項目中用到的例子作進一步詳細介紹,這里先不展開。

2 Virtuoso Check/Assertion Flow

仿真器提供仿真和上述的Circuit Check功能,Virtuoso提供設計環境,可以在不熟悉check語句語法的情況下,輕松完成整個流程,具體流程圖如圖5所示。使用該流程的過程會涉及VSE XL(Virtuoso Schematic Editor XL)中的 Checks and assertions assistant,以及 ADE XL(Analog Design Environment XL),后面我們會用實際用例介紹具體設置和看結果的詳細過程。

圖5 Virtuoso Check/Assert流程示意圖

3 Dyn_setuphold在Virtuoso Check/Assert流程中的具體應用

我們的實際項目中經常會涉及到一些custom digital設計,時序檢查對這一類型的設計非常重要,最典型的就是時鐘和數據之間的setup time和hold time需要滿足一定的要求,dyn_setuphold check正好可以滿足這一類的檢查需求。下面以圖6所示的最簡單的DFF鏈路的例子來詳細闡述 dyn_setuphold在 Virtuoso Check/Assert流程中的具體應用。

圖6 Dyn_setuphold testbench示意圖

如圖7所示,在 ADE XL中點擊‘Click to edit checks’,會自動跳轉到 VSE XL界面,并打開 Checks/Asserts Assistant,在 Checks/Asserts Assistant選擇并設置好dyn_setuphold check,如圖8所示。

圖7 Click to edit checks in ADE XL

圖8 Checks/Asserts Assistant in VSE XL

這個例子,時鐘信號是CK,數據信號包括D2,D22和D222,時鐘周期為 800 ps,設置 setup time和hold time都不能小于200 ps,如果不滿足應報錯。

如圖9所示,可以在ADE XL中選擇‘View Netlisted Checks/Asserts’直接看到生成的 Check語句,如圖10所示。

圖9 View Netlisted Checks/Asserts

圖10 Netlisted Checks/Asserts

設置并進行正常的瞬態仿真,仿真結束以后,在ADE XL不僅可以看到正常的仿真結果和波形,同時還可以看到Checks/Asserts的結果,如圖11所示,可以很清楚地看到信號D22有hold time violation,信號D222有setup time violation,而且可以看出每個violation發生的具體時間點,對應上升沿還是下降沿等具體信息。如圖12所示,可以選擇只看setup violation或只看hold violation。

如圖13所示,D22和 CK之間的 hold time只有132.0 ps,不滿足200 ps的要求,D222和CK之間的setup time只有 67.94 ps,也不滿足 200 ps的要求,從而進一步驗證了圖11和圖12顯示的結果。

在圖11和圖12中點擊任意一個信號,如D2,會直接跳轉到VSE窗口,放大并點亮D2信號,如圖14所示,這是 ADE XL和 schematic之間的 cross-probing功能,方便快速找到有 violation的信號。

圖11 Dyn_setuphold check結果

圖12 Dyn_setuphold check結果—— setup violation

圖13 Dyn_setuphold check結果波形

在ADE XL中,可以添加一類新的表達式,名為‘Violation Filter’,通過這種表達式,可以很方便地對Checks/Asserts的結果進行統計,如圖15所示,新添加的Violation Filter表達式缺省統計所有的 Checks/Asserts violation一共有多少個,可以很方便地對統計內容進行調整。

4 Dyn_exi在Virtuoso Check/Assert流程中的具體應用

接下來,我們繼續討論在另一個項目中,如果利用dyn_exi debug解決power down模式的漏電流問題。

問題現象是電路前仿真結果正常,后仿真在power down模式會有異常的漏電流,電路設計工程師花了很長時間都沒有找出這個漏電流是如何引起的。

對于這一類問題,有一個很方便的方法,就是通過dyn_exi check找出在指定的時間窗口,哪個或哪些器件的電流超出了定義的門限,找到這個或這些器件之后,trace其端口電壓,可以很快找出問題的原因。

Dyn_exi check具體的設置語句如圖16所示。

圖14 Dyn_setuphold check結果波形

圖15 缺省的Violation Filter

通過設置dyn_exi check,找到漏電的器件,并trace其端口電壓之后,我們發現圖17所示電路圖中信號 ca1有異常。VDDESD是2.8 V,但是后仿結果中ca1是0 V。

根據上述線索,電路設計工程師提供簡化的test case重現問題,然后我們發現圖17中的電阻R0在后仿真用到的 rcc extraction view中出現了連接關系斷掉的情況。如圖18所示,63個串聯電路由于串聯節點出錯沒有徹底連通,從而導致出錯。

圖16 Dyn_exi設置語句

圖17 Dyn_exi示例局部電路原理圖

圖18 Dyn_exi示例局部網表

這是抽取工具引起的,找到原因以后,通過抽取工具得到了及時有效地解決。

5 Static_erc在Virtuoso Check/Assert流程中的具體應用

下面我們再舉另一個實際項目的例子,關于如何利用static_erc check debug后仿真結果不正確的問題。

問題現象也是電路前仿真結果正常,后仿真結果異常,電路設計工程師懷疑后仿網表有問題,經過一段時間debug以后,發現圖 19中的 in(input pin)后面接的反向器I0的輸出out1有錯,in為0電平時,out1仍為0電平,反向器沒有正常工作。

圖 19 Static_erc示例局部電路原理圖1

我們在這個項目上采用了 static_erc check,試圖找出后仿網表中是否存在dangling node。

用 static_erc找 dangling node的 check設置如圖 20所示。

圖20 Static_erc—dangling node設置

如圖21所示,通過static_erc check,我們很快找到后仿網表中存在dangling node,反向器gate端的寄生電阻導致PMOS和NMOS的gate和input pin(in)都沒有連通,從而導致出錯。這個也是抽取工具的問題,定位具體原因以后,也很快通過抽取工具得到了及時有效的解決。

圖 21 Static_erc—dangling node示例局部電路原理圖2

6 總結

本文簡單介紹了 Spectre/APS/XPS支持的 Circuit Check類型及其原理,以及 Virtuoso Checks/Asserts完整流程,通過 dyn_setuphold,dyn_exi和static_erc 3種最常用的check類型,詳細闡述了如何設置 Circuit Check,如何看check結果,以及如何方便地對 check結果進行后處理。通過這3個例子,我們可以清楚地看到Circuit Check如何在具體項目中得以應用,并分別適用于解決哪些類型的問題??梢钥闯?,該流程能夠覆蓋電路設計常用check需求,完全不依賴腳本,圖形界面讓工程師更容易上手,基于瞬態仿真的Dynamic Check相比其他工具更具優勢。有效利用Check/Assert flow,可以幫助避免或及早發現設計中的一些常見問題,從而減少設計迭代,該流程在TSMC 16nm和 Intel 14nm實際項目上得到應用,從而很大程度地提高了設計效率。

How to use Virtuoso Check/Assertion Flow in advanced node IC design

Wang Chao1,Liu Huanyan2
(1.Spreadtrum,Shanghai 201203,China;2.Cadence,Shanghai 201204,China)

IC617/IC122 support circuit check and assertions base on virtuoso GUI flow,which include GUI setup in VSE XL(Virtuoso Schematic Editor XL)checks/assertions assistant,view checks/assertions results in ADE XL,flexible post-processing for checks/assertions results,especially schematic crossing probing,which backannotate violation path and violationgdevices onto schematic directly.The virtuoso checks/assertions flow can cover most requirements on both device level and circuit level check mechanisum.The GUI flow makes everything easy,designers do no need to be familiar about the syntax of the check statements, it’s more easy for designers to accept and get used to the use model,the dynamic check which base on transient simulation have obvious advantage compare with other tools.Using checks/assertions flow efficiently,can help designers avoid or find some common design issues as early as possible,thus help decrease the design iteration.The virtuoso checks/assertions flow is used in TSMC 16nm and Intel 14nm project,it helps improve the design efficiency obviously.

Assert;Device Checking;Circuit Check;Check/Assertion flow

TN402

A

10.16157/j.issn.0258-7998.2016.08.005

2016-06-20)

王超(1982-),男,碩士,工程師,主要研究方向:ASIC Analog&RF,EDA Tool,Flow Support。

劉歡艷(1981-),女,碩士,工程師,主要研究方向:Virtuoso平臺前端產品、仿真工具。

中文引用格式:王超,劉歡艷.如何在先進工藝節點利用 Virtuoso Check/Assertion Flow[J].電子技術應用,2016,42 (8):28-32.

英文引用格式:Wang Chao,Liu Huanyan.How to use Virtuoso Check/Assertion Flow in advanced node IC design[J].Application of Electronic Technique,2016,42(8):28-32.

猜你喜歡
圖形界面電路設計瞬態
高壓感應電動機斷電重啟時的瞬態仿真
Altium Designer在電路設計中的應用
負反饋放大電路設計
用VMRun快速置備千臺虛擬機
開漏輸出比較器的峰值檢測電路設計
重看圖形界面“扁平化”與“擬物化”之爭——關于設計思維的探討
十億像素瞬態成像系統實時圖像拼接
基于瞬態流場計算的滑動軸承靜平衡位置求解
DC/DC變換器中的瞬態特性分析
VxWorks系統下基于WindML的窗口化圖形界面設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合