#!/bin/sh
|
#!/bin/sh
|
# $Id: xilinx_ghdl_simprim 547 2013-12-29 13:10:07Z mueller $
|
# $Id: xilinx_ghdl_simprim 547 2013-12-29 13:10:07Z mueller $
|
#
|
#
|
# Revision History:
|
# Revision History:
|
# Date Rev Vers Comment
|
# Date Rev Vers Comment
|
# 2009-11-08 248 1.1 adopt to ISE 11.1, use VITAL models from ./primitive
|
# 2009-11-08 248 1.1 adopt to ISE 11.1, use VITAL models from ./primitive
|
# 2007-10-26 92 1.0 Initial version
|
# 2007-10-26 92 1.0 Initial version
|
#
|
#
|
|
|
if [ -z "$XILINX" ]
|
if [ -z "$XILINX" ]
|
then
|
then
|
echo "XILINX not defined"
|
echo "XILINX not defined"
|
exit 1
|
exit 1
|
fi
|
fi
|
#
|
#
|
cd $XILINX
|
cd $XILINX
|
echo "============================================================"
|
echo "============================================================"
|
echo "* Build ghdl SIMPRIM libs for $XILINX"
|
echo "* Build ghdl SIMPRIM libs for $XILINX"
|
echo "============================================================"
|
echo "============================================================"
|
#
|
#
|
if [ ! -d ghdl ]
|
if [ ! -d ghdl ]
|
then
|
then
|
mkdir ghdl
|
mkdir ghdl
|
fi
|
fi
|
#
|
#
|
cd $XILINX/ghdl
|
cd $XILINX/ghdl
|
if [ ! -d simprim ]
|
if [ ! -d simprim ]
|
then
|
then
|
mkdir simprim
|
mkdir simprim
|
fi
|
fi
|
#
|
#
|
cd $XILINX/ghdl/simprim
|
cd $XILINX/ghdl/simprim
|
cp $XILINX/vhdl/src/simprims/simprim_Vcomponents.vhd .
|
cp $XILINX/vhdl/src/simprims/simprim_Vcomponents.vhd .
|
cp $XILINX/vhdl/src/simprims/simprim_Vpackage.vhd .
|
cp $XILINX/vhdl/src/simprims/simprim_Vpackage.vhd .
|
#
|
#
|
# for ISE 11.1 the VITAL models are individually in sub-dir primitives
|
# for ISE 11.1 the VITAL models are individually in sub-dir primitives
|
# and vhdl_analyze_order is a file with best compilation order
|
# and vhdl_analyze_order is a file with best compilation order
|
# for ISE 10 and before all VITAL models are in one concatenetaed file
|
# for ISE 10 and before all VITAL models are in one concatenetaed file
|
# in this case xilinx_vhdl_chop will chop this into individual model files
|
# in this case xilinx_vhdl_chop will chop this into individual model files
|
#
|
#
|
if [ ! -d primitive ]
|
if [ ! -d primitive ]
|
then
|
then
|
mkdir primitive
|
mkdir primitive
|
fi
|
fi
|
cd primitive
|
cd primitive
|
#
|
#
|
if [ -d $XILINX/vhdl/src/simprims/primitive ]
|
if [ -d $XILINX/vhdl/src/simprims/primitive ]
|
then
|
then
|
cp -p $XILINX/vhdl/src/simprims/primitive/other/*.vhd .
|
cp -p $XILINX/vhdl/src/simprims/primitive/other/*.vhd .
|
cp -p $XILINX/vhdl/src/simprims/primitive/other/vhdl_analyze_order .
|
cp -p $XILINX/vhdl/src/simprims/primitive/other/vhdl_analyze_order .
|
else
|
else
|
xilinx_vhdl_chop $XILINX/vhdl/src/simprims/simprim_VITAL.vhd
|
xilinx_vhdl_chop $XILINX/vhdl/src/simprims/simprim_VITAL.vhd
|
find . -maxdepth 1 -name "*.vhd" | perl -p -e 's|\./||' > vhdl_analyze_order
|
find . -maxdepth 1 -name "*.vhd" | perl -p -e 's|\./||' > vhdl_analyze_order
|
fi
|
fi
|
#
|
#
|
xilinx_vhdl_memcolltype_fix
|
xilinx_vhdl_memcolltype_fix
|
#
|
#
|
cd ..
|
cd ..
|
echo "# ghdl ... simprim_Vcomponents.vhd"
|
echo "# ghdl ... simprim_Vcomponents.vhd"
|
ghdl -a --ieee=synopsys --work=simprim --no-vital-checks simprim_Vcomponents.vhd
|
ghdl -a --ieee=synopsys --work=simprim --no-vital-checks simprim_Vcomponents.vhd
|
echo "# ghdl ... simprim_Vpackage.vhd"
|
echo "# ghdl ... simprim_Vpackage.vhd"
|
ghdl -a --ieee=synopsys --work=simprim --no-vital-checks simprim_Vpackage.vhd
|
ghdl -a --ieee=synopsys --work=simprim --no-vital-checks simprim_Vpackage.vhd
|
|
|
for file in `cat primitive/vhdl_analyze_order`
|
for file in `cat primitive/vhdl_analyze_order`
|
do
|
do
|
echo "# ghdl ... primitive/$file"
|
echo "# ghdl ... primitive/$file"
|
ghdl -a -fexplicit --ieee=synopsys --work=simprim \
|
ghdl -a -fexplicit --ieee=synopsys --work=simprim \
|
--no-vital-checks primitive/$file 2>&1 |\
|
--no-vital-checks primitive/$file 2>&1 |\
|
tee primitive/$file.ghdl.log
|
tee primitive/$file.ghdl.log
|
done
|
done
|
#
|
#
|
echo "--- scan for compilation errors:"
|
echo "--- scan for compilation errors:"
|
find primitive -name "*.ghdl.log" | xargs grep error
|
find primitive -name "*.ghdl.log" | xargs grep error
|
#
|
#
|
|
|