verilog之环境记录

2023-05-16

操作系统:ubuntu18.04

环境安装

参考

sudo apt install iverilog
sudo apt install gtkwave

which iverilog
which vvp
which gtkwave

iverilog -V  # 查看iverilog版本,确认环境是否正常
gtkwave -V   # 查看gtkwave版本,确认环境是否正常

Icarus Verilog编译器主要包含3个工具:

  • iverilog:用于编译verilog和vhdl文件,进行语法检查,生成可执行文件
  • vvp:根据可执行文件,生成仿真波形文件
  • gtkwave:用于打开仿真波形文件,图形化显示波形

虽然iverilog只能仿真,但是仿真速度很快,对于比较小的模块或者中型项目的验证,完全可以使用iverilog进行前期开发,以提高开发效率。

  • 轻量
  • 免费
  • 环境配置简单
  • 在本模板上易用

编译代码

iverilog -o target_name  source1.v source2.v tb.v
# target_name 是生成目标的文件名称,.v文件是所有必的源代码

仿真:生成波形文件

vvp target_name

看波形

gtkwave target.vcd

vscode环境插件推荐

vscode+iverlog参考
Verilog-HDL/SystemVerilog/Bluespec SystemVerilog
Verilog Snippet

vscode->settings->verilog.linter -> Verilog.Linting.Linter->iverilog

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

