Verilog高效开发插件-Digital IDE(VS Code插件)

介绍

Digital IDE (简称为 DIDE) 是一个给数字开发工作者提供的友好便捷的自研开发工具。DIDE 可以运行在常规的所有平台上(Windows,Linux,MacOS)上。对于常年使用 ssh 连接内网服务器工作的工程师, DIDE 也能支持远程开发状态下的各项功能支持。

官网:Digital-IDE

安装

  • 下载安装iverilog(建议版本v11,无脑下一步),下载地址:bleyer.org/icarus/ 检测软件有无安装好,可以在命令行中分别输入下述代码:

    bash 复制代码
    where iverilog
    bash 复制代码
    where vvp
    bash 复制代码
    where gtkwave

    运行成功后,命令行会分别显示三个工具的路径。

  • 在 Vscode 插件商店中搜索 "Digital IDE" ,点击下载即可。

  • 在线安装 lsp(自动)

    下载完成后,如果你当前目录中存在任何 HDL 文件(.v, .sv 或者 .vhd 结尾的文件),DIDE 就会自动启动。如果当前版本的 DIDE 在目标计算机上第一次启动,则会在启动时自动下载 digital-lsp ,如下图所示:

    这是 DIDE 用于解析 HDL 文件并提供语言服务的核心负载。没有它,DIDE 绝大部分的功能将会下线。我们提供了国内国外两个下载源,理论上,大部分地区都可以稳定且愉快地下载 digital lsp

  • 在线安装 lsp(手动)

    digital lsp 的主版本不一定和 DIDE 是同步的,如果对于同一个版本(比如 0.4.0),您想要体验最新的 digital lsp,那么可以手动下载。打开 vscode,按下 F1,输入 download 后,找到下图这个指令:

    这将会下载最新的 digital lsp 并部署到 DIDE 中。

  • 离线安装 lsp(手动)

    如果你的执行环境为公司内网或者其他无法访问到,就要离线下载 lsp。先从我们提供的仓库中根据你目标计算机的操作系统+芯片架构,下载对应版本的 lsp. 我们提供了两个仓库源,我们保证这两个仓库的版本同步:

    比如你的目标计算机是 x86 的 Windows(绝大部分的国内工作机),那么就选择带有 windowsamd64 的压缩包下载:

    拷贝到目标计算机上后,按下 F1,输入 install 后,找到下图这个指令:

    在打开的文件浏览器中,找到之前下载拷贝过来的 压缩包 安装即可。安装后重启 vscode 即可完成。

插件启动

插件启动分为两种模式:

  1. 单文件启动,也即vscode只打开一个文件的情况
  2. 文件夹启动,也即vscode打开一个工程文件夹(建议采样该方式,可体验完整功能)

快速仿真

快速仿真的触发方式有两种。一种通过 codelens 的行间字符,一种通过模块树的按钮。

SF.1 通过 codelens 进行快速仿真

如下图所示的,悬浮在模块命名上的Simulate按键功能入口

SF.2 通过 模块树 进行快速仿真

如下图所示的依赖结构中的功能入口

点击快速仿真之后,如果生成了 vcd 文件, DIDE 会自动打开对应的波形渲染器:

常见问题

没有生成 vcd 文件

如果运行的过程中没有报错,那可能是tb文件中缺少生成vcd波形文件的语句:

ruby 复制代码
initial begin
    $dumpfile("prj/icarus/FFT_IFFT.vcd");        
    $dumpvars(0, FFT_IFFT_tb);
    #2000 $finish();
end

直接卡死,毫无输出

如果运行的过程中没有报错,那可能是tb文件中缺少$finish();,强烈不建议这么做,这样做vcd会不断变大,后端iverilog也会卡住进程。需要在设计中加入一个$finish();来完善整个验证设计。
无法 simulate 且没有报错内容

