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

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

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

淺談VCS的兩種仿真flow

ruikundianzi ? 來源:ICer消食片 ? 2023-01-10 11:20 ? 次閱讀

幾乎所有的芯片設(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è)開放的本地平臺(tái)中。它能夠分析、編譯和編譯Verilog、VHDL、SystemVerilog和OpenVera所描述的design,并且還提供了一組仿真和調(diào)試功能來驗(yàn)證design,這些特性提供了源代碼級(jí)debug和仿真結(jié)果。支持原生測試平臺(tái)、SystemVerilog、驗(yàn)證規(guī)劃、覆蓋率分析和收斂。

除了標(biāo)準(zhǔn)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 flowthree-step flow

two-step flow

只支持Verilog HDL和SystemVerilog設(shè)計(jì),包括兩個(gè)步驟:

compilation 編譯

simulation 仿真

compilation:編譯是仿真design的第一步,此時(shí)VCS構(gòu)建實(shí)例層次結(jié)構(gòu)并生成一個(gè)二進(jìn)制可執(zhí)行的simv,之后用于仿真。 在此階段,我們可以選擇以優(yōu)化模式調(diào)試模式編譯design。

使用vcs,語法如下:

VCS [編譯選項(xiàng)] Verilog_files

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

-h 或 -help

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

-標(biāo)識(shí)

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

-v 文件名

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

-y 目錄

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

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

+incdir+目錄+

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

+擴(kuò)展+擴(kuò)展+

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

+圖書館

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

-全64

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

-文件名

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

-給

啟動(dòng)verdi

-R

編譯后立即啟動(dòng)仿真

-p值+parameter_hierarchical_name=值

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

-參數(shù)文件名

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

-通知

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

-q

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

-在

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

-l 文件名

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

+定義+宏=值+

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

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

交互模式

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

批處理模式

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

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

simv_executable [runtime_options]

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

-圖形用戶界面

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

-烏克利

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

三步流程

支持Verilog、VHDL和混合HDL設(shè)計(jì),包括三個(gè)步驟:

analysis 分析

elaboration 細(xì)化

simulation 仿真

analysis:分析是仿真design的第一步,在此階段將使用vhdlanvlogan分析VHDL、Verilog、SystemVerilog和OpenVera文件。 下面的部分包括幾個(gè)分析設(shè)計(jì)文件的示例命令行:

分析 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常用選項(xiàng):

-幫助

顯示vlogan的使用信息

-q

忽略所有vlogan消息

-f 文件名

指定包含源文件列表的文件

-全64

分析 64 位仿真設(shè)計(jì)

-忽略keyword_argument

根據(jù)指定的關(guān)鍵字參數(shù),忽略警告消息

-l 文件名

指定VCS記錄分析器消息的日志文件

-sverilog

啟用分析SystemVerilog源代碼

-sv_pragma

指示VCS在單行或多行注釋中編譯sv_pragma關(guān)鍵字后面的SystemVerilog斷言代碼

-時(shí)間刻度=time_unit/time_precision

為不包含timescale編譯器指令的源文件指定unit和precision,并在包含時(shí)間表的源文件之前指定時(shí)間表

-v library_file

指定用于搜索模塊定義的Verilog庫文件

-作品庫

將設(shè)計(jì)庫名稱映射到接收vlogan輸出的邏輯庫名稱work

**elaboration:**細(xì)化是仿真design的第二步,在這個(gè)階段,使用分析過程中生成的中間文件,VCS構(gòu)建實(shí)例層次結(jié)構(gòu)并生成一個(gè)二進(jìn)制可執(zhí)行的simv,該二進(jìn)制可執(zhí)行文件之后用于仿真。 可選擇優(yōu)化模式或調(diào)試模式來細(xì)化design。

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

-h 或 -help

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

-標(biāo)識(shí)

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

-全64

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

-文件名

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

-l 文件名

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

simulation:仿真是最后一步,在細(xì)化過程中,使用生成的中間文件,VCS創(chuàng)建了一個(gè)二進(jìn)制可執(zhí)行文件simv。 使用simv來運(yùn)行仿真。 可以使用以下兩種模式運(yùn)行仿真:

交互模式

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

批處理模式

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

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

simv_executable [runtime_options]

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

-圖形用戶界面

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

-烏克利

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

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

審核編輯:湯梓紅

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

    關(guān)注

    50

    文章

    3971

    瀏覽量

    132952
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109712
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    816

    瀏覽量

    127951
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    9537
  • Flow
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    8817

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

