如何使用 ChiselStage 将模块拆分为单独的文件?
How do you split modules into individual files using ChiselStage?
我想将模块拆分成文件,就像以前的 --split-modules
标志一样。将这个标志传递给 ChiselStage
会抛出一个错误,表明它已被弃用,但是我找不到任何关于 ChiselStage 支持的参数的文档。
我正在执行 ChiselStage 如下:
object GenerateAsaSec extends App {
val chiselStage = new ChiselStage
chiselStage.execute(Array("-X", "verilog", "--split-modules", "--target-dir", "genrtl"), Seq(ChiselGeneratorAnnotation(() => new MyModule())))
}
将 -e
或 --emit-modules
与您要发出的特定形式一起使用(chirrtl
、high
、middle
、low
、 verilog
、mverilog
或 sverilog
)请求特定发射器为 运行 并拆分所有模块(或 -E
/--emit-circuit
在一个文件中发射电路的发射器)。
下面应该做你想做的:
chiselStage.execute(
Array(
"-X", "verilog",
"-e", "verilog",
"--target-dir", "genrtl"),
Seq(ChiselGeneratorAnnotation(() => new MyModule()))
)
切线地,那里的错误消息比我想象的还要糟糕。它应该提到一些关于 -e
的事情。抱歉造成混淆!
有趣的是,它被删除的原因是处理像 --split-modules
这样的全局选项很棘手。发射器只是变换。当用户可能想要由 运行 混合转换生成的混合文件输出时,拥有一个影响所有下游转换的全局选项变得很奇怪。例如,当前版本允许发出一个高级电路(-E high
)和每个文件一个模块的 Verilog(-e verilog
)作为对 ChiselStage
.[= 的相同调用的参数。 27=]
我想将模块拆分成文件,就像以前的 --split-modules
标志一样。将这个标志传递给 ChiselStage
会抛出一个错误,表明它已被弃用,但是我找不到任何关于 ChiselStage 支持的参数的文档。
我正在执行 ChiselStage 如下:
object GenerateAsaSec extends App {
val chiselStage = new ChiselStage
chiselStage.execute(Array("-X", "verilog", "--split-modules", "--target-dir", "genrtl"), Seq(ChiselGeneratorAnnotation(() => new MyModule())))
}
将 -e
或 --emit-modules
与您要发出的特定形式一起使用(chirrtl
、high
、middle
、low
、 verilog
、mverilog
或 sverilog
)请求特定发射器为 运行 并拆分所有模块(或 -E
/--emit-circuit
在一个文件中发射电路的发射器)。
下面应该做你想做的:
chiselStage.execute(
Array(
"-X", "verilog",
"-e", "verilog",
"--target-dir", "genrtl"),
Seq(ChiselGeneratorAnnotation(() => new MyModule()))
)
切线地,那里的错误消息比我想象的还要糟糕。它应该提到一些关于 -e
的事情。抱歉造成混淆!
有趣的是,它被删除的原因是处理像 --split-modules
这样的全局选项很棘手。发射器只是变换。当用户可能想要由 运行 混合转换生成的混合文件输出时,拥有一个影响所有下游转换的全局选项变得很奇怪。例如,当前版本允许发出一个高级电路(-E high
)和每个文件一个模块的 Verilog(-e verilog
)作为对 ChiselStage
.[= 的相同调用的参数。 27=]