目录

前言

使用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逻辑仿真相关推荐

  1. Makefile 脚本运行VCS仿真

    LINUX学习笔记 Makefile 脚本运行VCS仿真 1. 文件 2. Makefile 脚本 3. 命令 1. 文件 tb.list: tesetbech文件目录 rtl.list:rtl代码文 ...

  2. Makefile脚本启动VCS+Verdi

    文章目录 一.快速入门 二.Makefile的语法 1.语法格式 2.命令执行 3.变量 三.VCS仿真 1.VCS常用命令 2.Makefile实现自动化仿真 四.VCS+Verdi的使用 1.编译 ...

  3. 如何用VCS+Verdi仿真Xilinx IP

    文章目录 如何用VCS+Verdi仿真Xilinx IP 1. VCS以及Vivado的版本问题 2. 使用VCS编译Vivado的IP库 3. 使用Vivado工具调用VCS进行仿真 1.新建带有I ...

  4. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  5. python完全新手教程-Python完全新手教程

    Python完全新手教程 更新时间:2007年02月08日 00:00:00 作者: Python入门教程FROM:http://www.cnblogs.com/taowen/articles/112 ...

  6. hibernate官方新手教程 (转载)

    hibernate官方新手教程第一部分 - 第一个Hibernate程序 首先我们将创建一个简单的控制台(console-based)Hibernate程序.我们使用内置数据库(in-memory d ...

  7. [译][Tkinter 教程02] Message 控件

    已获原作者授权. 原系列地址: Python Tkinter Message 控件 Message 控件用来展示一些文字短消息. Message 和 Label 控件有些类似, 但在展示文字方面比 L ...

  8. MATLAB新手教程

    MATLAB新手教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比 ...

  9. swift 雨燕 新手教程

    Apple Swift编程语言新手教程 chox 2014-06-03 文件夹 简单介绍 入门 简单值 控制流 函数与闭包 对象与类 枚举与结构 1   简单介绍 今天凌晨Apple刚刚公布了Swif ...

  10. mac安装WireShark2.0新手教程

    mac安装WireShark2.0新手教程 在你开始之前 此版本的Wireshark需要macOS 10.12或更高版本.如果您运行的是macOS的早期版本,则可以使用其他打包系统(例如Homebre ...

最新文章

  1. DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2
  2. 原360首席科学家颜水成正式加入依图科技,任首席技术官
  3. 使用lucene进行group操作
  4. python3基本知识_Python3 - 基础知识、基本了解
  5. python编程题-python编程题库
  6. 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)
  7. python学习笔记一 一变量与运算符
  8. mysql的事务语句_MySQL提供的事务控制语句
  9. python视频帧提取并保存_如何用python实现视频关键帧提取并保存为图片?
  10. HBase到MR再到HBase
  11. 符号_液压图形符号识别之流量控制阀符号原理
  12. 计算机无法上网修复工具,lsp怎么修复解决上不了网问题汇总
  13. 解决WPS页码上有小横线问题
  14. 分布式系统可观测性之应用业务指标监控
  15. 如何看出一个程序员的技术能力和水平?
  16. Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
  17. 设置快捷键使页面全屏
  18. 作为一个大学生如何自学计算机编程
  19. 软件开发新技术(工具及相关技术)
  20. 复旦微的FMQL10S400ZYNQ芯片的多核操作

热门文章

  1. 交流成长,敏捷个人总体介绍 PPT
  2. 消息队列之六脉神剑:RabbitMQ、Kafka、ActiveMQ 、Redis、 ZeroMQ、Apache Pulsar对比和如何使用
  3. 沈阳师范大学大一下册C++语言PTA题目集以及答案(函数题篇)
  4. 宽带连接:813错误(813error)解决方案
  5. 【图像处理】【SEED-VPM】5.uImage的烧写 NFS烧写文件系统
  6. YOLOv5 gpu 训练自定义模型 训练
  7. “电竞数据分析APP解决方案:洞察赛场,助力战队升级
  8. android studio课程报告,我的第一次android studio课程体验和收获
  9. 最新验证手机号正则表达式 和车牌校验
  10. 【MATLAB】计算 CRC16 可配置多项式