轻量化Verilog开发环境搭建

这篇具有很好参考价值的文章主要介绍了轻量化Verilog开发环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

轻量化Verilog学习环境搭建

本文记录基于vscode、iverilog搭建轻量化Verilog学习环境的方法。
ref: VSCode Verilog工具链、linux下搭建轻量易用的verilog仿真环境

环境搭建

(1)安装iverilog,这是一个轻量化的开源verilog编译器,配合gtkwave可进行波形仿真。

sudo apt-get install iverilog
sudo apt-get install gtkwave

(2)安装vscode插件Verilog-HDL为verilog提供语法高亮和静态检查等基本支持。打开扩展设置,设置Verilog格式化插件和Lint插件。其中Lint插件可选iVerilog。Format插件可选Verible( 下载地址)。将Verible二进制文件解压到/usr/local/bin,并在插件设置中填好二进制文件的路径。

(3)添加一个简单的自动化脚本来自动调用iverilog,提高效率。

工程结构(下载):

verilog_learn/
├── build
│   ├── a.out
│   ├── wave.vcd
├── gtkwave.tcl
├── led_demo_tb.v
├── led_demo.v
├── run.sh
└── .vscode
    └── tasks.json

run.sh:

echo "Handling: $1..." # the verilog file
source="../$1.v"
testbanch="../$1_tb.v"

# 生成波形文件
iverilog -o ./a.out $source $testbanch
vvp -n ./a.out -lxt2

# 使用gtkwave查看仿真波形
# https://blog.csdn.net/yelllowcong/article/details/78424329
isGtkWaveRunning=$(ps -ef |grep gtkwave |grep -v "grep" |wc -l)
if [ $isGtkWaveRunning -eq 0 ]; then
        # echo NOT RUN
        gtkwave wave.vcd --script=../gtkwave.tcl
else
        # echo is RUN
        echo "gtkwave is running"
        # gtkwave wave.vcd
fi
# 综合并可视化网表
# yosys -p 'prep ; show -format pdf -prefix yosys' $source
# code ./yosys.pdf

其中gtkwave.tcl文件是对gtkwave进行自动化配置的脚本,内容如下:

# ref: https://gist.github.com/davidzwa/ef1eafc6cd23e613af612e27eddb054b
# ref: https://ughe.github.io/2018/11/13/gtkwave-automation
# Add all signals
set nfacs [ gtkwave::getNumFacs ]
set all_facs [list]
for {set i 0} {$i < $nfacs } {incr i} {
    set facname [ gtkwave::getFacName $i ]
    lappend all_facs "$facname"
}
set num_added [ gtkwave::addSignalsFromList $all_facs ]
puts "num signals added: $num_added"

# zoom full
gtkwave::/Time/Zoom/Zoom_Full

随后在vscode中新建一个task(存于.vscode/task.json路径)来自动运行run.sh,这样在xxx.v文件下按快捷键ctrl+shift+B即可执行run.sh。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "options": {
        // 这里指定tasks 的运行目录,默认是${workspaceRoot},也就是.vscode/..
        "cwd": "${workspaceRoot}/build"
    },
    "tasks": [
        {
            // 这个task完成编译
            "label": "build",
            "type": "shell",
            "command": "../run.sh",
            "args": [
                "${fileBasenameNoExtension}"
            ]
        },
    ]
}

验证

添加led_demo.v及其测试脚本led_demo_tb.v
led_demo.v:

module led_demo(
        input clk,
        input rst_n,

        output reg led
);

reg [7:0] cnt;

always @ (posedge clk)
begin
        if(!rst_n)
                cnt <= 0;
        else if(cnt >= 10)
                cnt <= 0;
        else
                cnt <= cnt + 1;
end

always @ (posedge clk)
begin
        if(!rst_n)
                led <= 0;
        else if(cnt == 10)
                led <= !led;
end

endmodule

led_demo_tb.v

