%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich
%%            http://www.iis.ee.ethz.ch/~sha3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;


%rnd    = 1;
nmax   = 3;
N      = 1;

disp(['Start generating ' num2str(N) ' messages'])


stm = fopen(['bmw256_stimuli.asc'], 'w', 'native');
exp = fopen(['bmw256_expresp.asc'], 'w', 'native');

% RESET Cycles

fprintf(stm, '%X %X %0128X\n', [0 0 0]);
fprintf(stm, '%X %X %0128X\n', [0 0 0]);
fprintf(stm, '%X %X %0128X\n', [1 0 0]);
fprintf(stm, '%X %X %0128X\n', [1 0 0]);

%%%%% START SIMULATION %%%%%

% RANDOM INPUT -------------------------------------------------------------
for vec=1:N,
    
  %if rnd == 0,
  %    n = nmax;
  %else
  %    n = ceil(nmax*rand(1));
  %end
  
  blocks = ceil(nmax*rand(1));
  
  %B = round((2^32-1)*rand([16,blocks]));
  
  %B = round((2^32-1)*ones(n,16));

  % power sim
  blocks = 2;
  B = round((2^32-1)*ones([16,blocks]));
  
  bmw256;

  for bl = 1:blocks
       
      fprintf(stm, '%X %X ', [1 1]);
      for dig=1:16
        fprintf(stm, '%08X', [B(dig,bl)]);
      end
      fprintf(stm, '\n');

      for i = 0:16
          fprintf(stm, '%X %X %0128X\n', [1 0 0]);
      end
  end
  
  for i = 0:18
          fprintf(stm, '%X %X %0128X\n', [1 0 0]);
  end
 
  %for dig=1:8
    fprintf(exp, '%s', [hash_string]);
  %end
  fprintf(exp, ' 1\n');
  


end

% END RANDOM INPUT -------------------------------------------------------------

fprintf(stm, '%X %X %0128X \n', [1 0 0 ]);
fprintf(stm, '%X %X %0128X \n', [1 0 0 ]);
fprintf(stm, '%X %X %0128X \n', [1 0 0 ]);
fprintf(stm, '%X %X %0128X \n', [1 0 0 ]);



fclose(stm);
fclose(exp);

disp('End generation')

Generated on Fri Sep 24 10:39:12 CEST 2010
Home