文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VCS仿真指南(第二版).pdf

    包括兩種調(diào)試界面:Text-based:Command Line Interface(CLI) 和 GUI-based(VirSim);仿真主要的個(gè)步驟是編譯,運(yùn)行: VCS
    發(fā)表于 12-15 10:27

    nanosim和vcs混合仿真的過程是怎樣的?

    nanosim和vcs為什么可以聯(lián)合起來進(jìn)行數(shù)字模擬混合仿真?nanosim和vcs混合仿真的過程是怎樣的?
    發(fā)表于 06-18 08:28

    基于linux系統(tǒng)的VCS使用及仿真說明

    testbench中加入$stop語句。這樣仿真可以在該處停下來,這樣可以查看各個(gè)信號(hào)的值。如我再testbench中加入個(gè)$stop語句。執(zhí)行命令 vcs
    發(fā)表于 07-18 16:18

    電力變壓器兩種磁屏蔽中磁通及損耗的仿真分析與驗(yàn)證

    電力變壓器兩種磁屏蔽中磁通及損耗的仿真分析與驗(yàn)證_范亞娜
    發(fā)表于 01-04 16:45 ?0次下載

    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

    在linux系統(tǒng)上實(shí)現(xiàn)vivado調(diào)用VCS仿真教程 作用:vivado調(diào)用VCS仿真可以加快工程的仿真和調(diào)試,提高效率。 前期準(zhǔn)備:確認(rèn)安
    的頭像 發(fā)表于 07-05 03:30 ?1.1w次閱讀
    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程

    如何使用Synopsys VCS仿真器進(jìn)行ZYNQ BFM IPI設(shè)計(jì)仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用ZYNQ BFM IPI設(shè)計(jì)運(yùn)行仿真。 我們將演示如何編譯仿真庫,為IP或整個(gè)項(xiàng)目生成
    的頭像 發(fā)表于 11-29 06:59 ?4802次閱讀

    如何使用Vivado中的Synopsys VCS仿真器進(jìn)行仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用MicrBlaze IPI設(shè)計(jì)運(yùn)行仿真。 我們將演示如何編譯仿真庫,為IP或整個(gè)項(xiàng)目生成
    的頭像 發(fā)表于 11-29 06:57 ?7242次閱讀

    vcs和verdi的調(diào)試及聯(lián)合仿真案例

    若想用Verdi觀察波形,需要在仿真時(shí)生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通過個(gè)系統(tǒng)調(diào)用$fsdbDumpfile $fsdbDumpvars來實(shí)現(xiàn)的。
    的頭像 發(fā)表于 09-22 15:01 ?8363次閱讀

    VCS獨(dú)立仿真Vivado IP核的一些方法總結(jié)

    些許改進(jìn),所以寫這篇文章補(bǔ)充下。 在仿真Vivado IP核時(shí)分兩種情況,分為未使用SECURE IP核和使用了SECURE IP核。 對(duì)于沒有使用SECURE IP核的IP核仿真,只需要在V
    的頭像 發(fā)表于 03-22 10:31 ?3922次閱讀

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

    VCS是一個(gè)高性能、高容量的編譯代碼仿真器,它將高級(jí)抽象的驗(yàn)證技術(shù)集成到一個(gè)開放的本地平臺(tái)中。它能夠分析、編譯和編譯Verilog、VHDL、SystemVerilog和OpenVera所描述
    的頭像 發(fā)表于 05-07 14:20 ?4604次閱讀

    SpinalHDL運(yùn)行VCS+Vivado相關(guān)仿真

    本篇文章來源于微信群中的網(wǎng)友,分享下在SpinalHDL里如何絲滑的運(yùn)行VCS跑Vivado相關(guān)仿真。自此仿真設(shè)計(jì)一體化不是問題。
    的頭像 發(fā)表于 08-10 09:15 ?2314次閱讀

    記錄VCS仿真的IP核只有VHDL文件的解決方法

    使用VCS仿真Vivado里面的IP核時(shí),如果Vivado的IP核的仿真文件只有VHDL時(shí),仿真將變得有些困難,VCS不能直接
    的頭像 發(fā)表于 06-06 11:15 ?1912次閱讀
    記錄<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>的IP核只有VHDL文件的解決方法

    VCS獨(dú)立仿真Vivado IP核的問題補(bǔ)充

    仿真Vivado IP核時(shí)分兩種情況,分為未使用SECURE IP核和使用了SECURE IP核。
    的頭像 發(fā)表于 06-06 14:45 ?1522次閱讀
    <b class='flag-5'>VCS</b>獨(dú)立<b class='flag-5'>仿真</b>Vivado IP核的問題補(bǔ)充

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

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

    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 ?1865次閱讀