如何从训练营示例中导入getVerilog()函数?

cay*_*lus 3 chisel

我不确定我是否从以下地方了解如何使用getVerilog函数:https : //github.com/freechipsproject/chisel-bootcamp/blob/master/2.1_first_module.ipynb

[error] passthrough_test.scala:18:11: not found: value getVerilog
[error]   println(getVerilog(new PassThrough(10)))
[error]           ^
[error] one error found
[error] (Test / compileIncremental) Compilation failed
[error] Total time: 1 s, completed Nov 21, 2018 1:53:02 PM
Run Code Online (Sandbox Code Playgroud)

我确实导入了chisel3._,但这似乎还不够。

sel*_*dge 6

getVerilog方法仅在Bootcamp中定义。通过Chisel's有一个等效的方法Driver.emitVerilog

import chisel3._

class Foo extends Module {
  val io = IO(new Bundle {})

  printf("I'm a foo")
}

println(Driver.emitVerilog(new Foo))
Run Code Online (Sandbox Code Playgroud)

供其他参考,此处getVerilog是Chisel训练营的具体实现。这看起来几乎相同,什么是做在这里。关于生成Verilog的问题类似但略有不同,这是在另一个SO问题中提出的Driver.emitVerilog

通常,如果您想知道是否存在某些API,可以通过Chisel3 API参考进行搜索。例如,我忘记了它的emitVerilog存在,只有在查看Driver API时才意识到它的存在。

如果您希望对FIRRTL或Verilog生成过程进行更多控制,则需要使用Driver.execute(args: Array[String], dut: () => RawModule)API。这使您可以将参数传递给Chisel,Driver而一口气emitVerilog“只是给我一些Verilog”。