Chiselから始めたばかりで、LEDを点滅させる簡単なカウンタを書きました。 FPGAボード(Lattice iCEstick)には反転されたリセット信号があり、生成されたVerilogの極性を変更する代わりにChiselで設定します。クラスのパラメータ化でBoolを使用してリセット極性を逆転することはできません
モジュールには、リセット信号を反転するfalseに設定できるChisel.Boolタイプの_reset
パラメータがあることがわかりました。 Hereは、他の人がそれを使用している場所の例です。しかし、私は修正できないようなエラーが出ています。まず、コード:
import Chisel._
class Blink(rstPol: Bool = null) extends Module(_reset = rstPol) {
val io = new Bundle {
val led = UInt(OUTPUT, 1)
}
val cnt_next = UInt()
val counter = Reg(init = UInt(0, 24), next = cnt_next)
cnt_next := counter + UInt(1)
io.led := counter(23)
}
object blinkmain {
def main(args: Array[ String ]): Unit = {
chiselMain(Array("--backend", "v"),
() => Module(new Blink(Bool(false)))
)
}
}
そして、私が取得エラー:私はBool(false)
パラメータを指定しない場合
[error] Blink.scala:19 < /*??*/ Chisel.Bool(OUTPUT, width=1, connect to 0 inputs:()) > doesn't have its component,yet. in class blinkmain$$anonfun$main$1$$anonfun$apply$1
は、その後、私はエラーを取得していないが、もちろん私のリセット極性はpositveまま。
私はrstPol: Bool = Bool(false)
とModule(_reset = Bool(false))
を試しましたが、3行目に同じエラーが表示されます。幅を持たないものにBoolを割り当てようとしているようですが、それはどう考えられるかわかりません。
私が使用しているチゼルのバージョンとそれが2.2.33
であることを確認しました。ここに私のbuild.sbtファイルは、それが重要だ場合には次のとおりです。
scalaVersion := "2.11.7"
libraryDependencies += "edu.berkeley.cs" %% "chisel" $ "latest.version"
scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-language:reflectiveCalls")