#!/bin/csh
alias cva ./cva/cva
alias cvc ./cvc/cvc

# Create a directory where VHDL libraries will be stored.
setenv store ./tmp/cv
/bin/rm -fr $store
/bin/mkdir -p $store

# Declare VHDL library logical names and map them to physical (directory)
# names. Create those directories.
setenv std $store/std
/bin/mkdir -p $std
setenv ring $store/ring
/bin/mkdir -p $ring
setenv latch $store/latch
/bin/mkdir -p $latch
setenv stack $store/stack
/bin/mkdir -p $stack
setenv dme2 $store/dme2
/bin/mkdir -p $dme2

# Create the STD library (not IEEE compliant !)
setenv work std
cva vhdl/std/standard 

# First example(s): token rings with 2 to 4 addresses.
setenv work ring
cva vhdl/ring/entity 
cva vhdl/ring/two 
cvc vhdl/ring/safety2 
cvc vhdl/ring/progress2 
cva vhdl/ring/three 
cvc vhdl/ring/safety3
cvc vhdl/ring/progress3 
cva vhdl/ring/four 
cvc vhdl/ring/safety4 
cvc vhdl/ring/progress4 

# Second example: latch
setenv work latch 
cva vhdl/latch/latch 
cvc vhdl/latch/exclusive-outputs 
cvc vhdl/latch/load 
cvc vhdl/latch/reset 

# Third example: stack
setenv work stack 
cva vhdl/stack/entity 
cva vhdl/stack/three 
cvc -hstill-inputs vhdl/stack/three 

# Fourth example: distributed mutual exclusion
setenv work dme2 
cva vhdl/dme2/dme2 
cvc -hstill-inputs -W vhdl/dme2/mutex 
