2016-12-07 9 views
1

私は、Sodorプロセッサ/ RocketコアのALUソースファイルをカスタマイズして別のプロジェクトで使用しようとしています。だから、aluソースファイルに追加されたパラメータを使うことを望む、configurations.scalaファイルを含む共通のフォルダをコピーしました。しかし、私はsbtを "テスト専用..."を実行するとき、私は今までの解決策を見つけることができなかった次のエラーを取得します。チゼルがパラメータの暗黙の値を見つけられない

[info] Compiling 1 Scala source to /home/isuru/fyp/ChiselProjects/RiscvIoT/target/scala-2.11/test-classes... 
[error] /home/isuru/fyp/ChiselProjects/RiscvIoT/src/test/scala/core/aluTest.scala:42: could not find implicit value for parameter conf: Common.SodorConfiguration 
[error]  Driver(() => new ALU, backendName) { 
[error]     ^
[error] one error found 
[error] (test:compileIncremental) Compilation failed 
[error] Total time: 0 s, completed Dec 6, 2016 10:45:25 PM 

これは、暗黙的なパラメータを含むソースファイルのセクションです。完全なテキストが非常に長いので、私はそのセクションだけを投稿しています。

class ALUIO(implicit conf: SodorConfiguration) extends Bundle { 
    val fn = Bits(INPUT, SZ_ALU_FN) 
    val in2 = UInt(INPUT, conf.xprlen) 
    val in1 = UInt(INPUT, conf.xprlen) 
    val out = UInt(OUTPUT, conf.xprlen) 
    val adder_out = UInt(OUTPUT, conf.xprlen) 
} 

class ALU(implicit conf: SodorConfiguration) extends Module 
{ 
    val io = new ALUIO 

    val msb = conf.xprlen-1 
... 
} 
+2

は、あなたのテスタークラスのスコープ内に 'SodorConfiguration'インスタンスを持っていますか? http://docs.scala-lang.org/tutorials/FAQ/finding-implicits.html – Kamyar

+0

感謝のKamyar。これは私の問題を解決しました。あなたの言ったことを理解するまでには時間がかかりました。 – isuru

答えて

2

Kamyarが指摘したように、あなたはALUをインスタンススコープ内で暗黙のSodorConfigurationを持っている必要があります。追加

してみてください。ドライバーの呼び出しの前に

implicit val conf = new SodorConfiguration 

。 SodorConfigurationが定義されていることを

注:https://github.com/ucb-bar/riscv-sodor/blob/master/src/common/configurations.scala

+0

ありがとうございました。これは問題を解決しました。 – isuru

関連する問題