【个人笔记】VCS工具与命令

VCS工具学习与使用经验分享

Title:VCS工具学习

一 介绍

  • 是什么?

    VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL.

    VCS能够 分析、编译 HDL的design code,同时内置了 仿真和调试 功能,以及 支持SV、验证规划、覆盖率分析和收敛的验证功能(集成了这些工具:SystemC、Verdi、UCLI Unified Command-line Interface、Built-In Coverage Metrics等);可以理解为是芯片领域的 IC前端的前半部分阶段的IDE(因为后面还要另用DC跑综合,也是前端)。

  • 在chip flow中的位置

    chip flow是前端、后端;前端分为前仿、综合(Synopsys用于跑综合的软件是DC, design compiler)、后仿,区分是有没有综合过;后端有DFT、layout、CTS、placement、route等。

  • vcs和verdi的区别

    vcs是仿真代码来生成波形的,verdi是看波形的.

  • vcs和dve的区别

    dve是VCS的GUI. (但很多地方如zx和synopsys培训机房都不装…不懂…)

    打开DVE的command:./simv -gui

二 用法学习

  • VLSI课程使用的cmd case

    编译:

    vcs -full64 +2k -debug_access+all -timescale=1ns/1ns top.v

    仿真:

    ./simv./simv -gui

  • 粗暴图示

    compile

    在这里插入图片描述

    elaborate

    在这里插入图片描述

    simulation

    在这里插入图片描述

1 简介:VCS的两种simulate flow

VCS 要进行simulate,有 two-step flow 和 three-step flow 两种方式。

  • two-step flow

    内容先compile,再simulate.

    特点:仅支持 verilog HDL 和 SV. (对我已经enough了)

    理解

    1. compile是构建design的实例层次,得到一个可执行的二进制文件simv,用于后续仿真;
    2. simulate是进行具体的仿真。
  • three-step flow

    内容先analysis,然后elaboration,再simulate.

    特点:用于VHDL和verilog两个混合design的仿真。

    理解

    1. analysis:根据不同语言进行细化解析、检查语法错误;

      analysis是根据code是VHDL、Verilog、SV等进行解析、语法检查,转为中间文件库——VHDL design,用vhldan编译、转为vhdlan文件;Verilog design用vlogan编译,转为vlogan文件;

      elaboration是根据中间文件,从顶层module开始link,得到可执行文件simv;

    2. elaboration:link各个模块,产生可执行文件simv

      建议用-top 指定top module,否则默认从-work指定的库内最顶层的module开始;若有多个top-level module,就全执行一遍。

    3. simulate依然是仿真。

2 Option参数

根本写不完,于是用到哪些,写哪些。( ̄▽ ̄)"

2.1 Option:two-step flow

