问题描述
我尝试使用Mem(1024,UInt(width = xLen));但是在Xilinx vivado中合成生成的Verilog文件之后。内存映射为分布式ram。 要理解和编辑生成的RTL文件确实很困难。是否有任何明确的方法来定义可以推断为块ram的内存??
感谢与问候,
解决方法
看起来凿子正在优化内存。如果要将内存作为单个单元DontTouch,请尝试使用DontTouch构造。另一种解决方案是在Mem周围使用包装器。在Mem周围创建一个Module,然后使用DontTouch构造使它保持为单个单元。而且您确定要使用Mem构造吗? Mem是异步的,如果您想使用SynReadMem Chisel构造同步内存。还要在合成前后检查您的Verilog文件,也许Chisel不是这里的罪魁祸首。检查Xilinx Vivado是否没有对其进行优化。