我用ISE的core generator 生成了一个双口RAM,想对它进行初始化,怎么操作呢?
我用ISE生成它时有一个加载初始化文件的配置,但我不知道怎么编辑生成这个初始化文件。
另外,我使用modelsim进行仿真,将所有的源文件(包括用core generator 生成的)都拷贝出来新建了个工程(也就是直接用modelsim仿真,而不是通过ISE的工程调用modelsim来仿真,当然,需要的各种库我已经编译好了),如果这样又怎样对生成的双口RAM初始化呢?
谢谢
共10条
1/1 1 跳转至页


4楼
好像是.coe文件吧,给你个示例,memory_initialization_radix表示位宽。最后面那一系列数字就是表中的值。如果较多,可用Matlab等生成
memory_initialization_radix=10;
memory_initialization_vector =
65535,
65535,
65533,
65530,
65526,
65520,
65513,
65505,
65496,
65485,
65474,
65461,
65447,
65431,
65414,
65397,
65377,
65357,
65335,
65313,
65289,
65263,
65237,
65209,
65180,
65150,
65119,
65086,
65052,
65017,
64981,
64943,
64905,
64865,
64824,
64781,
64738,
64693,
64647,
64600,
64552;
memory_initialization_radix=10;
memory_initialization_vector =
65535,
65535,
65533,
65530,
65526,
65520,
65513,
65505,
65496,
65485,
65474,
65461,
65447,
65431,
65414,
65397,
65377,
65357,
65335,
65313,
65289,
65263,
65237,
65209,
65180,
65150,
65119,
65086,
65052,
65017,
64981,
64943,
64905,
64865,
64824,
64781,
64738,
64693,
64647,
64600,
64552;

6楼
逗号在Matlab里直接加上就行,空格留着无所谓。最后一行的逗号再手动改成分号。
x=linspace(0,511,512);
fid=fopen('c:/init_men.txt','wt');
fprintf(fid,'%16.0f,\n',x);
fclose(fid)
x=linspace(0,511,512);
fid=fopen('c:/init_men.txt','wt');
fprintf(fid,'%16.0f,\n',x);
fclose(fid)

8楼
在给你一个例子,改一下你们的数据就可以用了。生成的文件也无需修改,直接导入就行
% Generate sin & cos table for DDS
%%
clear all;
close all;
%%
x = linspace( 0, 2*pi, 1024 );
y_cos = fix( (cos(x)+1)*512 );
for k = 1:length(y_cos)
if y_cos(k)>=1024
y_cos(k) = 1023;
end
end
%%
fid = fopen( 'cos_coe.coe', 'wt' );
fprintf( fid, 'memory_initialization_radix=10;\n', y_cos );
fprintf( fid, 'memory_initialization_vector =\n', y_cos );
fprintf( fid, '%10.0f,\n', y_cos(1:end-1) );
fprintf( fid, '%10.0f;', y_cos(end) );
fclose( fid );
plot(y_cos);
grid on;
dbin = dec2bin(y_cos,10);

共10条
1/1 1 跳转至页