本文主要是介绍赛灵思(Xilinx)Block Ram预先存储数据及使用方法及地址定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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)
这篇关于赛灵思(Xilinx)Block Ram预先存储数据及使用方法及地址定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!