Menu
CoddyTech

Verilog 在线编译器

编写、运行和分享代码片段,无需任何配置。

main.v
点击运行,在这里查看输出。
Plusargs传给仿真器的运行时参数。在测试平台中用 $value$plusargs 或 $test$plusargs 读取它们。
键值

在线编写、编译和仿真 Verilog HDL

这是一个免费的 Verilog 在线编译器和仿真器。编写 Verilog 或 SystemVerilog 模块,搭好测试平台,点击运行,就能看到标准输出和绘制好的 VCD 波形。无需安装,不需要 Vivado 或 Quartus,也不用配置工具链。编辑器打开时自带一个带时钟的计数器测试平台,几秒内就能修改并运行。

代码由 Icarus Verilog(iverilog)编译,在沙盒容器中用 vvp 运行,所以你得到的是真实的 Verilog HDL 语义:带时钟的 always 块、非阻塞赋值、层次化的模块实例化、$display、$finish。在测试平台中加上 $dumpfile 和 $dumpvars,“波形”标签页就会绘制单比特信号和多比特总线,带可拖动的游标、跳变沿和每个信号的数值标签。Plusargs(+KEY=VALUE / +FLAG)通过 $value$plusargs 和 $test$plusargs 传入测试平台,所以不用改源代码,就能调整时钟周期、运行长度和功能开关。

这个 Verilog 在线编译器好用在哪里

  • 即时编译和仿真:编写 Verilog HDL,点击运行,几秒内就能看到标准输出和 VCD 波形。
  • Verilog 和 SystemVerilog 语法高亮,编辑器引擎与 VS Code 相同,支持 module/endmodule 作用域和关键字自动补全。
  • 内置波形查看器:在测试平台中调用 $dumpfile 和 $dumpvars,“波形”标签页就会绘制信号、总线、跳变沿,还有一个可移动的游标,显示每个信号的数值标签。
  • 用于测试平台参数的 Plusargs 面板:通过 $value$plusargs 和 $test$plusargs 传入 +CYCLES、+PERIOD、+VERBOSE,不用改写源代码就能重新运行。

可以在 Verilog 在线编辑器里做什么

  • 组合逻辑:加法器、多路选择器、ALU,接入带 $display 检查的测试平台,立即得到反馈。
  • 带时钟的时序设计:由 always @(posedge clk) 驱动的计数器、移位寄存器和有限状态机,用 VCD 波形查看信号的跳变。
  • 参数扫描:传入 +CYCLES、+PERIOD 或 +VERBOSE 等 plusargs,在每次运行之间改变行为,和在 iverilog/vvp 命令行中的做法一样。

Verilog 在线编译器常见问题

Verilog 是什么?

Verilog 是一种硬件描述语言(HDL),用来对数字电路建模和仿真,从简单的组合逻辑门到完整的处理器都可以。你用代码描述模块、线网和寄存器,用 Verilog 编译器编译,再运行测试平台来验证行为。SystemVerilog 是 Verilog 的超集,增加了验证相关的功能。这个在线编辑器两种都支持。

Verilog 在线编译器免费吗?

免费,Verilog 编译器和仿真器都可以免费使用。无需注册,不需要 Vivado 或 Quartus 许可证,也不用安装工具链:写好模块,点击运行就行。

需要安装 Icarus Verilog 或其他 EDA 工具吗?

不需要。你的代码在服务器上的沙盒容器中由 iverilog 编译、用 vvp 运行。你只管编写 Verilog 源代码并点击运行,其余的交给编译器和仿真器。

怎样查看 Verilog 代码的波形?
在测试平台的 initial 块中调用 $dumpfile("dump.vcd") 和 $dumpvars(0, your_module)。运行后,“波形”标签页会绘制出这些信号:点击波形上的任意位置放置游标,就能读出该时刻每个信号的值。
怎样编写带 plusargs 的 Verilog 测试平台?

在 Plusargs 面板中添加几行(例如 CYCLES=10、VERBOSE),它们会以 +CYCLES=10 +VERBOSE 的形式通过命令行传给仿真器。在测试平台中,整数值用 $value$plusargs("CYCLES=%d", n) 读取,布尔开关用 $test$plusargs("VERBOSE") 读取。默认的起始代码展示了这两种写法。

适合 Verilog 的实用工具

与 Verilog 在线编辑器搭配使用的免费浏览器工具,全部来自 Coddy。