#! /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 Sep 21 18:00:56 CEST 2011
# - adapted from gen_mmmc.pl

my @ALGS=qw|ethz_sha2 ethz_blake ethz_groestl ethz_jh ethz_keccak ethz_skein
             gmu_sha2  gmu_blake  gmu_groestl  gmu_jh  gmu_keccak  gmu_skein
            dummy ram1 ram2 ram3 |;
             
my $DEBUG=1;  # set to 0 for less messages 

# Generate files with this pattern
my @MULT=qw|1.00 1.10 1.20 1.30 1.40 1.50 1.80 1.20|;
my $TEMP = "temp.tcl";


# update clocks from the design_settings.tcl for the algorithms
foreach my $a (@ALGS){
 next unless ($a=~/^(ethz|gmu)/); #skip dummy and ram
 my $file = "../../${a}/synopsys/scripts/design_settings.tcl";


 if (-f $file){
   open (F, "< $file") or die "ERROR: can not open $file for reading\n";
   print "opening $file\n" if $DEBUG;
   open (T, "> $TEMP") or die "Something wrong with temp file $TEMP\n";
   while (F){
     if (s/^\s*set CLOCKLIST\s*\{//){  # only when this executes true
       s/\}//;                         # get rid of the last paranthesis
       my @s = split;                  # should be just alist of numbers
       print T "# set CLOCKLIST { @s }\n"; 
       my $val = pop(@s);              # the last guy
       print T "#\n# Automated values\n#\nset CLOCKLIST { ";
       foreach my $m (@MULT){
         my $new = int(($val * $m) * 20)/20;
         printf(T "%4.2f ",$new);
       }
       print T "}\n";
     }
     else{
      print T;
     }
   }
   close(F);
   close(T);
   # now move the temp file to the original
   rename($TEMP, $file);
 }
}

Generated on Tue Nov 22 15:16:34 CET 2011
Home