【问题标题】:Does chisel3's printf generate terminal output when simulating the emitted verilog?chisel3 的 printf 在模拟发出的 verilog 时会生成终端输出吗?
【发布时间】:2021-12-14 20:44:13
【问题描述】:

我正在研究 Chiffre 作为我设计中故障注入的一个选项,并注意到一些带有 printfwhen 语句。

 when (enabled && RegNext(!enabled)) {
    printf(s"""|[info] $name enabled
               |[info]   - seed: 0x%x
               |[info]   - difficulty: 0x%x
               |""".stripMargin, seed, difficulty)
  }

  when (!enabled && RegNext(enabled)) {
    printf(s"[info] $name disabled\n")
  }

我觉得这有点奇怪,所以开始调查。到目前为止,我知道 chisel3 有一个 printf 函数,并且文档说它“在模拟中打印一条消息”。这是否适用于 verilog 模拟、标量模拟或两者兼而有之?如果我使用 chisel3 的 printf,这会导致 verilog 中的 $display 语句吗?

【问题讨论】:

    标签: chisel


    【解决方案1】:

    对此的(非常令人兴奋的)答案是肯定的。虽然不是$display 语句,但生成的verilog 包括$fwrite

    $fwrite 此处为 https://scastie.scala-lang.org/Hajn4b1sTDmcxk5sBHw7pQ 的 Scastie 示例

    [以后我会学习新的 firrtl 注解来禁用 rand]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2023-03-10
      • 1970-01-01
      • 2012-11-10
      相关资源
      最近更新 更多