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. Codeforces Round #829 (Div. 2)/CodeForces1754

    CodeForces1754 注:所有代码均为场上所书 Technical Support 解析: 题目大意 给定一个只包含大写字母 \(\texttt{Q}\) 和 \(\texttt{A}\) 的 ...

  2. k8s机器群扩容问题

    今天遇到了一个很奇葩的问题.公司新人吧k8s集权扩容完后,发现服务器上的磁盘没有做分区2T磁盘没有做任何动作 把两台slave节点扩容上去的节点弄到了/目录.由于是生产环境情况比较特殊并没通过kube ...

  3. 在 .NET 7上使用 WASM 和 WASI

    WebAssembly(WASM)和WebAssembly System Interface(WASI)为开发人员开辟了新的世界..NET 开发人员在 Blazor WebAssembly 发布时熟悉 ...

  4. 解决pip下载速度慢问题

    解决pip下载速度慢的问题 痛点:当我们pip 安装第三方库的时候,由于是访问的国外地址,所以会出现下载很慢!干等..... 解决方案: # 1.在C盘目录-->Users-->用户--& ...

  5. Windows操作系统搭建Lsky Pro

    写在前面 本文主要介绍在Windows下部署兰空图床,以及安装过程, 非Windows系统可以参考本文章的安装流程,结合自己系统版本进行部署 图床用处 图床在日常的用处非常广泛,尤其对于经常写博客的人 ...

  6. Vue3 企业级优雅实战 - 组件库框架 - 3 搭建组件库开发环境

    前文已经初始化了 workspace-root,从本文开始就需要依次搭建组件库.example.文档.cli.本文内容是搭建 组件库的开发环境. 1 packages 目录 前面在项目根目录下创建了 ...

  7. 最新的ZooKeeper GUI

    Zookeeper 是一个分布式的.开源的程序协调服务,是 hadoop 项目下的一个子项目.他提供的主要功 能包括:配置管理.名字服务.分布式锁.集群管理. 平时用zkCli.sh进行管理不免有点不 ...

  8. Vue3笔记(二)了解组合式API的应用与方法

    一.组合式API(Composition API)的介绍 官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 组 ...

  9. 安卓APP和小程序渗透测试技巧总结

    安卓APP和小程序渗透测试技巧总结 免责声明: 安卓7以上抓取https流量包 证书信任 首先安装OpenSSL,此步骤不再赘述,可以参考百度. 然后安装模拟器(我使用的是夜神模拟器). 导出需要的证 ...

  10. 2022春每日一题:Day 22

    题目:[HAOI2008]糖果传递 光看题几乎没有思路,但是显然到最后每个人手中一定有 d=s/n个糖果(s为所有人糖果总和),不妨设2号给1号x2个糖果,3号给2号x3个.....1号给n号x1个, ...