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

Subversion Repositories usb_fpga_2_04

[/] [usb_fpga_2_04/] [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
                    *)
53
                        b2=`echo "$b" | tr -d "*" `
54
                        c2=`grep -i -m 1 -x "$b2.*" $tf | ( read a b c; echo $b )`
55
                        if [ "$c2" != "" ]; then
56
                            echo "NET \"$c2\"   LOC = \"$c\" | IOSTANDARD = LVCMOS33 ;          # $b2"  | tr "[]" "<>" >> $ucf
57
 
58
#                       echo -e "\n# $b2" >> $xdc
59
#                       echo "set_property PACKAGE_PIN $c [get_ports {$c2}]" >> $xdc
60
                        echo -e "\nset_property PACKAGE_PIN $c [get_ports {$c2}]                ;# $b2" >> $xdc
61
                        echo "set_property IOSTANDARD LVCMOS33 [get_ports {$c2}]" >> $xdc
62
                        else
63
                            echo "Unknown signal: $b" >&2
64
                            echo "$b" >> convert.unknown
65
                        fi
66
                        ;;
67
                esac
68
            fi
69
            pa=$a
70
        else
71
            pa=""
72
        fi
73
    done < $txt
74
 
75
    echo -e "\n# external I/O\n" >> $ucf
76
    echo -e "\n\n# external I/O" >> $xdc
77
 
78
    rm -f $tf
79
    pa=""
80
    while read a b c; do
81
        if [ "$a" != "-" -a "$c" != "" ]; then
82
            echo "$a    $c      $a / $b" >> $tf
83
        fi
84
    done < $txt
85
 
86
    pa="A"
87
    cnt=0
88
    sort -V $tf | while read a b c; do
89
        a0=${a:0:1}
90
        if [ "$a0" != "$pa" ]; then
91
            cnt=0
92
            echo >> $ucf
93
            echo >> $xdc
94
        fi
95
        echo "NET \"IO_$a0<$cnt>\"      LOC = \"$b\" | IOSTANDARD = LVCMOS33 ;          # $c"  >> $ucf
96
 
97
#       echo -e "\n# $c" >> $xdc
98
#       echo "set_property PACKAGE_PIN $b [get_ports {IO_$a0[$cnt]}]" >> $xdc
99
        echo -e "\nset_property PACKAGE_PIN $b [get_ports {IO_$a0[$cnt]}]               ;# $c" >> $xdc
100
        echo "set_property IOSTANDARD LVCMOS33 [get_ports {IO_$a0[$cnt]}]" >> $xdc
101
 
102
        let "cnt+=1"
103
        pa=$a0
104
    done
105
 
106
    rm -f $tf
107
done

powered by: WebSVN 2.1.0

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