############################################################
## Copyright: 2011 Integrated Sytems Laboratory, ETH Zurich
##            http://www.iis.ee.ethz.ch/~sha3
############################################################
# Groestl is faster if we elaborate things separately 


## Compile SUBBYTES ------------------------------------------------------
current_design groestl_subbytes

# some dummy constraints
set_load [load_of ${LIB}/${LOAD_CELL}/${LOAD_PIN}] [all_outputs]
set_driving_cell -no_design_rule -library ${LIB} -lib_cell ${DRIV_CELL} -pin ${DRIV_PIN} [all_inputs]

# this should be common 
if  {[llength $CLOCKLIST] == 1 } {
  set_wire_load_model -library shabziger_chip_flat -name groestl_subbytes_0.top.i_ethz_groestl.i_p.i_subbytes_0_flat
}
# one fourth of the total period for subbytes.. harsh.. 
set subbytesdelay [expr $CLOCK/4] 
set_max_delay $subbytesdelay -to [all_outputs]

compile_ultra
set_dont_touch [find design groestl_sub*] true

## Compile TOP with SUBBytes dont touched --------------------------------
current_design ethz_groestl
compile_ultra -scan


## Uniquify and remove dont_touch ----------------------------------------

remove_attribute [find design groestl_sub*] dont_touch
current_design groestl_p
uniquify -cell [get_cells *sub*]

current_design groestl_q
uniquify -cell [get_cells *sub*]


# reset the wireload.. don't know if this is necessary
#if  {[llength $CLOCKLIST] == 1 } {
  foreach NUM {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15} {
    current_design groestl_subbytes_${NUM}
    ## this is an SBOX the wireload should be the same 
    set_wire_load_model -library shabziger_chip_flat -name groestl_subbytes_15.top.i_ethz_groestl.i_p.i_subbytes_0_flat
  }
#}

## Incremental compile --------------------------------------------------

current_design ethz_groestl
compile_ultra -incremental

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