本文版權(quán)歸本公眾號所有。
Vmanager介紹
在最近做項目的過程中,無意之中了解到這軟件,開始學(xué)習(xí),感受到這軟件的強大,并且成功將該軟件,用到了我們部門的flow中。因此,準備一系列的博文,來介紹下cadence的vmanager工具。強烈建議,做數(shù)字的團隊,使用這個工具,并建立相應(yīng)的flow。在介紹vmanager工具之前,首先要先介紹一下功能驗證方法學(xué)。
驗證方法學(xué)
directed-test Drive:直接給dut施加激勵,然后判斷DUT輸出是否正確,來驗證DUT的各個功能,但是帶來的問題,驗證不能完備,會遺漏很多隱藏的bug。
coverage drive:基于coverage,施加激勵,然后最后收集coverage,來判斷功能驗證是否完備,但是帶來的問題是,編寫coverage可能會遺漏,造成驗證不能完備,并且很難去預(yù)估驗證是否完成。
metric drive:是目前新提出的功能驗證方法學(xué)?;隍炞C計劃的各個feature,施加激勵,最后收集各個feature的metric,反標到驗證計劃中,得到可視化結(jié)果,從而確定驗證是否完備
Metric Drive Verification(MDV)
MDV,是一種新的功能驗證方法學(xué)。核心還是基于coverage,但是將coverage和驗證plan進行了結(jié)合。將驗證得到的metric(本質(zhì)就是覆蓋率),反標到驗證計劃,得到可視化結(jié)果,從這可視化結(jié)果,從而確定驗證到達了哪一個階段,下一步的驗證方向應(yīng)該是什么,以及最終判斷驗證是否完備。保證了驗證的快速收斂。cadence,為了實現(xiàn)MDV,提供了vmanager和vplan工具,并制定了一套MDV流程。
Cadence將MDV流程,分成了4部分,如下圖所示:
- plan:制定驗證計劃,根據(jù)驗證的testpoint(測試點),利用vplan工具,轉(zhuǎn)化為vplan工程,供后續(xù)metric反標使用。construct:根據(jù)驗證計劃,編寫coverage和checker。來保證,各個testpoint是否有驗證到。execute:利用各個工具,如irun,PXP,formal等工具,對驗證環(huán)境進行仿真。measure/analyze:coverage收集和分析,反標到vplan,確定驗證是否signoff。
其中,最核心的部分,就是驗證管理和數(shù)據(jù)管理。這部分,就是由cadence的vmanager工具來負責的??傊琧overage是MDV的關(guān)鍵,驗證中,時時刻刻以coverage為中心,將coverage反標到vplan中,判斷vplan中的各個測試點,是否有達到,從而指導(dǎo)下一步的驗證方向。MDV,可以讓你知道,下一步你應(yīng)該怎么做,并且怎么快速的實現(xiàn)他(Know where you are going and get there faster)。
Vmanager任務(wù)流程
Vmanager的任務(wù)流程如下圖所示:
最開始,使用vplan建立驗證計劃,并且建立驗證環(huán)境。使用vmanager運行回歸,之后分析fail的case,以及收集的metric,確定狀態(tài)。根據(jù)狀態(tài)判斷,是否收斂,如果收斂,那么驗證就結(jié)束了,可以signoff,如果驗證沒有收斂,那么就重新運行回歸。這里,就引出了vmanager的兩大功能:
- 回歸管理(regression management):使用那個vmanager內(nèi)部的runner,可以調(diào)用眾多的工具(如IRUN,pxp,formal工具),運行回歸,并且在回歸運行完畢后,自動收集run的結(jié)果,并且進行整合。回歸分析(regression analysis):利用vmanager,可以很便捷,可視化的分析回歸結(jié)果,包括case成功失敗狀態(tài),以及metric。最關(guān)鍵的是,可以進行vplan的反標。
下圖是vmanager的工作說明:
vmanager支持運行多個驗證工具,如irun,formal,PXP等,運行完畢后,將數(shù)據(jù)進行收集。在planning center,制定驗證計劃,關(guān)聯(lián)testbench以及spec。在regression center,啟動回歸。在analysis center,對回歸結(jié)果數(shù)據(jù)進行分析。在tracking center,對歷史的結(jié)果進行分析。
Vmanager工作模式
在vmanager中,提供了2種工作模式:
- client-server模式:有一個集中的server,各個client連接這個server進行工作,server管理所有的數(shù)據(jù)。下文,均簡稱為CS模式。local模式:沒有server,各個client在自己本地進行工作。
這里,推薦大家用CS模式,這個模式下,各個client,連接一個指定的server進行工作,得到的結(jié)果和數(shù)據(jù),是會自動上傳到這個server,并且進行集中顯示,這樣可以讓大家都可以看到實時的狀態(tài)。不再需要像之前,要大家指定一個共享目錄,大家將自己跑出來的結(jié)果和數(shù)據(jù),放到該目錄下,實現(xiàn)共享。以下,只介紹CS工作模式,local工作模式和CS工作模式使用是一樣的,只是沒有server進行集中的數(shù)據(jù)顯示與管理。在CS模式下,又分為了single-project和multi-project。Single-project Server上,只有1個工程,所有的client,均在這個工程下工作。
server需要2個東西:SQL DB:server所需要的數(shù)據(jù)庫。profile:存放vmanager的配置文件。 Server會對應(yīng)一個port,client根據(jù)server的ip以及port,就可以連接到這個server上。在下一篇中,會詳細介紹如何搭建一個vmanager server。Multi-project
Server上,有多個工程。client連接server的時候,要選擇將來工作的工程。
Server所需要的2個東西,和single-project,是一樣的。CS模式下,可以不只有1個server,可以有多個server。各個client,可以選擇server,選擇project進行連接,然后工作。
在下一篇中會詳細介紹,如何創(chuàng)建一個vmanager server。
NOTE:歡迎大家多多轉(zhuǎn)發(fā)文章,這樣我寫文章的動力就會更足。