在Chisel项目中使用AsyncQueue子仓库遇sbt编译错误求助
解决Chisel项目引入AsyncQueue编译报错的方案
问题核心
当前配置存在两个关键问题:
- 仅声明了
asyncqueue项目路径,但未将仓库代码拉取到对应目录 - 项目依赖配置冲突:同时定义了
root和myself两个指向当前目录的项目,导致依赖关联失效
修复步骤
1. 拉取AsyncQueue仓库到本地
在项目根目录执行Git命令,将仓库克隆到asyncqueue-lite目录:
git clone https://github.com/ucb-bar/asyncqueue asyncqueue-lite
2. 修改build.sbt配置
删除重复的myself项目定义,给asyncqueue项目添加必要的Chisel依赖和编译配置,同时让root项目依赖它。修改后的完整build.sbt如下:
ThisBuild / scalaVersion := "2.13.8" ThisBuild / version := "0.1.0" val chiselVersion = "3.6.0" lazy val asyncqueue = (project in file("asyncqueue-lite")) .settings( libraryDependencies ++= Seq( "edu.berkeley.cs" %% "chisel3" % chiselVersion, "edu.berkeley.cs" %% "chiseltest" % "0.6.0" % "test" ), scalacOptions ++= Seq( "-language:reflectiveCalls", "-deprecation", "-feature", "-Xcheckinit" ), addCompilerPlugin( "edu.berkeley.cs" % "chisel3-plugin" % chiselVersion cross CrossVersion.full ) ) lazy val root = (project in file(".")) .settings( name := "asyncqueue-chisel", libraryDependencies ++= Seq( "edu.berkeley.cs" %% "chisel3" % chiselVersion, "edu.berkeley.cs" %% "chiseltest" % "0.6.0" % "test" ), scalacOptions ++= Seq( "-language:reflectiveCalls", "-deprecation", "-feature", "-Xcheckinit" ), addCompilerPlugin( "edu.berkeley.cs" % "chisel3-plugin" % chiselVersion cross CrossVersion.full ) ) .dependsOn(asyncqueue)
3. 验证编译
保持Scala文件中的导入语句不变:
import freechips.asyncqueue.{AsyncQueue, AsyncQueueParams}
执行sbt编译命令:
sbt compile
额外排查点
如果克隆仓库后仍报错,可检查:
asyncqueue-lite目录下是否存在src/main/scala/freechips/asyncqueue路径,确认代码结构完整- 确保本地Scala版本与项目配置的
2.13.8一致
内容的提问来源于stack exchange,提问作者Henrik9k
相关产品推荐
相关产品推荐

