OpenCores
URL https://opencores.org/ocsvn/minsoc/minsoc/trunk

Subversion Repositories minsoc

[/] [minsoc/] [branches/] [rc-1.0/] [backend/] [spartan3e_starter_kit/] [configure] - Blame information for rev 152

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 64 rfajardo
#!/bin/bash
2
 
3 66 rfajardo
#NON STANDARD SCRIPT, USE ANOTHER AS TEMPLATE, NON STANDARD PART IS MARKED AS COMMENT
4
 
5 64 rfajardo
#new boards have to udpate this
6
BOARD=spartan3e_starter_kit                                             #this has to have the name of the directory this file is in
7
DEVICE_PART='xc3s500e-4-fg320'
8
CONSTRAINT_FILE='spartan3e_starter_kit.ucf'
9
#~new boards update
10
 
11
#system workings
12
MINSOC_DIR=`pwd`/../..
13
BACKEND_DIR=$MINSOC_DIR/backend
14
SYN_DIR=$MINSOC_DIR/syn
15 85 rfajardo
SYNSRC_DIR=$MINSOC_DIR/prj/xilinx
16 64 rfajardo
SYNSUPPORT_DIR=$SYN_DIR/buildSupport
17 85 rfajardo
MAKEFILE_DIR=$SYN_DIR/xilinx
18 64 rfajardo
 
19 85 rfajardo
SYN_FILES=(ethmac.xst uart_top.xst adbg_top.xst or1200_top.xst minsoc_top.xst)
20
MAKEFILE=Makefile
21 64 rfajardo
 
22
FIND_PART='DEVICE_PART'
23
FIND_CONSTRAINT='CONSTRAINT_FILE'
24
 
25
BOARD_DIR=$BACKEND_DIR/$BOARD
26 69 rfajardo
BOARD_FILES=(board.h orp.ld minsoc_defines.v minsoc_bench_defines.v gcc-opt.mk $CONSTRAINT_FILE)
27 64 rfajardo
 
28
in_minsoc=`pwd | grep minsoc/backend/${BOARD}$`
29
if [ -z $in_minsoc ]
30
then
31
        echo ""
32
        echo "                  !!!WARNING!!!"
33 85 rfajardo
        echo "This script cannot be run if not in a board directory inside minsoc/backend,"
34 64 rfajardo
        echo "because it relies on the directory structure of the minsoc system."
35
        echo ""
36 85 rfajardo
        echo "Possibly your minsoc directory is named differently, minsoc_trunk for example."
37
        echo "Its name must be minsoc only."
38
        echo ""
39 87 rfajardo
    exit 1
40 64 rfajardo
fi
41
 
42 66 rfajardo
#NON STANDARD SCRIPT PART
43
echo "THIS SCRIPT HAS A NON-STANDARD BEGINNING."
44
echo "__________________________________________________________________________"
45 118 rfajardo
echo "${BOARD} requires another configuration for or1200_rel1."
46 66 rfajardo
 
47 64 rfajardo
echo ""
48 66 rfajardo
echo "Copying or1200_defines.v, to or1200 implementation directory..."
49
echo "(minsoc/rtl/verilog/or1200/rtl/verilog)"
50
echo "__________________________________________________________________________"
51
cp $BOARD_DIR/or1200_defines.v $MINSOC_DIR/rtl/verilog/or1200/rtl/verilog
52
echo ""
53
echo "REGULAR SCRIPT STARTS NOW"
54
echo "__________________________________________________________________________"
55
#~NON STANDARD SCRIPT PART
56
 
57
echo ""
58 97 rfajardo
echo "This script sets up the SoC for simulations and synthesis."
59 64 rfajardo
echo ""
60 97 rfajardo
echo "In order to do so, SoC board's specific files for firmware compilation, "
61
echo "testbench generation and synthesis are configured."
62
echo "Firmware and testbench looks for board specific files under $BACKEND_DIR."
63
echo "Synthesis work under $SYN_DIR."
64 64 rfajardo
echo ""
65 97 rfajardo
echo ""
66 64 rfajardo
 
67 116 rfajardo
echo "Copying board specific SoC files from $BOARD_DIR to $BACKEND_DIR directory."
68
echo "__________________________________________________________________________"
69
echo ""
70
for file in "${BOARD_FILES[@]}"
71
do
72
    if [ $file != NONE ]
73
    then
74
        echo "Copying $file, to backend directory..."
75
        cp $BOARD_DIR/$file $BACKEND_DIR
76
    fi
77
done
78
echo ""
79
echo ""
80
 
81 97 rfajardo
echo "Generating project files for simulation and synthesis..."
82 116 rfajardo
echo "__________________________________________________________________________"
83
echo ""
84 97 rfajardo
make -C $MINSOC_DIR/prj
85
echo "Generation complete."
86
echo ""
87 116 rfajardo
echo ""
88 97 rfajardo
 
89 64 rfajardo
if [ $CONSTRAINT_FILE == 'NONE' ]
90
then
91
    echo "Skipping synthesis preparation. Standard implementation can only be simulated."
92 116 rfajardo
    echo ""
93
    echo ""
94 64 rfajardo
else
95 97 rfajardo
    echo "Device part for files under $SYNSRC_DIR will be patched and stored "
96 64 rfajardo
    echo "temporarily."
97 97 rfajardo
    echo "Afterwards, they are copied to $SYNSUPPORT_DIR."
98 64 rfajardo
    echo "__________________________________________________________________________"
99
    echo ""
100
    for file in "${SYN_FILES[@]}"
101
    do
102
        echo "Updating synthesis file, $file..."
103
        echo "Copying $file to synthesis directory..."
104
        echo ""
105
        sed "s/$FIND_PART/$DEVICE_PART/g" $SYNSRC_DIR/$file > TMPFILE
106
        sed "s/$FIND_CONSTRAINT/$CONSTRAINT_FILE/g" TMPFILE > TMPFILE2 && mv TMPFILE2 $SYNSUPPORT_DIR/$file
107
        rm TMPFILE
108
    done
109
 
110 97 rfajardo
    echo "Updating Makefile file under $MAKEFILE_DIR..."
111
    echo "Copying Makefile to synthesis directory, $SYN_DIR..."
112 85 rfajardo
    echo ""
113
    sed "s/$FIND_PART/$DEVICE_PART/g" $MAKEFILE_DIR/$MAKEFILE > TMPFILE
114
    sed "s/$FIND_CONSTRAINT/$CONSTRAINT_FILE/g" TMPFILE > TMPFILE2 && mv TMPFILE2 $SYN_DIR/$MAKEFILE
115
    rm TMPFILE
116 105 rfajardo
    cp $MAKEFILE_DIR/setup.bat $SYN_DIR/setup.bat
117 116 rfajardo
    echo ""
118
    echo ""
119 64 rfajardo
fi
120
 
121 143 rfajardo
#Precompiling firmwares
122
echo "Precompiling delivered libraries and firmwares..."
123
make -C ../../sw/utils
124
make -C ../../sw/support
125
make -C ../../sw/drivers
126
make -C ../../sw/uart
127
make -C ../../sw/eth
128
echo "done."
129
echo ""
130
echo ""
131
 
132 116 rfajardo
echo "Configuration done."

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.