0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用VCS兩種仿真flow的基本步驟

路科驗(yàn)證 ? 來源:路科驗(yàn)證 ? 作者:路科驗(yàn)證 ? 2022-05-07 14:20 ? 次閱讀

幾乎所有的芯片設(shè)計(jì)、芯片驗(yàn)證工程師,每天都在和VCS打交道,但是由于驗(yàn)證環(huán)境的統(tǒng)一化管理,一般將不同的編譯仿真選項(xiàng)集成在一個文件里,只需要一兩個人維護(hù)即可。所以大部分人比較少有機(jī)會去深入地學(xué)習(xí)VCS的仿真flow。基于此,本文將介紹VCS仿真的兩種flow,概述這兩種flow分別做了哪些事!

VCS是一個高性能、高容量的編譯代碼仿真器,它將高級抽象的驗(yàn)證技術(shù)集成到一個開放的本地平臺中。它能夠分析、編譯和編譯Verilog、VHDL、SystemVerilogOpenVera所描述的design,并且還提供了一組仿真和調(diào)試功能來驗(yàn)證design,這些特性提供了源代碼級debug和仿真結(jié)果。支持原生測試平臺、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 flowthree-step flow
  • two-step flow
只支持VerilogHDL和SystemVerilog設(shè)計(jì),包括兩個步驟: compilation 編譯simulation 仿真 compilation:編譯是仿真design的第一步,此時VCS構(gòu)建實(shí)例層次結(jié)構(gòu)并生成一個二進(jìn)制可執(zhí)行的simv,之后用于仿真。在此階段,我們可以選擇以優(yōu)化模式調(diào)試模式編譯design。

使用vcs,語法如下:

vcs [compileoptions] Verilog_files

常用選項(xiàng)如下:

-h or -help

列出最常用的VCS編譯和運(yùn)行時選項(xiàng)的描述

-ID

返回有用的信息,如VCS版本和構(gòu)建日期,VCS編譯器版本,以及工作站名稱、平臺和主機(jī)ID

-v filename

指定Verilog庫文件,VCS在這個文件中查找模塊定義和在源代碼中找到的UDP實(shí)例

-y directory

指定Verilog庫目錄,VCS在這個目錄的源文件中搜索模塊定義和UDP實(shí)例。VCS在這個目錄中搜索與實(shí)例中模塊或UDP標(biāo)識符同名的文件(不是實(shí)例名)。如果找到了這個文件,VCS會在文件中搜索模塊或UDP定義來解析實(shí)例

ps:如果你在不同的庫中有多個同名的模塊,VCS會選擇用第一個-y選項(xiàng)指定的庫中定義的模塊

+incdir+directory+

指定VCS搜索包含文件的directory目錄,可以使用加號(+)字符指定多個目錄

+inbext+extension+

指定VCS只在庫目錄中搜索具有指定文件擴(kuò)展名的文件,可以指定多個擴(kuò)展名,用加號(+)分隔擴(kuò)展名。例如,+libext+.v+ .V+,指定在庫中搜索擴(kuò)展名為.v或.V的文件

+liborder

指定在VCS找到實(shí)例的庫的剩余部分中搜索未解析的模塊實(shí)例的模塊定義

-full64

支持64位模式下的編譯和仿真

-file filename

指定包含文件列表和編譯時選項(xiàng)的文件

-verdi

啟動verdi

-R

編譯后立即啟動仿真

-pvalue+parameter_hierarchical_name=value

將指定的參數(shù)更改為指定的值

-parameters filename

將文件中指定的參數(shù)更改為文件中指定的值

-notice

啟用詳細(xì)診斷消息

-q

quiet模式;抑制消息,例如關(guān)于VCS使用的C編譯器、VCS解析的源文件、頂層模塊或指定的timescale的消息

-V

verbose模式;打印消息,例如編譯器驅(qū)動程序在運(yùn)行C編譯器、匯編器和鏈接器時打印它執(zhí)行的命令

-lfilename

指定VCS記錄編譯消息的文件,如果還有-R選項(xiàng),VCS將在同一個文件中記錄編譯和仿真的消息

