#! /usr/bin/perl -w ############################################################ ## Copyright: 2011 Integrated Sytems Laboratory, ETH Zurich ## http://www.iis.ee.ethz.ch/~sha3 ############################################################ use strict; # v0.1 - kgf@ee.ethz.ch - Wed Oct 5 13:04:57 CEST 2011 # - this has to be a perl script now, csh script was not enough # constants my $VER="10.0b"; my $LOG="modelsim_run.log"; my $ELAB="postlayout.elab"; my $VCD="power.vcd"; my $DO="power.do"; my $NUMBLOCKS="1000"; my $PROBABILITY="20"; my $VCDDIR="/usr/scratch/antalya/kgf/shabziger/vcd"; unlink $LOG; my %ALGORITHM = ( "ethz_sha2" => "0000", "ethz_blake" => "0001", "ethz_groestl" => "0010", "ethz_jh" => "0011", "ethz_keccak" => "0100", "ethz_skein" => "0101", "gmu_sha2" => "1000", "gmu_blake" => "1001", "gmu_groestl" => "1010", "gmu_jh" => "1011", "gmu_keccak" => "1100", "gmu_skein" => "1101" ) ; my @ALGS= qw| ethz_blake ethz_groestl ethz_jh ethz_keccak ethz_sha2 ethz_skein gmu_blake gmu_groestl gmu_jh gmu_keccak gmu_sha2 gmu_skein |; foreach my $a (@ALGS){ print "Running algorithm $a\n"; open (CONF, "> ../simvectors/config.txt") or die "Can not open ../simvectors/config.txt\n"; print CONF<<"BUGU"; % The configuration file for shabziger % % All numbers in binary % First entry is algorithm select % Second is the number of blocks to run % | Third number is the (inverse) probability to generate a finblock signal % | | Fourth number is 73 bits of LFSR seed-----------------------------------| % | | |LSB | MSB| $ALGORITHM{$a} $NUMBLOCKS $PROBABILITY 1000000000000000000000000010000000000000000000000000000000000000000000000 BUGU close(CONF); open(DO, "> $DO") or die "can not open do file $DO\n"; print DO<<"BUGU"; run 1500 ns; vcd file $VCDDIR/${a}_${VCD}; vcd add -r /shabziger_chip_tb/DUT/*; run 50us quit; BUGU close(DO); my $cmd="vsim-${VER} -load_elab postlayout.elab -do power.do >> $LOG"; print "running [$cmd]\n"; system ($cmd); }