文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.199807
中文引用格式: 廖璐,,候春源,,李躍平,等. 行為級(jí)模型功能比對(duì)驗(yàn)證的自動(dòng)方法學(xué)[J].電子技術(shù)應(yīng)用,,2019,,45(8):63-67.
英文引用格式: Liao Lu,Hou Chunyuan,,Li Yueping,,et al. Automatic simulation method for functional equivalence check[J]. Application of Electronic Technique,2019,,45(8):63-67.
0 引言
隨著集成電路技術(shù)的進(jìn)步與發(fā)展,混合信號(hào)芯片現(xiàn)今被廣泛使用,,該芯片設(shè)計(jì)領(lǐng)域通常需要采用大量測(cè)試矢量進(jìn)行全芯片功能驗(yàn)證仿真,,因此,,對(duì)模擬和混合信號(hào)模塊建立快速、準(zhǔn)確的行為級(jí)模型至關(guān)重要[1],。這些行為級(jí)模型既要和實(shí)際電路端口一致,,還要能正確體現(xiàn)實(shí)際電路的功能和重要行為特性,且不能對(duì)全芯片功能驗(yàn)證仿真速度造成太大影響[2],。為了更準(zhǔn)確地描述模擬和混合信號(hào)模塊的行為特性,,例如電路中的電壓都是實(shí)數(shù)值,而不是簡(jiǎn)單的0和1,,采用了Wreal模型和SV-UDT來實(shí)現(xiàn)模塊實(shí)數(shù)電壓的建模,。此外,為保證正確,、有效和全面的全芯片功能驗(yàn)證仿真,,需要對(duì)各個(gè)模塊的行為級(jí)模型和晶體管級(jí)電路進(jìn)行功能比對(duì)驗(yàn)證。采用Cadence XPS仿真器的矢量檢查功能對(duì)行為級(jí)模型的Verilog仿真結(jié)果和晶體管級(jí)電路的Spice仿真結(jié)果進(jìn)行比對(duì)驗(yàn)證,,把這套方法稱為BVS流程或者BVS檢查,。
在此之前,利用現(xiàn)有的EDA工具,,只能進(jìn)行邏輯狀態(tài)的BVS矢量檢查,而不能進(jìn)行實(shí)數(shù)類型的矢量檢查,,因此,,對(duì)EDA工具提出了新的要求,需要其支持實(shí)數(shù)類型的矢量檢查,。此外,,功能比對(duì)驗(yàn)證時(shí)所采用的輸入激勵(lì)傳統(tǒng)上是根據(jù)工程師對(duì)于電路模塊的理解手動(dòng)生成的,這樣采用的輸入激勵(lì)覆蓋率不夠全面,,因此,,需要一種自動(dòng)生成覆蓋率全面的輸入激勵(lì)的方法。
基于BVS功能比對(duì)驗(yàn)證的重要性,,本文描述了一種行為級(jí)模型功能比對(duì)驗(yàn)證的自動(dòng)方法學(xué),,采用Cadence XPS仿真器的矢量檢查功能,可以同時(shí)實(shí)現(xiàn)邏輯狀態(tài)和實(shí)數(shù)類型的自動(dòng)比對(duì)驗(yàn)證,。
1 傳統(tǒng)的邏輯狀態(tài)矢量檢查
傳統(tǒng)的邏輯狀態(tài)矢量檢查可以通過圖1所示的BVS自動(dòng)比對(duì)流程實(shí)現(xiàn),。其中,模塊的行為級(jí)模型用NC-Verilog進(jìn)行仿真,,對(duì)應(yīng)的晶體管級(jí)電路用XPS進(jìn)行仿真,,并通過在XPS仿真中添加測(cè)試矢量文件,對(duì)上述兩種仿真結(jié)果進(jìn)行自動(dòng)比對(duì),,用以驗(yàn)證行為級(jí)模型和晶體管級(jí)電路的功能是否匹配,。
圖2給出了通過行為級(jí)模型Verilog仿真生成的測(cè)試矢量文件以及XPS如何基于該文件進(jìn)行自動(dòng)比對(duì)的實(shí)例,。生成的測(cè)試矢量文件主要包含了如下幾個(gè)分支:vname、io定義,,檢查時(shí)間窗口以及信號(hào)切換監(jiān)測(cè),。其中,vname用于列出所仿模塊所有輸入和輸出pin腳的名字,。io定義用于說明每個(gè)pin腳的類型,,輸入pin為“i”,輸出pin為“o”,,對(duì)于矢量文件中的輸入pin腳,,它在XPS仿真時(shí)會(huì)根據(jù)矢量文件中設(shè)定的Vih和Vil值轉(zhuǎn)換成PWL電壓源;對(duì)于矢量文件中的輸出pin腳,,它的值會(huì)被認(rèn)作為預(yù)計(jì)邏輯輸出,,然后XPS的模擬實(shí)際輸出會(huì)根據(jù)矢量文件中設(shè)定的Voh和Vol值轉(zhuǎn)換成實(shí)際邏輯輸出,并與預(yù)計(jì)邏輯輸出進(jìn)行比對(duì)驗(yàn)證,;對(duì)于io定義為“u”的pin腳,,表示為沒有用到的pin腳,仿真時(shí)會(huì)被接到高阻態(tài),,并且不會(huì)對(duì)這個(gè)pin腳進(jìn)行任何比對(duì)驗(yàn)證,。檢查時(shí)間窗口定義了在哪個(gè)時(shí)間段對(duì)實(shí)際輸出和預(yù)計(jì)輸出進(jìn)行比對(duì),通常會(huì)選擇實(shí)際輸出信號(hào)建立穩(wěn)定后的時(shí)間窗口,,如圖3所示,。信號(hào)切換監(jiān)測(cè)會(huì)打印出所有輸入pin腳和輸出pin腳的信號(hào)切換值,以確保用于行為級(jí)模型Verilog仿真和晶體管級(jí)電路Spice仿真的輸入激勵(lì)相同,,并且所有相應(yīng)的輸出都會(huì)被比對(duì)驗(yàn)證,。
進(jìn)行邏輯狀態(tài)自動(dòng)比對(duì)時(shí),如果實(shí)際邏輯輸出和預(yù)計(jì)邏輯輸出不匹配,,也即是違反了匹配需求條件,,如表1所示,則警告和錯(cuò)誤信息會(huì)被寫入矢量檢查出錯(cuò)報(bào)告中,,如圖4所示,。如果完全匹配,則出錯(cuò)報(bào)告會(huì)是一個(gè)空文件,。
2 新改進(jìn)的實(shí)數(shù)類型矢量檢查
只包含邏輯狀態(tài)的行為級(jí)模型用來描述模擬模塊行為特性會(huì)有較大的局限性,。如圖5所示,例如:(1)不能描述輸出電壓和電源電壓之間的相關(guān)性,;(2)電路中被不同模塊多級(jí)驅(qū)動(dòng)的節(jié)點(diǎn)不能被正確描述,,從而不能正確反映實(shí)際電路真實(shí)情況;(3)模塊內(nèi)部中被多級(jí)驅(qū)動(dòng)的節(jié)點(diǎn)不能被正確描述,,對(duì)應(yīng)的電壓轉(zhuǎn)換不能被正確體現(xiàn)出來,。Wreal模型和SV-UDT的引入和組合應(yīng)用可以幫助克服這些局限性[3],,通過SV-UDT,可以基于建模需求去定義一些特定的信號(hào)類型,,例如同一個(gè)端口可以包含邏輯狀態(tài)和實(shí)數(shù)值兩種類型,,因此這就需要矢量檢查同時(shí)支持邏輯狀態(tài)和實(shí)數(shù)類型兩種檢查。圖6給出了Wreal模型和SV-UDT組合應(yīng)用的一個(gè)具體示例,。
在利用XPS仿真器進(jìn)行邏輯狀態(tài)矢量檢查的基礎(chǔ)上,,對(duì)EDA供應(yīng)商Cadence提出了實(shí)數(shù)類型矢量檢查的新需求,具體的實(shí)現(xiàn)細(xì)節(jié)如下:首先,,在矢量文件中增加了一個(gè)新的參數(shù)“sig_type”,,用來幫助區(qū)分是邏輯狀態(tài)檢查還是實(shí)數(shù)類型檢查。此外,,還增加了2個(gè)新的參數(shù)用來定義電壓容差,,一個(gè)是允許的絕對(duì)誤差(abstol),另一個(gè)是允許的相對(duì)誤差(reltol),。這個(gè)電壓容差,,定義了行為級(jí)模型Verilog仿真預(yù)計(jì)實(shí)數(shù)輸出和晶體管級(jí)電路Spice仿真實(shí)際模擬輸出之間允許的電壓誤差,只有當(dāng)實(shí)際模擬輸出在“預(yù)計(jì)實(shí)數(shù)輸出±(絕對(duì)誤差+預(yù)計(jì)實(shí)數(shù)輸出*相對(duì)誤差)”范圍以內(nèi)時(shí),,兩者才算匹配,。例如,行為級(jí)模型Verilog仿真預(yù)計(jì)實(shí)數(shù)輸出為1.2 V,,允許的絕對(duì)誤差為0.01,,允許的相對(duì)誤差為0.1,也就是10%,,根據(jù)公式計(jì)算,晶體管級(jí)電路Spice仿真實(shí)際模擬輸出只有在1.07 V~1.33 V之間時(shí),,兩者才算匹配,。
除此以外,還提出了進(jìn)一步的改進(jìn)需求,,例如需要矢量檢查支持實(shí)數(shù)類型的x狀態(tài)(`wrealXstate)檢查和實(shí)數(shù)類型的z狀態(tài)(`wrealZstate)檢查,。當(dāng)進(jìn)行z狀態(tài)檢查時(shí),如果行為級(jí)模型的預(yù)計(jì)實(shí)數(shù)輸出是`wrealZstate,,對(duì)應(yīng)晶體管級(jí)電路的實(shí)際模擬輸出需要是高阻狀態(tài),,否則不匹配;當(dāng)進(jìn)行x狀態(tài)檢查時(shí),,如果行為級(jí)模型的預(yù)計(jì)實(shí)數(shù)輸出是`wrealXstate,,對(duì)應(yīng)晶體管級(jí)電路的實(shí)際模擬輸出需要是多驅(qū)動(dòng)狀態(tài),否則不匹配,。這些進(jìn)一步的改進(jìn)需求也已經(jīng)在XPS仿真器中實(shí)現(xiàn)了,。
圖7給出了一個(gè)用于實(shí)數(shù)類型矢量檢查的測(cè)試矢量文件的實(shí)例,。行為級(jí)模型Verilog仿真的預(yù)計(jì)實(shí)數(shù)輸出可以和晶體管級(jí)電路Spice仿真的實(shí)際模擬輸出在檢查時(shí)間窗口內(nèi)直接進(jìn)行自動(dòng)比對(duì)驗(yàn)證,如圖8所示,。
進(jìn)行實(shí)數(shù)類型自動(dòng)比對(duì)時(shí),,如果實(shí)際模擬輸出和預(yù)計(jì)實(shí)數(shù)輸出不匹配,也即是違反了匹配需求條件,,如表2所示,,則警告和錯(cuò)誤信息會(huì)被寫入矢量檢查出錯(cuò)報(bào)告中,如圖9所示,。如果完全匹配,,則出錯(cuò)報(bào)告會(huì)是一個(gè)空文件。
3 用于產(chǎn)生輸入激勵(lì)覆蓋率全面的IO配置表
傳統(tǒng)上,,功能比對(duì)驗(yàn)證時(shí)所采用的輸入激勵(lì)是根據(jù)工程師對(duì)于電路模塊的理解手動(dòng)生成的,,然而這樣采用的輸入激勵(lì)覆蓋率不夠全面,進(jìn)而影響功能比對(duì)驗(yàn)證的準(zhǔn)確度[4],。為了解決這個(gè)問題,,提出了一種利用帶設(shè)計(jì)約束的IO配置表產(chǎn)生覆蓋率全面的輸入激勵(lì)的方法,圖10給出了這種方法的工作流程圖,。
IO配置表不僅用于定義產(chǎn)生輸入激勵(lì)的輸入約束,,也用于定義輸出比較的輸出約束。例如,,對(duì)于用作輸入的pin腳,,其設(shè)計(jì)約束包含:(1)Vih/Vil,用于指定邏輯高和邏輯低狀態(tài)轉(zhuǎn)換成模擬輸入時(shí)的電壓值,;(2)信號(hào)強(qiáng)制,,用于定義是否強(qiáng)制某個(gè)輸入信號(hào)為邏輯狀態(tài)“1/0/x/z”中的某一個(gè)或者遍歷這些狀態(tài);(3)限制性輸入,,用于定義某個(gè)輸入信號(hào)和其他輸入信號(hào)之間的相關(guān)性,;(4)優(yōu)先級(jí),用于指定遍歷某些輸入信號(hào)組合時(shí)的優(yōu)先順序,;(5)周期,,用于定義輸入組合激勵(lì)之間的間隔周期。
對(duì)于用作輸出的pin腳,,設(shè)計(jì)約束包含:(1)是否包含實(shí)數(shù)電壓值,,如果“是”,則對(duì)這個(gè)輸出信號(hào)既要進(jìn)行邏輯狀態(tài)檢查,,又要進(jìn)行實(shí)數(shù)類型檢查,;如果“否”,則只對(duì)這個(gè)輸出信號(hào)進(jìn)行邏輯狀態(tài)檢查,;(2)Voh/Vol,,用于指定邏輯狀態(tài)檢查時(shí),,XPS實(shí)際模擬輸出電壓轉(zhuǎn)換成邏輯高和邏輯低狀態(tài)對(duì)應(yīng)的電壓值;(3)沒有用到的pin腳,,用于指定是否要跳過對(duì)這個(gè)輸出信號(hào)的矢量檢查,;(4)Z態(tài)檢查,指定是否要對(duì)這個(gè)輸出信號(hào)進(jìn)行Z狀態(tài)檢查,;(5)X態(tài)檢查,,指定是否要對(duì)這個(gè)輸出信號(hào)進(jìn)行X狀態(tài)檢查。
4 功能比對(duì)驗(yàn)證的自動(dòng)方法學(xué)
混合信號(hào)芯片設(shè)計(jì)中需要對(duì)大量模塊進(jìn)行行為級(jí)建模和功能比對(duì)驗(yàn)證,,因此需要引入一種自動(dòng)仿真方法來自動(dòng)生成功能比對(duì)模塊清單,,啟動(dòng)行為級(jí)模型Verilog仿真和晶體管級(jí)電路Spice仿真,進(jìn)而從XPS仿真中自動(dòng)生成邏輯狀態(tài)矢量檢查出錯(cuò)報(bào)告和實(shí)數(shù)類型矢量檢查出錯(cuò)報(bào)告,,最后提取其中的有用信息并匯總到自動(dòng)比對(duì)檢查報(bào)告中,。
這套功能比對(duì)驗(yàn)證的自動(dòng)仿真方法流程圖如圖11所示:第一步,根據(jù)電路模塊清單從Cadence數(shù)據(jù)庫(kù)中抽取出行為級(jí)模型和Spice網(wǎng)表,;第二步,,為每個(gè)模塊生成帶有所有pin腳的IO配置表;第三步,,為IO配置表中的所有輸入pin腳和輸出pin腳定義設(shè)計(jì)約束,,這一步可以幫助確保生成覆蓋率全面的輸入激勵(lì);第四步,,基于IO配置表,,自動(dòng)生成每個(gè)模塊的行為級(jí)模型Verilog仿真平臺(tái)和晶體管級(jí)電路Spice仿真平臺(tái);第五步,,用NC-Verilog啟動(dòng)所有的行為級(jí)模型Verilog仿真,,并生成矢量檢查需要用到的測(cè)試矢量文件;第六步,,用XPS啟動(dòng)所有的晶體管級(jí)電路Spice仿真,,仿真時(shí)會(huì)用到已經(jīng)生成的測(cè)試矢量文件,并進(jìn)行矢量檢查,,邏輯狀態(tài)矢量檢查和實(shí)數(shù)類型矢量檢查都會(huì)在此涉及;第七步,,從邏輯狀態(tài)矢量檢查和實(shí)數(shù)類型矢量檢查結(jié)果中提取有用信息并生成自動(dòng)比對(duì)檢查報(bào)告,。
5 結(jié)論
在混合信號(hào)設(shè)計(jì)中,創(chuàng)建準(zhǔn)確的行為級(jí)模型對(duì)于能否實(shí)現(xiàn)正確,、有效和全面的全芯片功能驗(yàn)證至關(guān)重要,。因此,對(duì)行為級(jí)模型和晶體管級(jí)設(shè)計(jì)之間進(jìn)行功能比對(duì)驗(yàn)證非常關(guān)鍵,。Wreal模型和SV-UDT可以幫助實(shí)現(xiàn)更準(zhǔn)確的行為級(jí)模型,。本文介紹了一種基于覆蓋率全面的輸入激勵(lì),,對(duì)大量電路模塊同時(shí)進(jìn)行邏輯狀態(tài)矢量檢查和實(shí)數(shù)類型矢量檢查,從而實(shí)現(xiàn)行為級(jí)模型功能比對(duì)驗(yàn)證的自動(dòng)方法學(xué),。實(shí)數(shù)類型矢量檢查是我們向EDA供應(yīng)商Cadence提出的一種新的概念和需求,,該需求已經(jīng)在XPS仿真器中成功實(shí)現(xiàn)。在此基礎(chǔ)上,,XPS實(shí)數(shù)類型矢量檢查進(jìn)一步改進(jìn),,以支持高阻態(tài)檢查和多驅(qū)動(dòng)態(tài)檢查。覆蓋率全面的輸入激勵(lì)是根據(jù)帶設(shè)計(jì)約束的IO配置表自動(dòng)生成的,。本文提出的這套自動(dòng)方法學(xué),,可以幫助顯著提高全芯片驗(yàn)證的精度、效率和覆蓋率,。
參考文獻(xiàn)
[1] THELEN D,,MACDONALD J.Simulating mixed analog-digital circuits on a digital simulator[C].ICCAD,1988:254-257.
[2] MALCOVATI P,,BRIGATI S,,F(xiàn)RANCESCONI F,et al.Behavioral modeling of switched-capacitor sigma-delta modulators[J].IEEE Transactions on Circuits System I,,2003,,50(3):352-364.
[3] O’LEARY M,KOLPEKWAR A.Cadence wreal technology contribution to Accellera Verilog-AMS standard[Z],,2010.
[4] LIM B C,,KIM J,HOROWITZ M.An efficient test vector generation for checking analog/mixed-signal functional models[C].Proceeding DAC,,2010:767-772.
作者信息:
廖 璐1,,候春源1,李躍平1,,王 美1,,劉歡艷2,黃丞權(quán)2,,徐南南2,,董麗霞2
(1.紫光長(zhǎng)存(上海)集成電路有限公司,上海200120,;2.Cadence Design System,,上海200120)