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





