[an error occurred while processing this directive]
|
А это пример проги для формирования файла инициализации памяти в квартусе. Удачи.
void main(int argc, char *argv[]) sprintf(lin,"Sin.mif"); pi=3.14159265; ADDRESS_RADIX = HEX; % Address and value radixes are required % -- Specify values for addresses, which can be single address or range CONTENT [0..F] : 3FFF; % Range--Every address from 0 to F = 3FFF % END ; % Addr[8] = F, Addr[9] = E, Addr[A] = 5 %
E-mail:
info@telesys.ru
#include
#include
#include
{
int i, n, nw, m, icc, iss;
double pi, xk;
FILE *fc, *fs;
char lin[200];
if(argc!=3) {
printf("mifsicos NW N\n");
return;
}
sscanf(argv[1], "%d", &nw);
sscanf(argv[2], "%d", &n);
m=(int)(log((double)n)/log(2.0)+0.5);
if(n!=(1<
return;
}
sprintf(lin,"Cos.mif");
fc=fopen(lin,"w");
fprintf(fc, "WIDTH = %d;\n", nw);
fprintf(fc, "DEPTH = %d;\n\n", n/2);
fprintf(fc, "ADDRESS_RADIX = DEC;\n"); //BIN, DEC, HEX, OCT, or UNS
fprintf(fc, "DATA_RADIX = DEC;\n\n");
fprintf(fc, "CONTENT BEGIN\n");
fs=fopen(lin,"w");
fprintf(fs, "WIDTH = %d;\n", nw);
fprintf(fs, "DEPTH = %d;\n\n", n/2);
fprintf(fs, "ADDRESS_RADIX = DEC;\n"); //BIN, DEC, HEX, OCT, or UNS
fprintf(fs, "DATA_RADIX = DEC;\n\n");
fprintf(fs, "CONTENT BEGIN\n");
xk=2.0*pi/((double)n);
for(i=0;i
iss=(int)(-sin(xk*(double)i)*(1<<(nw-2)));
fprintf(fc, "%7d : %d;\n", i, icc);
fprintf(fs, "%7d : %d;\n", i, iss);
// fflush(fc);
}
fprintf(fc, "END;\n");
fprintf(fs, "END;\n");
fclose(fc);
fclose(fs);
}
/*
Memory Initialization File (.mif)
DEPTH = 32; % Memory depth and width are required %
WIDTH = 14; % Enter a decimal number %
DATA_RADIX = HEX; % Enter BIN, DEC, HEX, OCT, or UNS; unless %
% otherwise specified, radixes = HEX %
BEGIN
6 : F; % Single address--Address 6 = F %
8 : F E 5; % Range starting from specific address-- %
*/
Ответы