【问题标题】:Is it possible to declare conditionnal signals in io bundle?是否可以在 io bundle 中声明条件信号?
【发布时间】:2020-10-28 05:57:58
【问题描述】:

只有在chisel模块中设置了参数才可以声明信号吗?

喜欢:

class GbWrite (val debug_simu: Boolean = true) extends Module {
  val io = IO(new Bundle {
//...
    /* debug */
    if(debug_simu){
      val countcol = Output(UInt(32.W))
    }
  })
//...
  if(debug_simu) {
    io.countcol := pixelCount
  }
//...
}

这段代码给我一个错误:

[info] compiling 1 Scala source to /media/stockage/projets/GbVga/chisel/target/scala-2.12/classes ...
[error] /media/stockage/projets/GbVga/chisel/src/main/scala/gbvga/gbwrite.scala:40:8: value countcol is not a member of chisel3.Bundle{val GBHsync: chisel3.Bool; val GBVsync: chisel3.Bool; val GBClk: chisel3.Bool; val GBData: chisel3.UInt; val Maddr: chisel3.UInt; val Mdata: chisel3.UInt; val Mwrite: chisel3.Bool}
[error]     io.countcol := pixelCount
[error]        ^
[error] one error found
[error] Compilation failed

【问题讨论】:

    标签: scala hdl chisel


    【解决方案1】:

    这是可能的,但您需要使用稍微不同的语法。 请参阅:How do I create an optional I/O?。问题是您创建的条件 valif 的范围内,因此在代码的更下方不可见。

    【讨论】:

    • 谢谢,这正是我要找的 :)
    猜你喜欢
    • 2013-06-03
    • 2016-12-10
    • 2012-02-28
    • 1970-01-01
    • 2016-11-19
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多