项目场景:
PYNQ架构下,xilinx Block Memory Generator IP的使用
问题描述:
- Mode:BRAM controller,该模式下无法配置BRAM的位宽和深度。
- 使用MMIO接口给BRAM传递数据,虽然numpy支持int64,但是一个节拍MMIO只能传递一个int32 的数据。
原因分析:
- 调用xilinx的Block memory generator IP,当这个IP的mode为BRAM controller模式时,该BRAM的位宽是由前面的BRAM controller IP决定的,深度由address editor中的range(地址范围)决定。validate design后会自动配置BRAM参数。
- 因为PYNQ中MMIO的底层函数的数据格式是int32,所以当我直接写入一个64位数据,他会只写入一个32位的数据。
def write_mm(self, offset, data):