vhdl-modules.tcl 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315
  1. #*****************************************************************************************
  2. # Vivado (TM) v2018.3 (64-bit)
  3. #
  4. # vhdl-modules.tcl: Tcl script for re-creating project 'vhdl-modules'
  5. #
  6. # IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018
  7. #
  8. # This file contains the Vivado Tcl commands for re-creating the project to the state*
  9. # when this script was generated. In order to re-create the project, please source this
  10. # file in the Vivado Tcl Shell.
  11. #
  12. # * Note that the runs in the created project will be configured the same way as the
  13. # original project, however they will not be launched automatically. To regenerate the
  14. # run results please launch the synthesis/implementation runs as needed.
  15. #
  16. #*****************************************************************************************
  17. # Set the reference directory for source file relative paths (by default the value is script directory path)
  18. set origin_dir [file dirname [info script]]
  19. # Use origin directory path location variable, if specified in the tcl shell
  20. if { [info exists ::origin_dir_loc] } {
  21. set origin_dir $::origin_dir_loc
  22. }
  23. # Set the project name
  24. set _xil_proj_name_ "vhdl-modules"
  25. # Use project name variable, if specified in the tcl shell
  26. if { [info exists ::user_project_name] } {
  27. set _xil_proj_name_ $::user_project_name
  28. }
  29. variable script_file
  30. set script_file "vhdl-modules.tcl"
  31. # Help information for this script
  32. proc print_help {} {
  33. variable script_file
  34. puts "\nDescription:"
  35. puts "Recreate a Vivado project from this script. The created project will be"
  36. puts "functionally equivalent to the original project for which this script was"
  37. puts "generated. The script contains commands for creating a project, filesets,"
  38. puts "runs, adding/importing sources and setting properties on various objects.\n"
  39. puts "Syntax:"
  40. puts "$script_file"
  41. puts "$script_file -tclargs \[--origin_dir <path>\]"
  42. puts "$script_file -tclargs \[--project_name <name>\]"
  43. puts "$script_file -tclargs \[--help\]\n"
  44. puts "Usage:"
  45. puts "Name Description"
  46. puts "-------------------------------------------------------------------------"
  47. puts "\[--origin_dir <path>\] Determine source file paths wrt this path. Default"
  48. puts " origin_dir path value is \".\", otherwise, the value"
  49. puts " that was set with the \"-paths_relative_to\" switch"
  50. puts " when this script was generated.\n"
  51. puts "\[--project_name <name>\] Create project with the specified name. Default"
  52. puts " name is the name of the project from where this"
  53. puts " script was generated.\n"
  54. puts "\[--help\] Print help information for this script"
  55. puts "-------------------------------------------------------------------------\n"
  56. exit 0
  57. }
  58. if { $::argc > 0 } {
  59. for {set i 0} {$i < $::argc} {incr i} {
  60. set option [string trim [lindex $::argv $i]]
  61. switch -regexp -- $option {
  62. "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] }
  63. "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] }
  64. "--help" { print_help }
  65. default {
  66. if { [regexp {^-} $option] } {
  67. puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n"
  68. return 1
  69. }
  70. }
  71. }
  72. }
  73. }
  74. # Set the directory path for the original project from where this script was exported
  75. set orig_proj_dir "[file normalize "$origin_dir/vivado_project"]"
  76. # Create project
  77. create_project ${_xil_proj_name_} $origin_dir/vivado_project -part xc7a100tcsg324-1 -quiet -force
  78. # Set the directory path for the new project
  79. set proj_dir [get_property directory [current_project]]
  80. # Set project properties
  81. set obj [current_project]
  82. set_property -name "default_lib" -value "xil_defaultlib" -objects $obj
  83. set_property -name "enable_vhdl_2008" -value "1" -objects $obj
  84. set_property -name "ip_cache_permissions" -value "read write" -objects $obj
  85. set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj
  86. set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj
  87. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  88. set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj
  89. set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj
  90. set_property -name "simulator_language" -value "Mixed" -objects $obj
  91. set_property -name "target_language" -value "VHDL" -objects $obj
  92. set_property -name "webtalk.activehdl_export_sim" -value "1" -objects $obj
  93. set_property -name "webtalk.ies_export_sim" -value "1" -objects $obj
  94. set_property -name "webtalk.modelsim_export_sim" -value "1" -objects $obj
  95. set_property -name "webtalk.questa_export_sim" -value "1" -objects $obj
  96. set_property -name "webtalk.riviera_export_sim" -value "1" -objects $obj
  97. set_property -name "webtalk.vcs_export_sim" -value "1" -objects $obj
  98. set_property -name "webtalk.xsim_export_sim" -value "1" -objects $obj
  99. set_property -name "webtalk.xsim_launch_sim" -value "3" -objects $obj
  100. set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj
  101. # Create 'sources_1' fileset (if not found)
  102. if {[string equal [get_filesets -quiet sources_1] ""]} {
  103. create_fileset -srcset sources_1
  104. }
  105. # Set IP repository paths
  106. set obj [get_filesets sources_1]
  107. set_property "ip_repo_paths" "[file normalize "$origin_dir/src/ip_repo"]" $obj
  108. # Rebuild user ip_repo's index before adding any source files
  109. update_ip_catalog -rebuild
  110. # Set 'sources_1' fileset object
  111. set obj [get_filesets sources_1]
  112. set files [list \
  113. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Block_proc.vhd"] \
  114. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc.vhd"] \
  115. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc_borderbuf.vhd"] \
  116. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_HConvH_proc6.vhd"] \
  117. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc.vhd"] \
  118. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc_linebuf_0.vhd"] \
  119. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/globals.vhd"] \
  120. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/checksum.vhd"] \
  121. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d.vhd"] \
  122. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d_5x5_224p.vhd"] \
  123. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/dummyModule.vhd"] \
  124. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d2_A.vhd"] \
  125. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d3_A.vhd"] \
  126. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm.vhd"] \
  127. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm_ent.vhd"] \
  128. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/kernel_5x5.vhd"] \
  129. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/multiplex.vhd"] \
  130. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/ram.vhd"] \
  131. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/shiftIn.vhd"] \
  132. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Block_proc_U0.vhd"] \
  133. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_Border_proc_U0.vhd"] \
  134. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_VConvH_proc_U0.vhd"] \
  135. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/packaging.vhd"] \
  136. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/relu.vhd"] \
  137. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/shiftOut.vhd"] \
  138. ]
  139. add_files -norecurse -fileset $obj $files
  140. # Set 'sources_1' fileset file properties for remote files
  141. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Block_proc.vhd"
  142. set file [file normalize $file]
  143. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  144. set_property -name "file_type" -value "VHDL" -objects $file_obj
  145. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc.vhd"
  146. set file [file normalize $file]
  147. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  148. set_property -name "file_type" -value "VHDL" -objects $file_obj
  149. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc_borderbuf.vhd"
  150. set file [file normalize $file]
  151. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  152. set_property -name "file_type" -value "VHDL" -objects $file_obj
  153. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_HConvH_proc6.vhd"
  154. set file [file normalize $file]
  155. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  156. set_property -name "file_type" -value "VHDL" -objects $file_obj
  157. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc.vhd"
  158. set file [file normalize $file]
  159. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  160. set_property -name "file_type" -value "VHDL" -objects $file_obj
  161. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc_linebuf_0.vhd"
  162. set file [file normalize $file]
  163. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  164. set_property -name "file_type" -value "VHDL" -objects $file_obj
  165. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/globals.vhd"
  166. set file [file normalize $file]
  167. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  168. set_property -name "file_type" -value "VHDL" -objects $file_obj
  169. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/checksum.vhd"
  170. set file [file normalize $file]
  171. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  172. set_property -name "file_type" -value "VHDL" -objects $file_obj
  173. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d.vhd"
  174. set file [file normalize $file]
  175. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  176. set_property -name "file_type" -value "VHDL" -objects $file_obj
  177. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d_5x5_224p.vhd"
  178. set file [file normalize $file]
  179. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  180. set_property -name "file_type" -value "VHDL" -objects $file_obj
  181. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/dummyModule.vhd"
  182. set file [file normalize $file]
  183. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  184. set_property -name "file_type" -value "VHDL" -objects $file_obj
  185. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d2_A.vhd"
  186. set file [file normalize $file]
  187. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  188. set_property -name "file_type" -value "VHDL" -objects $file_obj
  189. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d3_A.vhd"
  190. set file [file normalize $file]
  191. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  192. set_property -name "file_type" -value "VHDL" -objects $file_obj
  193. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm.vhd"
  194. set file [file normalize $file]
  195. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  196. set_property -name "file_type" -value "VHDL" -objects $file_obj
  197. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm_ent.vhd"
  198. set file [file normalize $file]
  199. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  200. set_property -name "file_type" -value "VHDL" -objects $file_obj
  201. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/kernel_5x5.vhd"
  202. set file [file normalize $file]
  203. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  204. set_property -name "file_type" -value "VHDL" -objects $file_obj
  205. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/multiplex.vhd"
  206. set file [file normalize $file]
  207. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  208. set_property -name "file_type" -value "VHDL" -objects $file_obj
  209. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/ram.vhd"
  210. set file [file normalize $file]
  211. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  212. set_property -name "file_type" -value "VHDL" -objects $file_obj
  213. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/shiftIn.vhd"
  214. set file [file normalize $file]
  215. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  216. set_property -name "file_type" -value "VHDL" -objects $file_obj
  217. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Block_proc_U0.vhd"
  218. set file [file normalize $file]
  219. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  220. set_property -name "file_type" -value "VHDL" -objects $file_obj
  221. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_Border_proc_U0.vhd"
  222. set file [file normalize $file]
  223. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  224. set_property -name "file_type" -value "VHDL" -objects $file_obj
  225. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_VConvH_proc_U0.vhd"
  226. set file [file normalize $file]
  227. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  228. set_property -name "file_type" -value "VHDL" -objects $file_obj
  229. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/packaging.vhd"
  230. set file [file normalize $file]
  231. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  232. set_property -name "file_type" -value "VHDL" -objects $file_obj
  233. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/relu.vhd"
  234. set file [file normalize $file]
  235. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  236. set_property -name "file_type" -value "VHDL" -objects $file_obj
  237. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/shiftOut.vhd"
  238. set file [file normalize $file]
  239. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  240. set_property -name "file_type" -value "VHDL" -objects $file_obj
  241. # Set 'sources_1' fileset file properties for local files
  242. set file "src/Block_proc.vhd"
  243. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  244. set_property -name "file_type" -value "VHDL" -objects $file_obj
  245. set file "src/Loop_Border_proc.vhd"
  246. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  247. set_property -name "file_type" -value "VHDL" -objects $file_obj
  248. set file "src/Loop_Border_proc_borderbuf.vhd"
  249. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  250. set_property -name "file_type" -value "VHDL" -objects $file_obj
  251. set file "src/Loop_HConvH_proc6.vhd"
  252. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  253. set_property -name "file_type" -value "VHDL" -objects $file_obj
  254. set file "src/Loop_VConvH_proc.vhd"
  255. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  256. set_property -name "file_type" -value "VHDL" -objects $file_obj
  257. set file "src/Loop_VConvH_proc_linebuf_0.vhd"
  258. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  259. set_property -name "file_type" -value "VHDL" -objects $file_obj
  260. set file "src/globals.vhd"
  261. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  262. set_property -name "file_type" -value "VHDL" -objects $file_obj
  263. set file "src/checksum.vhd"
  264. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  265. set_property -name "file_type" -value "VHDL" -objects $file_obj
  266. set file "src/conv2d.vhd"
  267. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  268. set_property -name "file_type" -value "VHDL" -objects $file_obj
  269. set file "src/conv2d_5x5_224p.vhd"
  270. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  271. set_property -name "file_type" -value "VHDL" -objects $file_obj
  272. set file "src/dummyModule.vhd"
  273. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  274. set_property -name "file_type" -value "VHDL" -objects $file_obj
  275. set file "src/fifo_w32_d2_A.vhd"
  276. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  277. set_property -name "file_type" -value "VHDL" -objects $file_obj
  278. set file "src/fifo_w32_d3_A.vhd"
  279. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  280. set_property -name "file_type" -value "VHDL" -objects $file_obj
  281. set file "src/filter11x11_strm.vhd"
  282. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  283. set_property -name "file_type" -value "VHDL" -objects $file_obj
  284. set file "src/filter11x11_strm_ent.vhd"
  285. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  286. set_property -name "file_type" -value "VHDL" -objects $file_obj
  287. set file "src/kernel_5x5.vhd"
  288. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  289. set_property -name "file_type" -value "VHDL" -objects $file_obj
  290. set file "src/multiplex.vhd"
  291. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  292. set_property -name "file_type" -value "VHDL" -objects $file_obj
  293. set file "src/ram.vhd"
  294. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  295. set_property -name "file_type" -value "VHDL" -objects $file_obj
  296. set file "src/shiftIn.vhd"
  297. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  298. set_property -name "file_type" -value "VHDL" -objects $file_obj
  299. set file "src/start_for_Block_proc_U0.vhd"
  300. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  301. set_property -name "file_type" -value "VHDL" -objects $file_obj
  302. set file "src/start_for_Loop_Border_proc_U0.vhd"
  303. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  304. set_property -name "file_type" -value "VHDL" -objects $file_obj
  305. set file "src/start_for_Loop_VConvH_proc_U0.vhd"
  306. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  307. set_property -name "file_type" -value "VHDL" -objects $file_obj
  308. set file "src/packaging.vhd"
  309. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  310. set_property -name "file_type" -value "VHDL" -objects $file_obj
  311. set file "src/shiftOut.vhd"
  312. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  313. set_property -name "file_type" -value "VHDL" -objects $file_obj
  314. set file "src/neuron.vhd"
  315. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  316. set_property -name "file_type" -value "VHDL" -objects $file_obj
  317. set file "src/mac.vhd"
  318. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  319. set_property -name "file_type" -value "VHDL" -objects $file_obj
  320. set file "src/parallelize.vhd"
  321. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  322. set_property -name "file_type" -value "VHDL" -objects $file_obj
  323. set file "src/relu.vhd"
  324. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  325. set_property -name "file_type" -value "VHDL" -objects $file_obj
  326. # Set 'sources_1' fileset properties
  327. set obj [get_filesets sources_1]
  328. set_property -name "top" -value "packaging" -objects $obj
  329. set_property -name "top_arch" -value "Behavioral" -objects $obj
  330. set_property -name "top_file" -value "$proj_dir/vhdl-modules.srcs/sources_1/imports/src/packaging.vhd" -objects $obj
  331. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  332. # Create 'constrs_1' fileset (if not found)
  333. if {[string equal [get_filesets -quiet constrs_1] ""]} {
  334. create_fileset -constrset constrs_1
  335. }
  336. # Set 'constrs_1' fileset object
  337. set obj [get_filesets constrs_1]
  338. # Empty (no sources present)
  339. # Set 'constrs_1' fileset properties
  340. set obj [get_filesets constrs_1]
  341. set_property -name "target_part" -value "xc7a100tcsg324-1" -objects $obj
  342. # Create 'sim_1' fileset (if not found)
  343. if {[string equal [get_filesets -quiet sim_1] ""]} {
  344. create_fileset -simset sim_1
  345. }
  346. # Set 'sim_1' fileset object
  347. set obj [get_filesets sim_1]
  348. # Import local files from the original project
  349. set files [list \
  350. [file normalize "${origin_dir}/src/testbench/packaging_tb.vhd"] \
  351. [file normalize "${origin_dir}/vivado_project/vhdl-modules.srcs/sources_1/imports/src/tb.vhd"] \
  352. ]
  353. # set imported_files [import_files -fileset sim_1 $files]
  354. # Set 'sim_1' fileset file properties for remote files
  355. # None
  356. # Set 'sim_1' fileset file properties for local files
  357. set file "src/tb.vhd"
  358. set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
  359. set_property -name "file_type" -value "VHDL" -objects $file_obj
  360. set file "$origin_dir/vivado_project/vhdl-modules.srcs/sources_1/imports/src/tb.vhd"
  361. set file [file normalize $file]
  362. set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
  363. set_property -name "file_type" -value "VHDL" -objects $file_obj
  364. # Set 'sim_1' fileset properties
  365. set obj [get_filesets sim_1]
  366. set_property -name "top" -value "tb_module" -objects $obj
  367. set_property -name "top_auto_set" -value "0" -objects $obj
  368. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  369. # Set 'utils_1' fileset object
  370. set obj [get_filesets utils_1]
  371. # Empty (no sources present)
  372. # Set 'utils_1' fileset properties
  373. set obj [get_filesets utils_1]
  374. # Adding sources referenced in BDs, if not already added
  375. if { [get_files Block_proc.vhd] == "" } {
  376. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Block_proc.vhd
  377. }
  378. if { [get_files Loop_Border_proc.vhd] == "" } {
  379. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc.vhd
  380. }
  381. if { [get_files Loop_Border_proc_borderbuf.vhd] == "" } {
  382. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_Border_proc_borderbuf.vhd
  383. }
  384. if { [get_files Loop_HConvH_proc6.vhd] == "" } {
  385. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_HConvH_proc6.vhd
  386. }
  387. if { [get_files Loop_VConvH_proc.vhd] == "" } {
  388. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc.vhd
  389. }
  390. if { [get_files Loop_VConvH_proc_linebuf_0.vhd] == "" } {
  391. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/Loop_VConvH_proc_linebuf_0.vhd
  392. }
  393. if { [get_files globals.vhd] == "" } {
  394. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/globals.vhd
  395. }
  396. if { [get_files checksum.vhd] == "" } {
  397. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/checksum.vhd
  398. }
  399. if { [get_files conv2d.vhd] == "" } {
  400. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d.vhd
  401. }
  402. if { [get_files conv2d_5x5_224p.vhd] == "" } {
  403. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/conv2d_5x5_224p.vhd
  404. }
  405. if { [get_files dummyModule.vhd] == "" } {
  406. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/dummyModule.vhd
  407. }
  408. if { [get_files fifo_w32_d2_A.vhd] == "" } {
  409. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d2_A.vhd
  410. }
  411. if { [get_files fifo_w32_d3_A.vhd] == "" } {
  412. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/fifo_w32_d3_A.vhd
  413. }
  414. if { [get_files filter11x11_strm.vhd] == "" } {
  415. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm.vhd
  416. }
  417. if { [get_files filter11x11_strm_ent.vhd] == "" } {
  418. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/filter11x11_strm_ent.vhd
  419. }
  420. if { [get_files kernel_5x5.vhd] == "" } {
  421. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/kernel_5x5.vhd
  422. }
  423. if { [get_files multiplex.vhd] == "" } {
  424. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/multiplex.vhd
  425. }
  426. if { [get_files ram.vhd] == "" } {
  427. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/ram.vhd
  428. }
  429. if { [get_files shiftIn.vhd] == "" } {
  430. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/shiftIn.vhd
  431. }
  432. if { [get_files start_for_Block_proc_U0.vhd] == "" } {
  433. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Block_proc_U0.vhd
  434. }
  435. if { [get_files start_for_Loop_Border_proc_U0.vhd] == "" } {
  436. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_Border_proc_U0.vhd
  437. }
  438. if { [get_files start_for_Loop_VConvH_proc_U0.vhd] == "" } {
  439. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/start_for_Loop_VConvH_proc_U0.vhd
  440. }
  441. if { [get_files packaging.vhd] == "" } {
  442. import_files -quiet -fileset sources_1 /home/windows/repos/vhdl-modules/vivado_project/vhdl-modules.srcs/sources_1/imports/src/packaging.vhd
  443. }
  444. # Proc to create BD design_1
  445. proc cr_bd_design_1 { parentCell } {
  446. # The design that will be created by this Tcl proc contains the following
  447. # module references:
  448. # packaging
  449. # CHANGE DESIGN NAME HERE
  450. set design_name design_1
  451. common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
  452. create_bd_design $design_name
  453. set bCheckIPsPassed 1
  454. ##################################################################
  455. # CHECK IPs
  456. ##################################################################
  457. set bCheckIPs 1
  458. if { $bCheckIPs == 1 } {
  459. set list_check_ips "\
  460. xilinx.com:ip:c_counter_binary:12.0\
  461. xilinx.com:user:ethernet_transceiver2:1.0\
  462. xilinx.com:ip:fifo_generator:13.2\
  463. xilinx.com:ip:c_addsub:12.0\
  464. xilinx.com:user:segment:1.0\
  465. xilinx.com:ip:xlconcat:2.1\
  466. xilinx.com:ip:xlconstant:1.1\
  467. xilinx.com:ip:xlslice:1.0\
  468. "
  469. set list_ips_missing ""
  470. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
  471. foreach ip_vlnv $list_check_ips {
  472. set ip_obj [get_ipdefs -all $ip_vlnv]
  473. if { $ip_obj eq "" } {
  474. lappend list_ips_missing $ip_vlnv
  475. }
  476. }
  477. if { $list_ips_missing ne "" } {
  478. catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." }
  479. set bCheckIPsPassed 0
  480. }
  481. }
  482. ##################################################################
  483. # CHECK Modules
  484. ##################################################################
  485. set bCheckModules 1
  486. if { $bCheckModules == 1 } {
  487. set list_check_mods "\
  488. packaging\
  489. "
  490. set list_mods_missing ""
  491. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following modules exist in the project's sources: $list_check_mods ."
  492. foreach mod_vlnv $list_check_mods {
  493. if { [can_resolve_reference $mod_vlnv] == 0 } {
  494. lappend list_mods_missing $mod_vlnv
  495. }
  496. }
  497. if { $list_mods_missing ne "" } {
  498. catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following module(s) are not found in the project: $list_mods_missing" }
  499. common::send_msg_id "BD_TCL-008" "INFO" "Please add source files for the missing module(s) above."
  500. set bCheckIPsPassed 0
  501. }
  502. }
  503. if { $bCheckIPsPassed != 1 } {
  504. common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
  505. return 3
  506. }
  507. variable script_folder
  508. if { $parentCell eq "" } {
  509. set parentCell [get_bd_cells /]
  510. }
  511. # Get object for parentCell
  512. set parentObj [get_bd_cells $parentCell]
  513. if { $parentObj == "" } {
  514. catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
  515. return
  516. }
  517. # Make sure parentObj is hier blk
  518. set parentType [get_property TYPE $parentObj]
  519. if { $parentType ne "hier" } {
  520. catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
  521. return
  522. }
  523. # Save current instance; Restore later
  524. set oldCurInst [current_bd_instance .]
  525. # Set parent object as current
  526. current_bd_instance $parentObj
  527. # Create interface ports
  528. # Create ports
  529. set anodes_0 [ create_bd_port -dir O -from 0 -to 7 anodes_0 ]
  530. set cathodes_0 [ create_bd_port -dir O -from 0 -to 7 cathodes_0 ]
  531. set clk_100MHz [ create_bd_port -dir I -type clk clk_100MHz ]
  532. set_property -dict [ list \
  533. CONFIG.FREQ_HZ {100000000} \
  534. ] $clk_100MHz
  535. set eth_crsdv_0 [ create_bd_port -dir IO eth_crsdv_0 ]
  536. set eth_mdc_0 [ create_bd_port -dir O eth_mdc_0 ]
  537. set eth_mdio_0 [ create_bd_port -dir IO eth_mdio_0 ]
  538. set eth_refclk_0 [ create_bd_port -dir O eth_refclk_0 ]
  539. set eth_rstn_0 [ create_bd_port -dir IO -type rst eth_rstn_0 ]
  540. set eth_rxd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_rxd_0 ]
  541. set eth_rxerr_0 [ create_bd_port -dir IO eth_rxerr_0 ]
  542. set eth_txd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_txd_0 ]
  543. set eth_txen_0 [ create_bd_port -dir IO eth_txen_0 ]
  544. set led16_b_0 [ create_bd_port -dir O led16_b_0 ]
  545. set led16_g_0 [ create_bd_port -dir O led16_g_0 ]
  546. set led16_r_0 [ create_bd_port -dir O led16_r_0 ]
  547. set led17_b_0 [ create_bd_port -dir O led17_b_0 ]
  548. set led17_g_0 [ create_bd_port -dir O led17_g_0 ]
  549. set led17_r_0 [ create_bd_port -dir O led17_r_0 ]
  550. set led_0 [ create_bd_port -dir O -from 15 -to 0 led_0 ]
  551. set reset_rtl_0 [ create_bd_port -dir I -type rst reset_rtl_0 ]
  552. set_property -dict [ list \
  553. CONFIG.POLARITY {ACTIVE_LOW} \
  554. ] $reset_rtl_0
  555. set sw_0 [ create_bd_port -dir I -from 4 -to 0 sw_0 ]
  556. # Create instance: c_counter_binary_0, and set properties
  557. set c_counter_binary_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_0 ]
  558. set_property -dict [ list \
  559. CONFIG.CE {true} \
  560. CONFIG.Fb_Latency {2} \
  561. CONFIG.Fb_Latency_Configuration {Automatic} \
  562. CONFIG.Final_Count_Value {270F} \
  563. CONFIG.Latency_Configuration {Automatic} \
  564. CONFIG.Restrict_Count {true} \
  565. CONFIG.SCLR {true} \
  566. CONFIG.SSET {false} \
  567. ] $c_counter_binary_0
  568. # Create instance: c_counter_binary_1, and set properties
  569. set c_counter_binary_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_1 ]
  570. set_property -dict [ list \
  571. CONFIG.CE {true} \
  572. CONFIG.Fb_Latency {2} \
  573. CONFIG.Fb_Latency_Configuration {Automatic} \
  574. CONFIG.Final_Count_Value {270F} \
  575. CONFIG.Latency_Configuration {Automatic} \
  576. CONFIG.Restrict_Count {true} \
  577. CONFIG.SCLR {true} \
  578. CONFIG.SSET {false} \
  579. ] $c_counter_binary_1
  580. # Create instance: ethernet_transceiver2_0, and set properties
  581. set ethernet_transceiver2_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:ethernet_transceiver2:1.0 ethernet_transceiver2_0 ]
  582. # Create instance: fifo_input, and set properties
  583. set fifo_input [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_input ]
  584. set_property -dict [ list \
  585. CONFIG.Almost_Empty_Flag {false} \
  586. CONFIG.Data_Count {false} \
  587. CONFIG.Data_Count_Width {6} \
  588. CONFIG.Empty_Threshold_Assert_Value {2} \
  589. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  590. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  591. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  592. CONFIG.Empty_Threshold_Negate_Value {3} \
  593. CONFIG.Enable_Safety_Circuit {false} \
  594. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  595. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  596. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  597. CONFIG.Fifo_Implementation {Common_Clock_Distributed_RAM} \
  598. CONFIG.Full_Flags_Reset_Value {0} \
  599. CONFIG.Full_Threshold_Assert_Value {62} \
  600. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  601. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  602. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  603. CONFIG.Full_Threshold_Negate_Value {61} \
  604. CONFIG.INTERFACE_TYPE {Native} \
  605. CONFIG.Input_Data_Width {32} \
  606. CONFIG.Input_Depth {64} \
  607. CONFIG.Output_Data_Width {32} \
  608. CONFIG.Output_Depth {64} \
  609. CONFIG.Overflow_Flag {true} \
  610. CONFIG.Performance_Options {Standard_FIFO} \
  611. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  612. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  613. CONFIG.Read_Data_Count {false} \
  614. CONFIG.Read_Data_Count_Width {6} \
  615. CONFIG.Reset_Pin {true} \
  616. CONFIG.Reset_Type {Synchronous_Reset} \
  617. CONFIG.Underflow_Flag {false} \
  618. CONFIG.Use_Dout_Reset {true} \
  619. CONFIG.Use_Embedded_Registers {false} \
  620. CONFIG.Use_Extra_Logic {false} \
  621. CONFIG.Valid_Flag {false} \
  622. CONFIG.Write_Data_Count {false} \
  623. CONFIG.Write_Data_Count_Width {6} \
  624. ] $fifo_input
  625. # Create instance: fifo_output, and set properties
  626. set fifo_output [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_output ]
  627. set_property -dict [ list \
  628. CONFIG.Almost_Empty_Flag {false} \
  629. CONFIG.Almost_Full_Flag {false} \
  630. CONFIG.Data_Count {false} \
  631. CONFIG.Data_Count_Width {9} \
  632. CONFIG.Empty_Threshold_Assert_Value {2} \
  633. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  634. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  635. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  636. CONFIG.Empty_Threshold_Negate_Value {3} \
  637. CONFIG.Enable_Safety_Circuit {false} \
  638. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  639. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  640. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  641. CONFIG.Fifo_Implementation {Independent_Clocks_Distributed_RAM} \
  642. CONFIG.Full_Flags_Reset_Value {1} \
  643. CONFIG.Full_Threshold_Assert_Value {509} \
  644. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  645. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  646. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  647. CONFIG.Full_Threshold_Negate_Value {508} \
  648. CONFIG.INTERFACE_TYPE {Native} \
  649. CONFIG.Input_Data_Width {32} \
  650. CONFIG.Input_Depth {512} \
  651. CONFIG.Output_Data_Width {32} \
  652. CONFIG.Output_Depth {512} \
  653. CONFIG.Overflow_Flag {true} \
  654. CONFIG.Performance_Options {Standard_FIFO} \
  655. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  656. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  657. CONFIG.Read_Data_Count {true} \
  658. CONFIG.Read_Data_Count_Width {9} \
  659. CONFIG.Reset_Pin {true} \
  660. CONFIG.Reset_Type {Asynchronous_Reset} \
  661. CONFIG.Underflow_Flag {false} \
  662. CONFIG.Use_Dout_Reset {true} \
  663. CONFIG.Use_Embedded_Registers {false} \
  664. CONFIG.Use_Extra_Logic {false} \
  665. CONFIG.Valid_Flag {false} \
  666. CONFIG.Write_Data_Count {false} \
  667. CONFIG.Write_Data_Count_Width {9} \
  668. ] $fifo_output
  669. # Create instance: negate_0, and set properties
  670. set negate_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_addsub:12.0 negate_0 ]
  671. set_property -dict [ list \
  672. CONFIG.A_Type {Unsigned} \
  673. CONFIG.A_Width {1} \
  674. CONFIG.Add_Mode {Add} \
  675. CONFIG.B_Constant {true} \
  676. CONFIG.B_Type {Unsigned} \
  677. CONFIG.B_Value {1} \
  678. CONFIG.B_Width {1} \
  679. CONFIG.CE {false} \
  680. CONFIG.Latency {1} \
  681. CONFIG.Latency_Configuration {Automatic} \
  682. CONFIG.Out_Width {1} \
  683. ] $negate_0
  684. # Create instance: packaging_0, and set properties
  685. set block_name packaging
  686. set block_cell_name packaging_0
  687. if { [catch {set packaging_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
  688. catch {common::send_msg_id "BD_TCL-105" "ERROR" "Unable to add referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."}
  689. return 1
  690. } elseif { $packaging_0 eq "" } {
  691. catch {common::send_msg_id "BD_TCL-106" "ERROR" "Unable to referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."}
  692. return 1
  693. }
  694. # Create instance: segment_0, and set properties
  695. set segment_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:segment:1.0 segment_0 ]
  696. # Create instance: xlconcat_4, and set properties
  697. set xlconcat_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_4 ]
  698. set_property -dict [ list \
  699. CONFIG.IN0_WIDTH {4} \
  700. CONFIG.IN1_WIDTH {4} \
  701. CONFIG.IN2_WIDTH {8} \
  702. CONFIG.IN3_WIDTH {2} \
  703. CONFIG.IN4_WIDTH {5} \
  704. CONFIG.NUM_PORTS {3} \
  705. ] $xlconcat_4
  706. # Create instance: xlconcat_5, and set properties
  707. set xlconcat_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_5 ]
  708. set_property -dict [ list \
  709. CONFIG.IN0_WIDTH {9} \
  710. CONFIG.IN1_WIDTH {7} \
  711. CONFIG.IN2_WIDTH {8} \
  712. CONFIG.IN3_WIDTH {2} \
  713. CONFIG.IN4_WIDTH {5} \
  714. CONFIG.NUM_PORTS {2} \
  715. ] $xlconcat_5
  716. # Create instance: xlconstant_0, and set properties
  717. set xlconstant_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_0 ]
  718. set_property -dict [ list \
  719. CONFIG.CONST_VAL {0} \
  720. CONFIG.CONST_WIDTH {16} \
  721. ] $xlconstant_0
  722. # Create instance: xlconstant_1, and set properties
  723. set xlconstant_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_1 ]
  724. set_property -dict [ list \
  725. CONFIG.CONST_VAL {0} \
  726. CONFIG.CONST_WIDTH {7} \
  727. ] $xlconstant_1
  728. # Create instance: xlslice_0, and set properties
  729. set xlslice_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 xlslice_0 ]
  730. set_property -dict [ list \
  731. CONFIG.DIN_FROM {7} \
  732. CONFIG.DIN_TO {0} \
  733. CONFIG.DIN_WIDTH {16} \
  734. CONFIG.DOUT_WIDTH {8} \
  735. ] $xlslice_0
  736. # Create interface connections
  737. connect_bd_intf_net -intf_net ethernet_transceiver2_0_fifo_read [get_bd_intf_pins ethernet_transceiver2_0/fifo_read] [get_bd_intf_pins fifo_output/FIFO_READ]
  738. connect_bd_intf_net -intf_net ethernet_transceiver2_0_fifo_write [get_bd_intf_pins ethernet_transceiver2_0/fifo_write] [get_bd_intf_pins fifo_input/FIFO_WRITE]
  739. # Create port connections
  740. connect_bd_net -net Net [get_bd_ports eth_rxd_0] [get_bd_pins ethernet_transceiver2_0/eth_rxd]
  741. connect_bd_net -net Net1 [get_bd_ports eth_txd_0] [get_bd_pins ethernet_transceiver2_0/eth_txd]
  742. connect_bd_net -net Net2 [get_bd_ports eth_crsdv_0] [get_bd_pins ethernet_transceiver2_0/eth_crsdv]
  743. connect_bd_net -net Net3 [get_bd_ports eth_txen_0] [get_bd_pins ethernet_transceiver2_0/eth_txen]
  744. connect_bd_net -net Net4 [get_bd_ports eth_rxerr_0] [get_bd_pins ethernet_transceiver2_0/eth_rxerr]
  745. connect_bd_net -net Net5 [get_bd_ports eth_mdio_0] [get_bd_pins ethernet_transceiver2_0/eth_mdio]
  746. connect_bd_net -net Net6 [get_bd_ports eth_rstn_0] [get_bd_pins ethernet_transceiver2_0/eth_rstn]
  747. connect_bd_net -net c_counter_binary_0_Q [get_bd_pins c_counter_binary_0/Q] [get_bd_pins segment_0/num2]
  748. connect_bd_net -net c_counter_binary_1_Q [get_bd_pins c_counter_binary_1/Q] [get_bd_pins segment_0/num1]
  749. connect_bd_net -net clk_wiz_clk_out1 [get_bd_ports clk_100MHz] [get_bd_pins c_counter_binary_0/CLK] [get_bd_pins c_counter_binary_1/CLK] [get_bd_pins ethernet_transceiver2_0/clk100mhz] [get_bd_pins fifo_input/clk] [get_bd_pins fifo_output/wr_clk] [get_bd_pins negate_0/CLK] [get_bd_pins packaging_0/clk] [get_bd_pins segment_0/clk]
  750. connect_bd_net -net ethernet_transceiver2_0_eth_mdc [get_bd_ports eth_mdc_0] [get_bd_pins ethernet_transceiver2_0/eth_mdc]
  751. connect_bd_net -net ethernet_transceiver2_0_eth_refclk [get_bd_ports eth_refclk_0] [get_bd_pins ethernet_transceiver2_0/eth_refclk] [get_bd_pins fifo_output/rd_clk]
  752. connect_bd_net -net ethernet_transceiver2_0_led16_b [get_bd_ports led16_b_0] [get_bd_pins ethernet_transceiver2_0/led16_b]
  753. connect_bd_net -net ethernet_transceiver2_0_led16_g [get_bd_ports led16_g_0] [get_bd_pins ethernet_transceiver2_0/led16_g]
  754. connect_bd_net -net ethernet_transceiver2_0_led16_r [get_bd_ports led16_r_0] [get_bd_pins ethernet_transceiver2_0/led16_r]
  755. connect_bd_net -net ethernet_transceiver2_0_led17_b [get_bd_ports led17_b_0] [get_bd_pins ethernet_transceiver2_0/led17_b]
  756. connect_bd_net -net ethernet_transceiver2_0_led17_g [get_bd_ports led17_g_0] [get_bd_pins ethernet_transceiver2_0/led17_g]
  757. connect_bd_net -net ethernet_transceiver2_0_led17_r [get_bd_ports led17_r_0] [get_bd_pins ethernet_transceiver2_0/led17_r]
  758. connect_bd_net -net fifo_input_dout [get_bd_pins fifo_input/dout] [get_bd_pins packaging_0/inputStream]
  759. connect_bd_net -net fifo_input_empty [get_bd_pins fifo_input/empty] [get_bd_pins packaging_0/inputEmpty]
  760. connect_bd_net -net fifo_input_overflow [get_bd_pins c_counter_binary_1/CE] [get_bd_pins fifo_input/overflow]
  761. connect_bd_net -net fifo_output_full [get_bd_pins fifo_output/full] [get_bd_pins packaging_0/outputFull]
  762. connect_bd_net -net fifo_output_overflow [get_bd_pins c_counter_binary_0/CE] [get_bd_pins fifo_output/overflow]
  763. connect_bd_net -net fifo_output_rd_data_count [get_bd_pins fifo_output/rd_data_count] [get_bd_pins xlconcat_5/In0]
  764. connect_bd_net -net packaging_0_errorCode [get_bd_pins packaging_0/errorCode] [get_bd_pins xlconcat_4/In0]
  765. connect_bd_net -net packaging_0_inpRdEn [get_bd_pins fifo_input/rd_en] [get_bd_pins packaging_0/inpRdEn]
  766. connect_bd_net -net packaging_0_outData [get_bd_pins fifo_output/din] [get_bd_pins packaging_0/outData]
  767. connect_bd_net -net packaging_0_outWrEn [get_bd_pins fifo_output/wr_en] [get_bd_pins packaging_0/outWrEn]
  768. connect_bd_net -net packaging_0_stateOut [get_bd_pins packaging_0/stateOut] [get_bd_pins xlconcat_4/In1]
  769. connect_bd_net -net rst_clk_wiz_100M_peripheral_aresetn [get_bd_ports reset_rtl_0] [get_bd_pins ethernet_transceiver2_0/btn_reset] [get_bd_pins negate_0/A] [get_bd_pins packaging_0/rst]
  770. connect_bd_net -net segment_0_anodes [get_bd_ports anodes_0] [get_bd_pins segment_0/anodes]
  771. connect_bd_net -net segment_0_cathodes [get_bd_ports cathodes_0] [get_bd_pins segment_0/cathodes]
  772. connect_bd_net -net sw_0_1 [get_bd_ports sw_0] [get_bd_pins ethernet_transceiver2_0/ip]
  773. connect_bd_net -net xlconcat_4_dout [get_bd_ports led_0] [get_bd_pins xlconcat_4/dout]
  774. connect_bd_net -net xlconcat_5_dout [get_bd_pins ethernet_transceiver2_0/fifo_read_length] [get_bd_pins xlconcat_5/dout] [get_bd_pins xlslice_0/Din]
  775. connect_bd_net -net xlconstant_0_dout [get_bd_pins ethernet_transceiver2_0/udp_packet_checksum] [get_bd_pins xlconstant_0/dout]
  776. connect_bd_net -net xlconstant_1_dout [get_bd_pins xlconcat_5/In1] [get_bd_pins xlconstant_1/dout]
  777. connect_bd_net -net xlslice_0_Dout [get_bd_pins xlconcat_4/In2] [get_bd_pins xlslice_0/Dout]
  778. connect_bd_net -net xlslice_1_Dout [get_bd_pins c_counter_binary_0/SCLR] [get_bd_pins c_counter_binary_1/SCLR] [get_bd_pins fifo_input/srst] [get_bd_pins fifo_output/rst] [get_bd_pins negate_0/S]
  779. # Create address segments
  780. # Perform GUI Layout
  781. regenerate_bd_layout -layout_string {
  782. "ExpandedHierarchyInLayout":"",
  783. "guistr":"# # String gsaved with Nlview 6.8.11 2018-08-07 bk=1.4403 VDI=40 GEI=35 GUI=JA:9.0 TLS
  784. # -string -flagsOSRD
  785. preplace port led17_r_0 -pg 1 -y 710 -defaultsOSRD
  786. preplace port eth_txen_0 -pg 1 -y 90 -defaultsOSRD
  787. preplace port led17_g_0 -pg 1 -y 680 -defaultsOSRD
  788. preplace port eth_rxerr_0 -pg 1 -y 120 -defaultsOSRD
  789. preplace port led16_r_0 -pg 1 -y 620 -defaultsOSRD
  790. preplace port led17_b_0 -pg 1 -y 650 -defaultsOSRD
  791. preplace port clk_100MHz -pg 1 -y 260 -defaultsOSRD
  792. preplace port eth_rstn_0 -pg 1 -y 240 -defaultsOSRD
  793. preplace port led16_b_0 -pg 1 -y 560 -defaultsOSRD
  794. preplace port eth_mdc_0 -pg 1 -y 180 -defaultsOSRD
  795. preplace port led16_g_0 -pg 1 -y 590 -defaultsOSRD
  796. preplace port eth_refclk_0 -pg 1 -y 530 -defaultsOSRD
  797. preplace port eth_mdio_0 -pg 1 -y 210 -defaultsOSRD
  798. preplace port reset_rtl_0 -pg 1 -y 720 -defaultsOSRD
  799. preplace port eth_crsdv_0 -pg 1 -y 60 -defaultsOSRD
  800. preplace portBus anodes_0 -pg 1 -y 330 -defaultsOSRD
  801. preplace portBus cathodes_0 -pg 1 -y 360 -defaultsOSRD
  802. preplace portBus eth_txd_0 -pg 1 -y 30 -defaultsOSRD
  803. preplace portBus led_0 -pg 1 -y 820 -defaultsOSRD
  804. preplace portBus sw_0 -pg 1 -y 380 -defaultsOSRD
  805. preplace portBus eth_rxd_0 -pg 1 -y 0 -defaultsOSRD
  806. preplace inst fifo_input -pg 1 -lvl 4 -y 220 -defaultsOSRD
  807. preplace inst xlslice_0 -pg 1 -lvl 5 -y 880 -defaultsOSRD
  808. preplace inst packaging_0 -pg 1 -lvl 3 -y 620 -defaultsOSRD
  809. preplace inst xlconstant_0 -pg 1 -lvl 2 -y 320 -defaultsOSRD
  810. preplace inst xlconstant_1 -pg 1 -lvl 1 -y 660 -defaultsOSRD
  811. preplace inst fifo_output -pg 1 -lvl 4 -y 570 -defaultsOSRD
  812. preplace inst ethernet_transceiver2_0 -pg 1 -lvl 3 -y 280 -defaultsOSRD
  813. preplace inst c_counter_binary_0 -pg 1 -lvl 5 -y 470 -defaultsOSRD
  814. preplace inst c_counter_binary_1 -pg 1 -lvl 5 -y 330 -defaultsOSRD
  815. preplace inst xlconcat_4 -pg 1 -lvl 6 -y 820 -defaultsOSRD
  816. preplace inst segment_0 -pg 1 -lvl 6 -y 350 -defaultsOSRD
  817. preplace inst negate_0 -pg 1 -lvl 3 -y 790 -defaultsOSRD
  818. preplace inst xlconcat_5 -pg 1 -lvl 2 -y 650 -defaultsOSRD
  819. preplace netloc ethernet_transceiver2_0_fifo_read 1 3 1 1000
  820. preplace netloc packaging_0_errorCode 1 3 3 950J 800 NJ 800 N
  821. preplace netloc xlconstant_1_dout 1 1 1 NJ
  822. preplace netloc ethernet_transceiver2_0_led16_b 1 3 4 980J 20 NJ 20 NJ 20 2220J
  823. preplace netloc Net4 1 3 4 1060J 340 1560J 120 NJ 120 NJ
  824. preplace netloc xlslice_1_Dout 1 3 2 1070 400 1640
  825. preplace netloc Net5 1 3 4 1050J 350 1580J 210 NJ 210 NJ
  826. preplace netloc packaging_0_outData 1 3 1 980
  827. preplace netloc c_counter_binary_1_Q 1 5 1 N
  828. preplace netloc Net6 1 3 4 1040J 360 1600J 240 NJ 240 NJ
  829. preplace netloc fifo_input_dout 1 2 2 530 30 950J
  830. preplace netloc ethernet_transceiver2_0_led16_r 1 3 4 1020J 370 1630J 250 NJ 250 2160J
  831. preplace netloc xlconcat_5_dout 1 2 3 510 880 NJ 880 NJ
  832. preplace netloc sw_0_1 1 0 3 -70J 250 NJ 250 490J
  833. preplace netloc ethernet_transceiver2_0_eth_refclk 1 3 4 990 700 NJ 700 1890J 530 NJ
  834. preplace netloc ethernet_transceiver2_0_led16_g 1 3 4 1010J 40 NJ 40 NJ 40 2210J
  835. preplace netloc ethernet_transceiver2_0_fifo_write 1 3 1 1060
  836. preplace netloc packaging_0_inpRdEn 1 3 1 950
  837. preplace netloc xlconstant_0_dout 1 2 1 480J
  838. preplace netloc segment_0_anodes 1 6 1 2200J
  839. preplace netloc ethernet_transceiver2_0_led17_b 1 3 4 960J 380 1590J 220 NJ 220 2170J
  840. preplace netloc c_counter_binary_0_Q 1 5 1 1880
  841. preplace netloc segment_0_cathodes 1 6 1 NJ
  842. preplace netloc fifo_output_overflow 1 4 1 1650
  843. preplace netloc ethernet_transceiver2_0_eth_mdc 1 3 4 1050J 100 NJ 100 NJ 100 2190J
  844. preplace netloc packaging_0_stateOut 1 3 3 930J 820 NJ 820 N
  845. preplace netloc fifo_input_empty 1 2 2 520 10 1070J
  846. preplace netloc fifo_output_rd_data_count 1 1 4 190 720 NJ 720 NJ 720 1610
  847. preplace netloc fifo_output_full 1 2 2 530 860 1080
  848. preplace netloc packaging_0_outWrEn 1 3 1 930
  849. preplace netloc ethernet_transceiver2_0_led17_r 1 3 4 1030J 50 NJ 50 NJ 50 2180J
  850. preplace netloc Net1 1 3 4 960J 30 NJ 30 NJ 30 NJ
  851. preplace netloc Net 1 3 4 970J 60 NJ 60 NJ 60 2190J
  852. preplace netloc xlconcat_4_dout 1 6 1 NJ
  853. preplace netloc fifo_input_overflow 1 4 1 1570
  854. preplace netloc Net2 1 3 4 990J 70 NJ 70 NJ 70 2200J
  855. preplace netloc xlslice_0_Dout 1 5 1 1880J
  856. preplace netloc rst_clk_wiz_100M_peripheral_aresetn 1 0 3 NJ 720 180J 730 500
  857. preplace netloc ethernet_transceiver2_0_led17_g 1 3 4 NJ 390 1620J 230 NJ 230 2150J
  858. preplace netloc clk_wiz_clk_out1 1 0 6 NJ 260 NJ 260 470 20 940 80 1610 200 1890
  859. preplace netloc Net3 1 3 4 1020J 90 NJ 90 NJ 90 NJ
  860. levelinfo -pg 1 -90 100 360 730 1360 1770 2020 2240 -top -100 -bot 1140
  861. "
  862. }
  863. # Restore current instance
  864. current_bd_instance $oldCurInst
  865. save_bd_design
  866. common::send_msg_id "BD_TCL-1000" "WARNING" "This Tcl script was generated from a block design that has not been validated. It is possible that design <$design_name> may result in errors during validation."
  867. close_bd_design $design_name
  868. }
  869. # End of cr_bd_design_1()
  870. cr_bd_design_1 ""
  871. set_property REGISTERED_WITH_MANAGER "1" [get_files design_1.bd ]
  872. set_property SYNTH_CHECKPOINT_MODE "Hierarchical" [get_files design_1.bd ]
  873. # Create wrapper file for design_1.bd
  874. make_wrapper -files [get_files design_1.bd] -import -top
  875. # Create 'synth_1' run (if not found)
  876. if {[string equal [get_runs -quiet synth_1] ""]} {
  877. create_run -name synth_1 -part xc7a100tcsg324-1 -flow {Vivado Synthesis 2018} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
  878. } else {
  879. set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
  880. set_property flow "Vivado Synthesis 2018" [get_runs synth_1]
  881. }
  882. set obj [get_runs synth_1]
  883. set_property set_report_strategy_name 1 $obj
  884. set_property report_strategy {Vivado Synthesis Default Reports} $obj
  885. set_property set_report_strategy_name 0 $obj
  886. # Create 'synth_1_synth_report_utilization_0' report (if not found)
  887. if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
  888. create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
  889. }
  890. set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
  891. if { $obj != "" } {
  892. set_property -name "display_name" -value "synth_1_synth_report_utilization_0" -objects $obj
  893. }
  894. set obj [get_runs synth_1]
  895. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  896. set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
  897. # set the current synth run
  898. current_run -synthesis [get_runs synth_1]
  899. # Create 'impl_1' run (if not found)
  900. if {[string equal [get_runs -quiet impl_1] ""]} {
  901. 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
  902. } else {
  903. set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
  904. set_property flow "Vivado Implementation 2018" [get_runs impl_1]
  905. }
  906. set obj [get_runs impl_1]
  907. set_property set_report_strategy_name 1 $obj
  908. set_property report_strategy {Vivado Implementation Default Reports} $obj
  909. set_property set_report_strategy_name 0 $obj
  910. # Create 'impl_1_init_report_timing_summary_0' report (if not found)
  911. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
  912. 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
  913. }
  914. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
  915. if { $obj != "" } {
  916. set_property -name "is_enabled" -value "0" -objects $obj
  917. set_property -name "display_name" -value "impl_1_init_report_timing_summary_0" -objects $obj
  918. }
  919. # Create 'impl_1_opt_report_drc_0' report (if not found)
  920. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
  921. create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
  922. }
  923. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
  924. if { $obj != "" } {
  925. set_property -name "display_name" -value "impl_1_opt_report_drc_0" -objects $obj
  926. }
  927. # Create 'impl_1_opt_report_timing_summary_0' report (if not found)
  928. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
  929. 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
  930. }
  931. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
  932. if { $obj != "" } {
  933. set_property -name "is_enabled" -value "0" -objects $obj
  934. set_property -name "display_name" -value "impl_1_opt_report_timing_summary_0" -objects $obj
  935. }
  936. # Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
  937. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
  938. 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
  939. }
  940. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
  941. if { $obj != "" } {
  942. set_property -name "is_enabled" -value "0" -objects $obj
  943. set_property -name "display_name" -value "impl_1_power_opt_report_timing_summary_0" -objects $obj
  944. }
  945. # Create 'impl_1_place_report_io_0' report (if not found)
  946. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
  947. create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
  948. }
  949. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
  950. if { $obj != "" } {
  951. set_property -name "display_name" -value "impl_1_place_report_io_0" -objects $obj
  952. }
  953. # Create 'impl_1_place_report_utilization_0' report (if not found)
  954. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
  955. create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
  956. }
  957. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
  958. if { $obj != "" } {
  959. set_property -name "display_name" -value "impl_1_place_report_utilization_0" -objects $obj
  960. }
  961. # Create 'impl_1_place_report_control_sets_0' report (if not found)
  962. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
  963. 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
  964. }
  965. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
  966. if { $obj != "" } {
  967. set_property -name "display_name" -value "impl_1_place_report_control_sets_0" -objects $obj
  968. }
  969. # Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
  970. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
  971. 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
  972. }
  973. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
  974. if { $obj != "" } {
  975. set_property -name "is_enabled" -value "0" -objects $obj
  976. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_0" -objects $obj
  977. }
  978. # Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
  979. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
  980. 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
  981. }
  982. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
  983. if { $obj != "" } {
  984. set_property -name "is_enabled" -value "0" -objects $obj
  985. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_1" -objects $obj
  986. }
  987. # Create 'impl_1_place_report_timing_summary_0' report (if not found)
  988. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
  989. 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
  990. }
  991. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
  992. if { $obj != "" } {
  993. set_property -name "is_enabled" -value "0" -objects $obj
  994. set_property -name "display_name" -value "impl_1_place_report_timing_summary_0" -objects $obj
  995. }
  996. # Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
  997. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
  998. 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
  999. }
  1000. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
  1001. if { $obj != "" } {
  1002. set_property -name "is_enabled" -value "0" -objects $obj
  1003. set_property -name "display_name" -value "impl_1_post_place_power_opt_report_timing_summary_0" -objects $obj
  1004. }
  1005. # Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
  1006. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
  1007. 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
  1008. }
  1009. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
  1010. if { $obj != "" } {
  1011. set_property -name "is_enabled" -value "0" -objects $obj
  1012. set_property -name "display_name" -value "impl_1_phys_opt_report_timing_summary_0" -objects $obj
  1013. }
  1014. # Create 'impl_1_route_report_drc_0' report (if not found)
  1015. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
  1016. create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
  1017. }
  1018. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
  1019. if { $obj != "" } {
  1020. set_property -name "display_name" -value "impl_1_route_report_drc_0" -objects $obj
  1021. }
  1022. # Create 'impl_1_route_report_methodology_0' report (if not found)
  1023. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
  1024. create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
  1025. }
  1026. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
  1027. if { $obj != "" } {
  1028. set_property -name "display_name" -value "impl_1_route_report_methodology_0" -objects $obj
  1029. }
  1030. # Create 'impl_1_route_report_power_0' report (if not found)
  1031. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
  1032. create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
  1033. }
  1034. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
  1035. if { $obj != "" } {
  1036. set_property -name "display_name" -value "impl_1_route_report_power_0" -objects $obj
  1037. }
  1038. # Create 'impl_1_route_report_route_status_0' report (if not found)
  1039. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
  1040. 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
  1041. }
  1042. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
  1043. if { $obj != "" } {
  1044. set_property -name "display_name" -value "impl_1_route_report_route_status_0" -objects $obj
  1045. }
  1046. # Create 'impl_1_route_report_timing_summary_0' report (if not found)
  1047. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
  1048. 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
  1049. }
  1050. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
  1051. if { $obj != "" } {
  1052. set_property -name "display_name" -value "impl_1_route_report_timing_summary_0" -objects $obj
  1053. }
  1054. # Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
  1055. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
  1056. 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
  1057. }
  1058. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
  1059. if { $obj != "" } {
  1060. set_property -name "display_name" -value "impl_1_route_report_incremental_reuse_0" -objects $obj
  1061. }
  1062. # Create 'impl_1_route_report_clock_utilization_0' report (if not found)
  1063. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
  1064. 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
  1065. }
  1066. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
  1067. if { $obj != "" } {
  1068. set_property -name "display_name" -value "impl_1_route_report_clock_utilization_0" -objects $obj
  1069. }
  1070. # Create 'impl_1_route_report_bus_skew_0' report (if not found)
  1071. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
  1072. 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
  1073. }
  1074. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
  1075. if { $obj != "" } {
  1076. set_property -name "display_name" -value "impl_1_route_report_bus_skew_0" -objects $obj
  1077. }
  1078. # Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
  1079. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
  1080. 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
  1081. }
  1082. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
  1083. if { $obj != "" } {
  1084. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_timing_summary_0" -objects $obj
  1085. }
  1086. # Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
  1087. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
  1088. 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
  1089. }
  1090. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
  1091. if { $obj != "" } {
  1092. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_bus_skew_0" -objects $obj
  1093. }
  1094. set obj [get_runs impl_1]
  1095. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  1096. set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
  1097. set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
  1098. set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
  1099. # set the current impl run
  1100. current_run -implementation [get_runs impl_1]
  1101. # Change current directory to project folder
  1102. cd [file dirname [info script]]
  1103. puts "INFO: Project created:${_xil_proj_name_}"
  1104. # Create 'drc_1' gadget (if not found)
  1105. if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} {
  1106. create_dashboard_gadget -name {drc_1} -type drc
  1107. }
  1108. set obj [get_dashboard_gadgets [ list "drc_1" ] ]
  1109. set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
  1110. # Create 'methodology_1' gadget (if not found)
  1111. if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} {
  1112. create_dashboard_gadget -name {methodology_1} -type methodology
  1113. }
  1114. set obj [get_dashboard_gadgets [ list "methodology_1" ] ]
  1115. set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
  1116. # Create 'power_1' gadget (if not found)
  1117. if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} {
  1118. create_dashboard_gadget -name {power_1} -type power
  1119. }
  1120. set obj [get_dashboard_gadgets [ list "power_1" ] ]
  1121. set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
  1122. # Create 'timing_1' gadget (if not found)
  1123. if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} {
  1124. create_dashboard_gadget -name {timing_1} -type timing
  1125. }
  1126. set obj [get_dashboard_gadgets [ list "timing_1" ] ]
  1127. set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
  1128. # Create 'utilization_1' gadget (if not found)
  1129. if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} {
  1130. create_dashboard_gadget -name {utilization_1} -type utilization
  1131. }
  1132. set obj [get_dashboard_gadgets [ list "utilization_1" ] ]
  1133. set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
  1134. set_property -name "run.step" -value "synth_design" -objects $obj
  1135. set_property -name "run.type" -value "synthesis" -objects $obj
  1136. # Create 'utilization_2' gadget (if not found)
  1137. if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} {
  1138. create_dashboard_gadget -name {utilization_2} -type utilization
  1139. }
  1140. set obj [get_dashboard_gadgets [ list "utilization_2" ] ]
  1141. set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
  1142. move_dashboard_gadget -name {utilization_1} -row 0 -col 0
  1143. move_dashboard_gadget -name {power_1} -row 1 -col 0
  1144. move_dashboard_gadget -name {drc_1} -row 2 -col 0
  1145. move_dashboard_gadget -name {timing_1} -row 0 -col 1
  1146. move_dashboard_gadget -name {utilization_2} -row 1 -col 1
  1147. move_dashboard_gadget -name {methodology_1} -row 2 -col 1