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

Subversion Repositories usb_fpga_2_14

[/] [usb_fpga_2_14/] [trunk/] [constraints/] [convert.sh] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ZTEX
#!/bin/bash
2
 
3
for txt in *.txt; do
4
    ucf=${txt%*.txt}.ucf
5
    xdc=${txt%*.txt}.xdc
6
    tf=${txt%*.txt}.tmp
7
 
8
    rm -f $tf
9
    [ -f "${txt%*.txt}.repl" ] && cp ${txt%*.txt}.repl $tf
10
    cat convert.repl >> $tf
11
 
12
    echo "# !!! Constraint files are application specific !!!" > $ucf
13
    echo "# !!!          This is a template only          !!!" >> $ucf
14
    echo -e "\n# on-board signals\n" >> $ucf
15
 
16
    echo "# !!! Constraint files are application specific !!!" > $xdc
17
    echo "# !!!          This is a template only          !!!" >> $xdc
18
    echo -e "\n# on-board signals\n" >> $xdc
19
 
20
 
21
    pa=""
22
    while read a b c; do
23
        if [ "$pa" != "" -a "$a" = "" ]; then
24
            echo >> $ucf
25
            echo >> $xdc
26
        fi
27
        if [ "$a" = "-" ]; then
28
            if [ "$c" != "" ]; then
29
                case "$b" in
30
                    "CLKOUT/FXCLK")
31
                        echo "# CLKOUT/FXCLK " >> $ucf
32
                        echo "NET \"fxclk_in\" TNM_NET = \"fxclk_in\";" >> $ucf
33
                        echo "TIMESPEC \"ts_fxclk_in\" = PERIOD \"fxclk_in\" 48 MHz HIGH 50 %;" >> $ucf
34
                        echo "NET \"fxclk_in\"  LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;" >> $ucf
35
 
36
                        echo "# CLKOUT/FXCLK " >> $xdc
37
                        echo "create_clock -name fxclk_in -period 20.833 [get_ports fxclk_in]" >> $xdc
38
                        echo "set_property PACKAGE_PIN $c [get_ports fxclk_in]" >> $xdc
39
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports fxclk_in]" >> $xdc
40
                        ;;
41
                    "IFCLK")
42
                        echo "# IFCLK " >> $ucf
43
                        echo "NET \"ifclk_in\" TNM_NET = \"ifclk_in\";" >> $ucf
44
                        echo "TIMESPEC \"ts_ifclk_in\" = PERIOD \"ifclk_in\" 48 MHz HIGH 50 %;" >> $ucf
45
                        echo "NET \"ifclk_in\"  LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;" >> $ucf
46
 
47
                        echo "# IFCLK " >> $xdc
48
                        echo "create_clock -name ifclk_in -period 20.833 [get_ports ifclk_in]" >> $xdc
49
                        echo "set_property PACKAGE_PIN $c [get_ports ifclk_in]" >> $xdc
50
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports ifclk_in]" >> $xdc
51
                        ;;
52
                    "IFCLK100")
53
                        echo "# IFCLK " >> $ucf
54
                        echo "NET \"ifclk_in\" TNM_NET = \"ifclk_in\";" >> $ucf
55
                        echo "TIMESPEC \"ts_ifclk_in\" = PERIOD \"ifclk_in\" 100 MHz HIGH 50 %;" >> $ucf
56
                        echo "NET \"ifclk_in\"  LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;" >> $ucf
57
 
58
                        echo "# IFCLK " >> $xdc
59
                        echo "create_clock -name ifclk_in -period 10 [get_ports ifclk_in]" >> $xdc
60
                        echo "set_property PACKAGE_PIN $c [get_ports ifclk_in]" >> $xdc
61
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports ifclk_in]" >> $xdc
62
                        ;;
63
                    "CLK26")
64
                        echo "# CLK " >> $ucf
65
                        echo "NET \"clk_in\" TNM_NET = \"clk_in\";" >> $ucf
66
                        echo "TIMESPEC \"ts_clk_in\" = PERIOD \"clk_in\" 26 MHz HIGH 50 %;" >> $ucf
67
                        echo "NET \"clk_in\"  LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;" >> $ucf
68
 
69
                        echo "# CLK " >> $xdc
70
                        echo "create_clock -name clk_in -period 38.462 [get_ports clk_in]" >> $xdc
71
                        echo "set_property PACKAGE_PIN $c [get_ports clk_in]" >> $xdc
72
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports clk_in]" >> $xdc
73
                        ;;
74
                    *)
75
                        b2=`echo "$b" | tr -d "*" `
76
                        c2=`grep -i -m 1 -x "$b2.*" $tf | ( read a b c; echo $b )`
77
                        if [ "$c2" != "" ]; then
78
                            echo "NET \"$c2\"   LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;          # $b2"  | tr "[]" "<>" >> $ucf
79
 
80
#                       echo -e "\n# $b2" >> $xdc
81
#                       echo "set_property PACKAGE_PIN $c [get_ports {$c2}]" >> $xdc
82
                        echo -e "\nset_property PACKAGE_PIN $c [get_ports {$c2}]                ;# $b2" >> $xdc
83
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports {$c2}]" >> $xdc
84
                        else
85
                            echo "Unknown signal: $b" >&2
86
                            echo "$b" >> convert.unknown
87
                        fi
88
                        ;;
89
                esac
90
            fi
91
            pa=$a
92
        else
93
            pa=""
94
        fi
95
    done < $txt
96
 
97
    echo -e "\n# external I/O\n" >> $ucf
98
    echo -e "\n\n# external I/O" >> $xdc
99
 
100
    rm -f $tf
101
    pa=""
102
    while read a b c; do
103
        if [ "$a" != "-" -a "$c" != "" ]; then
104
            echo "$a    $c      $a / $b" >> $tf
105
        fi
106
    done < $txt
107
 
108
    pa="A"
109
    cnt=0
110
    sort -V $tf | while read a b c; do
111
        a0=${a:0:1}
112
        if [ "$a0" != "$pa" ]; then
113
            cnt=0
114
            echo >> $ucf
115
            echo >> $xdc
116
        fi
117
        echo "NET \"IO_$a0<$cnt>\"      LOC = \"$b\" | IOSTANDARD = LVCMOS33 ;          # $c"  >> $ucf
118
 
119
#       echo -e "\n# $c" >> $xdc
120
#       echo "set_property PACKAGE_PIN $b [get_ports {IO_$a0[$cnt]}]" >> $xdc
121
        echo -e "\nset_property PACKAGE_PIN $b [get_ports {IO_$a0[$cnt]}]               ;# $c" >> $xdc
122
        echo "set_property IOSTANDARD LVCMOS33 [get_ports {IO_$a0[$cnt]}]" >> $xdc
123
 
124
        let "cnt+=1"
125
        pa=$a0
126
    done
127
 
128
    rm -f $tf
129
done

powered by: WebSVN 2.1.0

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