对 Verilog 库的依赖
Dependency on Verilog libs
是否可以在 Scala Chisel 中依赖一些已经编码的 Verilog 库?
如果不是这样的话,在我看来,这就像是 Scala 的 Java 复古兼容性一样重要的功能,它使 Scala 在软件世界取得了成功。
干杯
您可以包含一些外部模块作为 blackbox:
12 BlackBox
Black boxes allow users to define interfaces to circuits
defined outside of Chisel. The user defines:
a module as a subclass of BlackBox and an io field with the interface.
For example, one could define a simple ROM blackbox as:
class RomIo extends Bundle {
val isVal = Bool(INPUT)
val raddr = UInt(INPUT, 32)
val rdata = UInt(OUTPUT, 32)
}
class Rom extends BlackBox {
val io = new RomIo()
}
不幸的是,我没有找到任何工具来从 .v
文件生成黑盒。看来你必须自己定义所有必需的types/interfaces(使用Bundle
)。关于导入 - 同一文件夹中的所有 .v
文件自动 available(因此您可以将 library.v
放在生成的 .v
文件旁边),但有时您可能需要手动添加一些更复杂的包含到生成的 .v
文件中。所以还不是很方便
是否可以在 Scala Chisel 中依赖一些已经编码的 Verilog 库?
如果不是这样的话,在我看来,这就像是 Scala 的 Java 复古兼容性一样重要的功能,它使 Scala 在软件世界取得了成功。
干杯
您可以包含一些外部模块作为 blackbox:
12 BlackBox
Black boxes allow users to define interfaces to circuits defined outside of Chisel. The user defines:
a module as a subclass of BlackBox and an io field with the interface. For example, one could define a simple ROM blackbox as:
class RomIo extends Bundle { val isVal = Bool(INPUT) val raddr = UInt(INPUT, 32) val rdata = UInt(OUTPUT, 32) } class Rom extends BlackBox { val io = new RomIo() }
不幸的是,我没有找到任何工具来从 .v
文件生成黑盒。看来你必须自己定义所有必需的types/interfaces(使用Bundle
)。关于导入 - 同一文件夹中的所有 .v
文件自动 available(因此您可以将 library.v
放在生成的 .v
文件旁边),但有时您可能需要手动添加一些更复杂的包含到生成的 .v
文件中。所以还不是很方便