chisel - 如何使用 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
。
推荐阅读
- ruby - Hanami rake 任务不加载存储库
- c# - Clipboard.GetDataObject() 始终返回 null
- asp.net-core - 如何使用 URL 重写中间件 asp core 2.2?
- php - 作曲家安装中的 symfony 属性访问错误
- angular - Angular 7 Bootstrap 4 侧边栏
- search - 如何在多个 DOCX 文件中搜索 Word 字段中的字符串?
- javascript - 如果阈值为 Number.MIN_VALUE,则在数组中查找超过某个阈值的最小值的函数不会找到低于 1 的数字。如何解决这个问题?
- python - Python 数据相关错误:列表索引必须是整数或切片,而不是 str
- c - 在不同上下文中使用“绑定”系统调用的“地址已在使用”(EADDRINUSE)问题
- node.js - 谷歌云功能节点JS SFTP到云存储传输文件错误