`timescale 1ns/100ps

module led_demo_tb;

parameter SYSCLK_PERIOD = 10;

reg SYSCLK;
reg NSYSRESET;

initial
begin
    SYSCLK = 1'b0;
    NSYSRESET = 1'b0;
end

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

initial
begin
    #(SYSCLK_PERIOD * 10 )
        NSYSRESET = 1'b1;
        #1000
                $stop;
end

always @(SYSCLK)
    #(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;

led_demo led_demo_ut0 (
    // Inputs
    .rst_n(NSYSRESET),
    .clk(SYSCLK),

    // Outputs
    .led( led)
);

endmodule

打开led_demo.v,按快捷键ctrl+shift+B,即可自动执行编译,并开启gtkwave显示仿真波形:
轻量化Verilog开发环境搭建文章来源地址https://www.toymoban.com/news/detail-469744.html

到了这里,关于轻量化Verilog开发环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32开发环境搭建&工程创建(嵌入式学习)

    简介 STM32CubeMX是STMicroelectronics公司提供的一款集成开发环境(IDE)工具,用于快速配置和初始化STM32微控制器系列的软件工程。它提供了图形化界面和交互式工具,使开发者能够轻松地生成STM32微控制器的初始化代码和配置文件。 STM32CubeMX具有以下主要功能和特点: 微控制器

    2024年02月11日
    浏览(74)
  • 基于WSL2+Docker+VScode搭建机器学习(深度学习)开发环境

    内容概述 :由于最近配发了新的工作电脑但不想装双系统,因此通过本博文来记录基于Windows子系统WSL+Docker搭建机器学习与深度学习开发环境的流程步骤,同时记录该过程中所遇到的相关问题及解决方案。期待为同行学习者提供参考; 最终效果 :在Windows电脑上,无需安装

    2024年02月04日
    浏览(44)
  • Flutter Windows开发环境搭建教程与学习资料推荐

      Windows应用软件开发有很多框架可以选择,例如比较流行的Electron、Qt、CEF、WPF、WinForm、MFC、DuiLib、SOUI等等。Flutter是近几年流行的全平台应用开发框架,可以进行Android、IOS、Web、MacOS、Windows、Linux等平台的应用软件开发。   Flutter是谷歌推出的一种移动应用开发框架,使

    2024年02月05日
    浏览(72)
  • 【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程

    博客主页:Duck Bro 博客主页 系列专栏:Qt 专栏 关注博主,后期持续更新系列文章 如果有错误感谢请大家批评指出,及时修改 感谢大家点赞👍收藏⭐评论✍ 文章编号:Qt 学习笔记 / 02 1. 安装包下载(网盘链接) 链接:https://pan.baidu.com/s/1t3jbYcFYFuJIfe0hPmeDmQ?pwd=duck 提取码:du

    2024年04月26日
    浏览(99)
  • Python学习笔记(1)--环境搭建,开发工具PyCharm 安装及初步使用

    传送门==B站黑马python入门教程 1.Python环境安装搭建 安装python基础包 首先,打开python 官网 https://www.python.org/ 下载windows版 下载后进行安装 默认下一步 可自定义安装位置,install安装即可 验证安装文件 win+R 输入cmd ,打开命令框,输入python,若看到安装版本,即安装成功 2.hello world 命令

    2024年02月11日
    浏览(63)
  • “从零开始学习Spring Boot:快速搭建Java后端开发环境“

    标题:从零开始学习Spring Boot:快速搭建Java后端开发环境 摘要:本文将介绍如何从零开始学习Spring Boot,并详细讲解如何快速搭建Java后端开发环境。通过本文的指导,您将能够快速搭建一个基于Spring Boot的Java后端开发环境并开始编写代码。 正文: 一、准备工作 在开始之前,

    2024年02月15日
    浏览(58)
  • C语言学习1--------Visual Studio集成开发环境的搭建

    建议初学者适用最新的——Visual Studio 2019为集成开发环境。 部分学校可能正在适用——VC++6.0,全称是Visual C++6.0。在当今的角度来看,VC++6.0已经比较古老,几乎没有公司会以VC++6.0作为开发环境进行开发了。 可能有些人认为Visual Studio太过庞大,并且项目组织较为复杂,不太适

    2024年02月08日
    浏览(57)
  • Windows环境下搭建chatGLM2-6B-int4量化版模型(图文详解-成果案例)

    目录 一、ChatGLM2-6介绍 二、环境准备 1. 硬件环境 2. TDM-GCC安装 3.git安装 4.Anaconda安装 三、模型安装 1.下载ChatGLM2-6b和环境准备 方式一:git命令 方式二:手动下载  2.下载预训练模型 在Hugging Face HUb下载(挂VPN访问) (1)git命令行下载: (2)手动下载(建议) 3.模型使用(

    2024年03月13日
    浏览(50)
  • itheima苍穹外卖项目学习笔记--Day1:项目介绍与开发环境搭建

    (1). 前端环境搭建 前端工程基于 nginx 运行 启动nginx:双击 nginx.exe 即可启动 nginx 服务,访问端口号为 80 (2). 后端环境搭建 后端工程基于 maven 进行项目构建,并且进行分模块开发 (3). 前后端联调 修改数据库中明文密码,改为MD5加密后的密文 修改Java代码,前端提交的密码进行

    2024年02月15日
    浏览(38)
  • 基于轻量化深度学习网络的工业环境小目标缺陷检测

    源自:控制与决策 作者:叶卓勋   刘妹琴  张森林 工业环境下表面缺陷检测是质量管理的重要一环, 具有重要的研究价值.通用检测网络(如YOLOv4)已被证实在多种数据集检测方面是有效的, 但是在工业环境的缺陷检测仍需要解决两个问题: 一是缺陷实例在表面占比过小, 属于

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包