fifo.tcl 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. # Set the reference directory for source file relative paths (by default the value is script directory path)
  2. set origin_dir "."
  3. # Use origin directory path location variable, if specified in the tcl shell
  4. if { [info exists ::origin_dir_loc] } {
  5. set origin_dir $::origin_dir_loc
  6. }
  7. # Set the project name
  8. set _xil_proj_name_ "fifo"
  9. # Use project name variable, if specified in the tcl shell
  10. if { [info exists ::user_project_name] } {
  11. set _xil_proj_name_ $::user_project_name
  12. }
  13. variable script_file
  14. set script_file ".exported.tcl"
  15. # Help information for this script
  16. proc print_help {} {
  17. variable script_file
  18. puts "\nDescription:"
  19. puts "Recreate a Vivado project from this script. The created project will be"
  20. puts "functionally equivalent to the original project for which this script was"
  21. puts "generated. The script contains commands for creating a project, filesets,"
  22. puts "runs, adding/importing sources and setting properties on various objects.\n"
  23. puts "Syntax:"
  24. puts "$script_file"
  25. puts "$script_file -tclargs \[--origin_dir <path>\]"
  26. puts "$script_file -tclargs \[--project_name <name>\]"
  27. puts "$script_file -tclargs \[--help\]\n"
  28. puts "Usage:"
  29. puts "Name Description"
  30. puts "-------------------------------------------------------------------------"
  31. puts "\[--origin_dir <path>\] Determine source file paths wrt this path. Default"
  32. puts " origin_dir path value is \".\", otherwise, the value"
  33. puts " that was set with the \"-paths_relative_to\" switch"
  34. puts " when this script was generated.\n"
  35. puts "\[--project_name <name>\] Create project with the specified name. Default"
  36. puts " name is the name of the project from where this"
  37. puts " script was generated.\n"
  38. puts "\[--help\] Print help information for this script"
  39. puts "-------------------------------------------------------------------------\n"
  40. exit 0
  41. }
  42. if { $::argc > 0 } {
  43. for {set i 0} {$i < $::argc} {incr i} {
  44. set option [string trim [lindex $::argv $i]]
  45. switch -regexp -- $option {
  46. "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] }
  47. "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] }
  48. "--help" { print_help }
  49. default {
  50. if { [regexp {^-} $option] } {
  51. puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n"
  52. return 1
  53. }
  54. }
  55. }
  56. }
  57. }
  58. # Set the directory path for the original project from where this script was exported
  59. set orig_proj_dir "[file normalize "sources/fifo"]"
  60. # Create project
  61. create_project fifo workspace/fifo
  62. # Set the directory path for the new project
  63. set proj_dir [get_property directory [current_project]]
  64. # Set project properties
  65. set obj [current_project]
  66. set_property -name "board_part_repo_paths" -value "/home/windows/repos/vhdl-modules/workspace/vivado-boards/new/board_files" -objects $obj
  67. set_property -name "default_lib" -value "xil_defaultlib" -objects $obj
  68. set_property -name "dsa.accelerator_binary_content" -value "bitstream" -objects $obj
  69. set_property -name "dsa.accelerator_binary_format" -value "xclbin2" -objects $obj
  70. set_property -name "dsa.description" -value "Vivado generated DSA" -objects $obj
  71. set_property -name "dsa.dr_bd_base_address" -value "0" -objects $obj
  72. set_property -name "dsa.emu_dir" -value "emu" -objects $obj
  73. set_property -name "dsa.flash_interface_type" -value "bpix16" -objects $obj
  74. set_property -name "dsa.flash_offset_address" -value "0" -objects $obj
  75. set_property -name "dsa.flash_size" -value "1024" -objects $obj
  76. set_property -name "dsa.host_architecture" -value "x86_64" -objects $obj
  77. set_property -name "dsa.host_interface" -value "pcie" -objects $obj
  78. set_property -name "dsa.num_compute_units" -value "60" -objects $obj
  79. set_property -name "dsa.platform_state" -value "pre_synth" -objects $obj
  80. set_property -name "dsa.vendor" -value "xilinx" -objects $obj
  81. set_property -name "dsa.version" -value "0.0" -objects $obj
  82. set_property -name "enable_vhdl_2008" -value "1" -objects $obj
  83. set_property -name "ip_cache_permissions" -value "read write" -objects $obj
  84. set_property -name "ip_output_repo" -value "" -objects $obj
  85. set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj
  86. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  87. set_property -name "sim.central_dir" -value "" -objects $obj
  88. set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj
  89. set_property -name "simulator_language" -value "Mixed" -objects $obj
  90. set_property -name "webtalk.activehdl_export_sim" -value "4" -objects $obj
  91. set_property -name "webtalk.ies_export_sim" -value "4" -objects $obj
  92. set_property -name "webtalk.modelsim_export_sim" -value "4" -objects $obj
  93. set_property -name "webtalk.questa_export_sim" -value "4" -objects $obj
  94. set_property -name "webtalk.riviera_export_sim" -value "4" -objects $obj
  95. set_property -name "webtalk.vcs_export_sim" -value "4" -objects $obj
  96. set_property -name "webtalk.xsim_export_sim" -value "4" -objects $obj
  97. set_property -name "webtalk.xsim_launch_sim" -value "4" -objects $obj
  98. set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj
  99. # Create 'sources_1' fileset (if not found)
  100. if {[string equal [get_filesets -quiet sources_1] ""]} {
  101. create_fileset -srcset sources_1
  102. }
  103. # Set IP repository paths
  104. set obj [get_filesets sources_1]
  105. # set_property "ip_repo_paths" "[file normalize "$origin_dir/workspace/ip_repo"]" $obj
  106. set_property "ip_repo_paths" "[file normalize "workspace/ip_repo"]" $obj
  107. # Rebuild user ip_repo's index before adding any source files
  108. update_ip_catalog -rebuild
  109. puts "*** BEGINNING TO RECONSTRUCT BLOCK DESIGNS"
  110. foreach {bd_file} [glob sources/fifo.bd/*] {
  111. source $bd_file
  112. }
  113. add_files -norecurse -force [make_wrapper -files [get_files design_1.bd] -top]
  114. foreach {fileset} [get_filesets -filter {FILESET_TYPE =~ {*Srcs}}] {
  115. update_compile_order -fileset $fileset
  116. }
  117. puts "*** FINISHED RECONSTRUCTING BLOCK DESIGNS"
  118. # Set 'sources_1' fileset object
  119. set obj [get_filesets sources_1]
  120. # Import local files from the original project
  121. set files [list \
  122. ]
  123. # set imported_files [import_files -fileset sources_1 $files]
  124. # Set 'sources_1' fileset file properties for remote files
  125. # None
  126. # Set 'sources_1' fileset file properties for local files
  127. # None
  128. # Set 'sources_1' fileset properties
  129. set obj [get_filesets sources_1]
  130. set_property -name "top" -value "design_1_wrapper" -objects $obj
  131. set_property -name "top_auto_set" -value "0" -objects $obj
  132. # Create 'constrs_1' fileset (if not found)
  133. if {[string equal [get_filesets -quiet constrs_1] ""]} {
  134. create_fileset -constrset constrs_1
  135. }
  136. # Set 'constrs_1' fileset object
  137. set obj [get_filesets constrs_1]
  138. # Add/Import constrs file and set constrs file properties
  139. # set file "[file normalize ${origin_dir}/workspace/fifo/fifo.srcs/constrs_1/imports/new/nexys_4_ddr.xdc]"
  140. # set file_imported [import_files -fileset constrs_1 [list $file]]
  141. # set file "new/nexys_4_ddr.xdc"
  142. # set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
  143. # set_property -name "file_type" -value "XDC" -objects $file_obj
  144. # Set 'constrs_1' fileset properties
  145. set obj [get_filesets constrs_1]
  146. set_property -name "target_constrs_file" -value "" -objects $obj
  147. set_property -name "target_part" -value "xc7a100tcsg324-1" -objects $obj
  148. set_property -name "target_ucf" -value "" -objects $obj
  149. # Create 'sim_1' fileset (if not found)
  150. if {[string equal [get_filesets -quiet sim_1] ""]} {
  151. create_fileset -simset sim_1
  152. }
  153. # Set 'sim_1' fileset object
  154. set obj [get_filesets sim_1]
  155. # Empty (no sources present)
  156. # Set 'sim_1' fileset properties
  157. set obj [get_filesets sim_1]
  158. set_property -name "top" -value "design_1_wrapper" -objects $obj
  159. set_property -name "top_auto_set" -value "0" -objects $obj
  160. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  161. # Set 'utils_1' fileset object
  162. set obj [get_filesets utils_1]
  163. # Empty (no sources present)
  164. # Set 'utils_1' fileset properties
  165. set obj [get_filesets utils_1]
  166. # Adding sources referenced in BDs, if not already added
  167. # Proc to create BD design_1
  168. proc cr_bd_design_1 { parentCell } {
  169. # CHANGE DESIGN NAME HERE
  170. set design_name design_1
  171. common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
  172. create_bd_design $design_name
  173. set bCheckIPsPassed 1
  174. ##################################################################
  175. # There are no IPs nor Modules to check.
  176. ##################################################################
  177. if { $bCheckIPsPassed != 1 } {
  178. common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
  179. return 3
  180. }
  181. variable script_folder
  182. if { $parentCell eq "" } {
  183. set parentCell [get_bd_cells /]
  184. }
  185. # Get object for parentCell
  186. set parentObj [get_bd_cells $parentCell]
  187. if { $parentObj == "" } {
  188. catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
  189. return
  190. }
  191. # Make sure parentObj is hier blk
  192. set parentType [get_property TYPE $parentObj]
  193. if { $parentType ne "hier" } {
  194. catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
  195. return
  196. }
  197. # Save current instance; Restore later
  198. set oldCurInst [current_bd_instance .]
  199. # Set parent object as current
  200. current_bd_instance $parentObj
  201. # Create interface ports
  202. # Create ports
  203. # Create port connections
  204. # Create address segments
  205. # Restore current instance
  206. current_bd_instance $oldCurInst
  207. validate_bd_design
  208. save_bd_design
  209. close_bd_design $design_name
  210. }
  211. # End of cr_bd_design_1()
  212. cr_bd_design_1 ""
  213. set_property REGISTERED_WITH_MANAGER "1" [get_files design_1.bd ]
  214. set_property SYNTH_CHECKPOINT_MODE "Hierarchical" [get_files design_1.bd ]
  215. # Create 'synth_1' run (if not found)
  216. if {[string equal [get_runs -quiet synth_1] ""]} {
  217. create_run -name synth_1 -part xc7a100tcsg324-1 -flow {Vivado Synthesis 2018} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
  218. } else {
  219. set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
  220. set_property flow "Vivado Synthesis 2018" [get_runs synth_1]
  221. }
  222. set obj [get_runs synth_1]
  223. set_property set_report_strategy_name 1 $obj
  224. set_property report_strategy {Vivado Synthesis Default Reports} $obj
  225. set_property set_report_strategy_name 0 $obj
  226. # Create 'synth_1_synth_report_utilization_0' report (if not found)
  227. if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
  228. create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
  229. }
  230. set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
  231. if { $obj != "" } {
  232. set_property -name "display_name" -value "synth_1_synth_report_utilization_0" -objects $obj
  233. }
  234. set obj [get_runs synth_1]
  235. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  236. set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
  237. # set the current synth run
  238. current_run -synthesis [get_runs synth_1]
  239. # Create 'impl_1' run (if not found)
  240. if {[string equal [get_runs -quiet impl_1] ""]} {
  241. create_run -name impl_1 -part xc7a100tcsg324-1 -flow {Vivado Implementation 2018} -strategy "Vivado Implementation Defaults" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1
  242. } else {
  243. set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
  244. set_property flow "Vivado Implementation 2018" [get_runs impl_1]
  245. }
  246. set obj [get_runs impl_1]
  247. set_property set_report_strategy_name 1 $obj
  248. set_property report_strategy {Vivado Implementation Default Reports} $obj
  249. set_property set_report_strategy_name 0 $obj
  250. # Create 'impl_1_init_report_timing_summary_0' report (if not found)
  251. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
  252. create_report_config -report_name impl_1_init_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps init_design -runs impl_1
  253. }
  254. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
  255. if { $obj != "" } {
  256. set_property -name "is_enabled" -value "0" -objects $obj
  257. set_property -name "display_name" -value "impl_1_init_report_timing_summary_0" -objects $obj
  258. }
  259. # Create 'impl_1_opt_report_drc_0' report (if not found)
  260. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
  261. create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
  262. }
  263. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
  264. if { $obj != "" } {
  265. set_property -name "display_name" -value "impl_1_opt_report_drc_0" -objects $obj
  266. }
  267. # Create 'impl_1_opt_report_timing_summary_0' report (if not found)
  268. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
  269. create_report_config -report_name impl_1_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps opt_design -runs impl_1
  270. }
  271. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
  272. if { $obj != "" } {
  273. set_property -name "is_enabled" -value "0" -objects $obj
  274. set_property -name "display_name" -value "impl_1_opt_report_timing_summary_0" -objects $obj
  275. }
  276. # Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
  277. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
  278. create_report_config -report_name impl_1_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps power_opt_design -runs impl_1
  279. }
  280. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
  281. if { $obj != "" } {
  282. set_property -name "is_enabled" -value "0" -objects $obj
  283. set_property -name "display_name" -value "impl_1_power_opt_report_timing_summary_0" -objects $obj
  284. }
  285. # Create 'impl_1_place_report_io_0' report (if not found)
  286. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
  287. create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
  288. }
  289. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
  290. if { $obj != "" } {
  291. set_property -name "display_name" -value "impl_1_place_report_io_0" -objects $obj
  292. }
  293. # Create 'impl_1_place_report_utilization_0' report (if not found)
  294. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
  295. create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
  296. }
  297. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
  298. if { $obj != "" } {
  299. set_property -name "display_name" -value "impl_1_place_report_utilization_0" -objects $obj
  300. }
  301. # Create 'impl_1_place_report_control_sets_0' report (if not found)
  302. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
  303. create_report_config -report_name impl_1_place_report_control_sets_0 -report_type report_control_sets:1.0 -steps place_design -runs impl_1
  304. }
  305. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
  306. if { $obj != "" } {
  307. set_property -name "display_name" -value "impl_1_place_report_control_sets_0" -objects $obj
  308. }
  309. # Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
  310. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
  311. create_report_config -report_name impl_1_place_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1
  312. }
  313. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
  314. if { $obj != "" } {
  315. set_property -name "is_enabled" -value "0" -objects $obj
  316. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_0" -objects $obj
  317. }
  318. # Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
  319. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
  320. create_report_config -report_name impl_1_place_report_incremental_reuse_1 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1
  321. }
  322. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
  323. if { $obj != "" } {
  324. set_property -name "is_enabled" -value "0" -objects $obj
  325. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_1" -objects $obj
  326. }
  327. # Create 'impl_1_place_report_timing_summary_0' report (if not found)
  328. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
  329. create_report_config -report_name impl_1_place_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps place_design -runs impl_1
  330. }
  331. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
  332. if { $obj != "" } {
  333. set_property -name "is_enabled" -value "0" -objects $obj
  334. set_property -name "display_name" -value "impl_1_place_report_timing_summary_0" -objects $obj
  335. }
  336. # Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
  337. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
  338. create_report_config -report_name impl_1_post_place_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_place_power_opt_design -runs impl_1
  339. }
  340. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
  341. if { $obj != "" } {
  342. set_property -name "is_enabled" -value "0" -objects $obj
  343. set_property -name "display_name" -value "impl_1_post_place_power_opt_report_timing_summary_0" -objects $obj
  344. }
  345. # Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
  346. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
  347. create_report_config -report_name impl_1_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps phys_opt_design -runs impl_1
  348. }
  349. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
  350. if { $obj != "" } {
  351. set_property -name "is_enabled" -value "0" -objects $obj
  352. set_property -name "display_name" -value "impl_1_phys_opt_report_timing_summary_0" -objects $obj
  353. }
  354. # Create 'impl_1_route_report_drc_0' report (if not found)
  355. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
  356. create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
  357. }
  358. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
  359. if { $obj != "" } {
  360. set_property -name "display_name" -value "impl_1_route_report_drc_0" -objects $obj
  361. }
  362. # Create 'impl_1_route_report_methodology_0' report (if not found)
  363. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
  364. create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
  365. }
  366. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
  367. if { $obj != "" } {
  368. set_property -name "display_name" -value "impl_1_route_report_methodology_0" -objects $obj
  369. }
  370. # Create 'impl_1_route_report_power_0' report (if not found)
  371. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
  372. create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
  373. }
  374. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
  375. if { $obj != "" } {
  376. set_property -name "display_name" -value "impl_1_route_report_power_0" -objects $obj
  377. }
  378. # Create 'impl_1_route_report_route_status_0' report (if not found)
  379. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
  380. create_report_config -report_name impl_1_route_report_route_status_0 -report_type report_route_status:1.0 -steps route_design -runs impl_1
  381. }
  382. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
  383. if { $obj != "" } {
  384. set_property -name "display_name" -value "impl_1_route_report_route_status_0" -objects $obj
  385. }
  386. # Create 'impl_1_route_report_timing_summary_0' report (if not found)
  387. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
  388. create_report_config -report_name impl_1_route_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps route_design -runs impl_1
  389. }
  390. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
  391. if { $obj != "" } {
  392. set_property -name "display_name" -value "impl_1_route_report_timing_summary_0" -objects $obj
  393. }
  394. # Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
  395. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
  396. create_report_config -report_name impl_1_route_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps route_design -runs impl_1
  397. }
  398. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
  399. if { $obj != "" } {
  400. set_property -name "display_name" -value "impl_1_route_report_incremental_reuse_0" -objects $obj
  401. }
  402. # Create 'impl_1_route_report_clock_utilization_0' report (if not found)
  403. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
  404. create_report_config -report_name impl_1_route_report_clock_utilization_0 -report_type report_clock_utilization:1.0 -steps route_design -runs impl_1
  405. }
  406. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
  407. if { $obj != "" } {
  408. set_property -name "display_name" -value "impl_1_route_report_clock_utilization_0" -objects $obj
  409. }
  410. # Create 'impl_1_route_report_bus_skew_0' report (if not found)
  411. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
  412. create_report_config -report_name impl_1_route_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps route_design -runs impl_1
  413. }
  414. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
  415. if { $obj != "" } {
  416. set_property -name "display_name" -value "impl_1_route_report_bus_skew_0" -objects $obj
  417. }
  418. # Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
  419. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
  420. create_report_config -report_name impl_1_post_route_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_route_phys_opt_design -runs impl_1
  421. }
  422. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
  423. if { $obj != "" } {
  424. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_timing_summary_0" -objects $obj
  425. }
  426. # Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
  427. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
  428. create_report_config -report_name impl_1_post_route_phys_opt_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps post_route_phys_opt_design -runs impl_1
  429. }
  430. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
  431. if { $obj != "" } {
  432. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_bus_skew_0" -objects $obj
  433. }
  434. set obj [get_runs impl_1]
  435. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  436. set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
  437. set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
  438. set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
  439. # set the current impl run
  440. current_run -implementation [get_runs impl_1]
  441. puts "INFO: Project created:${_xil_proj_name_}"
  442. set obj [get_dashboards default_dashboard]
  443. # Create 'drc_1' gadget (if not found)
  444. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "drc_1" ] ] ""]} {
  445. create_dashboard_gadget -name {drc_1} -type drc
  446. }
  447. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "drc_1" ] ]
  448. set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
  449. # Create 'methodology_1' gadget (if not found)
  450. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "methodology_1" ] ] ""]} {
  451. create_dashboard_gadget -name {methodology_1} -type methodology
  452. }
  453. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "methodology_1" ] ]
  454. set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
  455. # Create 'power_1' gadget (if not found)
  456. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "power_1" ] ] ""]} {
  457. create_dashboard_gadget -name {power_1} -type power
  458. }
  459. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "power_1" ] ]
  460. set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
  461. # Create 'timing_1' gadget (if not found)
  462. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "timing_1" ] ] ""]} {
  463. create_dashboard_gadget -name {timing_1} -type timing
  464. }
  465. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "timing_1" ] ]
  466. set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
  467. # Create 'utilization_1' gadget (if not found)
  468. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "utilization_1" ] ] ""]} {
  469. create_dashboard_gadget -name {utilization_1} -type utilization
  470. }
  471. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "utilization_1" ] ]
  472. set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
  473. set_property -name "run.step" -value "synth_design" -objects $obj
  474. set_property -name "run.type" -value "synthesis" -objects $obj
  475. # Create 'utilization_2' gadget (if not found)
  476. if {[string equal [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "utilization_2" ] ] ""]} {
  477. create_dashboard_gadget -name {utilization_2} -type utilization
  478. }
  479. set obj [get_dashboard_gadgets -of_objects [get_dashboards default_dashboard] [ list "utilization_2" ] ]
  480. set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
  481. move_dashboard_gadget -name {utilization_1} -row 0 -col 0
  482. move_dashboard_gadget -name {power_1} -row 1 -col 0
  483. move_dashboard_gadget -name {drc_1} -row 2 -col 0
  484. move_dashboard_gadget -name {timing_1} -row 0 -col 1
  485. move_dashboard_gadget -name {utilization_2} -row 1 -col 1
  486. move_dashboard_gadget -name {methodology_1} -row 2 -col 1
  487. # Set current dashboard to 'default_dashboard'
  488. current_dashboard default_dashboard