幾乎所有的芯片設(shè)計(jì)、芯片驗(yàn)證工程師,每天都在和VCS打交道,但是由于驗(yàn)證環(huán)境的統(tǒng)一化管理,一般將不同的編譯仿真選項(xiàng)集成在一個(gè)文件里,只需要一兩個(gè)人維護(hù)即可。所以大部分人比較少有機(jī)會(huì)去深入地學(xué)習(xí)VCS的仿真flow。基于此,本文將介紹VCS仿真的兩種flow,概述這兩種flow分別做了哪些事!
VCS是一個(gè)高性能、高容量的編譯代碼仿真器,它將高級(jí)抽象的驗(yàn)證技術(shù)集成到一個(gè)開(kāi)放的本地平臺(tái)中。它能夠分析、編譯和編譯Verilog、VHDL、SystemVerilog和OpenVera所描述的design,并且還提供了一組仿真和調(diào)試功能來(lái)驗(yàn)證design,這些特性提供了源代碼級(jí)debug和仿真結(jié)果。支持原生測(cè)試平臺(tái)、SystemVerilog、驗(yàn)證規(guī)劃、覆蓋率分析和收斂。
除了標(biāo)準(zhǔn)Verilog、VHDL和混合HDL和SystemVerilog編譯和仿真功能,VCS包括以下集成的功能和工具集:
SystemC
Verdi
Unified Command-lineInterface (UCLI)
Built-In CoverageMetrics
DirectC Interface
VCS還可以與第三方工具集成,如Specman、Denali和其他加速和仿真系統(tǒng)。
下面介紹VCS的兩種仿真flow:two-step flow和 three-step flow
- two-step flow
使用vcs,語(yǔ)法如下:
vcs [compileoptions] Verilog_files
常用選項(xiàng)如下:
-h or -help
列出最常用的VCS編譯和運(yùn)行時(shí)選項(xiàng)的描述
-ID
返回有用的信息,如VCS版本和構(gòu)建日期,VCS編譯器版本,以及工作站名稱、平臺(tái)和主機(jī)ID
-v filename
指定Verilog庫(kù)文件,VCS在這個(gè)文件中查找模塊定義和在源代碼中找到的UDP實(shí)例
-y directory
指定Verilog庫(kù)目錄,VCS在這個(gè)目錄的源文件中搜索模塊定義和UDP實(shí)例。VCS在這個(gè)目錄中搜索與實(shí)例中模塊或UDP標(biāo)識(shí)符同名的文件(不是實(shí)例名)。如果找到了這個(gè)文件,VCS會(huì)在文件中搜索模塊或UDP定義來(lái)解析實(shí)例
ps:如果你在不同的庫(kù)中有多個(gè)同名的模塊,VCS會(huì)選擇用第一個(gè)-y選項(xiàng)指定的庫(kù)中定義的模塊
+incdir+directory+
指定VCS搜索包含文件的directory目錄,可以使用加號(hào)(+)字符指定多個(gè)目錄
+inbext+extension+
指定VCS只在庫(kù)目錄中搜索具有指定文件擴(kuò)展名的文件,可以指定多個(gè)擴(kuò)展名,用加號(hào)(+)分隔擴(kuò)展名。例如,+libext+.v+ .V+,指定在庫(kù)中搜索擴(kuò)展名為.v或.V的文件
+liborder
指定在VCS找到實(shí)例的庫(kù)的剩余部分中搜索未解析的模塊實(shí)例的模塊定義
-full64
支持64位模式下的編譯和仿真
-file filename
指定包含文件列表和編譯時(shí)選項(xiàng)的文件
-verdi
啟動(dòng)verdi
-R
編譯后立即啟動(dòng)仿真
-pvalue+parameter_hierarchical_name=value
將指定的參數(shù)更改為指定的值
-parameters filename
將文件中指定的參數(shù)更改為文件中指定的值
-notice
啟用詳細(xì)診斷消息
-q
quiet模式;抑制消息,例如關(guān)于VCS使用的C編譯器、VCS解析的源文件、頂層模塊或指定的timescale的消息
-V
verbose模式;打印消息,例如編譯器驅(qū)動(dòng)程序在運(yùn)行C編譯器、匯編器和鏈接器時(shí)打印它執(zhí)行的命令
-lfilename
指定VCS記錄編譯消息的文件,如果還有-R選項(xiàng),VCS將在同一個(gè)文件中記錄編譯和仿真的消息
+define+macro=value+
將源代碼中的文本宏定義為值或字符串,可以在Verilog源代碼中使用`ifdef編譯器指令來(lái)測(cè)試這個(gè)定義
simulation:在編譯過(guò)程中,VCS生成一個(gè)二進(jìn)制可執(zhí)行文件simv,使用simv來(lái)運(yùn)行仿真。根據(jù)編譯的方式,可用兩種模式運(yùn)行仿真:
Interactivemode
在初始階段以交互模式(調(diào)試模式)編譯design。在這個(gè)階段,可以使用GUI或通過(guò)命令行調(diào)試design問(wèn)題。通過(guò)GUI進(jìn)行調(diào)試可以使用Verdi,通過(guò)命令行進(jìn)行調(diào)試可以使用UCLI(Unified command line interface)
batch mode
當(dāng)大多數(shù)design問(wèn)題解決后,可以使用批處理模式(優(yōu)化模式)編譯design。在這個(gè)階段,可以以最小的debug性能來(lái)?yè)Q取更好的性能來(lái)運(yùn)行回歸
使用下面的命令行來(lái)仿真設(shè)計(jì):
simv_executable [runtime_options]
缺省情況下,VCS生成可執(zhí)行的二進(jìn)制文件simv,但也可以在vcs命令行中使用編譯時(shí)間選項(xiàng) -o 來(lái)生成具有指定名稱的二進(jìn)制可執(zhí)行文件
-gui
當(dāng)設(shè)置了VERDI_HOME時(shí),此選項(xiàng)啟動(dòng)Verdi
-ucli
該選項(xiàng)在UCLI模式下啟動(dòng)simv
- three-step flow
以上內(nèi)容介紹了使用兩種仿真flow的基本步驟,其余功能需要用的時(shí)候再查VCS User Guide就行了。
END審核編輯 :李倩
-
仿真
+關(guān)注
關(guān)注
50文章
4073瀏覽量
133557 -
編譯器
+關(guān)注
關(guān)注
1文章
1624瀏覽量
49111 -
Flow
+關(guān)注
關(guān)注
0文章
10瀏覽量
8840
原文標(biāo)題:淺談VCS的兩種仿真flow
文章出處:【微信號(hào):Rocker-IC,微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論