Initial commit.
[freedom-sifive.git] / fpga / u500vc707devkit / script / init.tcl
1 proc recglob { basedir pattern } {
2 set dirlist [glob -nocomplain -directory $basedir -type d *]
3 set findlist [glob -nocomplain -directory $basedir $pattern]
4 foreach dir $dirlist {
5 set reclist [recglob $dir $pattern]
6 set findlist [concat $findlist $reclist]
7 }
8 return $findlist
9 }
10
11 proc findincludedir { basedir pattern } {
12 #find all subdirectories containing ".vh" files
13 set vhfiles [recglob $basedir $pattern]
14 set vhdirs {}
15 foreach match $vhfiles {
16 lappend vhdirs [file dir $match]
17 }
18 set uniquevhdirs [lsort -unique $vhdirs]
19 return $uniquevhdirs
20 }
21
22 file mkdir $ipdir
23 update_ip_catalog -rebuild
24
25 source [file join $scriptdir ip.tcl]
26
27 # AR 58526 <http://www.xilinx.com/support/answers/58526.html>
28 set_property GENERATE_SYNTH_CHECKPOINT {false} [get_files -all {*.xci}]
29 set obj [get_ips]
30 generate_target all $obj
31 export_ip_user_files -of_objects $obj -no_script -force
32
33 set obj [current_fileset]
34
35 # Xilinx bug workaround
36 # scrape IP tree for directories containing .vh files
37 # [get_property include_dirs] misses all IP core subdirectory includes if user has specified -dir flag in create_ip
38 set property_include_dirs [get_property include_dirs $obj]
39 set ip_include_dirs [concat $property_include_dirs [findincludedir $ipdir "*.vh"]]
40 set ip_include_dirs [concat $ip_include_dirs [findincludedir $srcdir "*.h"]]
41 set ip_include_dirs [concat $ip_include_dirs [findincludedir $srcdir "*.vh"]]