Skip to content

v3.4.2 — Icarus Verilog 工具链集成 + 内置 VCD 波形查看器

Choose a tag to compare

@JayceVane JayceVane released this 26 Sep 05:05
· 151 commits to master since this release

v3.4.2 — Icarus Verilog 工具链集成 + 内置 VCD 波形查看器

本版将 svtools 从格式化工具升级为 FPGA 仿真调试入口:输入时自动语法检查、一键仿真、双击 .vcd 直接看波形,全部零外部依赖(波形查看器为纯 Canvas 渲染)。

✨ 新增

Icarus Verilog 集成:语法检查与仿真验证

  • 自动 lint:输入(防抖)/ 打开 / 保存 .v / .sv 时自动运行 iverilog -tnull,诊断进入 Problems 面板;未保存的缓冲区内容经临时文件参与检查
  • 跨文件模块解析:工作区目录自动加入 -y/-I,模块名与文件名不一致时按模块索引自动补编译(最多 3 轮迭代)
  • 一键仿真:状态栏 ▶ / 命令面板 "Icarus Verilog: Run Simulation",编译 + vvp 流式输出,支持停止与超时
  • 工具链自愈:自动探测 iverilog(配置 → IVERILOG_HOME → PATH);Cygwin 构建缺 cygwin1.dll 时自动定位同级 Cygwin 注入 PATH

内置 VCD 波形查看器

  • 双击 .vcd 直接以波形面板打开(.vcd 默认编辑器),标签页右上角波形 ↔ 文本一键切换;仿真产出波形后自动打开
  • 信号管理:层级信号树(折叠/展开/双击单独显示模块)、常量开关(默认隐藏、显示沉底)、名称排序/按模块分组
  • 多选与分组:Ctrl+点击单选加/减、Shift+点击范围多选(树与波形行统一);右键分组——组员聚拢到第一个成员位置(其余行相对序不变,Vivado 式),组可命名(建组后原位输入),支持重命名/解除
  • 拖拽调序:按住名称栏上下拖拽调整行顺序(手动排序优先),虚线箭头指示插入位
  • 显示格式:右键二级菜单切换 Hex / Bin / Dec / SDec / Analog 模拟量(阶梯折线自动量程),模拟量行底边可拖拽调高(24~240px)
  • 全名/简称切换:名称栏显示完整层级路径或短名,全名模式自动加宽
  • 边沿导航 + 吸附:点击自动吸附 8px 内最近跳变,◀ 沿 / 沿 ▶ 或 ←/→ 键跳沿并自动居中
  • 滚轮方向区分:上下滚=滚动信号行,左右滚(或 Shift+滚轮)=平移时间轴,Ctrl+滚轮缩放
  • 视口窗口渲染:数十亿 ticks 时间跨度流畅缩放,刻度尺按 $timescale 换算真实物理时间

🐛 修复

  • 总线信号被渲染成实心色块(drawBus 形参错位导致填充色失效)
  • 波形区 Shift 多选与分组此前只能从信号树触发
  • 手动 lint 清除缓存的工具链探测失败状态,环境修复后无需重载窗口
  • 波形面板折叠层级后无法再次展开

安装:附件 svtools-3.4.2.vsix 可直接下载安装;Open VSX / VS Code Marketplace 同步更新。

完整变更: CHANGELOG.md