ouput要做IO planning,以及电平标准需手动选择,否则生成bit文件时错误。
生成ceo文件方法
fid = fopen('rom.coe','w+');
fprintf(fid,'memory_initialization_radix = 10;\n');//声明进制,如十进制,vivado会编译为二进制
fprintf(fid,'memory_initialization_vector =\n');
for i=1:N//N为存储的数据数目
fprintf(fid,'%d',data(i));
fprintf(fid,'\n');
end
BRAM所有引脚均不可空,如果不用,可以置0或1,否则编译错误。
重中之重:对于block design中,倒入IP核,默认的用于嵌入式处理器的ip核,为32位,地址也为32位,而不论此bram的大小。在用用户自编逻辑读写时,注意连续的数据(32位)之间地址之差为4,也即每八位对应一个地址。
而对于非blockdesign中的bramip核,地址位数不为32位,而是根据设置的bram空间大小确定。且无论数据为几位,相邻数据间的地址的差为1,也即一个地址对应一个data数据的宽度(而不是8)