Mudanças entre as edições de "Quartus - Como inicializar uma memória usando arquivos .mif"
Linha 1: | Linha 1: | ||
Use o Matlab para criar o arquivo filename.mif para escrever 256 signed data de 16 bits. | Use o Matlab para criar o arquivo filename.mif para escrever 256 signed data de 16 bits. | ||
+ | |||
+ | % Gere um arquivo de audio usando o Audacity e exporte como .wav | ||
+ | clear all; | ||
+ | filename = 'data'; | ||
+ | newData1 = importdata([filename '.wav']); | ||
+ | data = newData1.data; | ||
+ | plot(data); | ||
+ | word_len = 13; % numero de bit dos dados na memória | ||
+ | address_len = 9; % numero de bits do endereço da memória | ||
+ | % Definindo o cabeçalho do arquivo .mif | ||
+ | fid = fopen([filename '.mif'], 'wt'); | ||
+ | fprintf(fid, 'DEPTH = %6d;\n', 2^address_len); | ||
+ | fprintf(fid, 'WIDTH = %6d;\n', word_len); | ||
+ | fprintf(fid, 'ADDRESS_RADIX = HEX;\n'); | ||
+ | fprintf(fid, 'DATA_RADIX = BIN;\n'); | ||
+ | fprintf(fid, 'CONTENT\n'); | ||
+ | fprintf(fid, 'BEGIN\n'); | ||
+ | % Gerando os pares e endereços e dados | ||
+ | for N=1:2^address_len | ||
+ | dec_num = floor(data(N)*2^(word_len-2)); | ||
+ | bin_num = signed2bin(dec_num,word_len); | ||
+ | fprintf(fid, '%6.0x : %s ;\n', N-1, bin_num); | ||
+ | end | ||
+ | fprintf(fid, 'END;'); | ||
+ | fclose(fid); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
FONTE: http://www.alteraforum.com/forum/showthread.php?t=27934&highlight=text+to+mif+conversion | FONTE: http://www.alteraforum.com/forum/showthread.php?t=27934&highlight=text+to+mif+conversion |
Edição das 19h24min de 26 de fevereiro de 2013
Use o Matlab para criar o arquivo filename.mif para escrever 256 signed data de 16 bits.
% Gere um arquivo de audio usando o Audacity e exporte como .wav clear all; filename = 'data'; newData1 = importdata([filename '.wav']); data = newData1.data; plot(data); word_len = 13; % numero de bit dos dados na memória address_len = 9; % numero de bits do endereço da memória % Definindo o cabeçalho do arquivo .mif fid = fopen([filename '.mif'], 'wt'); fprintf(fid, 'DEPTH = %6d;\n', 2^address_len); fprintf(fid, 'WIDTH = %6d;\n', word_len); fprintf(fid, 'ADDRESS_RADIX = HEX;\n'); fprintf(fid, 'DATA_RADIX = BIN;\n'); fprintf(fid, 'CONTENT\n'); fprintf(fid, 'BEGIN\n'); % Gerando os pares e endereços e dados for N=1:2^address_len
dec_num = floor(data(N)*2^(word_len-2)); bin_num = signed2bin(dec_num,word_len); fprintf(fid, '%6.0x : %s ;\n', N-1, bin_num);
end fprintf(fid, 'END;'); fclose(fid);
FONTE: http://www.alteraforum.com/forum/showthread.php?t=27934&highlight=text+to+mif+conversion