verilog之环境记录 的相关文章

  • 何时使用tick(')进行Verilog数组初始化?

    数组初始化可以通过或不通过 int a 8 0 1 2 3 4 5 6 7 Packed int b 8 0 1 2 3 4 5 6 7 Unpacked 有没有correct方式 假设数组使用不可打包的类型 例如int string ET
  • 是否有理由在 VHDL 和 Verilog 中初始化(而不是重置)信号?

    我从未初始化过信号 这样 任何缺少重置或分配的信号都将是未知的或已初始化 在一些参考代码中它们有初始化 这违背了我的愿望 此外 由于初始化不可综合 因此可能会出现模拟 综合不匹配的情况 在这种情况下有什么理由初始化信号吗 编辑 2011 年
  • 在 Verilog 中生成 For 循环中实例化模块

    我正在尝试使用 Verilog 实例化一些模块generate块 因为我将实例化可变数量的它们 genvar i generate for i 1 i lt 10 i i 1 begin status whatever status clk
  • Spartan-3E 上的随机数生成

    我需要在 Spartan 3E FPGA 上为我的遗传算法生成伪随机数 并且我想在 verilog 中实现它 您能给我任何关于此的指示吗 当然 Adam 的随机生成器是不可合成的 您必须显式创建一个LFSR 以下示例可能会有所帮助 它是一个
  • Quartus Prime 中的“多个常量驱动程序”Verilog 错误

    我正在致力于用 Verilog 设计一个有限状态机来表示堆栈 该模块如下 module state machine s Enable Clock Resetn c OF Err UF Err input 2 0 s input Enable
  • 比较数字进行排序然后得到中值

    使用按位或比较运算符对五个整数进行排序可以通过以下方式实现 首先获取最大的数字 然后获取第二大的数字 然后获取第三大的数字 依此类推 这是我获取最高数字的代码 include
  • |变量在verilog中是什么意思?

    我想知道什么assign hd trs detected hd trs match Verilog 中的意思 我最感兴趣的是 hd trs match部分 我知道 表示按位或 但不确定如何解释它之前没有值 它是可理解的 1 还是 0 如果它
  • Verilog 奇怪的仿真结果综合后

    我面临一个奇怪的问题 该代码适用于简单的 ALU 仅将感兴趣的代码粘贴到此处 always posedge clk or posedge rst begin if rst 1 begin mul valid shr 3 b000 end e
  • 如何在 verilog 中不使用 while() 循环(用于综合)?

    我已经养成了开发大量测试平台并使用 for 和 while 循环进行测试的习惯 没关系 问题是我已经将这种习惯用于对应该可综合的电路进行编码 XST等拒绝合成代码 无需对合成参数进行额外修改 例如 while num lt test num
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • x 和 z 值在 Verilog 中到底代表什么?

    Verilog 标准定义了四种类型的位值 0 1 x 和 z 其中 0 表示低 1 表示高 x 表示未知 z 表示未驱动网络 有几个问题 x 是否意味着我们不知道该值是 0 还是 1 0 或 1 或 z 或者该值是未知的并且可以是 0 1
  • 在逻辑中使用单端端口期待差异对?

    我使用的逻辑被设置为需要一个差分对时钟端口 然而 对于一个特定的应用程序 我只能输入一个单端时钟 由于硬件限制 修改逻辑以接受单端时钟不是一种选择 因为涉及许多文件和代码行 有没有办法可以输入单端端口并以某种方式将其馈送到模块的差异对端口
  • 在verilog中将wire值转换为整数

    我想将电线中的数据转换为整数 例如 wire 2 0 w 3 b101 我想要一个将其转换为 5 并将其存储在整数中的方法 我怎样才能以比这更好的方式做到这一点 j 1 for i 0 i lt 2 i i 1 begin a a w i
  • 对象 <名称> 未声明

    这是我的代码 据我所知 LEDs被定义为 module sevenseg LEDs in output reg 6 0 LEDs input 3 0 in always in begin case in 0 LEDs 7 b1000000
  • 标识符必须用端口模式声明:busy。 (Verilog)

    我有如下所示的 Verilog 代码 当我编译它时 我收到以下错误消息 并且代码的第一行突出显示 Error 标识符必须用端口模式声明 busy Code module main clk rst start busy ready cnt s
  • 具有 +1 逻辑的 4 位计数器 D 触发器

    我正在尝试通过 Verilog 实现带有 1 逻辑的 D 触发器计数器 但是我收到了很多有关网络多个常量驱动程序的错误代码 有人可以帮我吗 这是到目前为止的代码 module LAB clk clear Enable Q input clk
  • 如何修复实例上的错误:未定义的变量 B?

    我想编译此 Verilog 代码 但在实例中出现错误B模块中的MultiP module error 1 Undefined variable B error 2 near Adder1 syntax error unexpected ID
  • Verilog 双向握手示例

    我正在完成一个项目 要求是处理器内部功能单元之间的双向握手 我知道它是什么 但是有没有任何 标准 或一个简单的例子 我唯一能想到的就是两个单元之间 当它们之间有一条数据线并且当 X 发送到 Y 时 会给出一个单独的 发送 信号 当 Y 接收
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更
  • 为什么我们在FGPA / VHDL / VIVADO中使用REG?

    我正在使用 Xilinx 的 vivado 在 verilog 中进行编程 我想知道为什么我们使用某些输出reg 例如reg 3 0 encoder output我们使用它是因为我们的 16 到 4 编码器有 4 个输出 对吧 我假设我们使

随机推荐

  • 使用Python实现Hadoop MapReduce程序

    转自 xff1a 使用Python实现Hadoop MapReduce程序 英文原文 xff1a Writing an Hadoop MapReduce Program in Python 根据上面两篇文章 xff0c 下面是我在自己的ub
  • nginx1.15与tomcat8.5整合,多https域名指向同一tomcat服务

    一 安装nginx 1 安装依赖包 安装依赖之前检查是否已经安装这些依赖包 1 rpm包安装的 xff0c 可以用 rpm qa 看到 xff0c 如果要查找某软件包是否安装 xff0c 用 rpm qa grep 34 软件或者包的名字
  • 平衡车之角度环分析及调试

    1 直立环pd xff1a d参数的引入是为了抑制震荡 p xff0c 比例参数 xff0c 它的作用是反应了控制的响应速度 xff0c 过小的话平衡车表现是pwm明显不够直立不起来 xff0c 过大的话小车过于震荡 xff0c 震荡的时候
  • 平衡车之速度环分析及调试

    平衡车为什么只有角度环不够 xff0c 还需要速度环 xff1a 因为当角度环有偏差的时候 xff0c 根据角度环的pid是可以给小车输出pwm波维持小车平衡的 xff0c 但是小车要以什么样的速度维持平衡角度环是做不到的 xff0c 加上
  • 平衡车之转向环分析及调试

    转向环 xff1a 一般的控制系统单纯的 P 控制或者 PI 控制就可以了 xff0c 转向环就是这种 一般的控制系统 xff0c 对响应要求不高 xff0c 所以我们只使用 P 控制即可 int turn int encoder left
  • 倒立摆 角度环和位置环 分析以及参数整定

    倒立摆为什么有了角度环还必须有位置环呢 xff1f 答案是 xff1a 和平衡小车类比可得 xff0c 当只有角度环的时候 xff0c 倒立摆是可以对摆锤偏向做出pwm的反应的 xff0c 但是具体要反应合适程度到哪里 xff0c 还是应该
  • 关于新版XP光盘不能自动播放

    光驱自动运行 xff0c 首先要求在光盘中必须有一个autorun inf文件 xff0c 系统检测到这个文件后 xff0c 将调用AutoPlay来运行该文件 在autorun inf中写入了需要运行的光盘应用程序的路径 其次在注册表子键
  • 一、进程的概念、组成和特征

    一 进程与程序的区别 程序 xff1a 程序是静态的 xff0c 就是个存放在磁盘里的可执行文件 xff0c 就是一系列的指令集合 进程 xff1a 进程是动态的 xff0c 是程序的一次执行过程 xff0c 同一个程序多次执行会对应多个进
  • Ubuntu保存终端内容到日志

    Ubuntu保存终端内容到日志 1 在终端中执行 sudo script screen span class token punctuation span log 内容将保存到当前目录的screen log文件中 2 执行以下命令停止保存
  • 平衡小车从原理到实践

    平衡小车从原理到实践 作者 xff1a 公众号 xff1a 小白学移动机器人 关于内容 xff1a 参考很多网上大佬的博客加上自己的理解而成 xff0c 适合平衡车初学者和想要了解原理的小伙伴 1 平衡小车控制原理 先记住一句话 xff0c
  • 我手写了个SLAM算法!

    1 前言 前一段时间看过我文章的都知道 xff0c 我打算写一个SLAM源码阅读的文章 xff0c 然后 xff0c 我就去读了Gmapping的源码 xff0c 感受良多 xff0c 不足的地方是源码太乱了 xff0c 阅读起来真的不香
  • 我手写了个SLAM算法(二)!

    1 前言 看过之前两篇文章的大朋友们应该都知道 xff0c 我们在这里分享了SLAM算法gmapping的大刀阔斧删减版的源码和2D激光雷达运动畸变去除的源码 没看过的朋友可以点击下方文章查看 我手写了个SLAM算法 xff01 详解2D激
  • linux logrotate 配置及测试

    一 logrotate 配置 logrotate 程序是一个日志文件管理工具 用来把旧的日志文件删除 xff0c 并创建新的日志文件 xff0c 我们把它叫做 转储 我们可以根据日志文件的大小 xff0c 也可以根据其天数来转储 xff0c
  • Ubuntu Gnome屏幕旋转设置

    开始安装或启用新账户时 xff0c 屏幕自动旋转 xff0c 笔记本上很不方便 可通过如下命令设置成正常状态 xrandr o normal 通过命令完全关闭旋转功能 gsettings set org gnome settings dae
  • ubuntu之tools

    文章目录 系统图形界面优化 xff1a tweakgenome TODOFrameshot截图软件Nomacs看图软件计算器比较工具 xff1a Meld比较工具 xff1a Diffuse3 2 gif录制工具peek 编辑器 xff1a
  • python之lmdb

    文章目录 lmdb介绍安装lmdb使用 lmdb介绍 参考 LMDB的全称是Lightning Memory Mapped Database 快如闪电的内存映射数据库 它的文件结构简单 xff0c 包含一个数据文件和一个锁文件LMDB文件可
  • ubutnu系统维护

    文章目录 1 参考知识点 2 分区3 内核系统版本号查看是uefi还是leagcy启动升级设置时区自动清理手动清理 xff08 推荐 xff09 4 软件修改主机名修改用户名修改用户秘密root密码添加新用户用户组 生成随机密码管理命令温控
  • python之pcl

    pcl是点云可视化软件 xff0c 安装 conda create n py36 python 61 3 6 conda activate py36 方法1 xff0c 推荐 conda install c sirokujira pytho
  • 从零开始学习verilog:1

    在线资料 Verilog 教程 verilog tutorial 推荐书籍 verilog数字系统技术和实例分析 环境搭建 vscode verilog HDL SystemVerilog verilog语言高亮 Verilog Testb
  • verilog之环境记录

    操作系统 xff1a ubuntu18 04 环境安装 参考 span class token function sudo span span class token function apt span span class token f