VCS-数字逻辑仿真工具实践-1

写在前面:

百度是这样介绍VCS的

VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。

VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和S*cco也支持混合语言仿真。VCS和S*cco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。

手机中设置的“待办事项”属于.vcs格式。

声明:本文基于下面某站学习整理,链接如下:

https://www.bilibili.com/video/BV1h5411t7A7?p=1

 

VCS对verilog模型进行仿真包括两个步骤: 

1. 编译verilog文件成为一个可执行的二进制文件命令为:vcs source_files 

2. 运行该可执行文件:./simv

类似于NC, 也有单命令行的方式:vcs source_files -R 

-R 命令表示, 编译后立即执行。

 

Verilog仿真事件队列

Verilog内建仿真规范

  •     IEEE1364: Verilog语言的仿真基于分层的事件队列
  •     执行事件的队列
  •     仿真时间的计算
  •     Verilog仿真器先从没有延退的事件开始,执行他们,然后把时间设成0,然后按照时间循序一次执行各个事件
  •     Verilog语言规范没有规定当多个事件被安排在同一个时刻来调度时,应该执行那个
  •     只要在同一层的事件,什么执行循序都是可以的
  •     设计师必须理解 Verilog的分层次仿真事件队列

逻辑仿真队列

VCS-数字逻辑仿真工具实践-1

1.VCS首先会读取initial和always block,执行没有延时的语句。

2.将时间设置成t=0

3.进入active region

(1)首先执行原语(包括UDP即用户定义的原语),例如简单的与门或门、上拉下拉等

(2)$display

(3)continuous assignments例如assign

(4)阻塞赋值,先计算右边的表达式再赋给左边;非阻塞赋值只计算右边的表达式,没有完成赋值过程,这一块结束才赋值成功。

4.进入inactive region:处理#0语句

5.进入nonblocking assign region:非阻塞赋值在这个模块执行

6.进入monitor region:$monitor在这个模块执行,与$display不同,只有变量值出现变化才会输出监测值。因此$monitor显示的一定是赋值之后的新值,$display可能显示的是旧值。

7.进入future region

VCS-数字逻辑仿真工具实践-1VCS-数字逻辑仿真工具实践-1

vcs编译型仿真器

 同一段代码,交给不同仿真器,仿真结果不一样;

VCS可以支持多种级别的描述方式:

  1. 行为级描述
  2. RTL(寄存器传输级)
  3. Gate-level(门级),与具体工艺库有关

Compile-time option examples

  • vcs-help

  lists compile options, run-time options, environment variables

 Command line options(commonly used):

  • -Mupdate

 Incremental compilation (only changed files are compiled)

增量编译,类比增量备份。

  • -R

Run after compilation

编译完成立即执行仿真

  • -gui

Starts the DVE gui at runtime

仿真时启用DVE图形界面

  • -I <filename>

Set log file name

把编译过程写入compile.log文件,便于查看(log在词源中,好像就有记录的意思)

  • -sverilog

Enable Systemverilog language support

支持SV语言

  • +v2k

Compile with support for Verilog 2001 extensions

支持verilog 2001标准

 Run-time options example

VCS-数字逻辑仿真工具实践-1VCS-数字逻辑仿真工具实践-1

加入定义define的三种方法

1.文件中加入 `define INC_COUNTER。

2.新建立一个文件,在文件中加入 `define INC_COUNTER 并在原文件中引用这个文件

  `include "file"需要启用+incdir+选项指定目录。

3.编译时启用选项+define+INC_COUNTER

推荐文章:

VCS **** 笔记 第一课

vcs的一些简单使用教程命令