Cadence驗(yàn)證仿真工具IUS和IES
掃描二維碼
隨時(shí)隨地手機(jī)看文章
cadence,有兩大驗(yàn)證仿真工具。一個(gè)是IUS,一個(gè)是IES。
IUS是cadence以前的仿真工具,功能略弱。代表工具,ncverilog。
官方介紹:
|
IUS(incisive unified simulator) Cadence IUS allows to perform behavioral simulation on Verilog and VHDL code. |
IES是cadence現(xiàn)在的仿真工具,功能強(qiáng)大。代表工具,irun
官方介紹:
|
IES(incisive Enterprise Simulator) cadence IES is considered to be one of the most considered tool to automates testbench generation, design verification and analysis from the system level to the gate level. |
不過(guò),現(xiàn)在cadence又開(kāi)發(fā)出了新的仿真工具,叫xcelium。代表工具,xrun。
一、仿真模式
cadence的仿真工具,分為單步仿真模式,和多步仿真模式。單步仿真模式,是指,只要一個(gè)命令,即可實(shí)現(xiàn)仿真。而多步仿真模式,是指,需要多個(gè)命令的組合,才可以實(shí)現(xiàn)仿真。
cadence的很多工具,帶有nc作為前綴。
nc,指native compile,將不同的HDL code轉(zhuǎn)化成一種中間語(yǔ)言(native language),然后統(tǒng)一仿真,為了實(shí)現(xiàn)混合語(yǔ)言仿真。
1、多步仿真模式
使用ncvlog(ncsc,ncvhdl),ncelab,ncsim命令來(lái)實(shí)現(xiàn)仿真。
ncvlog,編譯源代碼
ncelab,對(duì)編譯的結(jié)果,進(jìn)行elaborate,建立snapshot文件
ncsim,對(duì)snapshot文件進(jìn)行仿真
以下是仿真的flow
對(duì)于不同的源文件,使用不同的工具進(jìn)行編譯
-
systemC:使用ncsc工具編譯
-
VHDL: 使用ncvhdl工具編譯
-
VERILOG:使用ncvlog工具編譯
編譯完成后,使用ncelab工具,對(duì)編譯結(jié)果進(jìn)行elaborate,得到snapshot文件,最后在使用ncsim工具,對(duì)其進(jìn)行仿真。
多命令模式的例子:
|
1 2 3 |
ncvlog -f run.f ncelab tb -access wrc ncsim tb –gui |
第一個(gè)命令,run.f是整個(gè)RTL代碼列表, ncvlog執(zhí)行以后將生成一個(gè)名為INCA_libs的目錄和一個(gè)名為worklib的目錄。
第二個(gè)命令,-access選項(xiàng)是確定讀取文件的權(quán)限,其中的tb是tb文件內(nèi)的頂層模塊名字。ncelba要選擇tb文件的頂層module,elaborate之后,會(huì)生成snapshot。
第三個(gè)命令,選擇snapshot進(jìn)行仿真,-gui啟動(dòng)圖形化界面。
2、單步仿真模式
單步仿真模式,包括ncverilog和irun。
早期的IUS,使用ncverilog,進(jìn)行單步仿真模式,ncverilog,內(nèi)部會(huì)自動(dòng)調(diào)用ncvlog,ncelab,ncsim工具進(jìn)行仿真。
從IUS8.1開(kāi)始,ncverilog命令,被替換成irun命令,使用ncverilog,將直接調(diào)用irun命令。而irun工具,內(nèi)部也會(huì)自動(dòng)調(diào)用ncvlog,ncelab,ncsim工具進(jìn)行仿真。
以下是官方文檔中說(shuō)明的:
|
because irun supports all features of ncverilog, including its command-line options, Cadence is replacing ncverilog with irun. Beginning with the IUS 8.1 release, using the ncverilog command will invoke irun。 |
二、irun工具
irun支持各種源程序文件輸入,verilog,systemverilog,VHDL,verilog AMS,VHDL AMS,specman e,和其他語(yǔ)言程序編寫的文件如C,C++,并且使用合適的編譯器對(duì)其進(jìn)行編譯。當(dāng)輸入的文件,都編譯完畢后,irun自動(dòng)啟動(dòng)ncelab,去elaborate,產(chǎn)生snapshot,最后啟動(dòng)ncsim仿真器去仿真snapshot。
-
.v文件,使用ncvlog
-
.sv文件,使用ncvlog
-
.vhd文件,使用ncvhdl
-
.e文件,使用sn_compile.sh腳本
irun啟動(dòng)后,會(huì)在生成目錄,自動(dòng)創(chuàng)建INCA_libs文件夾。
irun只是個(gè)腳本,能根據(jù)源程序的類型(如verilog,VHDL等)自動(dòng)調(diào)用相應(yīng)的編譯程序(ncvlog,ncvhdl等),然后依次是elaborate,simulate。
irun的選項(xiàng)很多,下面列舉一些常用選項(xiàng):
|
選項(xiàng) |
說(shuō)明 |
|
-64bit |
使用64bit irun模式 |
|
-f |
指定file list |
|
-vlog_ext |
修改verilog文件的默認(rèn)后綴 如 -vlog_ext .vvv,.vv ,修改verilog的默認(rèn)后綴為.vvv和.vv |
|
-c |
只生成snapshot,不仿真 |
|
-access |
設(shè)置訪問(wèn)權(quán)限 |
|
-nclibdirpath |
指定 INCA_libs 目錄 |
|
-R |
只仿真,需要有提前生成的snapshot |
|
-sv |
支持systemverilog語(yǔ)言 |
|
-uvm |
開(kāi)啟uvm,自動(dòng)編譯uvm庫(kù) |
|
-uvmhome |
指定uvm庫(kù)位置 CDNS-1.2 默認(rèn)IES中的uvm-1.2版本 |
|
-uvmnoautocompile |
不自動(dòng)編譯uvm庫(kù) |
|
-clean |
在run執(zhí)行之前,刪除INCA_libs文件夾 |
|
-l |
指定輸出log文件 |
|
-seed |
指定隨機(jī)種子數(shù) |
|
-top |
指定頂層模塊 |
|
-hdlvar |
指定 hdl.var文件 |
|
-cdslib |
指定cds.lib文件 |
|
-loadpli1 |
指定讀取外部讀取的庫(kù)文件 |
|
-prep |
打開(kāi)prep mode,不仿真,生成多步仿真的腳本文件 生成4個(gè)文件, ncvlog_ver.args:ncvlog工具的參數(shù)文件 ncelab.args ncelab工具的參數(shù)文件 ncsim.args: ncsim工具的參數(shù)文件 RUN_NC:仿真的腳本文件,調(diào)用ncvlog,ncelab,ncsim。 |
|
-checkargs |
檢查irun的輸入?yún)?shù),是否有誤 |
|
-helpargs |
打印每個(gè)輸入?yún)?shù)的作用 |
|
-helpall |
打印幫助信息 |
|
+xxx=yyy |
向驗(yàn)證環(huán)境傳遞仿真參數(shù)xxx,值為yyy |





