1 逻辑仿真工具VCS的使用

在书写完成RTL代码之后,确保自己书写的代码和自己想要的逻辑是一致的。

VCS是synopsys公司下的的仿真工具。

1 VCS仿真过程

编译-->仿真-->debug/查看波形

vcs

1.1.1 编译

vcs -sverilog -debug_all full.adder full_adder_tb.v -l com.log
  • vcs--是逻辑仿真工具EDA工具的编译源代码命令
  • -sverilog--编译命令选项,识别system verilog语法
  • -debug_all--编译选项,保存所有的debug信息
  • -l com.log--编译选项,将编译过程生成的日志写入com.log文件
  • 编译之后会生成simv,simv文件可以进行直接执行
//执行simv文件,生成vpd文件
./simv -l sim.log //打开vpd文件的图形界面
dve -vpd vcdplus.vpd &

1.1.2 图形界面仿真

  1. 启动图形界面
dve &
  • &--后台使用dve,不占用当前的terminal
  1. setup,读入simv文件
  2. 输入run执行仿真

  3. 查看波形

    注意:
  • 仿真至少有两层,xxx.v及testbench.v
  • Hierachy--显示结构,上层为testbench,下层是源代码

2 Verilog Testbench功能

  • 产生激励 Generate stimulus--过多长时间给什么样的值
  • 将激励输入到待测设计(DUT,design under verification)
  • 获取响应 Capture response
  • 检查响应的正确性 Check the response for correctness
  • 根据验证目标评估验证进度 Measure the progress against the overall verification goals

3 验证一个模块,比如全加器

  1. 真值表

    可以将真值表作为pattern,用于进行验证
  2. 验证
  • 功能完整性
  • 穷举法
  • 代码覆盖率--所有的代码都在进行仿真的时候用到

    3 进行仿真
  • 编译
  • 仿真
  • 查看波形

4 一些概念

输入信号是驱动信号,输出信号是被驱动信号

  • 在RTL源代码中
  1. 如果被驱动信号写到assign语句中,定义为wire型的信号
  2. Input信号都是wire型,可以省略掉。
  3. 如果被驱动信号写道always语句块中,定义为reg型的信号
  • 在Testbench中
  1. Testbench中的驱动信号reg
  2. 驱动信号的类型是reg信号
  3. 被驱动类型的信号wire类型

注意::进行DUT测试,需要外加Testbench向DUT中灌入一些信号进行测试。所以在DUT中和Testbench中的输入输出信号类型是相反的。

01-逻辑仿真工具VCS使用的更多相关文章

  1. 【分类器】感知机+线性回归+逻辑斯蒂回归+softmax回归

    一.感知机     详细参考:https://blog.csdn.net/wodeai1235/article/details/54755735 1.模型和图像: 2.数学定义推导和优化: 3.流程 ...

  2. VCS 常用命令速查

      VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言.PLI和SDF.VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模 ...

  3. DDR3 IP和CIC IP仿真问题解决记录

    1.更新vivado的仿真库(data/secureip和verilog和vhdl文件夹)至最新的vivado库和生成IP的版本匹配: 2.vcs编译脚本里面把仿真库地址指向匹配的仿真库版本: 3.v ...

  4. 数字IC设计工程师成长之路

    学习的课程 仿真工具VCS实践学习 2019年12月9日-2019年12月23日

  5. 029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符

    029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑"非"运算符 本文知识点:Java中的逻辑"非"运算符 逻辑& ...

  6. 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符

    028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...

  7. 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符

    027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...

  8. 【黑金ZYNQ7000系列原创视频教程】01.熟悉vivado——纯逻辑led实验

    黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36627&extra=page%3D1 爱奇艺地址: http: ...

  9. Stealth——01场景的基本搭建以及基础逻辑

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  10. ASP.NET一般登陆逻辑分享(01)

随机推荐

  1. F118校准(二)-- 操作步骤(使用PX01 PG点屏,并使用PX01 PG校准F118)

    1. 准备工作 硬件连接: CA310通过USB线材连接PC PX01通过USB线材连接PC F118通过灰排线连接PX01左上角的GPIO扩展口(如下图所示) LCM连接PX01 启动LcdTool ...

  2. 2流高手速成记(之六):从SpringBoot到SpringCloudAlibaba

    咱们接上回 2流高手速成记(之五):Springboot整合Shiro实现安全管理 - 14号程序员 - 博客园 (cnblogs.com) 身边常有朋友说:小项目用PHP.大项目用Java(这里绝无 ...

  3. VS Code插件推荐

    VS Code插件推荐 ​ VS Code作为前端开发人员在学习工作中必不可少的开发软件,其强大的功能以及丰富多样的插件都让开发人员爱不释手.下面推荐个人觉得还不错的几个插件,希望可以帮助到你.如果你 ...

  4. 2022春每日一题:Day 40

    题目:[NOI2010] 超级钢琴 前求出美妙值的前缀和,然后倍增处理一下前缀和的最大值,然后对于一个左端点s,他能取到右端点的只有s+l到s+r,而他的最大贡献就是s+l 到s+r的最大子段和,因此 ...

  5. 谈软件-专家谈C/C++重构的操作与思路

    1.Refactoring: 对软件内部结构的一种调整,目的是不该被软件的可观察行为的前提上,提高其可理解性,降低其修改成本. 2.代码坏味道 2.1.不易复用 2.2.不易理解 2.3.存在冗余 3 ...

  6. 详解Native Memory Tracking之追踪区域分析

    摘要:本篇图文将介绍追踪区域的内存类型以及 NMT 无法追踪的内存. 本文分享自华为云社区<[技术剖析]17. Native Memory Tracking 详解(3)追踪区域分析(二)> ...

  7. 【Java 并发003】原理层面:Java并发三特性全解析

    一.前言 不管什么语言,并发的编程都是在高级的部分,因为并发的涉及的知识太广,不单单是操作系统的知识,还有计算机的组成的知识等等.说到底,这些年硬件的不断的发展,但是一直有一个核心的矛盾在:CPU.内 ...

  8. sqlserver数据库还原

    这里是从A服务器备份的数据库文件,还原到本地B电脑的数据库.因数据库版本相同,故而未曾出现其他版本问题 1.有个bak的备份文件 2.在B电脑新建一个数据库test. 3.设置test数据库的访问限制 ...

  9. i春秋Fuzzing

    先查看源码...没东西,抓包 发现也没什么,但是右边有个提示hint: ip,Large internal network(最大内网ip) 可能需要我们伪造代码进行访问,这还不简单,直接在reques ...

  10. linux系统移植

    1 linux环境搭建 1.1 添加交叉开发工具链 新建如下工程目录: gcc-4.6.4.tar.xz #拷贝 tar -Jxvf gcc-4.6.4.tar.xz #解压 cd ./gcc-4.6 ...