• VCS flow学习


    VCS

    VCS 是IC从业者常用软件,该篇文章是一个学习记录,会记录在使用过程中各种概念及options。

    VCS Flow

    VCS Flow 可以分为Two-step Flow和Three-step Flow两类。

    两步法

    两步法只支持Verilog HDL和SystemVerilog的design,两步法主要包括以下两步:

    • Compiling the Design
      编译生成可执行二进制文件simv。
    • Simulating the Design
      使用simv进行仿真。

    三步法

    三步法支持Verilog HDL/VHDL/mixed HDL design,三步法包括以下三步:

    • Analyzing the Design
      使用vlogan(verilog-2000 compliant)或者vhdlan(VHDL-93 compliant)对RTL进行分析,在分析的同时会生成一些临时文件,这些临时文件会被Elaboration使用。
    • Elaboration the Design
      Elaboration会编译并link中间文件最终生成可执行二进制文件simv。
    • Simulating the Design
      使用simv进行仿真。
    Elaboration

    Elaboration 是simulation的第二步,在这步VCS会创建二进制文件simv,在这步可以有两种mode可选

    • debug mode
      这种mode常在debug的时候使用,生成二进制文件时间会比较长,但是有助于仿真正确性以及调试,所以在仿真初期建议使用这种mode。
    • optimized mode
      这种mode相对于debug mode来说生成二进制文件时间比较短,但是可能会有仿真正确性及调试的问题,建议在regression时使用。
      这两种mode可以通过-debug_access option设置。

    仿真SEED设置

    tb会根据seed来进行随机仿真中随机变量,VCS有两种设置top-level random number。

    • ntb_random_seed=value
      用户指定top-level random seed。
    • ntb_random_seed_automatic
      VCS会根据time host_name process_id来自动产生seed,这个选项可以保证任何两个seed都没有重复的

    如果+ntb_random_seed和+ntb_random_seed_automatic同时存在VCS会报warning message并使用+ntb_random_seed指定的seed。

    flow中先判断是否有用户指定seed,如果有则使用第一种(这种场景一般在复现case时使用),否则自动产生。

    VCS 编译选项说明:

    选项说明:

    选项功能
    v2k支持Verilog-2001标准
    sverilog支持sverilog-2009标准
    full64生成64bit可执行文件
    o输出可执行文件名
    timescale为未指定timescale的module指定timescale
    nbt_opts导入uvm 库
    l指定输出log名
    CFLAGS在与c联合仿真时指定 gcc的选项
    DVCS
    kdb在两步法中kdb选项会生成verdi 的Knowledge Database
    lcalca 可以缩短仿真时间
    -y指定编译器查找module或者UDP(User-defined Primitives)的路径,在不同的路径中有多个同名的module或者UDP则使用第一个-y指定路径下的module或者UDP
    +libext指定编译器在查找库函数时的文件或者文件类型
    +vcs+lic+wait如果没有license,则等待license不要退出
  • 相关阅读:
    Java.md
    【Spring-MyBatis】数据库字段下划线映射到 java 对象的驼峰式命名属性
    bash中执行比较的几种方法
    AKKA.Net 的使用 来自CHATGPT
    中国储运杂志中国储运杂志社中国储运编辑部2022年第7期目录
    Spring 的事务实现方式有哪些?
    Fetch 请求不转换BLOB正常显示GBK编码的数据
    jsqlparser 工具类获取 where 参数
    【记录文】Android自定义Dialog实现圆角对话框
    我的Typora的主题
  • 原文地址:https://blog.csdn.net/sinat_38294441/article/details/133170852