Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Verilog Simulation FlowNew to Visual Studio Code? Get it now.
Verilog Simulation Flow

Verilog Simulation Flow

Vikai

|
11 installs
| (0) | Free
Lightweight Verilog simulation manager for VS Code — analyze, compile, simulate, view waveforms, and generate testbenches
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

VeriFlow — VS Code Extension

在编辑器中一键完成 Verilog 仿真全流程:分析 → 编译 → 仿真 → 查看波形,以及 Testbench 生成

VS Code License TypeScript


简介

VeriFlow 是一个为 Verilog/SystemVerilog 开发者打造的 VS Code 扩展。它将模块扫描、依赖分析、编译仿真、波形查看、Testbench 生成集成在编辑器侧边栏中,无需离开 VS Code 即可完成整个仿真流程。

完全零依赖 — 核心引擎全部用 TypeScript 原生实现,不需要安装任何外部依赖。

功能演示

功能演示

快速开始

前提条件

  • VS Code 1.80+
  • 一款 Verilog 仿真器(至少安装一款):
    • Icarus Verilog — 开源,推荐
    • Synopsys VCS — 商业
    • Xilinx XSim — 商业
    • 或自行配置自定义仿真器
  • 波形查看器(可选):
    • Surfer — 开源,推荐
    • GTKWave — 开源
    • 或自行配置自定义波形查看器

安装

扩展商店搜索 VeriFlow 安装,或手动安装 .vsix 文件。

使用流程

  1. 在 VS Code 中打开包含 .v / .sv 文件的文件夹
  2. 点击活动栏的 VeriFlow 图标(芯片形状),打开侧边栏
  3. 扩展自动扫描所有模块,按目录分组展示
  4. 点击 Select Top Module 在列表中选择顶层模块
  5. 点击 Analyze Dependencies 解析依赖关系
  6. 点击 Compile & Simulate 运行仿真
  7. 点击 Open Waveform 查看波形

Testbench 生成器

侧边栏下方新增 Testbench Generator 面板,支持一键生成 Verilog Testbench:

配置项

配置项 说明 默认值
Name Testbench 模块名 tb_top
Unit / Prec timescale 时间单位 / 精度 1ns / 1ps
Clocks 时钟频率(MHz),支持最多 6 个时钟 100
Reset 复位极性(高/低有效)和持续时间 Active Low / 100
DUT Modules 选择模块实例化到 Testbench 中,支持同一模块多次例化 —
Ports 自动提取模块端口,可自定义信号连接名 —
Parameters 自动提取模块参数,可修改参数值 —
Waveform 波形文件名 {name}.vcd
Timeout 仿真超时时间(ns) 1000000

使用步骤

  1. 在 DUT Modules 区域点击 + 选择要例化的模块
  2. 点击模块列表中的模块,在右侧编辑端口连接和参数值
  3. 配置时钟、复位等属性
  4. 点击 Generate Testbench 生成文件并自动打开

扩展设置

配置项 类型 默认值 说明
veriflow.libDirs string[] [] 库目录路径列表
veriflow.simulator enum iverilog 仿真器:iverilog / vcs / xsim / custom
veriflow.waveViewer enum surfer 波形查看器:surfer / gtkwave / custom
veriflow.simulatorCompileCmd string "" 自定义编译命令模板。支持 {files} {output} {top_module} 占位符
veriflow.simulatorRunCmd string "" 自定义运行命令模板。支持 {output} 占位符
veriflow.waveViewerCmd string "" 自定义波形查看器命令。支持 {wave_file} 占位符
veriflow.waveFileTemplate string {top_module}.vcd 波形文件路径模板。支持 {top_module} 占位符

侧边栏说明

侧边栏分为两个主要视图:

1. VeriFlow(上方)

操作按钮(标题栏)

从左到右依次为:

  • Select Top Module — 从已扫描模块中选择顶层
  • Analyze Dependencies — BFS 依赖解析,生成编译顺序
  • Compile & Simulate — 编译并执行仿真
  • Open Waveform — 启动波形查看器
  • Scan Modules — 重新扫描工作区

Top Module

显示当前选中的顶层模块名称,点击可重新选择。

Dependency Tree

依赖分析后展示模块层级关系,缩进表示依赖深度。点击模块名可在编辑器中打开对应文件。

All Modules

按目录分组的全部模块清单。标记 [dep] 的模块是依赖树中的一部分。

2. Testbench Generator(下方)

生成 Verilog Testbench 的交互式面板,包含:

  • Properties — Testbench 名称和 timescale 配置
  • Clocks — 多时钟频率配置
  • Reset — 复位极性和持续时间
  • DUT Modules — 模块选择、端口编辑、参数编辑
  • Waveform / Timeout — 波形文件和仿真超时

输出面板

仿真过程中的所有输出实时显示在 Output 面板中(选择 VeriFlow 通道),按日志级别区分:

  • [INFO] — 普通信息
  • [OK] — 成功信息
  • [WARN] — 警告
  • [ERROR] — 错误信息(含文件引用和行号)

支持的仿真器预置命令

仿真器 编译命令模板 运行命令模板
iverilog iverilog -o "{output}" {files} vvp "{output}"
vcs vcs -full64 -o "{output}" {files} ./"{output}"
xsim xvlog {files} && xelab {top_module} -snapshot "{output}" xsim "{output}" --runall
custom (自行定义) (自行定义)

自定义仿真器配置示例

{
  "veriflow.simulator": "custom",
  "veriflow.simulatorCompileCmd": "verilator --cc --exe --build -j -o {output} {files}",
  "veriflow.simulatorRunCmd": "{output}",
  "veriflow.waveViewer": "custom",
  "veriflow.waveViewerCmd": "gtkwave {wave_file} &",
  "veriflow.libDirs": [
    "/path/to/shared/libs",
    "/path/to/vip"
  ]
}

架构

vscode-extension/src/
├── core/                       # 核心引擎(TypeScript 原生)
│   ├── types.ts                # 类型定义
│   ├── verilogUtils.ts         # Verilog 语法工具
│   ├── fileService.ts          # 文件系统服务
│   ├── dependencyAnalyzer.ts   # BFS 依赖分析器
│   ├── templateEngine.ts       # 命令模板引擎
│   ├── processManager.ts       # 进程管理
│   ├── logParser.ts            # 仿真日志解析
│   ├── simulationRunner.ts     # 仿真执行器
│   ├── portParser.ts           # 端口解析器
│   └── testbenchGenerator.ts   # Testbench 生成器
├── config.ts                   # 扩展设置管理
├── output.ts                   # 输出面板封装
├── moduleTreeProvider.ts       # 侧边栏树视图
├── testbenchPanel.ts           # Testbench 生成面板
└── extension.ts                # 扩展主入口

常见问题

Q: 为什么看不到 VeriFlow 图标?

确保当前打开的工作区包含 .v 或 .sv 文件,扩展会在检测到这类文件时自动激活。

Q: 编译报错 "command not found"?

请确保仿真器已安装并在系统 PATH 中。可以在终端中手动运行 iverilog、vcs 等命令验证。

Q: 波形文件找不到?

先运行仿真生成波形文件。波形文件路径由 veriflow.waveFileTemplate 决定,默认在工作区根目录生成 {top_module}.vcd。


许可证

MIT


反馈与贡献

有问题或建议?欢迎 提交 Issue。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft