0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用VCS两种仿真flow的基本步骤

路科验证 ? 来源:路科验证 ? 作者:路科验证 ? 2022-05-07 14:20 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

几乎所有的芯片设计、芯片验证工程师,每天都在和VCS打交道,但是由于验证环境的统一化管理,一般将不同的编译仿真选项集成在一个文件里,只需要一两个人维护即可。所以大部分人比较少有机会去深入地学习VCS的仿真flow。基于此,本文将介绍VCS仿真的两种flow,概述这两种flow分别做了哪些事!

VCS是一个高性能、高容量的编译代码仿真器,它将高级抽象的验证技术集成到一个开放的本地平台中。它能够分析、编译和编译Verilog、VHDL、SystemVerilogOpenVera所描述的design,并且还提供了一组仿真和调试功能来验证design,这些特性提供了源代码级debug和仿真结果。支持原生测试平台、SystemVerilog、验证规划、覆盖率分析和收敛。

除了标准Verilog、VHDL和混合HDL和SystemVerilog编译和仿真功能,VCS包括以下集成的功能和工具集:

SystemC

Verdi

Unified Command-lineInterface (UCLI)

Built-In CoverageMetrics

DirectC Interface

VCS还可以与第三方工具集成,如Specman、Denali和其他加速和仿真系统。

下面介绍VCS的两种仿真flow:two-step flowthree-step flow
  • two-step flow
只支持VerilogHDL和SystemVerilog设计,包括两个步骤: compilation 编译simulation 仿真 compilation:编译是仿真design的第一步,此时VCS构建实例层次结构并生成一个二进制可执行的simv,之后用于仿真。在此阶段,我们可以选择以优化模式调试模式编译design。

使用vcs,语法如下:

vcs [compileoptions] Verilog_files

常用选项如下:

-h or -help

列出最常用的VCS编译和运行时选项的描述

-ID

返回有用的信息,如VCS版本和构建日期,VCS编译器版本,以及工作站名称、平台和主机ID

-v filename

指定Verilog库文件,VCS在这个文件中查找模块定义和在源代码中找到的UDP实例

-y directory

指定Verilog库目录,VCS在这个目录的源文件中搜索模块定义和UDP实例。VCS在这个目录中搜索与实例中模块或UDP标识符同名的文件(不是实例名)。如果找到了这个文件,VCS会在文件中搜索模块或UDP定义来解析实例

ps:如果你在不同的库中有多个同名的模块,VCS会选择用第一个-y选项指定的库中定义的模块

+incdir+directory+

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

+inbext+extension+

指定VCS只在库目录中搜索具有指定文件扩展名的文件,可以指定多个扩展名,用加号(+)分隔扩展名。例如,+libext+.v+ .V+,指定在库中搜索扩展名为.v或.V的文件

+liborder

指定在VCS找到实例的库的剩余部分中搜索未解析的模块实例的模块定义

-full64

支持64位模式下的编译和仿真

-file filename

指定包含文件列表和编译时选项的文件

-verdi

启动verdi

-R

编译后立即启动仿真

-pvalue+parameter_hierarchical_name=value

将指定的参数更改为指定的值

-parameters filename

将文件中指定的参数更改为文件中指定的值

-notice

启用详细诊断消息

-q

quiet模式;抑制消息,例如关于VCS使用的C编译器、VCS解析的源文件、顶层模块或指定的timescale的消息

-V

verbose模式;打印消息,例如编译器驱动程序在运行C编译器、汇编器和链接器时打印它执行的命令

-lfilename

指定VCS记录编译消息的文件,如果还有-R选项,VCS将在同一个文件中记录编译和仿真的消息

+define+macro=value+

