riscv - 如何在火箭芯片生成器中创建内存,合成后将映射为 FPGA 中的块 ram?
问题描述
我尝试使用 Mem(1024,UInt(width=xLen)); 但是在Xilinx vivado中合成生成的verilog文件后,内存映射为分布式ram。理解和编辑生成的 RTL 文件真的很难。是否有任何明确的方法来定义可以推断为块 ram 的内存。?
感谢和问候,
解决方案
看起来凿子正在优化内存。如果您希望将 Memory 作为单个单元DontTouch ,请尝试使用 DontTouch 构造。另一种解决方案是在 Mem 周围使用包装器。在 Mem 周围创建一个 Module,然后使用 DontTouch 构造,使其保持为一个单元。你确定要使用 Mem 构造吗?Mem 是 Asynchronous ,如果你想要 Synchronous Memory 使用 SyncReadMem Chisel 构造。还要在合成之前和之后检查您的 Verilog 文件,也许 Chisel 不是这里的罪魁祸首。检查 Xilinx Vivado 是否没有对其进行优化。
推荐阅读
- r - 在 group_by 中调用 cor 函数的“标准偏差为零”错误
- javascript - 在 angularjs 的控制器模块中使用控制器中声明的 json 值
- python - 使用 Keras ImageDataGenerator 预测进行索引会引发不可散列的类型错误
- filebeat - 带输出的 FileBeat 配置测试
- javascript - Angular2:如何在类似元素上切换类
- global-variables - 在 NodeRED 中全局保存值
- sql - 仅从一列中为另一列中的每个值选择一个值,以及对应的其他列值
- ionic-framework - Google Login + FCM 在 Ionic 2 项目中一起使用
- java - 即使选择了 JTextField,箭头键 KeyBindings 仍然有效
- android - 无法将 json 数组转换为 json 列表