我不确定我是否从以下地方了解如何使用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._,但这似乎还不够。
该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”。