compile阶段
  • 基本用法

    vcs [各种option] .v文件

  • 吐槽

    vcs -h 东西不多;

    verdi -h 东西贼多贼全,匪夷所思!

  • 版本查看option

    常见option(我用到了就是常用( ̄▽ ̄)" …):

    1. -h 就是help——查看用vcs compile的option;
<think>我们正在讨论VCS(Synopsys公司的Verilog仿真工具)中的`export`相关功能。根据引用[2],我们看到在配置VCS环境时使用了`export`命令来设置环境变量: 引用[2]中示例: ```bash export PATH="/opt/synopsys/vcs/bin:$PATH" export SNPSLMD_LICENSE_FILE=27000@host_name export LM_LICENSE_FILE=/opt/synopsys/license/synopsys.dat ``` 这里的`export`是Linux/Unix shell命令,用于设置环境变量。在VCS的上下文中,我们通常需要在运行VCS之前设置一些环境变量,例如: - `PATH`:将VCS的可执行文件路径(如`/opt/synopsys/vcs/bin`)添加到系统的PATH环境变量中,这样我们就可以直接在终端中使用`vcs`等命令。 - `SNPSLMD_LICENSE_FILE` 或 `LM_LICENSE_FILE`:指定Synopsys工具的许可证文件位置。 所以,用户询问的“vcs export”并不是VCS工具本身的一个命令,而是指在使用VCS之前,通过shell的`export`命令来设置环境变量的操作。 另外,引用[4]中也提到了使用`export`来设置一个特定的环境变量`VCS_PRINT_INITREG_INITIALIZATION`: ```bash export VCS_PRINT_INITREG_INITIALIZATION = 1 ``` 这个环境变量用于控制VCS在仿真时是否打印设计中被初始化的寄存器的值,并生成一个文本文件。 因此,我们可以将“vcs export”理解为在运行VCS仿真前,通过shell的`export`命令设置必要的环境变量,以配置VCS的运行环境。 **使用方法**: 1. 在终端中直接使用`export`命令(临时生效,只对当前终端会话有效): ```bash export 变量名=值 ``` 例如: ```bash export PATH="/opt/synopsys/vcs/bin:$PATH" ``` 2. 将`export`命令写入shell的配置文件(如`~/.bashrc`或`~/.bash_profile`)中,这样每次打开终端都会自动设置。 **功能**: - 设置VCS工具的搜索路径(PATH)。 - 设置许可证文件的位置(SNPSLMD_LICENSE_FILE或LM_LICENSE_FILE)。 - 设置VCS运行时的特定选项,如引用[4]中的`VCS_PRINT_INITREG_INITIALIZATION`。 **注意**:在引用[4]中,还提到了VCS命令行参数中关于初始化寄存器的选项(如`+vcs+initreg+random`等),这些是VCS运行时直接加在命令行上的参数,设置环境变量的`export`不同。 总结:用户所问的“vcs export”实际上是指在使用VCS之前,通过Linux的`export`命令设置相关环境变量,这些变量会影响VCS的运行。 根据上述引用,我们还可以生成相关问题: §§相关问题§§ 1. 如何永久设置VCS所需的环境变量? 2. VCS运行时需要设置哪些常见的环境变量? 3. VCS的许可证设置常见问题有哪些? 4. VCS中如何控制寄存器的初始化行为? </think>### VCS Export 功能详解 #### 1. **Export 核心功能** 在 VCS 环境中,`export` 主要用于**环境变量配置**,这是使用 VCS 工具链的基础前提: - 设置工具路径:`export PATH="/opt/synopsys/vcs/bin:$PATH"` 将 VCS 可执行文件添加到系统路径,支持直接调用 `vcs` 命令[^2]。 - 许可证配置:`export SNPSLMD_LICENSE_FILE=27000@host_name` 指定 Synopsys 工具的许可证服务器位置[^2]。 - 特殊功能启用:`export VCS_PRINT_INITREG_INITIALIZATION=1` 生成寄存器初始化报告文件 `vcs_initreg_random_value.txt`,用于调试寄存器初始值[^4]。 #### 2. **使用场景操作方法** | **场景** | **命令示例** | **作用** | |-------------------------|-------------------------------------------------------------------------------|------------------------------------------| | **基础环境配置** | `export PATH="/安装路径/vcs/bin:$PATH"` | 启用 VCS 命令工具 | | **许可证配置** | `export LM_LICENSE_FILE=/license/synopsys.dat` | 指定本地许可证文件[^2] | | **寄存器初始化调试** | `export VCS_PRINT_INITREG_INITIALIZATION=1` | 生成寄存器初始化报告[^4] | | **联合调试支持** | 配合 `Verdi` 设置 `LD_LIBRARY_PATH` 等变量 | 实现 VCS+Verdi 联合仿真[^3] | #### 3. **典型工作流程** ```bash # 步骤 1: 配置基础环境 export PATH="/opt/synopsys/vcs/bin:$PATH" export SNPSLMD_LICENSE_FILE=27000@license_server # 步骤 2: 启用特殊功能 (如寄存器调试) export VCS_PRINT_INITREG_INITIALIZATION=1 # 步骤 3: 编译设计 vcs -sverilog design.sv testbench.sv # 步骤 4: 运行仿真 ./simv +vcs+initreg+random # 应用寄存器初始化参数[^4] ``` #### 4. **关键注意事项** - **作用域限制**:`export` 设置的变量仅在当前终端会话有效,永久配置需写入 `~/.bashrc` 或 `~/.cshrc`。 - **参数联动**:环境变量需命令行参数配合使用(如 `+vcs+initreg+random` 需结合 `VCS_PRINT_INITREG_INITIALIZATION`)[^4]。 - **调试增强**:启用 `VCS_PRINT_INITREG_INITIALIZATION` 后,生成的报告包含未显式初始化寄存器的随机值[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值