幾乎所有的芯片設計、芯片驗證工程師,每天都在和VCS打交道,但是由于驗證環(huán)境的統(tǒng)一化管理,一般將不同的編譯仿真選項集成在一個文件里,只需要一兩個人維護即可。所以大部分人比較少有機會去深入地學習VCS的仿真flow?;诖耍疚膶⒔榻BVCS仿真的兩種flow,概述這兩種flow分別做了哪些事!
VCS是一個高性能、高容量的編譯代碼仿真器,它將高級抽象的驗證技術(shù)集成到一個開放的本地平臺中。它能夠分析、編譯和編譯Verilog、VHDL、SystemVerilog和OpenVera所描述的design,并且還提供了一組仿真和調(diào)試功能來驗證design,這些特性提供了源代碼級debug和仿真結(jié)果。支持原生測試平臺、SystemVerilog、驗證規(guī)劃、覆蓋率分析和收斂。
除了標準Verilog、VHDL和混合HDL和SystemVerilog編譯和仿真功能,VCS包括以下集成的功能和工具集:
SystemC
Verdi
Unified Command-line Interface (UCLI)
Built-In Coverage Metrics
DirectC Interface
VCS還可以與第三方工具集成,如Specman、Denali和其他加速和仿真系統(tǒng)。
下面介紹VCS的兩種仿真flow:two-step flow和three-step flow
two-step flow
只支持Verilog HDL和SystemVerilog設計,包括兩個步驟:
compilation 編譯
simulation 仿真
compilation:編譯是仿真design的第一步,此時VCS構(gòu)建實例層次結(jié)構(gòu)并生成一個二進制可執(zhí)行的simv,之后用于仿真。 在此階段,我們可以選擇以優(yōu)化模式或調(diào)試模式編譯design。
使用vcs,語法如下:
VCS [編譯選項] Verilog_files
常用選項如下:
-h 或 -help
列出最常用的VCS編譯和運行時選項的描述
-標識
返回有用的信息,如VCS版本和構(gòu)建日期,VCS編譯器版本,以及工作站名稱、平臺和主機ID
-v 文件名
指定Verilog庫文件,VCS在這個文件中查找模塊定義和在源代碼中找到的UDP實例
-y 目錄
指定Verilog庫目錄,VCS在這個目錄的源文件中搜索模塊定義和UDP實例。 VCS在這個目錄中搜索與實例中模塊或UDP標識符同名的文件(不是實例名)。 如果找到了這個文件,VCS會在文件中搜索模塊或UDP定義來解析實例
ps:如果你在不同的庫中有多個同名的模塊,VCS會選擇用第一個-y選項指定的庫中定義的模塊
+incdir+目錄+
指定VCS搜索包含文件的directory目錄,可以使用加號(+)字符指定多個目錄
+擴展+擴展+
指定VCS只在庫目錄中搜索具有指定文件擴展名的文件,可以指定多個擴展名,用加號(+)分隔擴展名。 例如,+libext+ .v+ . V+,指定在庫中搜索擴展名為.v或.V的文件
+圖書館
指定在VCS找到實例的庫的剩余部分中搜索未解析的模塊實例的模塊定義
-全64
支持64位模式下的編譯和仿真
-文件名
指定包含文件列表和編譯時選項的文件
-給
啟動verdi
-R
編譯后立即啟動仿真
-p值+parameter_hierarchical_name=值
將指定的參數(shù)更改為指定的值
-參數(shù)文件名
將文件中指定的參數(shù)更改為文件中指定的值
-通知
啟用詳細診斷消息
-q
quiet模式; 抑制消息,例如關(guān)于VCS使用的C編譯器、VCS解析的源文件、頂層模塊或指定的timescale的消息
-在
verbose模式; 打印消息,例如編譯器驅(qū)動程序在運行C編譯器、匯編器和鏈接器時打印它執(zhí)行的命令
-l 文件名
指定VCS記錄編譯消息的文件,如果還有-R選項,VCS將在同一個文件中記錄編譯和仿真的消息
+定義+宏=值+
將源代碼中的文本宏定義為值或字符串,可以在Verilog源代碼中使用`ifdef編譯器指令來測試這個定義
simulation:在編譯過程中,VCS生成一個二進制可執(zhí)行文件simv,使用simv來運行仿真。 根據(jù)編譯的方式,可用兩種模式運行仿真:
交互模式
在初始階段以交互模式(調(diào)試模式)編譯design。 在這個階段,可以使用GUI或通過命令行調(diào)試design問題。 通過GUI進行調(diào)試可以使用Verdi,通過命令行進行調(diào)試可以使用UCLI (Unified command line interface)
批處理模式
當大多數(shù)design問題解決后,可以使用批處理模式(優(yōu)化模式)編譯design。 在這個階段,可以以最小的debug性能來換取更好的性能來運行回歸
使用下面的命令行來仿真設計:
simv_executable [runtime_options]
缺省情況下,VCS生成可執(zhí)行的二進制文件simv,但也可以在vcs命令行中使用編譯時間選項-o來生成具有指定名稱的二進制可執(zhí)行文件
-圖形用戶界面
當設置了VERDI_HOME時,此選項啟動Verdi
-烏克利
該選項在UCLI模式下啟動simv
三步流程
支持Verilog、VHDL和混合HDL設計,包括三個步驟:
analysis 分析
elaboration 細化
simulation 仿真
analysis:分析是仿真design的第一步,在此階段將使用vhdlan或vlogan分析VHDL、Verilog、SystemVerilog和OpenVera文件。 下面的部分包括幾個分析設計文件的示例命令行:
分析 VHDL 文件:
vhdlan [vhdlan_options] file1.vhd file2.vhd
分析您的 Verilog 文件:
vlogan [vlogan_options] 文件1.v 文件2.v
分析您的系統(tǒng)Verilog文件:
vlogan -sverilog [vlogan_options] file1.sv file2.sv file3.v
分析您的 OpenVera 文件:
vlogan -ntb [vlogan_options] file1.vr file2.vr file3.v
分析您的SystemVerilog和OpenVera文件:
vlogan -sverilog -ntb [vlogan_options] file1.sv file2.vr file3.v
由于一般使用Verilog,故本文只介紹vlogan常用選項:
-幫助
顯示vlogan的使用信息
-q
忽略所有vlogan消息
-f 文件名
指定包含源文件列表的文件
-全64
分析 64 位仿真設計
-忽略keyword_argument
根據(jù)指定的關(guān)鍵字參數(shù),忽略警告消息
-l 文件名
指定VCS記錄分析器消息的日志文件
-sverilog
啟用分析SystemVerilog源代碼
-sv_pragma
指示VCS在單行或多行注釋中編譯sv_pragma關(guān)鍵字后面的SystemVerilog斷言代碼
-時間刻度=time_unit/time_precision
為不包含timescale編譯器指令的源文件指定unit和precision,并在包含時間表的源文件之前指定時間表
-v library_file
指定用于搜索模塊定義的Verilog庫文件
-作品庫
將設計庫名稱映射到接收vlogan輸出的邏輯庫名稱work
**elaboration:**細化是仿真design的第二步,在這個階段,使用分析過程中生成的中間文件,VCS構(gòu)建實例層次結(jié)構(gòu)并生成一個二進制可執(zhí)行的simv,該二進制可執(zhí)行文件之后用于仿真。 可選擇優(yōu)化模式或調(diào)試模式來細化design。
常用選項如下:
-h 或 -help
列出最常用的VCS編譯和運行時選項的描述
-標識
返回有用的信息,如VCS版本和構(gòu)建日期,VCS編譯器版本,以及工作站名稱、平臺和主機ID
-全64
支持64位模式下的編譯和仿真
-文件名
指定包含文件列表和編譯時選項的文件
-l 文件名
指定VCS記錄編譯消息的文件,如果還有-R選項,VCS將在同一個文件中記錄編譯和仿真的消息
simulation:仿真是最后一步,在細化過程中,使用生成的中間文件,VCS創(chuàng)建了一個二進制可執(zhí)行文件simv。 使用simv來運行仿真。 可以使用以下兩種模式運行仿真:
交互模式
在初始階段以交互模式(調(diào)試模式)細化design。 在這個階段,可以使用GUI或通過命令行調(diào)試design問題。 通過GUI進行調(diào)試可以使用Verdi,通過命令行進行調(diào)試可以使用UCLI (Unified command line interface)
批處理模式
當大多數(shù)design問題解決后,可以使用批處理模式(優(yōu)化模式)編譯design。 在這個階段,可以以最小的debug性能來換取更好的性能來運行回歸
使用下面的命令行來仿真設計:
simv_executable [runtime_options]
缺省情況下,VCS生成可執(zhí)行的二進制文件simv,但也可以在vcs命令行中使用編譯時間選項-o來生成具有指定名稱的二進制可執(zhí)行文件
-圖形用戶界面
當設置了VERDI_HOME時,此選項啟動Verdi
-烏克利
該選項在UCLI模式下啟動simv
以上內(nèi)容介紹了使用兩種仿真flow的基本步驟,其余功能需要用的時候再查VCS? User Guide就行了!
審核編輯:湯梓紅
-
仿真
+關(guān)注
關(guān)注
50文章
4125瀏覽量
134033 -
Verilog
+關(guān)注
關(guān)注
28文章
1352瀏覽量
110425 -
vhdl
+關(guān)注
關(guān)注
30文章
817瀏覽量
128361 -
VCS
+關(guān)注
關(guān)注
0文章
80瀏覽量
9652 -
Flow
+關(guān)注
關(guān)注
0文章
10瀏覽量
8871
原文標題:淺談VCS的兩種仿真flow
文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
VCS仿真指南(第二版).pdf
VCS DVE 仿真工具講解
nanosim和vcs混合仿真的過程是怎樣的?
基于linux系統(tǒng)的VCS使用及仿真說明
基于linux系統(tǒng)實現(xiàn)的vivado調(diào)用VCS仿真教程
![基于linux系統(tǒng)實現(xiàn)的vivado調(diào)用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程](https://file1.elecfans.com//web2/M00/A6/C4/wKgZomUMQEWAYFuEAAAUrDVs_DA005.jpg)
評論