Chisel 3.6.0升级至5.0.0-RC1:Chiseltest替代及升级文档咨询
Chisel 3.6.0 升级至 5.0.0-RC1 实操指南
核心依赖调整
Chisel 5.x 已弃用原 chiseltest 模块,需替换为官方推荐的测试套件及后端:
- 移除原有
org.chipsalliance:chiseltest依赖 - 更新核心 Chisel 依赖至
org.chipsalliance:chisel3_3:5.0.0-RC1(_3对应 Scala 3 版本,若使用 Scala 2.13 则改为_2.13) - 添加测试套件依赖
org.chipsalliance:chisel-testkit_3:5.0.0-RC1(仅需添加至测试范围)
测试框架迁移
原 chiseltest 的测试 API 已整合至 chisel-testkit,代码调整示例如下:
旧代码(3.6.0 版本)
import chisel3._ import chiseltest._ import org.scalatest.flatspec.AnyFlatSpec class MyModuleTest extends AnyFlatSpec with ChiselScalatestTester { "MyModule" should "execute correctly" in { test(new MyModule) { c => c.io.in.poke(1.U) c.clock.step(1) c.io.out.expect(1.U) } } }
新代码(5.0.0-RC1 版本)
import chisel3._ import chisel.testkit._ import org.scalatest.flatspec.AnyFlatSpec class MyModuleTest extends AnyFlatSpec with ChiselTestKit { "MyModule" should "execute correctly" in { test(new MyModule) { c => // 核心测试API基本兼容,部分细节需参考新文档调整 c.io.in.poke(1.U) c.clock.step(1) c.io.out.expect(1.U) } } }
测试后端配置
Chisel 5.x 支持两种主流测试后端,按需添加对应依赖:
- Treadle(纯 Scala 仿真后端,无需额外系统依赖):添加
org.chipsalliance:treadle_3:5.0.0-RC1至测试依赖 - Verilator(高性能 RTL 仿真后端,需系统提前安装 Verilator):添加
org.chipsalliance:verilator-backend_3:5.0.0-RC1至测试依赖,同时可在 sbt 中添加波形生成配置:
verilatorOptions ++= Seq("--trace", "--trace-structs")
sbt 完整配置示例
scalaVersion := "3.3.1" // Chisel 5.x 兼容 Scala 3.2+ / Scala 2.13.8+ libraryDependencies ++= Seq( "org.chipsalliance" %% "chisel3" % "5.0.0-RC1", "org.chipsalliance" %% "chisel-testkit" % "5.0.0-RC1" % Test, "org.chipsalliance" %% "treadle" % "5.0.0-RC1" % Test, "org.chipsalliance" %% "verilator-backend" % "5.0.0-RC1" % Test ) // 可选:ScalaTest 输出配置 testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-oD")
依赖添加失败排查
- 确保 Scala 版本与依赖后缀匹配(如 Scala 3 对应
_3,Scala 2.13 对应_2.13) - 检查 sbt 仓库配置是否包含 Maven Central(Chisel 5.x 包均发布至 Maven Central)
参考文档
- Chisel 5.x 官方迁移指南:重点关注测试框架模块拆分、API 兼容说明
- Chisel TestKit 官方文档:详细介绍测试套件的使用方法、后端切换逻辑
- 官方 Chisel 5 模板项目:包含完整的依赖配置、测试示例及项目结构
内容的提问来源于stack exchange,提问作者ferris
相关产品推荐
相关产品推荐

