Mudanças entre as edições de "Quartus - Como inicializar uma memória usando arquivos .mif"
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 1: | Linha 1: | ||
− | Use o Matlab para criar o arquivo | + | Use o código para Matlab abaixo para criar o arquivo data.mif. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <code> | ||
+ | % Gere um arquivo de audio usando o Audacity e exporte como .wav | ||
+ | % Importando o arquivo .wav | ||
+ | clear all; | ||
+ | filename = 'data'; | ||
+ | newData1 = importdata([filename '.wav']); | ||
+ | data = newData1.data; | ||
+ | plot(data); | ||
+ | |||
+ | % Definindo o cabeçalho do arquivo .mif | ||
+ | word_len = 13; % numero de bit dos dados na memória | ||
+ | address_len = 9; % numero de bits do endereço da memória | ||
+ | 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); | ||
+ | |||
+ | </syntaxhighlight> | ||
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 atual tal como às 19h26min de 26 de fevereiro de 2013
Use o código para Matlab abaixo para criar o arquivo data.mif.
% Gere um arquivo de audio usando o Audacity e exporte como .wav
% Importando o arquivo .wav
clear all;
filename = 'data';
newData1 = importdata([filename '.wav']);
data = newData1.data;
plot(data);
% Definindo o cabeçalho do arquivo .mif
word_len = 13; % numero de bit dos dados na memória
address_len = 9; % numero de bits do endereço da memória
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);
</syntaxhighlight>
FONTE: http://www.alteraforum.com/forum/showthread.php?t=27934&highlight=text+to+mif+conversion