• iverilog入门教程


    安装

    windows

    可以在这里http://bleyer.org/icarus/下载后安装,并添加iverilog/bin和gtkwave/bin到环境变量中。使用时进cmd或者powershell,或者安装一个git,git自带了一个bash控制台。git bash最好用。

    linux

    这里以Ubuntu系统为例进行说明。(https://gitee.com/liangkangnan/tinyriscv)

    1. 下载iverilog源码

    git clone https://github.com/steveicarus/iverilog.git

    1. 切换到v11分支(必须用V11或以上的版本)

    git checkout v11-branch

    1. 安装依赖

    sudo apt-get install autoconf gperf flex bison build-essential

    1. 编译、安装iverilog和vvp

    sh autoconf.sh
    ./configure
    make
    make install

    使用

    方式一

    本教程和其他教程略微不同,通常情况其他教程使用如下方式:

    iverilog -y D:/test/demo led_demo_tb.v -o test
    -y:表示去跟着的目录中找源文件
    -o:表示生成test的文件

    在tb文件中用以下命令指示需要保存波形。

    initial begin
    $dumpfile(“wave.vcd”); //生成的vcd文件名称
    $dumpvars(0, led_demo_tb); //tb模块名称
    end

    然后用vvp把波形dump出来。vvp也是exe,在iverilog.exe的同级目录下。加入了环境变量后,直接就可以找到这个可执行文件。

    vvp -n wave -lxt2
    -n: Non-interactive ($stop = $finish) 表示遇到stop就当成finish,结束dump波形。

    随后使用gtkwave就可以查看波形了。用vvp保存波形的名称是在tb中指定的。

    gtkwave wave.vcd
    在这里插入图片描述

    方式二

    以下方式更接近vcs的用法。

    iverilog iverilog -g2005-sv -o test -f filelist.f -s tb_add
    -g2005-sv:表示支持sv语法
    -f:表示后面跟着的是源文件列表
    -s:指定顶层模块

    filelist.f中用相对路径或绝对路径,当然推荐使用相对路径,指定源文件即可。例如:

    add.sv
    tb_add.sv

    并且filelist支持嵌套,很坑的一点是,嵌套的filelist中的文件引用也必须相对于启动iverilog的路径去编写。vcs可以使用-F filelist.f 来引用写成相对路径内容的filelist。一定要注意,filelist最后要留一行空白行,防止出现文件名未终止的错误。在git bash中可以用find命令来快速生成filelist文件。

    find ./ -name “.v" -or -name ".sv” >> filelist.f

    当然,filelist中也支持添加宏定义和头文件搜索路径。

    +incdir+路径
    +define+name=value

    vvp的使用和方式一就差不多了。

    vvp -n test -l err.log >> run.log
    -l 表示有错误时,打印到里面。
    >> 把所有打印都重定向到run.log中。

    这些都是linux的常用用法,就不过多叙述。
    更多信息参考https://iverilog.fandom.com/wiki/Main_Page

  • 相关阅读:
    P18 class 类 P19 类 init 功能 P20 input 输入
    基于JSP+Servlet的医疗设备管理系统
    深度学习——day23 class1-week2:二分分类与逻辑回归
    [网站部署03]宝塔+worldPress部署Ripro主题网站
    协程 + epoll 的两个小例子
    【OCR】基于Encoder-Decoder的文本识别
    如何在 Spring Boot中更改默认端口
    Elastic:推出 7.16.2 和 6.8.22 版本的 Elasticsearch 和 Logstash 以升级 Apache Log4j2
    遍历set、tuple、list哪个速度最快呢?
    MybatisPlus——全网配置最全的代码生成器
  • 原文地址:https://blog.csdn.net/q774318039a/article/details/126021890