选用好用又不落伍的在线FPGA-Verilog编程设计模拟仿真软件工具,看到了Makerchip,相关应用案例也不少,特别是SoC项目案例。于是用AI工具--IMA-copilot生成了相应运行案例,始终跑不通,只有Makerchip自带的案例可以运行,尽管有警告。转用龙虾工具--MuleRun生成编码测试,修改了几次,终于完全运行,特地撰文记录下来。
Makerchip(makerchip.com),由 Redwood EDA 开发的免费在线数字电路设计与仿真 IDE,当前版本为v132。下面以一个简单的4位计数器为例,说明完整的使用流程。
1. 打开Makerchip IDE
浏览器访问 https://www.makerchip.com/ide/,无需安装任何软件,直接在浏览器中使用。
2. IDE 界面介绍
打开后你会看到几个核心面板:
面板 | 功能 |
Editor (E) | 代码编辑器,支持 Verilog / SystemVerilog / TL-Verilog |
Diagram (D) | 自动生成的逻辑框图 |
Waveform (W) | 仿真波形查看器 |
VIZ (V) | 可视化调试视图 |
Log (L) | 编译和仿真日志 |
Nav-TLV (N) | TL-Verilog 层次导航 |
3. 用标准 Verilog 写一个 4 位计数器
在 Editor 中清空默认代码,输入以下内容:
\m5_TLV_version 1d: tl-x.org \SV m5_makerchip_module reg [3:0] count; always @(posedge clk) begin if (reset) count <= 4'b0; else count <= count + 1; end \TLV *passed = *cyc_cnt > 40; *failed = 1'b0; \SV endmodule注意:Makerchip要求文件以 \m5_TLV_version开头,\SV标记后面写标准 Verilog/SystemVerilog代码。
Makerchip 要求使用 m5_makerchip_module 宏来生成模块头,而不是手写 module top(...)。
4. 用 TL-Verilog 写同样的计数器(推荐)
TL-Verilog 是 Makerchip 主推的语言,写法更简洁:
\SV
m5_makerchip_module
\TLV
$reset = *reset;
$count[3:0] = $reset ? 4'b0 : >>1$count + 1;
*passed = *cyc_cnt > 40;
*failed = 1'b0;
\SV
endmodule
关键语法说明:
- $count — TL-Verilog 信号,$ 前缀表示管道信号
- >>1$count — 表示上一个时钟周期的 $count 值(隐式生成触发器)
- *reset / *cyc_cnt — * 前缀引用系统级 Verilog 信号
- *passed / *failed — 控制仿真结束的内建信号
5. 编译与仿真
- 写好代码后,按Ctrl + Enter(或点击 Editor 面板的Compile/Sim按钮)
- 查看Log面板确认无错误(绿色 = 成功)
- 编译成功后,三个结果面板自动更新:
- Diagram— 显示计数器的逻辑框图,包含自动推断的触发器
- Waveform— 显示 $count 信号随时钟递增的波形
- VIZ— 如果有可视化定义,会显示自定义动画
6. 查看与调试波形
在Waveform面板中:
- 展开信号层次,找到 $count[3:0]
- 可以看到它从 0000 逐周期递增到 1111,然后溢出回到 0000
- 点击信号名可以在 Editor 和 Diagram 中高亮对应位置(三视图联动)
- 使用 << >> 按钮或拖动时间轴浏览不同时刻
7. 查看生成的Verilog
点击 Editor 面板中的Show Verilog按钮,可以查看 TL-Verilog 编译后生成的标准 Verilog 代码。这对理解 TL-Verilog 的翻译机制以及导出到 FPGA 工具链非常有用。
8. 保存与分享
- Save to Server— 保存到 Makerchip 服务器,获得可分享的 URL
- Save As— 下载 .tlv 文件到本地
- Share Snapshot— 生成只读快照链接
总结
步骤 | 操作 |
1 | 打开 makerchip.com/ide |
2 | 在 Editor 中输入 TL-Verilog 或 Verilog 代码 |
3 | Ctrl+Enter 编译仿真 |
4 | 在 Waveform 查看波形,Diagram 查看电路图 |
5 | Show Verilog 导出标准 Verilog |
Makerchip 的核心优势在于 TL-Verilog 的时序抽象——你不需要手动写 always_ff 和触发器,只需用 >>1 表示"上一周期的值",工具自动推断时序逻辑。这对流水线设计尤其强大。