将源代码中的文本宏定义为值或字符串,可以在Verilog源代码中使用`ifdef编译器指令来测试这个定义

simulation:在编译过程中,VCS生成一个二进制可执行文件simv,使用simv来运行仿真。根据编译的方式,可用两种模式运行仿真:

Interactivemode

在初始阶段以交互模式(调试模式)编译design。在这个阶段,可以使用GUI或通过命令行调试design问题。通过GUI进行调试可以使用Verdi,通过命令行进行调试可以使用UCLI(Unified command line interface)

batch mode

当大多数design问题解决后,可以使用批处理模式(优化模式)编译design。在这个阶段,可以以最小的debug性能来换取更好的性能来运行回归

使用下面的命令行来仿真设计:

simv_executable [runtime_options]

缺省情况下,VCS生成可执行的二进制文件simv,但也可以在vcs命令行中使用编译时间选项 -o 来生成具有指定名称的二进制可执行文件

-gui

当设置了VERDI_HOME时,此选项启动Verdi

-ucli

该选项在UCLI模式下启动simv

  • three-step flow
支持Verilog、VHDL和混合HDL设计,包括三个步骤: analysis 分析elaboration 细化simulation 仿真 analysis:分析是仿真design的第一步,在此阶段将使用vhdlanvlogan分析VHDL、Verilog、SystemVerilog和OpenVera文件。下面的部分包括几个分析设计文件的示例命令行: 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常用选项:-help显示vlogan的使用信息 -q忽略所有vlogan消息 -f filename指定包含源文件列表的文件 -full64Analyzes the design for 64-bit simulation -ignore keyword_argument根据指定的关键字参数,忽略警告消息 -l filename指定VCS记录分析器消息的日志文件 -sverilog启用分析SystemVerilog源代码 -sv_pragma指示VCS在单行或多行注释中编译sv_pragma关键字后面的SystemVerilog断言代码 -timescale=time_unit/time_precision为不包含timescale编译器指令的源文件指定unit和precision,并在包含时间表的源文件之前指定时间表 -v library_file指定用于搜索模块定义的Verilog库文件 -work library将设计库名称映射到接收vlogan输出的逻辑库名称work elaboration:细化是仿真design的第二步,在这个阶段,使用分析过程中生成的中间文件,VCS构建实例层次结构并生成一个二进制可执行的simv,该二进制可执行文件之后用于仿真。可选择优化模式或调试模式来细化design。 常用选项如下:-h or -help列出最常用的VCS编译和运行时选项的描述 -ID返回有用的信息,如VCS版本和构建日期,VCS编译器版本,以及工作站名称、平台和主机ID -full64支持64位模式下的编译和仿真-file filename指定包含文件列表和编译时选项的文件 -l filename指定VCS记录编译消息的文件,如果还有-R选项,VCS将在同一个文件中记录编译和仿真的消息 simulation:仿真是最后一步,在细化过程中,使用生成的中间文件,VCS创建了一个二进制可执行文件simv。使用simv来运行仿真。可以使用以下两种模式运行仿真: Interactive mode在初始阶段以交互模式(调试模式)细化design。在这个阶段,可以使用GUI或通过命令行调试design问题。通过GUI进行调试可以使用Verdi,通过命令行进行调试可以使用UCLI (Unified command line interface) batch mode当大多数design问题解决后,可以使用批处理模式(优化模式)编译design。在这个阶段,可以以最小的debug性能来换取更好的性能来运行回归 使用下面的命令行来仿真设计:simv_executable[runtime_options] 缺省情况下,VCS生成可执行的二进制文件simv,但也可以在vcs命令行中使用编译时间选项-o来生成具有指定名称的二进制可执行文件 -gui当设置了VERDI_HOME时,此选项启动Verdi-ucli该选项在UCLI模式下启动simv

以上内容介绍了使用两种仿真flow的基本步骤,其余功能需要用的时候再查VCS User Guide就行了。

END

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    52

    文章

    4316

    浏览量

    136292
  • 编译器
    +关注

    关注

    1

    文章

    1663

    浏览量

    50468
  • Flow
    +关注

    关注

    0

    文章

    10

    浏览量

    9038

原文标题:浅谈VCS的两种仿真flow

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    贴片晶振中两种常见封装介绍

    贴片晶体振荡器作为关键的时钟频率元件,其性能直接关系到系统运行的稳定性。今天,凯擎小妹带大家聊聊贴片晶振中两种常见封装——金属面封装与陶瓷面封装。
    的头像 发表于 07-04 11:29 ?570次阅读
    贴片晶振中<b class='flag-5'>两种</b>常见封装介绍

    两种驱动方式下永磁直线开关磁链电机的研究

    摘要:永磁开关磁链电机数学模型可以等效为永磁无刷电机,普遍采用方波驱动方式。在有限元基础上分析6/7极直线式磁链电机反电势波形,采用方波和正弦波驱动方式,比较两种方式下的电流、电压、平均推力大小
    发表于 06-09 16:18

    两种感应电机磁链观测器的参数敏感性研究

    模式和发电模式下对闭环电压电流模型磁链观测器和滑模磁链观测器参数敏感性进行了研究,通过仿真和实验比较了这两种观测器对定、转子电阻及励磁电感的敏感性。同时还研究了基于这两种观测器的模型参考自适应系统
    发表于 06-09 16:16

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的
    的头像 发表于 06-05 10:19 ?964次阅读
    详解ADC电路的静态<b class='flag-5'>仿真</b>和动态<b class='flag-5'>仿真</b>

    AMC1204有两种封装,SOIC-8和SOIC-16,功能一样吗?为什么要推出两种封装?

    呢?AMC1204,AMC1304这样做有什么好处吗? 2、AMC1204有两种封装,SOIC-8和SOIC-16,功能一样吗?为什么要推出两种封装?
    发表于 12-27 07:22

    ADS1292R有 \"1 ch ECG + 1 ch呼吸侦测\" 或 \"2 ch ECG\" 两种模式,是否可以在产品上实现自行切换两种使用模式?

    请问 ADS1292R 有 \"1 ch ECG + 1 ch 呼吸侦测\" 或 \"2 ch ECG\" 两种模式,是否可以在产品上实现让用户自行切换两种使用模式?
    发表于 12-13 14:43

    芯片制造过程中的两种刻蚀方法

    本文简单介绍了芯片制造过程中的两种刻蚀方法 ? 刻蚀(Etch)是芯片制造过程中相当重要的步骤。 刻蚀主要分为干刻蚀和湿法刻蚀。 ①干法刻蚀 利用等离子体将不要的材料去除。 ②湿法刻蚀 利用腐蚀性
    的头像 发表于 12-06 11:13 ?1895次阅读
    芯片制造过程中的<b class='flag-5'>两种</b>刻蚀方法

    U50的AMD Vivado Design Tool flow设置

    AMD Alveo 加速卡使用有两种流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比较常见的是 Vitis
    的头像 发表于 11-13 10:14 ?1015次阅读
    U50的AMD Vivado Design Tool <b class='flag-5'>flow</b>设置

    噪声传导的两种模式

    噪声传导有两种模式,一为差模传导,一为共模传导。
    的头像 发表于 10-15 11:33 ?853次阅读
    噪声传导的<b class='flag-5'>两种</b>模式

    Linux应用层控制外设的两种不同的方式

    众所周知,linux下一切皆文件,那么应用层如何控制硬件层,同样是通过 文件I/O的方式来实现的,那么应用层控制硬件层通常有两种方式。
    的头像 发表于 10-05 19:03 ?1462次阅读
    Linux应用层控制外设的<b class='flag-5'>两种</b>不同的方式

    OPA277为何有Specified Voltage Range和Operating Voltage Range两种定义?

    OPA277为何有Specified Voltage Range和Operating Voltage Range两种定义?谢谢!
    发表于 09-26 07:32

    比较分析两种不同的可提高栅极驱动电流的方法

    电子发烧友网站提供《比较分析两种不同的可提高栅极驱动电流的方法.pdf》资料免费下载
    发表于 09-23 11:13 ?0次下载
    比较分析<b class='flag-5'>两种</b>不同的可提高栅极驱动电流的方法

    红石比较器两种模式的作用

    红石比较器是Minecraft中的一非常重要的红石元件,它用于比较个红石信号的强度,并根据比较结果输出不同的信号强度。比较器有两种模式:比较模式和减法模式。 比较模式 在比较模式下,比较器会将
    的头像 发表于 09-05 09:17 ?2191次阅读

    请问如何将HSPICE和 IBIS两种模型怎么转换成TINA软件中用?

    TI网站里,给出了一些期间的HSPICE和IBIS模型,但是现有的仿真工具 只有TINA这种,请问如何将HSPICE和 IBIS两种模型怎么转换成TINA软件中用? 请高手给予解答。感谢!
    发表于 09-02 07:56

    两种电缆类型的特点及优势

    随着技术的发展,电缆的材料和结构不断优化,以满足日益增长的电力需求和复杂的应用环境。本文将详细探讨两种广泛使用的电缆类型——聚氯乙烯绝缘电缆和交联聚乙烯绝缘电缆,它们的特点、优势及适用范围。 一
    的头像 发表于 08-28 16:23 ?1173次阅读