+define+macro=value+

將源代碼中的文本宏定義為值或字符串,可以在Verilog源代碼中使用`ifdef編譯器指令來測試這個定義

simulation:在編譯過程中,VCS生成一個二進(jìn)制可執(zhí)行文件simv,使用simv來運(yùn)行仿真。根據(jù)編譯的方式,可用兩種模式運(yùn)行仿真:

Interactivemode

在初始階段以交互模式(調(diào)試模式)編譯design。在這個階段,可以使用GUI或通過命令行調(diào)試design問題。通過GUI進(jìn)行調(diào)試可以使用Verdi,通過命令行進(jìn)行調(diào)試可以使用UCLI(Unified command line interface)

batch mode

當(dāng)大多數(shù)design問題解決后,可以使用批處理模式(優(yōu)化模式)編譯design。在這個階段,可以以最小的debug性能來換取更好的性能來運(yùn)行回歸

使用下面的命令行來仿真設(shè)計(jì):

simv_executable [runtime_options]

缺省情況下,VCS生成可執(zhí)行的二進(jìn)制文件simv,但也可以在vcs命令行中使用編譯時間選項(xiàng) -o 來生成具有指定名稱的二進(jìn)制可執(zhí)行文件

-gui

當(dāng)設(shè)置了VERDI_HOME時,此選項(xiàng)啟動Verdi

-ucli

該選項(xiàng)在UCLI模式下啟動simv

  • three-step flow
支持Verilog、VHDL和混合HDL設(shè)計(jì),包括三個步驟: analysis 分析elaboration 細(xì)化simulation 仿真 analysis:分析是仿真design的第一步,在此階段將使用vhdlanvlogan分析VHDL、Verilog、SystemVerilog和OpenVera文件。下面的部分包括幾個分析設(shè)計(jì)文件的示例命令行: Analyzing your VHDL files:vhdlan [vhdlan_options] file1.vhd file2.vhd Analyzing your Verilog files:vlogan [vlogan_options] file1.v file2.v Analyzing your SystemVerilog files:vlogan -sverilog [vlogan_options] file1.sv file2.svfile3.v Analyzing your OpenVera files:vlogan -ntb [vlogan_options] file1.vr file2.vr file3.v Analyzing your SystemVerilog and OpenVera files:vlogan -sverilog -ntb [vlogan_options] file1.sv file2.vrfile3.v 由于一般使用Verilog,故本文只介紹vlogan常用選項(xiàng):-help顯示vlogan的使用信息 -q忽略所有vlogan消息 -f filename指定包含源文件列表的文件 -full64Analyzes the design for 64-bit simulation -ignore keyword_argument根據(jù)指定的關(guān)鍵字參數(shù),忽略警告消息 -l filename指定VCS記錄分析器消息的日志文件 -sverilog啟用分析SystemVerilog源代碼 -sv_pragma指示VCS在單行或多行注釋中編譯sv_pragma關(guān)鍵字后面的SystemVerilog斷言代碼 -timescale=time_unit/time_precision為不包含timescale編譯器指令的源文件指定unit和precision,并在包含時間表的源文件之前指定時間表 -v library_file指定用于搜索模塊定義的Verilog庫文件 -work library將設(shè)計(jì)庫名稱映射到接收vlogan輸出的邏輯庫名稱work elaboration:細(xì)化是仿真design的第二步,在這個階段,使用分析過程中生成的中間文件,VCS構(gòu)建實(shí)例層次結(jié)構(gòu)并生成一個二進(jìn)制可執(zhí)行的simv,該二進(jìn)制可執(zhí)行文件之后用于仿真。可選擇優(yōu)化模式或調(diào)試模式來細(xì)化design。 常用選項(xiàng)如下:-h or -help列出最常用的VCS編譯和運(yùn)行時選項(xiàng)的描述 -ID返回有用的信息,如VCS版本和構(gòu)建日期,VCS編譯器版本,以及工作站名稱、平臺和主機(jī)ID -full64支持64位模式下的編譯和仿真-file filename指定包含文件列表和編譯時選項(xiàng)的文件 -l filename指定VCS記錄編譯消息的文件,如果還有-R選項(xiàng),VCS將在同一個文件中記錄編譯和仿真的消息 simulation:仿真是最后一步,在細(xì)化過程中,使用生成的中間文件,VCS創(chuàng)建了一個二進(jìn)制可執(zhí)行文件simv。使用simv來運(yùn)行仿真??梢允褂靡韵聝煞N模式運(yùn)行仿真: Interactive mode在初始階段以交互模式(調(diào)試模式)細(xì)化design。在這個階段,可以使用GUI或通過命令行調(diào)試design問題。通過GUI進(jìn)行調(diào)試可以使用Verdi,通過命令行進(jìn)行調(diào)試可以使用UCLI (Unified command line interface) batch mode當(dāng)大多數(shù)design問題解決后,可以使用批處理模式(優(yōu)化模式)編譯design。在這個階段,可以以最小的debug性能來換取更好的性能來運(yùn)行回歸 使用下面的命令行來仿真設(shè)計(jì):simv_executable[runtime_options] 缺省情況下,VCS生成可執(zhí)行的二進(jìn)制文件simv,但也可以在vcs命令行中使用編譯時間選項(xiàng)-o來生成具有指定名稱的二進(jìn)制可執(zhí)行文件 -gui當(dāng)設(shè)置了VERDI_HOME時,此選項(xiàng)啟動Verdi-ucli該選項(xiàng)在UCLI模式下啟動simv

以上內(nèi)容介紹了使用兩種仿真flow的基本步驟,其余功能需要用的時候再查VCS User Guide就行了。

END

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4023

    瀏覽量

    133336
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015
  • Flow
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    8826

原文標(biāo)題:淺談VCS的兩種仿真flow

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    噪聲傳導(dǎo)的兩種模式

    噪聲傳導(dǎo)有兩種模式,一為差模傳導(dǎo),一為共模傳導(dǎo)。
    的頭像 發(fā)表于 10-15 11:33 ?192次閱讀
    噪聲傳導(dǎo)的<b class='flag-5'>兩種</b>模式

    Linux應(yīng)用層控制外設(shè)的兩種不同的方式

    眾所周知,linux下一切皆文件,那么應(yīng)用層如何控制硬件層,同樣是通過 文件I/O的方式來實(shí)現(xiàn)的,那么應(yīng)用層控制硬件層通常有兩種方式。
    的頭像 發(fā)表于 10-05 19:03 ?219次閱讀
    Linux應(yīng)用層控制外設(shè)的<b class='flag-5'>兩種</b>不同的方式

    請問如何將HSPICE和 IBIS兩種模型怎么轉(zhuǎn)換成TINA軟件中用?

    TI網(wǎng)站里,給出了一些期間的HSPICE和IBIS模型,但是現(xiàn)有的仿真工具 只有TINA這種,請問如何將HSPICE和 IBIS兩種模型怎么轉(zhuǎn)換成TINA軟件中用? 請高手給予解答。感謝!
    發(fā)表于 09-02 07:56

    晶閘管的阻斷狀態(tài)有兩種是什么

    晶閘管(Thyristor)是一半導(dǎo)體器件,具有單向?qū)щ娦?,廣泛應(yīng)用于電力電子領(lǐng)域。晶閘管的阻斷狀態(tài)有兩種:正向阻斷狀態(tài)和反向阻斷狀態(tài)。以下是對這兩種阻斷狀態(tài)的分析。 正向阻斷狀態(tài) 正向阻斷狀態(tài)
    的頭像 發(fā)表于 08-14 16:49 ?494次閱讀

    充電樁為什么有直流與交流兩種接口?

    充電樁設(shè)計(jì)有直流(DC)和交流(AC)兩種接口,主要是為了適應(yīng)不同類型的電動汽車(EV)充電需求以及電池的充電特性。
    的頭像 發(fā)表于 04-30 15:33 ?1356次閱讀

    異或門兩種常見的實(shí)現(xiàn)方式

    兩種實(shí)現(xiàn)方式都能夠?qū)崿F(xiàn)異或門的功能,具體的選擇取決于設(shè)計(jì)需求和邏輯門的可用性。實(shí)際構(gòu)建異或門時,可以使用離散電子元件(如晶體管、二極管等)或整合電路芯片(如 TTL、CMOS 等)來實(shí)現(xiàn)。
    的頭像 發(fā)表于 02-04 17:30 ?1.1w次閱讀
    異或門<b class='flag-5'>兩種</b>常見的實(shí)現(xiàn)方式

    VCS 仿真option 解析

    VCS仿真選項(xiàng)分編譯(compile-time)選項(xiàng)和運(yùn)行(run-time)選項(xiàng)。編譯選項(xiàng)用于RTL/TB的編譯,一遍是編譯了就定了,不能在仿真中更改其特性,例如define等等。
    的頭像 發(fā)表于 01-06 10:19 ?2358次閱讀

    分享兩種簡單的平衡電橋設(shè)備設(shè)計(jì)

    本文給出了兩種簡單的平衡電橋設(shè)備設(shè)計(jì),借此即可對個電感進(jìn)行高精度的比較。LED指示器或高阻抗電話耳機(jī)用作不平衡指示器。
    的頭像 發(fā)表于 01-05 09:31 ?780次閱讀
    分享<b class='flag-5'>兩種</b>簡單的平衡電橋設(shè)備設(shè)計(jì)

    兩種仿真軟件的仿真結(jié)果有差異嗎

    兩種仿真軟件的仿真結(jié)果在某些情況下可能存在差異。具體來說,仿真軟件是通過模擬現(xiàn)實(shí)世界中的某個系統(tǒng)或過程來產(chǎn)生結(jié)果的工具。不同的仿真軟件采用不
    的頭像 發(fā)表于 12-28 15:37 ?1069次閱讀

    Multisim仿真幅頻特性曲線和相頻特性曲線的兩種方法

    Multisim仿真幅頻特性曲線和相頻特性曲線的兩種方法
    的頭像 發(fā)表于 12-11 17:29 ?1.7w次閱讀
    Multisim<b class='flag-5'>仿真</b>幅頻特性曲線和相頻特性曲線的<b class='flag-5'>兩種</b>方法

    Micro OLED和Micro LED兩種顯示技術(shù)有哪些不同?

    Micro OLED和Micro LED兩種顯示技術(shù)有哪些不同? Micro OLED和Micro LED是兩種不同的顯示技術(shù),它們在構(gòu)造、工作原理以及應(yīng)用領(lǐng)域等方面存在一些明顯的區(qū)別。下面將對
    的頭像 發(fā)表于 12-11 14:26 ?6570次閱讀

    時鐘樹是什么?介紹兩種時鐘樹結(jié)構(gòu)

    今天來聊一聊時鐘樹。首先我先講一下我所理解的時鐘樹是什么,然后介紹兩種時鐘樹結(jié)構(gòu)。
    的頭像 發(fā)表于 12-06 15:23 ?1559次閱讀

    兩種timing分析模式—GBA與PBA簡單梳理

    今天想來聊一聊STA相關(guān)的內(nèi)容。GBA和PBA是在做STA分析的時候的兩種分析模式
    的頭像 發(fā)表于 12-06 15:00 ?1106次閱讀

    兩種常見EMC整改流程!

    兩種常見EMC整改流程!|深圳比創(chuàng)達(dá)電子EMC
    的頭像 發(fā)表于 11-23 10:10 ?922次閱讀

    大語言模型的兩種運(yùn)行方法

    運(yùn)行 安裝上面的步驟,到這里就全部安裝好了,體驗(yàn)LLM有兩種方式,一個是直接在shell窗口中以聊天的方式使用,還有一個是通過topic的訂閱和發(fā)布來使用,前者適合體驗(yàn),后者適用于實(shí)際開發(fā)中。 1.
    的頭像 發(fā)表于 11-20 15:52 ?645次閱讀