MuleRun助力MakerChip-FPGA在线编程模拟仿真操练

选用好用又不落伍的在线FPGA-Verilog编程设计模拟仿真软件工具,看到了Makerchip,相关应用案例也不少,特别是SoC项目案例。于是用AI工具--IMA-copilot生成了相应运行案例,始终跑不通,只有Makerchip自带的案例可以运行,尽管有警告。转用龙虾工具--MuleRun生成编码测试,修改了几次,终于完全运行,特地撰文记录下来。

Makerchipmakerchip.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 中清空默认代码,输入以下内容:

cpp 复制代码
\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 主推的语言,写法更简洁:
\m5_TLV_version 1d: tl-x.org
\SV
m5_makerchip_module
\TLV

reset = \*reset; count3:0 = reset ? 4'b0 : \>\>1count + 1;

*passed = *cyc_cnt > 40;
*failed = 1'b0;

\SV
endmodule

关键语法说明:

  • count --- TL-Verilog 信号, 前缀表示管道信号
  • >>1count --- 表示上一个时钟周期的 count 值(隐式生成触发器)
  • *reset / *cyc_cnt --- * 前缀引用系统级 Verilog 信号
  • *passed / *failed --- 控制仿真结束的内建信号

5. 编译与仿真

  1. 写好代码后,按 Ctrl + Enter (或点击 Editor 面板的 Compile/Sim 按钮)
  2. 查看 Log 面板确认无错误(绿色 = 成功)
  3. 编译成功后,三个结果面板自动更新:
    • Diagram --- 显示计数器的逻辑框图,包含自动推断的触发器
    • Waveform --- 显示 $count 信号随时钟递增的波形
    • VIZ --- 如果有可视化定义,会显示自定义动画

6. 查看与调试波形

Waveform 面板中:

  • 展开信号层次,找到 $count3: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 表示"上一周期的值",工具自动推断时序逻辑。这对流水线设计尤其强大。

9. MuleRun应用截图

相关推荐
I'm a winner14 小时前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper202016 小时前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy1 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia1 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20201 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子2 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安2 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun3 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议
忆锦紫3 天前
vivado报错及解决【十】
fpga开发·fpga·vivado