【问题标题】:Error after running "sbt test" in Chisel 3在 Chisel 3 中运行“sbt test”后出错
【发布时间】:2017-04-16 06:04:57
【问题描述】:

我正在尝试使用凿子 3。

在回答上一个问题之后,我尝试使用 sbt test 和 sbt "test-only example.GCD" 命令在 chisel 项目模板 repo 中测试 GCD.scala 文件。但这给出了一个我找不到原因的错误。我没有对 build.sbt 文件或 repo 布局进行任何更改。我只发布错误消息的最后一部分,因为它非常长且重复。

[info] Loading project definition from /home/isuru/fyp/ChiselProjects/TrialProject/project
[info] Set current project to chisel-module-template (in build file:/home/isuru/fyp/ChiselProjects/TrialProject/)
[info] Compiling 1 Scala source to /home/isuru/fyp/ChiselProjects/TrialProject/target/scala-2.11/classes...
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:5: not found: object Chisel3
[error] import Chisel3._
[error]        ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:7: not found: type Module
[error] class GCD extends Module {
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:8: not found: type Bundle
[error]   val io = new Bundle {
[error]                ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:9: not found: value UInt
[error]     val a  = UInt(INPUT,  16)
[error]              ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:9: not found: value INPUT
[error]     val a  = UInt(INPUT,  16)
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:10: not found: value UInt
[error]     val b  = UInt(INPUT,  16)
[error]              ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:10: not found: value INPUT
[error]     val b  = UInt(INPUT,  16)
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:11: not found: value Bool
[error]     val e  = Bool(INPUT)
[error]              ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:11: not found: value INPUT
[error]     val e  = Bool(INPUT)
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:12: not found: value UInt
[error]     val z  = UInt(OUTPUT, 16)
[error]              ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:12: not found: value OUTPUT
[error]     val z  = UInt(OUTPUT, 16)
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:13: not found: value Bool
[error]     val v  = Bool(OUTPUT)
[error]              ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:13: not found: value OUTPUT
[error]     val v  = Bool(OUTPUT)
[error]                   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:15: not found: value Reg
[error]   val x  = Reg(UInt())
[error]            ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:15: not found: value UInt
[error]   val x  = Reg(UInt())
[error]                ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:16: not found: value Reg
[error]   val y  = Reg(UInt())
[error]            ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:16: not found: value UInt
[error]   val y  = Reg(UInt())
[error]                ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:17: not found: value when
[error]   when   (x > y) { x := x - y }
[error]   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:18: not found: value unless
[error]   unless (x > y) { y := y - x }
[error]   ^
[error] /home/isuru/fyp/ChiselProjects/TrialProject/src/main/scala/example/GCD.scala:19: not found: value when
[error]   when (io.e) { x := io.a; y := io.b }
[error]   ^
[error] 20 errors found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 2 s, completed Dec 1, 2016 8:26:25 PM

【问题讨论】:

    标签: scala chisel


    【解决方案1】:

    您显示的错误表明 sbt 不知何故找不到 Chisel,您能否偶然显示完整的错误列表(尤其是早期错误)?使用以下命令序列,我无法重现您看到的错误:

    git clone git@github.com:ucb-bar/chisel-template.git    
    cd chisel-template    
    sbt test
    

    这不是导致此问题的原因,但要在 chisel-template 中运行测试,您实际上应该运行 sbt "test-only examples.test.GCDTester"example.GCD 是设计的顶部,但要运行测试,您必须参考 src/test/scala/examples/test/GCDUnitTest.scala 中的 Tester 类。

    【讨论】:

    • 感谢 jkoenig 的快速响应。我编辑了问题以包含完整的错误消息。但是,现在我再次克隆了模板并在该新目录中为 GCDTester 运行了 sbt test 和 test-only。两者都工作正常。那么,这个错误是不是因为我之前的模板克隆有问题?再次感谢您的建议。
    • 没问题!所以在你原来的例子中,问题是import Chisel3._。包名实际上是 chisel3 并且包在 Scala 中区分大小写!我很高兴干净的克隆正在工作!我的猜测是,以前这只是一个错字。
    • 再次感谢。我完全不知道出了什么问题。否则我会在原始问题中发布整个错误消息。对此感到抱歉。
    • 完全不用担心!我在学习 Chisel 的时候也遇到过类似的问题,涉及到很多新东西!
    【解决方案2】:

    我在制作自己的凿子项目时遇到了同样的问题。然而,导入 chisel3._ 并不是错误的。我遇到的问题是我的目录中没有包含 build.sbt 文件。

    我在这里找到了我的解决方案。 https://chisel.eecs.berkeley.edu/2.0.6/getting-started.html

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 解决方案是确保 build.sbt 文件与出现此错误的项目位于同一目录中。该链接在第 6.1 节中提到了这一要求,它指出“为了从头开始创建自己的项目,您需要创建一个目录、一个 Chisel 源文件和一个 build.sbt 配置文件。”
    猜你喜欢
    • 2021-08-12
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 2014-03-01
    • 2019-07-08
    • 2011-07-05
    • 2011-12-04
    • 2019-10-03
    相关资源
    最近更新 更多