新手教程02:使用makefile脚本进行VCS逻辑仿真
目录
前言
使用makefile脚本的方式使用VCS
1. 新建文件夹,存放需要仿真的rtl代码
2. 生成 filelist.f 文件,罗列所有rtl文件的路径
3. 书写makefile脚本
4. terimal中运行命令,进行仿真
总结
前言
零基础初学数字IC,学会什么写什么,与大家一起进步。
书接上篇,本文主要介绍如何使用makefile脚本进行VCS逻辑仿真。
为什么我们要使用makefile脚本来进行操作呢?
我们在Window系统下进行仿真时,大部分情况下使用的都是基于图形化界面的方法——使用鼠标点击相应的按键、选项等完成各种操作。这样的操作虽然便于理解,但是代码有错误需要进行修改的时候,我们就需要将所有的图形化界面操作重新手动操作一次,相对来说有些麻烦;如果在Linux系统下,我们就可以通过编写makefile脚本的方式让软件自动一条命令一条命令自动执行,大大简化了手动操作量。
makefile脚本的方式使用VCS
1. 新建文件夹,存放需要仿真的rtl代码
在rtl文件夹下放置需要进行逻辑仿真的rtl代码与testbench测试文件
有一点需要注意,因为我们是使用脚本一键式完成整个操作过程,所以需要在testbench文件中加入以下代码,用于生成 .vpd 文件。
initial
begin$vcdpluson;
end
2. 生成 filelist.f 文件,罗列所有rtl文件的路径
find -name '*.v' > filelist.f
如果rtl文件的路径与生成的 filelist.f 文件不在同一路径下,可以在 -name 之前加上存放rtl代码文件夹的相对路径即可。
3. 书写makefile脚本
在terimal下打开gvim新建一个makefile文件
gvim makefile
makefile文件如下:
all: com sim run_dvecom:vcs -full64 -f filelist.f -R +v2k -debug_access+all -timescale=1ns/1ns -l com.logsim:./simv -l sim.logrun_dve:dve -vpd vcdplus.vpd &clean:rm -rf *.log csrc DVEfiles *.key *.swp
make all 是一条总命令,包含make com, make sim, make run_dve 三条命令;
vcs -full64: 使用64位计算支持; -f filelist.f: 读取 filelist.f 文件; -R: 编译完成后立即进行仿真;+v2k: 支持Verilog-2001标准; -debug_access+full: 启用UCLI命令和DVE,使线路步进; -timescale=1ns/1ns: 定义仿真单位; -l com.log: 生成编译日志文件;
./simv: 运行可执行文件simv; -l sim.log: 生成仿真日志文件;
dve -vpd vcdplus.vpd &: 在后台打开dve,运行.vpd 波形文件;
rm -rf: 仿真完成后删除无用的文件(可以自行决定);
4. terimal中运行命令,进行仿真
输入make all 命令之后自动执行相应命令,打开 dve GUI 界面;将想要分析的端口添加到波形窗口即可看到相应的波形。
总结
以上就是利用makefile脚本方式使用VCS的方法,笔记如果有错误的地方,欢迎大家留言纠正~
新手教程02:使用makefile脚本进行VCS逻辑仿真相关推荐
- Makefile 脚本运行VCS仿真
LINUX学习笔记 Makefile 脚本运行VCS仿真 1. 文件 2. Makefile 脚本 3. 命令 1. 文件 tb.list: tesetbech文件目录 rtl.list:rtl代码文 ...
- Makefile脚本启动VCS+Verdi
文章目录 一.快速入门 二.Makefile的语法 1.语法格式 2.命令执行 3.变量 三.VCS仿真 1.VCS常用命令 2.Makefile实现自动化仿真 四.VCS+Verdi的使用 1.编译 ...
- 如何用VCS+Verdi仿真Xilinx IP
文章目录 如何用VCS+Verdi仿真Xilinx IP 1. VCS以及Vivado的版本问题 2. 使用VCS编译Vivado的IP库 3. 使用Vivado工具调用VCS进行仿真 1.新建带有I ...
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...
- python完全新手教程-Python完全新手教程
Python完全新手教程 更新时间:2007年02月08日 00:00:00 作者: Python入门教程FROM:http://www.cnblogs.com/taowen/articles/112 ...
- hibernate官方新手教程 (转载)
hibernate官方新手教程第一部分 - 第一个Hibernate程序 首先我们将创建一个简单的控制台(console-based)Hibernate程序.我们使用内置数据库(in-memory d ...
- [译][Tkinter 教程02] Message 控件
已获原作者授权. 原系列地址: Python Tkinter Message 控件 Message 控件用来展示一些文字短消息. Message 和 Label 控件有些类似, 但在展示文字方面比 L ...
- MATLAB新手教程
MATLAB新手教程 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比 ...
- swift 雨燕 新手教程
Apple Swift编程语言新手教程 chox 2014-06-03 文件夹 简单介绍 入门 简单值 控制流 函数与闭包 对象与类 枚举与结构 1 简单介绍 今天凌晨Apple刚刚公布了Swif ...
- mac安装WireShark2.0新手教程
mac安装WireShark2.0新手教程 在你开始之前 此版本的Wireshark需要macOS 10.12或更高版本.如果您运行的是macOS的早期版本,则可以使用其他打包系统(例如Homebre ...
最新文章
- DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2
- 原360首席科学家颜水成正式加入依图科技,任首席技术官
- 使用lucene进行group操作
- python3基本知识_Python3 - 基础知识、基本了解
- python编程题-python编程题库
- 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)
- python学习笔记一 一变量与运算符
- mysql的事务语句_MySQL提供的事务控制语句
- python视频帧提取并保存_如何用python实现视频关键帧提取并保存为图片?
- HBase到MR再到HBase
- 符号_液压图形符号识别之流量控制阀符号原理
- 计算机无法上网修复工具,lsp怎么修复解决上不了网问题汇总
- 解决WPS页码上有小横线问题
- 分布式系统可观测性之应用业务指标监控
- 如何看出一个程序员的技术能力和水平?
- Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
- 设置快捷键使页面全屏
- 作为一个大学生如何自学计算机编程
- 软件开发新技术(工具及相关技术)
- 复旦微的FMQL10S400ZYNQ芯片的多核操作
热门文章
- 交流成长,敏捷个人总体介绍 PPT
- 消息队列之六脉神剑:RabbitMQ、Kafka、ActiveMQ 、Redis、 ZeroMQ、Apache Pulsar对比和如何使用
- 沈阳师范大学大一下册C++语言PTA题目集以及答案(函数题篇)
- 宽带连接:813错误(813error)解决方案
- 【图像处理】【SEED-VPM】5.uImage的烧写 NFS烧写文件系统
- YOLOv5 gpu 训练自定义模型 训练
- “电竞数据分析APP解决方案:洞察赛场,助力战队升级
- android studio课程报告,我的第一次android studio课程体验和收获
- 最新验证手机号正则表达式 和车牌校验
- 【MATLAB】计算 CRC16 可配置多项式