SpinalHDL之BlackBox(下篇)
本文作为SpinalHDL学习笔记第二篇,介绍SpinalHDL的BlackBox类的一些特性。
目录:
1.自动黑盒化
1.自动黑盒化
由于使用常规 VHDL/Verilog 不可能推断所有 ram 类型,因此 SpinalHDL 集成了可选的自动黑盒系统。该系统会查看 RTL 网表中存在的所有存储器,并用一个黑盒替换它们。然后生成的代码将依赖第三方 IP来提供内存功能,例如写入时读取策略和混合位宽端口。
这是一个如何缺省使能黑盒化存储器的例子:
def main(args: Array[String]) {
SpinalConfig()
.addStandardMemBlackboxing(blackboxAll)
.generateVhdl(new TopLevel)
}
黑盒策略
可以使用多种策略来选择要黑盒的内存以及黑盒不可行时要执行的操作:
种类 | 描述 |
blackboxAll | 黑盒化所有存储器。 对不可黑盒存储器抛出错误 |
blackboxAllWhatsYouCan | 黑盒所有可黑盒的存储器 |
blackboxRequestedAndUninferable | 用户指定的黑盒存储器和已知不可推断的存储器(混合 |