############################################################ ## Copyright (C) 2013 Xilinx Inc. All rights reserved. ############################################################ puts "\n\n\n*SCRIPT -> pulling the list of cores supported per architecture - needs to create a project to retrieve them.\n\n\n" open_project -reset dummy_project_can_delete2 open_solution -reset "solution1" # Define clock rate create_clock -period "100MHz" # get the superset of the cores set_part virtex7 set v7_cores [lsort -nocase [list_core]] set all_parts [list spartan3 spartan6 virtex5 virtex6 virtex7] foreach my_part $all_parts { foreach core $v7_cores { set a($my_part,$core) 0; } } set really_all_cores {} # loop over part then cores foreach my_part $all_parts { set count 0 # reopen the solution so that the cores are updated when part is changed open_solution "solution1" set_part $my_part foreach core [lsort -nocase [list_core]] { incr count set a($my_part,$core) 1 lappend really_all_cores $core } puts "\n\n*SCRIPT -> found $count cores for '$my_part'\n\n" } puts "\n\n*SCRIPT table of supported cores for architectures : [join $all_parts " | "]" set all_cores [lsort -unique -nocase $really_all_cores] # now hopefully list all_cores is the same as list v7_cores # - if it's not then the script should break in the next loop # we could make this script more robust but this should be enough for now. # loop over cores then FPGA from the list to render a simple table, line by line set count 0 foreach core $all_cores { incr count puts -nonewline [format "| %2d | %-17s |" $count $core] foreach my_part $all_parts { if {$a($my_part,$core)>0} { puts -nonewline " X |" } else { puts -nonewline " - |" } } puts } exit