Verilog 轻量化开发环境
背景
笔者常用的开发环境
- VIAVDO, 体积巨大,自带编辑器除了linting 能用,编辑器几乎不能用,仿真界面很友好,但是速度比较慢。
- Sublime Text, 非常好用的编辑器,各种插件使用verilog 非常方便,可以自动补全、生成调用、linting等;
- VSCODE,Sublime Text 有的插件,VSCODE也都有,虽然不一定有sublime text好用,但是VSCODE有AI插件的加持,显得更有吸引力,更能提高工作效率。而且完全免费,VSCODE 注定一统江湖。
因此这里主要说明如何搭建VSCODE轻量化环境。
环境搭建
首先你得有VSCODE,安装包bing.com 搜索一下(不要问为什么不用百度) 自行安装即可。
安装插件
![手机的屏幕截图
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606715-2080504367.png)
图 2‑1 VSCODE Verilog 插件
安装Iverilog
Icarus Verilog for Windows (bleyer.org) 下载安装轻量级开发、编译工具Iverilog,这样就可以完全不用VIVADO就完成模块级的代码开发。
安装完成之后设置环境变量:
![图形用户界面, 文本, 应用程序
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606694-1891502249.png)
图 2‑2 设置iverilog 和 gtkwave 环境变量
设置完成重启 电脑, WIN11似乎不用重启 立即生效,只需要重启VSCODE
设置插件
![文本
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606809-458232653.png)
图 2‑3 设置linter 为iverilog 运行在文件所在目录
编译 查看波形
Iverilog 对.sv文件支持不好,需要编译的顶层文件最好是.v 后缀。涉及到模块调用,最好在代码中用`include 声明一下。
![文本
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606702-1543964103.png)
图 2‑4 仿真顶层
![文本
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606700-1018703271.png)
图 2‑5 运行编译 仿真
注意代码中必须包含自动$finish; 还要dump波形文件。
initial begin
$display("start a clock pulse"); // 打印开始标记
$dumpfile("wave.vcd"); // 指定记录模拟波形的文件
$dumpvars(0, pulse_gen_test); // 指定记录的模块层级
end
也可以用命令行运行编译和仿真,基本命令如下:
@echo off
iverilog.exe -o target.vvp pulse_gen_test.sv
vvp.exe target.vvp
其中-o是目标文件,pulse_gen_test.sv是待编译的仿真文件,vvp.exe执行对应的仿真。
然后生成目标wave.vcd文件,通过gtkwave 可以查看(在终端中执行gtkwave .\wave.vcd)。
![图形用户界面
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223606765-459293472.png)
图 2‑6 gtkwave 查看波形
需要说明,VSCODE中的自动实例化模块有点问题,希望后面插件可以解决。
AI 插件
VSCODE最强的是他的AI插件,这个是sublime text 没有的。
![文本
描述已自动生成](https://img2024.cnblogs.com/blog/2747207/202409/2747207-20240911223607160-1670216222.png)
图 3‑1 阿里TONGYI Lingma 插件
应用市场搜索安装即可,国内大模型和插件,阿里的最靠谱,实际使用体验不错,详细很快能够追上国外。