#!/bin/bash

#
# This file shows the command sequence that matches the
# Alliance Makefile (I think). It can be run simply:
# $ bash flow.txt
#

export VASY=../../bin/vasy
export FLATBEH=../../bin/flatbeh
export BOOM=../../bin/boom
export BOOG=../../bin/boog
export LOON=../../bin/loon
export ASIMUT=../../bin/asimut
export LVX=../../bin/lvx
export X2Y=../../bin/x2y
export FLATLO=../../bin/flatlo
export OCP=../../bin/ocp
export NERO=../../bin/nero
export PDV=../../bin/pdv
export DRUC=../../bin/druc
export COUGAR=../../bin/cougar
export LVX=../../bin/lvx
export S2R=../../bin/s2r
export CRIT_PATH=../../bin/find_crit_path
export BOOG_CHECK=../../bin/boog_check
export LOON_CHECK=../../bin/loon_check

export MBK_TARGET_LIB=../../cells/sxlib100
export RDS_TECHNO_NAME=../../etc/cmos.rds
export MBK_SPI_MODEL=../../etc/spimodel.cfg
export DREAL_TECHNO_NAME=../../etc/cmos.dreal
export GRAAL_TECHNO_NAME=../../etc/cmos.graal

export MBK_WORK_LIB=.
export MBK_CATAL_NAME=NO_CATAL
$VASY -a -B -o -p -I vhdl adder4            # adder4.vbe

export MBK_WORK_LIB=.
export MBK_CATAL_NAME=CATAL_ASIMUT_VASY
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
$ASIMUT -b adder4 ../adder4 res_vasy >/dev/null

export MBK_WORK_LIB=.
export MBK_CATAL_NAME=CATAL
$BOOM -VP adder4 adder4_o                   # adder4_o.vbe

export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_TARGET_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$BOOG adder4_o                              # adder4_o.vst

export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_TARGET_LIB=$MBK_TARGET_LIB
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$LOON adder4_o adder4                       # adder4.vst
#Critical path (no warranty)...2032 ps from 'b 0' to 'result 3'

export MBK_WORK_LIB=.
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
$ASIMUT adder4 ../adder4 res_loon >/dev/null

export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_CATA_LIB=$MBK_TARGET_LIB
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$OCP -ioc ../adder4 adder4 adder4_p         # adder4_p.ap

export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
$NERO -V -2 -p adder4_p adder4 adder4       # adder4.ap
#    o  Allocating grid size [33,41,3].
#  o  Routing stats :
#     - routing iterations    := 9015
#     - re-routing iterations := 0
#     - ratio                 := 0%.
$PDV adder4
#  - ALU2 length  :=       1335  (average length := 23)
#  - ALU3 length  :=       1220  (average length := 45)
#  - Total length :=       2555  (average length := 28)
#  - Total VIA    :=         99

export MBK_WORK_LIB=.
export MBK_IN_LO=spi
export MBK_OUT_LO=spi
export MBK_SPI_MODEL=$MBK_SPI_MODEL
export MBK_SPI_ONE_NODE_NORC="true"
export MBK_SPI_NAMEDNODES="true"
export RDS_TECHNO_NAME=$RDS_TECHNO_NAME
export RDS_IN=cif
export RDS_OUT=cif
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
$COUGAR -v -ac adder4 adder4_e              # adder4_e.spi
$COUGAR -v -ar adder4 adder4_erc            # adder4_erc.spi
$COUGAR
export MBK_IN_LO=al
export MBK_OUT_LO=al
$COUGAR -v -ac adder4 adder4_e              # adder4_e.al

export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$LVX vst al adder4 adder4_e -f

export MBK_WORK_LIB=.
export RDS_TECHNO_NAME=$RDS_TECHNO_NAME
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$DRUC adder4

export MBK_WORK_LIB=.
export RDS_TECHNO_NAME=$RDS_TECHNO_NAME
export DREAL_TECHNO_NAME=$DREAL_TECHNO_NAME
export GRAAL_TECHNO_NAME=$GRAAL_TECHNO_NAME
export RDS_IN=cif
export RDS_OUT=cif
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$S2R -v adder4                              # adder4.cif

export MBK_WORK_LIB=.
export RDS_TECHNO_NAME=$RDS_TECHNO_NAME
export DREAL_TECHNO_NAME=$DREAL_TECHNO_NAME
export GRAAL_TECHNO_NAME=$GRAAL_TECHNO_NAME
export RDS_IN=gds
export RDS_OUT=gds
export MBK_IN_PH=ap
export MBK_OUT_PH=ap
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$S2R -v adder4                              # adder4.gds

# Add script to print out critical path
export MBK_WORK_LIB=.
export MBK_IN_LO=vst
export MBK_OUT_LO=vst
export MBK_TARGET_LIB=$MBK_TARGET_LIB
export MBK_CATA_LIB=$MBK_TARGET_LIB
cp $MBK_TARGET_LIB/SXLIB100 .
export MBK_CATAL_NAME=SXLIB100
$CRIT_PATH adder4 | tee adder4_0.path
export MBK_TARGET_LIB=../../cells/sxlib100_6
$LOON -m 0 adder4 adder4_6
$CRIT_PATH adder4_6 | tee adder4_6.path

#export RDS_IN=cif
#export RDS_OUT=cif
#../../bin/l2p -color -drawingsize=725x1068 -noheader -real -rflattentrans -nrfname -niname -nsname -scale=0.5 adder4
