文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.007
中文引用格式: 林慧,,蔣武,,熊熙,等. Verifier提高驗證完備性[J].電子技術(shù)應(yīng)用,,2016,,42(8):37-40,43.
英文引用格式: Lin Hui,,Jiang Wu,,Xiong Xi,et al. Verifier-Improve the simulation verification completeness[J].Application of Electronic Technique,,2016,,42(8):37-40,43.
1 介紹
ADE Explorer,、ADE Assembler是Cadence Virtuoso ADE一系列產(chǎn)品的重要模擬設(shè)計驗證工具,將驗證技術(shù)可視化,,能夠很好地支持工程師子模塊的模擬設(shè)計驗證,,大大提高了驗證效率。現(xiàn)有的驗證直接根據(jù)仿真結(jié)果來決定驗證設(shè)計的好壞與否,。這種驗證流程簡單有效,,但是也有其弊端——規(guī)格無標(biāo)準(zhǔn)可循、難以覆蓋更高層的設(shè)計,,導(dǎo)致難以及時發(fā)現(xiàn)并規(guī)避設(shè)計更深層的問題。在整合了ADE Explorer,、ADE Assembler強大的簡單有效的驗證功能的基礎(chǔ)上,,ADE Verifier在驗證流程上做了進(jìn)一步的優(yōu)化,,能夠有效彌補現(xiàn)有模擬設(shè)計驗證存在的不足,,很大程度上提高了模擬設(shè)計驗證的可靠性和完備性,。ADE Verifier特性如圖1所示,。
圖1 ADE Verifier特性
2 Verifier驗證流程
Verifier支持自頂向下,、自下向上,、混合的設(shè)計方法,。本文描述Verifier自頂向下的設(shè)計方法,。根據(jù)客戶需求,、業(yè)務(wù)場景和條件等原始需求,,項目管理者(PM/PL)整合原始需求,,轉(zhuǎn)換成設(shè)計語言,,細(xì)化,、分解設(shè)計需求,。然后將整個需求分配給不同的工程師,。根據(jù)分配得到的需求,,工程師深入理解設(shè)計需求,量化相應(yīng)的設(shè)計規(guī)格,,并設(shè)計仿真用例和測試用例,,完成仿真,。然后將需求設(shè)計和規(guī)格設(shè)計進(jìn)行最后,工程師提交驗證數(shù)據(jù),,項目管理者就可以及時觀測驗證結(jié)果,,跟蹤項目驗證進(jìn)度,。ADE Verifier驗證流程如圖2所示,。
圖2 ADE Verifier驗證流程
2.1 項目管理者建立Requirement
需求的建立有兩種方式,,一是項目管理者在verifier里面創(chuàng)建的,,二是直接導(dǎo)入指定格式的需求表格,,包括csv文件和excel文件,。
需求的內(nèi)容包括項目名稱,,模塊名稱,,指標(biāo)的最大值與最小值,、指標(biāo)的單位、責(zé)任人,、類型以及詳細(xì)的描述等,。指標(biāo)的最大值與最小值、指標(biāo)的單位都是作為后續(xù)規(guī)格設(shè)計的約束,。內(nèi)容可以由中文,、英文、日語,、德語,、北印度語5種語言組成。
需求的類型包括以下幾種:Note,Spec Pass,,Ran OK,,Manual,。Note類型的需求是不需要仿真驗證;Spec Pass類型和Ran OK類型的需求是可以進(jìn)行仿真驗證的,,二者差別就是Spec Pass類型的需求要考慮需求設(shè)計的指標(biāo)值來決定需求的狀態(tài),,Ran OK類型的需求只會根據(jù)仿真結(jié)果來決定需求的狀態(tài);Manual類型的需求是指是要人為判斷設(shè)計的成功與否,,而不是直接簡單地根據(jù)仿真結(jié)果來決定,。
需求是Hierarchy結(jié)構(gòu)的。從頂層模塊開始進(jìn)行需求設(shè)計,,細(xì)化到每個子模塊的需求設(shè)計,,直到完成整個項目的需求設(shè)計。每個需求設(shè)計都會指定一個責(zé)任人,,后續(xù)每個責(zé)任人都只需要對各自被分配到的需求負(fù)責(zé)人,。
在現(xiàn)有的整個項目需求設(shè)計基礎(chǔ)上,可以新增需求,、刪除現(xiàn)有需求,、編輯現(xiàn)有需求。
2.2 項目管理者分配Requirement
根據(jù)需求責(zé)任人,,可以將master verification分成幾個不同的owner verification,。每個責(zé)任人只需要著眼于own verification,根據(jù)被分配到的需求進(jìn)行規(guī)格設(shè)計,。如圖3所示,,F(xiàn)red、Harry是master verification的責(zé)任人,,分配需求時,,會生成相應(yīng)的verification_Fred和verification_Harry。之后,,F(xiàn)red和Harry只需要分別修改,、完善verification_Fred 和 verification_Harry即可。
圖3 分配Requirement
2.3 工程師添加Implementation
根據(jù)需求設(shè)計,,工程師進(jìn)行相應(yīng)的Implementation,,支持adel、adexl,、maestro類型的文件,。如圖4所示。
圖4 工程師添加Implementation
2.4 工程師建立Mapping
工程師根據(jù)自己分配到的任務(wù),建立testbench,,和Requirement建立映射,。Requiremment與SPEC之間可以是n:1或者1:n的關(guān)系。
需求的mapping有6種狀態(tài):Pass,,F(xiàn)ail,,No Results,Mapped,,Unmapped,,Spec check failed,。
Pass是指在requirement的specification與implementation的specification保持一致的前提下,,requirement的specification和仿真結(jié)果保持一致。
Fail是指在requirement的specification與implementation的specification保持一致的前提下,,requirement的specification和仿真結(jié)果不同,。
No Results是指在requirement的specification與implementation的specification保持一致的前提下,implementation沒有仿真結(jié)果,。
Mapped是指requirement的specification與implementation的specification保持一致,。
Unmapped是指requirement還沒有建立mapping。
Spec Check Failed是指如果requirement的specification與implementation的specification不能保持一致,。
2.5 工程師加載,、提交個人Result
Verifier提供了兩種加載結(jié)果的方式:直接跑仿真和加載仿真結(jié)果。
Verifier呈現(xiàn)的結(jié)果包括整個項目的結(jié)果百分比,,以及每個模塊,、需求的結(jié)果。需求的結(jié)果狀態(tài)分為兩種:Requirement Status 和Specification Status,。Specification Status是根據(jù)spec的結(jié)果而定,;Requirement Status是根據(jù)spec結(jié)果以及map結(jié)果而定。加載個人Results如圖5所示,。
圖5 加載個人Results
2.6 項目管理者查看項目Result
等到工程師提交了個人結(jié)果之后,,項目管理者就可以查看整個項目的驗證進(jìn)展和驗證結(jié)果。如圖6所示,。
圖6 查看項目Results
3 Hisilicon Verifier
3.1 定制化特性
根據(jù)海思的業(yè)務(wù)需求,,在原有ADE Verifier平臺上,添加了定制化特性,,有以下兩點:
(1)導(dǎo)入的requirement表格形式:通過新增列數(shù),,直觀地呈現(xiàn)需求之間的Hierachy結(jié)構(gòu);
(2)結(jié)果的保存與呈現(xiàn):通過收集工程師提交的結(jié)果,,保存到數(shù)據(jù)庫,。保存結(jié)果能夠讓現(xiàn)有項目傳承歷史項目的優(yōu)良基因;展示結(jié)果從項目和owner的維度展示數(shù)據(jù),能夠讓項目管理者直觀看到整個項目的驗證進(jìn)展,,讓工程師清晰認(rèn)識到自己模塊的進(jìn)度,。Hisilicon Verifier Results如圖7所示。
圖7 Hisilicon Verifier Results
3.2 定制化流程
在工程師提交verification時候,,結(jié)果數(shù)據(jù)就會被收集,。為了適配定制化特性——收集結(jié)果數(shù)據(jù),整理了使用verifier的三種流程,,這三種流程都能夠保證收集到數(shù)據(jù),。為了能夠清晰描述三種流程的特點,假設(shè)背景如下:工程P,,項目經(jīng)理是M,,工程師E1,E2,,E3,。M新建一個verification,設(shè)置result路徑為Current cellview,,這樣結(jié)果文件就在相應(yīng)的verification路徑下,。分配任務(wù),生成verification_E1, verification_E2, verification_E3,。項目經(jīng)理M check in verification,,verification_E1, verification_E2, verification_E3。如圖8~圖11所示,。
(1)流程1(如圖8)
圖8 項目背景
Step1:
E1 新建maestre_E1,,搭建testbench,跑仿真,;
Step2:
E1 Check out verification_E1,,和maestre_E1建立Map,加載結(jié)果,,check in verification_E1,,這樣才能收集到數(shù)據(jù);
Step3:
E1 Check in maestre_E1,,這樣M,,E2,E3才能看到E1的結(jié)果,;
(2)流程2(如圖9)
圖9 流程1
Step1:
E1 新建maestre_E1,,搭建testbench,跑仿真,;
Step2:
E1 Check out verification_E1,,和maestre_E1建立Map,,加載結(jié)果,check in verification_E1,,這樣才能收集數(shù)據(jù),;
Step3:
E1 Check out verification,load E1的結(jié)果,,check in verification,,這樣M,E2,,E3才能看到E1的結(jié)果,;
(3)流程3(如圖10)
圖10 流程2
Step1:
E1 新建maestre_E1,搭建testbench,,跑仿真,;
Step2:
E1 Check out verification_E1,和maestre_E1建立Map,,加載結(jié)果,,check in verification_E1,;
這三個流程都能夠達(dá)到收集數(shù)據(jù)以及呈現(xiàn)最新結(jié)果的目的,,但是流程1和流程2都有其弊端。
流程1中,,要想工程師的結(jié)果被其他人看到,,必須提交maestre。首先,,maestre很大,,提交很費時。其次,,maestre保存的是過程配置信息,,不適合提交。
流程2中,,整個項目組都需要操作一份文件—verification,,很容易產(chǎn)生寫沖突,不適合大項目,、異地項目的合作,。另外,工程師需要操作owner verification 和master verification,,職責(zé)不夠分明,。
流程3,只需要選擇HISILICON_VERIFIER為yes,,這樣加載結(jié)果來源是結(jié)果的快照文件,。提交owner verification,,即可收集數(shù)據(jù),也可以保證其他人都能看到結(jié)果,。職責(zé)分明,,操作簡單。
所以,,Hisilicon Verifier采用流程3,。
圖11 流程3
4 驗證完備性
4.1 完備性問題
以Hisilicon的驗證流程進(jìn)行分析,從制定原始需求開始,,到編寫測試用例,,驗證完備性的突出問題如下。
(1)OR:遺漏,、客戶自己不清楚,;
(2)DR:功能/隱形需求遺漏;
(3)DS:內(nèi)部規(guī)格未細(xì)化,、規(guī)格條件不合理,、非典電路規(guī)格不全。
4.2 Verifier方案
基于Verifier的驗證流程,,驗證完備性問題能夠在很大程度上得到解決,。
(1)需求設(shè)計、規(guī)格設(shè)計,、仿真等整個驗證流程都是需求驅(qū)動的,,保證了需求的可溯性。
(2)從上至下的驗證流程,,既保證了各個模塊之間相互獨立,,互不干擾,也保證了各個子模塊之間無縫契合,。
(3)記錄仿真結(jié)果,,自動復(fù)現(xiàn)仿真結(jié)果,將仿真過程變得更加可溯和自動化,。
(4)當(dāng)工程師改變了某個設(shè)計模塊,,verifier具有聯(lián)想功能,能夠提示相關(guān)testbench需要重新進(jìn)行仿真,,進(jìn)一步確保驗證完備性,。
5 結(jié)語
通過使用ADE Verifier工具,我們將在電路設(shè)計中解決由于驗證不完備性的各種問題,。這種問題在很大程度上是可以通過完善的驗證流程去規(guī)避的,。在海思的驗證設(shè)計實踐中,Virtuoso ADE驗證工具技術(shù)與Virtuoso ADE組裝工具技術(shù)具備設(shè)計規(guī)劃能力,,讓設(shè)計團(tuán)隊更加高效,,提升了模擬IP驗證效率將近30%,,驗證發(fā)現(xiàn)的問題數(shù)量減少了一半。所以,,ADE Verifier是驗證設(shè)計中不可或缺的工具之一,。