我能够解决问题,所以我会尝试回答我自己的问题。
304位写法无法与使用AMBA互连的系统的其余部分通信。我不得不设计一个字大小为2(最小8位)的RAM,所以我选择512位作为我的字长。我用零填充了未使用的部分(每个字的位数从301到512)(我可以使用它们但是使我的HDL算法更复杂)。
正如@John Moon在评论中建议我先使用mmap()并一次写32位。要在给定地址写入32位字,我使用了基址+偏移地址(如@Eugene Sh。建议的那样),并且为了能够使用我的自定义架构在内存中使用数据,我制作了RAM双端口。现在一切正常。