You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple M1 macOS环境下生成Rocket Chip Verilog文件失败求助

Rocket Chip Generator M1 macOS下firtool缺失问题解决

问题描述

我是Rocket Chip Generator的初学者,在Apple M1芯片的macOS系统中执行make verilog生成Verilog文件时失败,报错提示firtool不存在。已完成的步骤包括:

  • 克隆rocket-chip仓库
  • 安装Mac版Rocket工具
  • 安装JDK 17.0.10、sbt 1.9.9、Mill 0.11.7

报错信息如下:

srishtisharma@Srishtis-MacBook-Pro ~ % cd rocket-chip
srishtisharma@Srishtis-MacBook-Pro rocket-chip % make verilog
cd /Users/srishtisharma/rocket-chip && mill emulator[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.DefaultConfig].mfccompiler.compile
[172/172] emulator[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.DefaultConfig].mfccompiler.compile 
1 targets failed
emulator[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.DefaultConfig].mfccompiler.compile java.io.IOException: Cannot run program "firtool" (in directory "/Users/srishtisharma/rocket-chip/out/emulator/freechips.rocketchip.system.TestHarness/freechips.rocketchip.system.DefaultConfig/mfccompiler/compile.dest"): error=2, No such file or directory
    java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170)
    java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
    os.proc.proc$lzycompute$1(ProcessOps.scala:123)
    os.proc.proc$1(ProcessOps.scala:122)
    os.proc.spawn(ProcessOps.scala:129)
    os.proc.call(ProcessOps.scala:87)
    millbuild.build$Emulator$mfccompiler$.$anonfun$compile$3(build.sc:151)
java.io.IOException: error=2, No such file or directory
    java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:295)
    java.base/java.lang.ProcessImpl.start(ProcessImpl.java:225)
    java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126)
    java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
    os.proc.proc$lzycompute$1(ProcessOps.scala:123)
    os.proc.proc$1(ProcessOps.scala:122)
    os.proc.spawn(ProcessOps.scala:129)
    os.proc.call(ProcessOps.scala:87)
    millbuild.build$Emulator$mfccompiler$.$anonfun$compile$3(build.sc:151)
make: *** [verilog] Error 1
srishtisharma@Srishtis-MacBook-Pro rocket-chip % 

解决步骤

你遗漏了firtool的安装,这是Chisel/FIRRTL流程中将FIRRTL代码转换为Verilog的核心工具,Rocket Chip生成Verilog必须依赖它。在M1 macOS上可以通过以下两种方式安装:

方式1:Homebrew快速安装

执行以下命令完成安装:

brew install firtool

安装后验证是否成功:

firtool --version

若能正常输出版本信息,说明安装完成,重新执行make verilog即可。

方式2:源码编译安装(Homebrew安装失败时备选)

  1. 克隆CIRCT仓库:
git clone https://github.com/llvm/circt.git
cd circt
  1. 创建编译目录并编译firtool:
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=mlir -DLLVM_EXTERNAL_PROJECTS=circt -DLLVM_EXTERNAL_CIRCT_SOURCE_DIR=..
ninja firtool
  1. 将firtool添加到系统PATH:
export PATH=$PATH:/path/to/circt/build/bin

将上述命令添加到~/.zshrc文件中,可实现PATH永久生效,避免每次重启终端都需重新设置。

内容的提问来源于stack exchange,提问作者Srishti Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:12:52