01-逻辑仿真工具VCS使用
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 图形界面仿真
- 启动图形界面
dve &
- &--后台使用dve,不占用当前的terminal
- setup,读入simv文件
- 输入run执行仿真

- 查看波形
注意:
- 仿真至少有两层,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 验证一个模块,比如全加器
- 真值表
可以将真值表作为pattern,用于进行验证 - 验证
- 功能完整性
- 穷举法
- 代码覆盖率--所有的代码都在进行仿真的时候用到
3 进行仿真 - 编译
- 仿真
- 查看波形
4 一些概念
输入信号是驱动信号,输出信号是被驱动信号
- 在RTL源代码中
- 如果被驱动信号写到assign语句中,定义为wire型的信号
- Input信号都是wire型,可以省略掉。
- 如果被驱动信号写道always语句块中,定义为reg型的信号
- 在Testbench中
- Testbench中的驱动信号reg
- 驱动信号的类型是reg信号
- 被驱动类型的信号wire类型
注意::进行DUT测试,需要外加Testbench向DUT中灌入一些信号进行测试。所以在DUT中和Testbench中的输入输出信号类型是相反的。
01-逻辑仿真工具VCS使用的更多相关文章
- 【分类器】感知机+线性回归+逻辑斯蒂回归+softmax回归
一.感知机 详细参考:https://blog.csdn.net/wodeai1235/article/details/54755735 1.模型和图像: 2.数学定义推导和优化: 3.流程 ...
- VCS 常用命令速查
VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言.PLI和SDF.VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模 ...
- DDR3 IP和CIC IP仿真问题解决记录
1.更新vivado的仿真库(data/secureip和verilog和vhdl文件夹)至最新的vivado库和生成IP的版本匹配: 2.vcs编译脚本里面把仿真库地址指向匹配的仿真库版本: 3.v ...
- 数字IC设计工程师成长之路
学习的课程 仿真工具VCS实践学习 2019年12月9日-2019年12月23日
- 029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符
029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑"非"运算符 本文知识点:Java中的逻辑"非"运算符 逻辑& ...
- 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符
028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...
- 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符
027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...
- 【黑金ZYNQ7000系列原创视频教程】01.熟悉vivado——纯逻辑led实验
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36627&extra=page%3D1 爱奇艺地址: http: ...
- Stealth——01场景的基本搭建以及基础逻辑
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- ASP.NET一般登陆逻辑分享(01)
随机推荐
- 在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 文章目录 1.UML类图 2.源码 3.优缺点 1.UML类图 2.源码 package com.zheng; ...
- python删除某一文件夹下的重复文件
#2022-10-28 import hashlib import os import time def getmd5(filename): """ 获取文件 md5 码 ...
- Kubeadm部署k8s单点master
Kubeadm部署k8s单点master 1.环境准备: 主机名 IP 说明 宿主机系统 master 10.0.0.17 Kubernetes集群的master节点 CentOS 7.9 node1 ...
- 创建base公共组件
公共模块 基础模块参照了vant的思路,使用bem命名规范.先创建一个命名空间,这个命名空间返回创建组件函数与生成命名方法.在创建组件函数中创建name与install属性用于注册vue组件 创建组件 ...
- HTTP(s) API 经验总结
目录 参考文章 First URL HTTP(s)-Header 请求方式 参考文章 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Overvie ...
- C#文件路径
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...
- Java:String、StringBuilder、StringJoiner学习笔记
String创建的俩种方式 1.直接赋值 String str = "Hello World!"; 当使用直接赋值的方式去创建字符串的时候,虚拟机会去串池里去检查字符串是否存在,如 ...
- SpringBoot 08: SpringBoot综合使用 MyBatis, Dubbo, Redis
业务背景 Student表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COL ...
- Kafka事务原理剖析
一.事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性.一致性.事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端代码如下 Kafka ...
- [最短路径问题]Dijkstra算法(含还原具体路径)
前言 在本篇文章中,我将介绍 Dijkstra 算法解决 单源最短路径问题 ,同时还包含了具体路径的还原.以下是我自己的全部学习过程与思考,参考书籍为 <数据结构>(C++语言版) 邓俊辉 ...