快速仿真功能报错时:

  1. 去掉代码中的include部分
  2. 下调iverilog的版本为11,或者如图直接群文件下载win版 后续会修复此问题,上面是过渡方案
  3. 如下图所示,在DIDE设置中不要选择 run in terminal
  4. iverilog路径未设置

代码文档化

DIDE 对于项目中的 vlog 和 vhdl 等文件,支持直接查看它们的文档,点击右上角的按钮即可查看。通过文档化,你可以快速了解当前 verilog 或者 vhdl 文件中 module 的基本信息和依赖信息。依赖信息也支持跳转。

Wavedrom

Wavedrom 是一种用于绘制数字时序图的工具,特别适合硬件设计和数字电路仿真。它使用简单的 JSON 格式来描述波形,并能在浏览器中实时渲染。Wavedrom 支持多种波形元素,如时钟、信号、总线等,广泛应用于文档编写和教学演示。

DIDE 也支持了在注释中编写 Wavedrom 风格的注释,并在文档化中渲染它们。Wavedrom 注释必须写成块状注释,并且必须在块状注释的第一行写上 @wavedrom,DIDE 会给与 Wavedrom 注释代码高亮方便用户编写需要演示的信号。一个例子如下:

perl 复制代码
/* @wavedrom this is wavedrom demo1
{
    signal : [
        { name: "clk",  wave: "p......" },
        { name: "bus",  wave: "x.34.5x", data: "head body tail" },
        { name: "wire", wave: "0.1..0." }
    ]
}
*/

渲染效果:

导出文档

DIDE 的文档化支持如下三种导出格式:

  • markdown
  • html
  • pdf

导出的文档默认都在项目的 ./doc 下。

如果需要导出pdf,请将你本机的Google Chrome或者Edge浏览器的启动路径填入参数markdown-pdf executable path中。由于大部分pdf阅读器都不支持变色背景,请在浅色主题下导出你的pdf.

如果是 Windows 11 用户,默认不需要设置浏览器路径。因为 win11 自带的 edge 路径 C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe 是固定的。

Netlist 网表查看器

插件后端集成了yosys可执行文件(直接编译后的),这使得可以在不安装以及配置任何软件之下完成工程代码(仅限verilog和部分sv,具体支持见yosys官网)的综合,并能够展示出综合之后的网表图。使用方式非常简单,只需要在功能入口处点击,就能渲染出以当前模块为顶层的网表图,能帮助用户快速审查自己的代码设计。

NF.1 启动方法一:Codelens

通过 module 上方的 codelens 的 Netlist,可以渲染当前 module 的 netlist。

如下图所示的,悬浮在模块命名上的Netlist按键功能入口

NF.2 启动方法二:模块树

在模块树中,你也可以查看某一个 module 的 netlist。

相关推荐
Zayn5 天前
前端路径别名跳转和提示失效?一文搞懂解决方案
前端·javascript·visual studio code
花载酒6 天前
10个我离不开的 VSCode 插件
前端·visual studio code
scilwb6 天前
NVIDIA Omniverse和Isaac Sim:Isaac Sim的ROS接口与相机影像、位姿真值发布/保存
linux·visual studio code
LilyCoder7 天前
HTML5七夕节网站源码
前端·javascript·html·html5·visual studio code
gauch10 天前
vscode 调试 Go 的配置解释(photoprism / Docker / 远程调试 / Delve)
后端·ai编程·visual studio code
xw512 天前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·visual studio code·trae
用户479492835691513 天前
平时都在用,但是你不知道的VS Code黑科技:智能双击选择背后的原理
程序员·visual studio code
禁止摆烂_才浅18 天前
VsCode 概览尺、装订线、代码块高亮设置
前端·visual studio code
神弥悠18 天前
VS Code 侧边栏布局踩坑修复教程
visual studio code
神弥悠20 天前
记一次VSCode远程连接失败的解决过程:从报错到搞定的全过程
visual studio code