vhdl-modules.tcl 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546
  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 "19" -objects $obj
  93. set_property -name "webtalk.ies_export_sim" -value "19" -objects $obj
  94. set_property -name "webtalk.modelsim_export_sim" -value "19" -objects $obj
  95. set_property -name "webtalk.questa_export_sim" -value "19" -objects $obj
  96. set_property -name "webtalk.riviera_export_sim" -value "19" -objects $obj
  97. set_property -name "webtalk.vcs_export_sim" -value "19" -objects $obj
  98. set_property -name "webtalk.xcelium_export_sim" -value "13" -objects $obj
  99. set_property -name "webtalk.xsim_export_sim" -value "19" -objects $obj
  100. set_property -name "webtalk.xsim_launch_sim" -value "25" -objects $obj
  101. set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj
  102. # Create 'sources_1' fileset (if not found)
  103. if {[string equal [get_filesets -quiet sources_1] ""]} {
  104. create_fileset -srcset sources_1
  105. }
  106. # Set IP repository paths
  107. set obj [get_filesets sources_1]
  108. set_property "ip_repo_paths" "[file normalize "$origin_dir/src/ip_repo"]" $obj
  109. # Rebuild user ip_repo's index before adding any source files
  110. update_ip_catalog -rebuild
  111. # Set 'sources_1' fileset object
  112. set obj [get_filesets sources_1]
  113. set files [list \
  114. [file normalize "${origin_dir}/src/ip/fp_accumulator_0_1/fp_accumulator_0_1.xci"] \
  115. [file normalize "${origin_dir}/src/ip/fp_multiply_0_1/fp_multiply_0_1.xci"] \
  116. [file normalize "${origin_dir}/src/hdl/Block_proc.vhd"] \
  117. [file normalize "${origin_dir}/src/hdl/Loop_Border_proc.vhd"] \
  118. [file normalize "${origin_dir}/src/hdl/Loop_Border_proc_borderbuf.vhd"] \
  119. [file normalize "${origin_dir}/src/hdl/Loop_HConvH_proc6.vhd"] \
  120. [file normalize "${origin_dir}/src/hdl/Loop_VConvH_proc.vhd"] \
  121. [file normalize "${origin_dir}/src/hdl/Loop_VConvH_proc_linebuf_0.vhd"] \
  122. [file normalize "${origin_dir}/src/hdl/globals.vhd"] \
  123. [file normalize "${origin_dir}/src/hdl/checksum.vhd"] \
  124. [file normalize "${origin_dir}/src/hdl/conv2d.vhd"] \
  125. [file normalize "${origin_dir}/src/hdl/conv2d_5x5_224p.vhd"] \
  126. [file normalize "${origin_dir}/src/hdl/dummyModule.vhd"] \
  127. [file normalize "${origin_dir}/src/hdl/fifo_w32_d2_A.vhd"] \
  128. [file normalize "${origin_dir}/src/hdl/fifo_w32_d3_A.vhd"] \
  129. [file normalize "${origin_dir}/src/hdl/filter11x11_strm.vhd"] \
  130. [file normalize "${origin_dir}/src/hdl/filter11x11_strm_ent.vhd"] \
  131. [file normalize "${origin_dir}/src/hdl/kernel_5x5.vhd"] \
  132. [file normalize "${origin_dir}/src/hdl/multiplex.vhd"] \
  133. [file normalize "${origin_dir}/src/hdl/ram.vhd"] \
  134. [file normalize "${origin_dir}/src/hdl/shiftIn.vhd"] \
  135. [file normalize "${origin_dir}/src/hdl/start_for_Block_proc_U0.vhd"] \
  136. [file normalize "${origin_dir}/src/hdl/start_for_Loop_Border_proc_U0.vhd"] \
  137. [file normalize "${origin_dir}/src/hdl/start_for_Loop_VConvH_proc_U0.vhd"] \
  138. [file normalize "${origin_dir}/src/hdl/packaging.vhd"] \
  139. [file normalize "${origin_dir}/src/testbench/tb_module_behav.wcfg"] \
  140. ]
  141. add_files -norecurse -fileset $obj $files
  142. # Set 'sources_1' fileset file properties for remote files
  143. set file "$origin_dir/src/ip/fp_accumulator_0_1/fp_accumulator_0_1.xci"
  144. set file [file normalize $file]
  145. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  146. set_property -name "generate_files_for_reference" -value "0" -objects $file_obj
  147. set_property -name "registered_with_manager" -value "1" -objects $file_obj
  148. set file "$origin_dir/src/ip/fp_multiply_0_1/fp_multiply_0_1.xci"
  149. set file [file normalize $file]
  150. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  151. set_property -name "generate_files_for_reference" -value "0" -objects $file_obj
  152. set_property -name "registered_with_manager" -value "1" -objects $file_obj
  153. set file "$origin_dir/src/hdl/Block_proc.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/src/hdl/Loop_Border_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/src/hdl/Loop_Border_proc_borderbuf.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/src/hdl/Loop_HConvH_proc6.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/src/hdl/Loop_VConvH_proc.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/src/hdl/Loop_VConvH_proc_linebuf_0.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/src/hdl/globals.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/src/hdl/checksum.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/src/hdl/conv2d.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/src/hdl/conv2d_5x5_224p.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/src/hdl/dummyModule.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/src/hdl/fifo_w32_d2_A.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/src/hdl/fifo_w32_d3_A.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/src/hdl/filter11x11_strm.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/src/hdl/filter11x11_strm_ent.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/src/hdl/kernel_5x5.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/src/hdl/multiplex.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/src/hdl/ram.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/src/hdl/shiftIn.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/src/hdl/start_for_Block_proc_U0.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/src/hdl/start_for_Loop_Border_proc_U0.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/src/hdl/start_for_Loop_VConvH_proc_U0.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 file "$origin_dir/src/hdl/packaging.vhd"
  242. set file [file normalize $file]
  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 'sources_1' fileset file properties for local files
  246. # None
  247. # Set 'sources_1' fileset properties
  248. set obj [get_filesets sources_1]
  249. set_property -name "top" -value "design_1_wrapper" -objects $obj
  250. set_property -name "top_auto_set" -value "0" -objects $obj
  251. # Create 'constrs_1' fileset (if not found)
  252. if {[string equal [get_filesets -quiet constrs_1] ""]} {
  253. create_fileset -constrset constrs_1
  254. }
  255. # Set 'constrs_1' fileset object
  256. set obj [get_filesets constrs_1]
  257. # Add/Import constrs file and set constrs file properties
  258. set file "[file normalize "$origin_dir/src/constraints/nexys_4_ddr.xdc"]"
  259. set file_added [add_files -norecurse -fileset $obj [list $file]]
  260. set file "$origin_dir/src/constraints/nexys_4_ddr.xdc"
  261. set file [file normalize $file]
  262. set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
  263. set_property -name "file_type" -value "XDC" -objects $file_obj
  264. # Set 'constrs_1' fileset properties
  265. set obj [get_filesets constrs_1]
  266. set_property -name "target_part" -value "xc7a100tcsg324-1" -objects $obj
  267. # Create 'sim_1' fileset (if not found)
  268. if {[string equal [get_filesets -quiet sim_1] ""]} {
  269. create_fileset -simset sim_1
  270. }
  271. # Set 'sim_1' fileset object
  272. set obj [get_filesets sim_1]
  273. set files [list \
  274. [file normalize "${origin_dir}/src/testbench/packaging_tb.vhd"] \
  275. ]
  276. add_files -norecurse -fileset $obj $files
  277. # Set 'sim_1' fileset file properties for remote files
  278. set file "$origin_dir/src/testbench/packaging_tb.vhd"
  279. set file [file normalize $file]
  280. set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
  281. set_property -name "file_type" -value "VHDL" -objects $file_obj
  282. # Set 'sim_1' fileset file properties for local files
  283. # None
  284. # Set 'sim_1' fileset properties
  285. set obj [get_filesets sim_1]
  286. set_property -name "top" -value "tb_module" -objects $obj
  287. set_property -name "top_auto_set" -value "0" -objects $obj
  288. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  289. # Set 'utils_1' fileset object
  290. set obj [get_filesets utils_1]
  291. # Empty (no sources present)
  292. # Set 'utils_1' fileset properties
  293. set obj [get_filesets utils_1]
  294. # Adding sources referenced in BDs, if not already added
  295. if { [get_files fp_accumulator_0_1.xci] == "" } {
  296. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/ip/fp_accumulator_0_1/fp_accumulator_0_1.xci
  297. }
  298. if { [get_files fp_multiply_0_1.xci] == "" } {
  299. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/ip/fp_multiply_0_1/fp_multiply_0_1.xci
  300. }
  301. if { [get_files Block_proc.vhd] == "" } {
  302. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Block_proc.vhd
  303. }
  304. if { [get_files Loop_Border_proc.vhd] == "" } {
  305. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_Border_proc.vhd
  306. }
  307. if { [get_files Loop_Border_proc_borderbuf.vhd] == "" } {
  308. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_Border_proc_borderbuf.vhd
  309. }
  310. if { [get_files Loop_HConvH_proc6.vhd] == "" } {
  311. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_HConvH_proc6.vhd
  312. }
  313. if { [get_files Loop_VConvH_proc.vhd] == "" } {
  314. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_VConvH_proc.vhd
  315. }
  316. if { [get_files Loop_VConvH_proc_linebuf_0.vhd] == "" } {
  317. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_VConvH_proc_linebuf_0.vhd
  318. }
  319. if { [get_files globals.vhd] == "" } {
  320. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/globals.vhd
  321. }
  322. if { [get_files checksum.vhd] == "" } {
  323. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/checksum.vhd
  324. }
  325. if { [get_files conv2d.vhd] == "" } {
  326. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/conv2d.vhd
  327. }
  328. if { [get_files conv2d_5x5_224p.vhd] == "" } {
  329. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/conv2d_5x5_224p.vhd
  330. }
  331. if { [get_files dummyModule.vhd] == "" } {
  332. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/dummyModule.vhd
  333. }
  334. if { [get_files fifo_w32_d2_A.vhd] == "" } {
  335. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/fifo_w32_d2_A.vhd
  336. }
  337. if { [get_files fifo_w32_d3_A.vhd] == "" } {
  338. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/fifo_w32_d3_A.vhd
  339. }
  340. if { [get_files filter11x11_strm.vhd] == "" } {
  341. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/filter11x11_strm.vhd
  342. }
  343. if { [get_files filter11x11_strm_ent.vhd] == "" } {
  344. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/filter11x11_strm_ent.vhd
  345. }
  346. if { [get_files kernel_5x5.vhd] == "" } {
  347. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/kernel_5x5.vhd
  348. }
  349. if { [get_files multiplex.vhd] == "" } {
  350. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/multiplex.vhd
  351. }
  352. if { [get_files ram.vhd] == "" } {
  353. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/ram.vhd
  354. }
  355. if { [get_files shiftIn.vhd] == "" } {
  356. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/shiftIn.vhd
  357. }
  358. if { [get_files start_for_Block_proc_U0.vhd] == "" } {
  359. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Block_proc_U0.vhd
  360. }
  361. if { [get_files start_for_Loop_Border_proc_U0.vhd] == "" } {
  362. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Loop_Border_proc_U0.vhd
  363. }
  364. if { [get_files start_for_Loop_VConvH_proc_U0.vhd] == "" } {
  365. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Loop_VConvH_proc_U0.vhd
  366. }
  367. if { [get_files packaging.vhd] == "" } {
  368. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/packaging.vhd
  369. }
  370. # Proc to create BD design_1
  371. proc cr_bd_design_1 { parentCell } {
  372. # The design that will be created by this Tcl proc contains the following
  373. # module references:
  374. # packaging
  375. # CHANGE DESIGN NAME HERE
  376. set design_name design_1
  377. common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
  378. create_bd_design $design_name
  379. set bCheckIPsPassed 1
  380. ##################################################################
  381. # CHECK IPs
  382. ##################################################################
  383. set bCheckIPs 1
  384. if { $bCheckIPs == 1 } {
  385. set list_check_ips "\
  386. xilinx.com:ip:c_counter_binary:12.0\
  387. xilinx.com:ip:clk_wiz:6.0\
  388. xilinx.com:user:ethernet_transceiver2:1.0\
  389. xilinx.com:ip:fifo_generator:13.2\
  390. xilinx.com:ip:util_vector_logic:2.0\
  391. xilinx.com:user:segment:1.0\
  392. xilinx.com:ip:xlconcat:2.1\
  393. xilinx.com:ip:xlconstant:1.1\
  394. xilinx.com:ip:xlslice:1.0\
  395. "
  396. set list_ips_missing ""
  397. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
  398. foreach ip_vlnv $list_check_ips {
  399. set ip_obj [get_ipdefs -all $ip_vlnv]
  400. if { $ip_obj eq "" } {
  401. lappend list_ips_missing $ip_vlnv
  402. }
  403. }
  404. if { $list_ips_missing ne "" } {
  405. 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." }
  406. set bCheckIPsPassed 0
  407. }
  408. }
  409. ##################################################################
  410. # CHECK Modules
  411. ##################################################################
  412. set bCheckModules 1
  413. if { $bCheckModules == 1 } {
  414. set list_check_mods "\
  415. packaging\
  416. "
  417. set list_mods_missing ""
  418. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following modules exist in the project's sources: $list_check_mods ."
  419. foreach mod_vlnv $list_check_mods {
  420. if { [can_resolve_reference $mod_vlnv] == 0 } {
  421. lappend list_mods_missing $mod_vlnv
  422. }
  423. }
  424. if { $list_mods_missing ne "" } {
  425. catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following module(s) are not found in the project: $list_mods_missing" }
  426. common::send_msg_id "BD_TCL-008" "INFO" "Please add source files for the missing module(s) above."
  427. set bCheckIPsPassed 0
  428. }
  429. }
  430. if { $bCheckIPsPassed != 1 } {
  431. common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
  432. return 3
  433. }
  434. variable script_folder
  435. if { $parentCell eq "" } {
  436. set parentCell [get_bd_cells /]
  437. }
  438. # Get object for parentCell
  439. set parentObj [get_bd_cells $parentCell]
  440. if { $parentObj == "" } {
  441. catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
  442. return
  443. }
  444. # Make sure parentObj is hier blk
  445. set parentType [get_property TYPE $parentObj]
  446. if { $parentType ne "hier" } {
  447. catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
  448. return
  449. }
  450. # Save current instance; Restore later
  451. set oldCurInst [current_bd_instance .]
  452. # Set parent object as current
  453. current_bd_instance $parentObj
  454. # Create interface ports
  455. # Create ports
  456. set anodes_0 [ create_bd_port -dir O -from 0 -to 7 anodes_0 ]
  457. set cathodes_0 [ create_bd_port -dir O -from 0 -to 7 cathodes_0 ]
  458. set clk_100MHz [ create_bd_port -dir I -type clk clk_100MHz ]
  459. set_property -dict [ list \
  460. CONFIG.FREQ_HZ {100000000} \
  461. ] $clk_100MHz
  462. set eth_crsdv_0 [ create_bd_port -dir IO eth_crsdv_0 ]
  463. set eth_mdc_0 [ create_bd_port -dir O eth_mdc_0 ]
  464. set eth_mdio_0 [ create_bd_port -dir IO eth_mdio_0 ]
  465. set eth_refclk_0 [ create_bd_port -dir O eth_refclk_0 ]
  466. set eth_rstn_0 [ create_bd_port -dir IO -type rst eth_rstn_0 ]
  467. set eth_rxd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_rxd_0 ]
  468. set eth_rxerr_0 [ create_bd_port -dir IO eth_rxerr_0 ]
  469. set eth_txd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_txd_0 ]
  470. set eth_txen_0 [ create_bd_port -dir IO eth_txen_0 ]
  471. set led16_b_0 [ create_bd_port -dir O led16_b_0 ]
  472. set led16_g_0 [ create_bd_port -dir O led16_g_0 ]
  473. set led16_r_0 [ create_bd_port -dir O led16_r_0 ]
  474. set led17_b_0 [ create_bd_port -dir O led17_b_0 ]
  475. set led17_g_0 [ create_bd_port -dir O led17_g_0 ]
  476. set led17_r_0 [ create_bd_port -dir O led17_r_0 ]
  477. set led_0 [ create_bd_port -dir O -from 15 -to 0 led_0 ]
  478. set reset_rtl_0 [ create_bd_port -dir I -type rst reset_rtl_0 ]
  479. set_property -dict [ list \
  480. CONFIG.POLARITY {ACTIVE_LOW} \
  481. ] $reset_rtl_0
  482. set sw_0 [ create_bd_port -dir I -from 4 -to 0 sw_0 ]
  483. # Create instance: c_counter_binary_0, and set properties
  484. set c_counter_binary_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_0 ]
  485. set_property -dict [ list \
  486. CONFIG.CE {true} \
  487. CONFIG.Fb_Latency {2} \
  488. CONFIG.Fb_Latency_Configuration {Automatic} \
  489. CONFIG.Final_Count_Value {270F} \
  490. CONFIG.Latency_Configuration {Automatic} \
  491. CONFIG.Restrict_Count {true} \
  492. CONFIG.SCLR {true} \
  493. CONFIG.SSET {false} \
  494. ] $c_counter_binary_0
  495. # Create instance: c_counter_binary_1, and set properties
  496. set c_counter_binary_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_1 ]
  497. set_property -dict [ list \
  498. CONFIG.CE {true} \
  499. CONFIG.Fb_Latency {2} \
  500. CONFIG.Fb_Latency_Configuration {Automatic} \
  501. CONFIG.Final_Count_Value {270F} \
  502. CONFIG.Latency_Configuration {Automatic} \
  503. CONFIG.Restrict_Count {true} \
  504. CONFIG.SCLR {true} \
  505. CONFIG.SSET {false} \
  506. ] $c_counter_binary_1
  507. # Create instance: clk_wiz_0, and set properties
  508. set clk_wiz_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:6.0 clk_wiz_0 ]
  509. set_property -dict [ list \
  510. CONFIG.ENABLE_CLOCK_MONITOR {false} \
  511. CONFIG.PRIMITIVE {MMCM} \
  512. CONFIG.RESET_PORT {resetn} \
  513. CONFIG.RESET_TYPE {ACTIVE_LOW} \
  514. ] $clk_wiz_0
  515. # Create instance: ethernet_transceiver2_0, and set properties
  516. set ethernet_transceiver2_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:ethernet_transceiver2:1.0 ethernet_transceiver2_0 ]
  517. # Create instance: fifo_input, and set properties
  518. set fifo_input [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_input ]
  519. set_property -dict [ list \
  520. CONFIG.Almost_Empty_Flag {false} \
  521. CONFIG.Data_Count {false} \
  522. CONFIG.Data_Count_Width {6} \
  523. CONFIG.Empty_Threshold_Assert_Value {2} \
  524. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  525. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  526. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  527. CONFIG.Empty_Threshold_Negate_Value {3} \
  528. CONFIG.Enable_Safety_Circuit {false} \
  529. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  530. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  531. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  532. CONFIG.Fifo_Implementation {Common_Clock_Distributed_RAM} \
  533. CONFIG.Full_Flags_Reset_Value {0} \
  534. CONFIG.Full_Threshold_Assert_Value {62} \
  535. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  536. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  537. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  538. CONFIG.Full_Threshold_Negate_Value {61} \
  539. CONFIG.INTERFACE_TYPE {Native} \
  540. CONFIG.Input_Data_Width {32} \
  541. CONFIG.Input_Depth {64} \
  542. CONFIG.Output_Data_Width {32} \
  543. CONFIG.Output_Depth {64} \
  544. CONFIG.Overflow_Flag {true} \
  545. CONFIG.Performance_Options {Standard_FIFO} \
  546. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  547. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  548. CONFIG.Read_Data_Count {false} \
  549. CONFIG.Read_Data_Count_Width {6} \
  550. CONFIG.Reset_Pin {true} \
  551. CONFIG.Reset_Type {Synchronous_Reset} \
  552. CONFIG.Underflow_Flag {false} \
  553. CONFIG.Use_Dout_Reset {true} \
  554. CONFIG.Use_Embedded_Registers {false} \
  555. CONFIG.Use_Extra_Logic {false} \
  556. CONFIG.Valid_Flag {false} \
  557. CONFIG.Write_Data_Count {false} \
  558. CONFIG.Write_Data_Count_Width {6} \
  559. ] $fifo_input
  560. # Create instance: fifo_output, and set properties
  561. set fifo_output [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_output ]
  562. set_property -dict [ list \
  563. CONFIG.Almost_Empty_Flag {false} \
  564. CONFIG.Almost_Full_Flag {false} \
  565. CONFIG.Data_Count {false} \
  566. CONFIG.Data_Count_Width {9} \
  567. CONFIG.Empty_Threshold_Assert_Value {2} \
  568. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  569. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  570. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  571. CONFIG.Empty_Threshold_Negate_Value {3} \
  572. CONFIG.Enable_Safety_Circuit {false} \
  573. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  574. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  575. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  576. CONFIG.Fifo_Implementation {Independent_Clocks_Distributed_RAM} \
  577. CONFIG.Full_Flags_Reset_Value {1} \
  578. CONFIG.Full_Threshold_Assert_Value {509} \
  579. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  580. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  581. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  582. CONFIG.Full_Threshold_Negate_Value {508} \
  583. CONFIG.INTERFACE_TYPE {Native} \
  584. CONFIG.Input_Data_Width {32} \
  585. CONFIG.Input_Depth {512} \
  586. CONFIG.Output_Data_Width {32} \
  587. CONFIG.Output_Depth {512} \
  588. CONFIG.Overflow_Flag {true} \
  589. CONFIG.Performance_Options {Standard_FIFO} \
  590. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  591. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  592. CONFIG.Read_Data_Count {true} \
  593. CONFIG.Read_Data_Count_Width {9} \
  594. CONFIG.Reset_Pin {true} \
  595. CONFIG.Reset_Type {Asynchronous_Reset} \
  596. CONFIG.Underflow_Flag {false} \
  597. CONFIG.Use_Dout_Reset {true} \
  598. CONFIG.Use_Embedded_Registers {false} \
  599. CONFIG.Use_Extra_Logic {false} \
  600. CONFIG.Valid_Flag {false} \
  601. CONFIG.Write_Data_Count {false} \
  602. CONFIG.Write_Data_Count_Width {9} \
  603. ] $fifo_output
  604. # Create instance: invert_reset_0, and set properties
  605. set invert_reset_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_vector_logic:2.0 invert_reset_0 ]
  606. set_property -dict [ list \
  607. CONFIG.C_OPERATION {not} \
  608. CONFIG.C_SIZE {1} \
  609. CONFIG.LOGO_FILE {data/sym_notgate.png} \
  610. ] $invert_reset_0
  611. # Create instance: packaging_0, and set properties
  612. set block_name packaging
  613. set block_cell_name packaging_0
  614. if { [catch {set packaging_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
  615. 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."}
  616. return 1
  617. } elseif { $packaging_0 eq "" } {
  618. 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."}
  619. return 1
  620. }
  621. # Create instance: segment_0, and set properties
  622. set segment_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:segment:1.0 segment_0 ]
  623. # Create instance: xlconcat_4, and set properties
  624. set xlconcat_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_4 ]
  625. set_property -dict [ list \
  626. CONFIG.IN0_WIDTH {4} \
  627. CONFIG.IN1_WIDTH {4} \
  628. CONFIG.IN2_WIDTH {8} \
  629. CONFIG.IN3_WIDTH {2} \
  630. CONFIG.IN4_WIDTH {5} \
  631. CONFIG.NUM_PORTS {3} \
  632. ] $xlconcat_4
  633. # Create instance: xlconcat_5, and set properties
  634. set xlconcat_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_5 ]
  635. set_property -dict [ list \
  636. CONFIG.IN0_WIDTH {9} \
  637. CONFIG.IN1_WIDTH {7} \
  638. CONFIG.IN2_WIDTH {8} \
  639. CONFIG.IN3_WIDTH {2} \
  640. CONFIG.IN4_WIDTH {5} \
  641. CONFIG.NUM_PORTS {2} \
  642. ] $xlconcat_5
  643. # Create instance: xlconstant_0, and set properties
  644. set xlconstant_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_0 ]
  645. set_property -dict [ list \
  646. CONFIG.CONST_VAL {0} \
  647. CONFIG.CONST_WIDTH {16} \
  648. ] $xlconstant_0
  649. # Create instance: xlconstant_1, and set properties
  650. set xlconstant_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_1 ]
  651. set_property -dict [ list \
  652. CONFIG.CONST_VAL {0} \
  653. CONFIG.CONST_WIDTH {7} \
  654. ] $xlconstant_1
  655. # Create instance: xlslice_0, and set properties
  656. set xlslice_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 xlslice_0 ]
  657. set_property -dict [ list \
  658. CONFIG.DIN_FROM {7} \
  659. CONFIG.DIN_TO {0} \
  660. CONFIG.DIN_WIDTH {16} \
  661. CONFIG.DOUT_WIDTH {8} \
  662. ] $xlslice_0
  663. # Create interface connections
  664. 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]
  665. 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]
  666. # Create port connections
  667. connect_bd_net -net Net [get_bd_ports eth_rxd_0] [get_bd_pins ethernet_transceiver2_0/eth_rxd]
  668. connect_bd_net -net Net1 [get_bd_ports eth_txd_0] [get_bd_pins ethernet_transceiver2_0/eth_txd]
  669. connect_bd_net -net Net2 [get_bd_ports eth_crsdv_0] [get_bd_pins ethernet_transceiver2_0/eth_crsdv]
  670. connect_bd_net -net Net3 [get_bd_ports eth_txen_0] [get_bd_pins ethernet_transceiver2_0/eth_txen]
  671. connect_bd_net -net Net4 [get_bd_ports eth_rxerr_0] [get_bd_pins ethernet_transceiver2_0/eth_rxerr]
  672. connect_bd_net -net Net5 [get_bd_ports eth_mdio_0] [get_bd_pins ethernet_transceiver2_0/eth_mdio]
  673. connect_bd_net -net Net6 [get_bd_ports eth_rstn_0] [get_bd_pins ethernet_transceiver2_0/eth_rstn]
  674. connect_bd_net -net aresetn [get_bd_pins clk_wiz_0/locked] [get_bd_pins ethernet_transceiver2_0/btn_reset] [get_bd_pins invert_reset_0/Op1] [get_bd_pins packaging_0/rst]
  675. connect_bd_net -net c_counter_binary_0_Q [get_bd_pins c_counter_binary_0/Q] [get_bd_pins segment_0/num2]
  676. connect_bd_net -net c_counter_binary_1_Q [get_bd_pins c_counter_binary_1/Q] [get_bd_pins segment_0/num1]
  677. connect_bd_net -net clk_100MHz_1 [get_bd_ports clk_100MHz] [get_bd_pins clk_wiz_0/clk_in1]
  678. connect_bd_net -net clk_wiz_clk_out1 [get_bd_pins c_counter_binary_0/CLK] [get_bd_pins c_counter_binary_1/CLK] [get_bd_pins clk_wiz_0/clk_out1] [get_bd_pins ethernet_transceiver2_0/clk100mhz] [get_bd_pins fifo_input/clk] [get_bd_pins fifo_output/wr_clk] [get_bd_pins packaging_0/clk] [get_bd_pins segment_0/clk]
  679. connect_bd_net -net ethernet_transceiver2_0_eth_mdc [get_bd_ports eth_mdc_0] [get_bd_pins ethernet_transceiver2_0/eth_mdc]
  680. 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]
  681. connect_bd_net -net ethernet_transceiver2_0_led16_b [get_bd_ports led16_b_0] [get_bd_pins ethernet_transceiver2_0/led16_b]
  682. connect_bd_net -net ethernet_transceiver2_0_led16_g [get_bd_ports led16_g_0] [get_bd_pins ethernet_transceiver2_0/led16_g]
  683. connect_bd_net -net ethernet_transceiver2_0_led16_r [get_bd_ports led16_r_0] [get_bd_pins ethernet_transceiver2_0/led16_r]
  684. connect_bd_net -net ethernet_transceiver2_0_led17_b [get_bd_ports led17_b_0] [get_bd_pins ethernet_transceiver2_0/led17_b]
  685. connect_bd_net -net ethernet_transceiver2_0_led17_g [get_bd_ports led17_g_0] [get_bd_pins ethernet_transceiver2_0/led17_g]
  686. connect_bd_net -net ethernet_transceiver2_0_led17_r [get_bd_ports led17_r_0] [get_bd_pins ethernet_transceiver2_0/led17_r]
  687. connect_bd_net -net fifo_input_dout [get_bd_pins fifo_input/dout] [get_bd_pins packaging_0/inputStream]
  688. connect_bd_net -net fifo_input_empty [get_bd_pins fifo_input/empty] [get_bd_pins packaging_0/inputEmpty]
  689. connect_bd_net -net fifo_input_overflow [get_bd_pins c_counter_binary_1/CE] [get_bd_pins fifo_input/overflow]
  690. connect_bd_net -net fifo_output_full [get_bd_pins fifo_output/full] [get_bd_pins packaging_0/outputFull]
  691. connect_bd_net -net fifo_output_overflow [get_bd_pins c_counter_binary_0/CE] [get_bd_pins fifo_output/overflow]
  692. connect_bd_net -net fifo_output_rd_data_count [get_bd_pins fifo_output/rd_data_count] [get_bd_pins xlconcat_5/In0]
  693. connect_bd_net -net packaging_0_errorCode [get_bd_pins packaging_0/errorCode] [get_bd_pins xlconcat_4/In0]
  694. connect_bd_net -net packaging_0_inpRdEn [get_bd_pins fifo_input/rd_en] [get_bd_pins packaging_0/inpRdEn]
  695. connect_bd_net -net packaging_0_outData [get_bd_pins fifo_output/din] [get_bd_pins packaging_0/outData]
  696. connect_bd_net -net packaging_0_outWrEn [get_bd_pins fifo_output/wr_en] [get_bd_pins packaging_0/outWrEn]
  697. connect_bd_net -net packaging_0_stateOut [get_bd_pins packaging_0/stateOut] [get_bd_pins xlconcat_4/In1]
  698. connect_bd_net -net reset_rtl_0_1 [get_bd_ports reset_rtl_0] [get_bd_pins clk_wiz_0/resetn]
  699. connect_bd_net -net segment_0_anodes [get_bd_ports anodes_0] [get_bd_pins segment_0/anodes]
  700. connect_bd_net -net segment_0_cathodes [get_bd_ports cathodes_0] [get_bd_pins segment_0/cathodes]
  701. connect_bd_net -net sw_0_1 [get_bd_ports sw_0] [get_bd_pins ethernet_transceiver2_0/ip]
  702. connect_bd_net -net xlconcat_4_dout [get_bd_ports led_0] [get_bd_pins xlconcat_4/dout]
  703. 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]
  704. connect_bd_net -net xlconstant_0_dout [get_bd_pins ethernet_transceiver2_0/udp_packet_checksum] [get_bd_pins xlconstant_0/dout]
  705. connect_bd_net -net xlconstant_1_dout [get_bd_pins xlconcat_5/In1] [get_bd_pins xlconstant_1/dout]
  706. connect_bd_net -net xlslice_0_Dout [get_bd_pins xlconcat_4/In2] [get_bd_pins xlslice_0/Dout]
  707. 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 invert_reset_0/Res]
  708. # Create address segments
  709. # Perform GUI Layout
  710. regenerate_bd_layout -layout_string {
  711. "ExpandedHierarchyInLayout":"",
  712. "guistr":"# # String gsaved with Nlview 6.8.11 2018-08-07 bk=1.4403 VDI=40 GEI=35 GUI=JA:9.0 non-TLS
  713. # -string -flagsOSRD
  714. preplace port led17_r_0 -pg 1 -y 530 -defaultsOSRD
  715. preplace port eth_txen_0 -pg 1 -y 320 -defaultsOSRD
  716. preplace port led17_g_0 -pg 1 -y 500 -defaultsOSRD
  717. preplace port eth_rxerr_0 -pg 1 -y 260 -defaultsOSRD
  718. preplace port led16_r_0 -pg 1 -y 440 -defaultsOSRD
  719. preplace port led17_b_0 -pg 1 -y 470 -defaultsOSRD
  720. preplace port clk_100MHz -pg 1 -y 20 -defaultsOSRD
  721. preplace port eth_rstn_0 -pg 1 -y 200 -defaultsOSRD
  722. preplace port led16_b_0 -pg 1 -y 380 -defaultsOSRD
  723. preplace port eth_mdc_0 -pg 1 -y 110 -defaultsOSRD
  724. preplace port led16_g_0 -pg 1 -y 410 -defaultsOSRD
  725. preplace port eth_refclk_0 -pg 1 -y 170 -defaultsOSRD
  726. preplace port eth_mdio_0 -pg 1 -y 140 -defaultsOSRD
  727. preplace port reset_rtl_0 -pg 1 -y 50 -defaultsOSRD
  728. preplace port eth_crsdv_0 -pg 1 -y 80 -defaultsOSRD
  729. preplace portBus anodes_0 -pg 1 -y 20 -defaultsOSRD
  730. preplace portBus cathodes_0 -pg 1 -y 50 -defaultsOSRD
  731. preplace portBus eth_txd_0 -pg 1 -y 290 -defaultsOSRD
  732. preplace portBus led_0 -pg 1 -y 350 -defaultsOSRD
  733. preplace portBus sw_0 -pg 1 -y 80 -defaultsOSRD
  734. preplace portBus eth_rxd_0 -pg 1 -y 230 -defaultsOSRD
  735. preplace inst fifo_input -pg 1 -lvl 2 -y 970 -defaultsOSRD
  736. preplace inst packaging_0 -pg 1 -lvl 1 -y 200 -defaultsOSRD
  737. preplace inst fifo_output -pg 1 -lvl 2 -y 1140 -defaultsOSRD
  738. preplace inst ethernet_transceiver2_0 -pg 1 -lvl 2 -y 650 -defaultsOSRD
  739. preplace inst c_counter_binary_0 -pg 1 -lvl 2 -y 80 -defaultsOSRD
  740. preplace inst c_counter_binary_1 -pg 1 -lvl 2 -y 220 -defaultsOSRD
  741. preplace inst invert_reset_0 -pg 1 -lvl 1 -y 60 -defaultsOSRD
  742. preplace inst clk_wiz_0 -pg 1 -lvl 2 -y 350 -defaultsOSRD
  743. levelinfo -pg 1 0 170 520 730 -top 0 -bot 1240
  744. "
  745. }
  746. # Restore current instance
  747. current_bd_instance $oldCurInst
  748. validate_bd_design
  749. save_bd_design
  750. close_bd_design $design_name
  751. }
  752. # End of cr_bd_design_1()
  753. cr_bd_design_1 ""
  754. set_property REGISTERED_WITH_MANAGER "1" [get_files design_1.bd ]
  755. set_property SYNTH_CHECKPOINT_MODE "Hierarchical" [get_files design_1.bd ]
  756. # Create wrapper file for design_1.bd
  757. make_wrapper -files [get_files design_1.bd] -import -top
  758. if { [get_files fp_accumulator_0_1.xci] == "" } {
  759. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/ip/fp_accumulator_0_1/fp_accumulator_0_1.xci
  760. }
  761. if { [get_files fp_multiply_0_1.xci] == "" } {
  762. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/ip/fp_multiply_0_1/fp_multiply_0_1.xci
  763. }
  764. if { [get_files Block_proc.vhd] == "" } {
  765. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Block_proc.vhd
  766. }
  767. if { [get_files Loop_Border_proc.vhd] == "" } {
  768. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_Border_proc.vhd
  769. }
  770. if { [get_files Loop_Border_proc_borderbuf.vhd] == "" } {
  771. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_Border_proc_borderbuf.vhd
  772. }
  773. if { [get_files Loop_HConvH_proc6.vhd] == "" } {
  774. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_HConvH_proc6.vhd
  775. }
  776. if { [get_files Loop_VConvH_proc.vhd] == "" } {
  777. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_VConvH_proc.vhd
  778. }
  779. if { [get_files Loop_VConvH_proc_linebuf_0.vhd] == "" } {
  780. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/Loop_VConvH_proc_linebuf_0.vhd
  781. }
  782. if { [get_files globals.vhd] == "" } {
  783. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/globals.vhd
  784. }
  785. if { [get_files checksum.vhd] == "" } {
  786. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/checksum.vhd
  787. }
  788. if { [get_files conv2d.vhd] == "" } {
  789. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/conv2d.vhd
  790. }
  791. if { [get_files conv2d_5x5_224p.vhd] == "" } {
  792. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/conv2d_5x5_224p.vhd
  793. }
  794. if { [get_files dummyModule.vhd] == "" } {
  795. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/dummyModule.vhd
  796. }
  797. if { [get_files fifo_w32_d2_A.vhd] == "" } {
  798. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/fifo_w32_d2_A.vhd
  799. }
  800. if { [get_files fifo_w32_d3_A.vhd] == "" } {
  801. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/fifo_w32_d3_A.vhd
  802. }
  803. if { [get_files filter11x11_strm.vhd] == "" } {
  804. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/filter11x11_strm.vhd
  805. }
  806. if { [get_files filter11x11_strm_ent.vhd] == "" } {
  807. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/filter11x11_strm_ent.vhd
  808. }
  809. if { [get_files kernel_5x5.vhd] == "" } {
  810. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/kernel_5x5.vhd
  811. }
  812. if { [get_files multiplex.vhd] == "" } {
  813. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/multiplex.vhd
  814. }
  815. if { [get_files ram.vhd] == "" } {
  816. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/ram.vhd
  817. }
  818. if { [get_files shiftIn.vhd] == "" } {
  819. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/shiftIn.vhd
  820. }
  821. if { [get_files start_for_Block_proc_U0.vhd] == "" } {
  822. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Block_proc_U0.vhd
  823. }
  824. if { [get_files start_for_Loop_Border_proc_U0.vhd] == "" } {
  825. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Loop_Border_proc_U0.vhd
  826. }
  827. if { [get_files start_for_Loop_VConvH_proc_U0.vhd] == "" } {
  828. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/start_for_Loop_VConvH_proc_U0.vhd
  829. }
  830. if { [get_files packaging.vhd] == "" } {
  831. import_files -quiet -fileset sources_1 C:/Users/johan/mlfpga/repos/vhdl-modules/src/hdl/packaging.vhd
  832. }
  833. # Proc to create BD tb_design_1
  834. proc cr_bd_tb_design_1 { parentCell } {
  835. # The design that will be created by this Tcl proc contains the following
  836. # module references:
  837. # packaging
  838. # CHANGE DESIGN NAME HERE
  839. set design_name tb_design_1
  840. common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
  841. create_bd_design $design_name
  842. set bCheckIPsPassed 1
  843. ##################################################################
  844. # CHECK IPs
  845. ##################################################################
  846. set bCheckIPs 1
  847. if { $bCheckIPs == 1 } {
  848. set list_check_ips "\
  849. xilinx.com:ip:fifo_generator:13.2\
  850. xilinx.com:ip:util_vector_logic:2.0\
  851. "
  852. set list_ips_missing ""
  853. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
  854. foreach ip_vlnv $list_check_ips {
  855. set ip_obj [get_ipdefs -all $ip_vlnv]
  856. if { $ip_obj eq "" } {
  857. lappend list_ips_missing $ip_vlnv
  858. }
  859. }
  860. if { $list_ips_missing ne "" } {
  861. 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." }
  862. set bCheckIPsPassed 0
  863. }
  864. }
  865. ##################################################################
  866. # CHECK Modules
  867. ##################################################################
  868. set bCheckModules 1
  869. if { $bCheckModules == 1 } {
  870. set list_check_mods "\
  871. packaging\
  872. "
  873. set list_mods_missing ""
  874. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following modules exist in the project's sources: $list_check_mods ."
  875. foreach mod_vlnv $list_check_mods {
  876. if { [can_resolve_reference $mod_vlnv] == 0 } {
  877. lappend list_mods_missing $mod_vlnv
  878. }
  879. }
  880. if { $list_mods_missing ne "" } {
  881. catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following module(s) are not found in the project: $list_mods_missing" }
  882. common::send_msg_id "BD_TCL-008" "INFO" "Please add source files for the missing module(s) above."
  883. set bCheckIPsPassed 0
  884. }
  885. }
  886. if { $bCheckIPsPassed != 1 } {
  887. common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
  888. return 3
  889. }
  890. variable script_folder
  891. if { $parentCell eq "" } {
  892. set parentCell [get_bd_cells /]
  893. }
  894. # Get object for parentCell
  895. set parentObj [get_bd_cells $parentCell]
  896. if { $parentObj == "" } {
  897. catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
  898. return
  899. }
  900. # Make sure parentObj is hier blk
  901. set parentType [get_property TYPE $parentObj]
  902. if { $parentType ne "hier" } {
  903. catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
  904. return
  905. }
  906. # Save current instance; Restore later
  907. set oldCurInst [current_bd_instance .]
  908. # Set parent object as current
  909. current_bd_instance $parentObj
  910. # Create interface ports
  911. set FIFO_READ_0 [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:fifo_read_rtl:1.0 FIFO_READ_0 ]
  912. set FIFO_WRITE_0 [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:fifo_write_rtl:1.0 FIFO_WRITE_0 ]
  913. # Create ports
  914. set clk_100MHz [ create_bd_port -dir I -type clk clk_100MHz ]
  915. set_property -dict [ list \
  916. CONFIG.ASSOCIATED_RESET {reset_rtl_0} \
  917. CONFIG.PHASE {0.0} \
  918. ] $clk_100MHz
  919. set errorCode_0 [ create_bd_port -dir O -from 3 -to 0 errorCode_0 ]
  920. set overflow_0 [ create_bd_port -dir O overflow_0 ]
  921. set overflow_1 [ create_bd_port -dir O overflow_1 ]
  922. set rd_data_count_0 [ create_bd_port -dir O -from 8 -to 0 rd_data_count_0 ]
  923. set reset_rtl_0 [ create_bd_port -dir I -type rst reset_rtl_0 ]
  924. set stateOut_0 [ create_bd_port -dir O -from 3 -to 0 stateOut_0 ]
  925. # Create instance: fifo_input, and set properties
  926. set fifo_input [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_input ]
  927. set_property -dict [ list \
  928. CONFIG.Almost_Empty_Flag {false} \
  929. CONFIG.Data_Count {false} \
  930. CONFIG.Data_Count_Width {6} \
  931. CONFIG.Empty_Threshold_Assert_Value {2} \
  932. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  933. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  934. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  935. CONFIG.Empty_Threshold_Negate_Value {3} \
  936. CONFIG.Enable_Safety_Circuit {false} \
  937. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  938. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  939. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  940. CONFIG.Fifo_Implementation {Common_Clock_Distributed_RAM} \
  941. CONFIG.Full_Flags_Reset_Value {0} \
  942. CONFIG.Full_Threshold_Assert_Value {62} \
  943. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  944. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  945. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  946. CONFIG.Full_Threshold_Negate_Value {61} \
  947. CONFIG.INTERFACE_TYPE {Native} \
  948. CONFIG.Input_Data_Width {32} \
  949. CONFIG.Input_Depth {64} \
  950. CONFIG.Output_Data_Width {32} \
  951. CONFIG.Output_Depth {64} \
  952. CONFIG.Overflow_Flag {true} \
  953. CONFIG.Performance_Options {Standard_FIFO} \
  954. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  955. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  956. CONFIG.Read_Data_Count {false} \
  957. CONFIG.Read_Data_Count_Width {6} \
  958. CONFIG.Reset_Pin {true} \
  959. CONFIG.Reset_Type {Synchronous_Reset} \
  960. CONFIG.Underflow_Flag {false} \
  961. CONFIG.Use_Dout_Reset {true} \
  962. CONFIG.Use_Embedded_Registers {false} \
  963. CONFIG.Use_Extra_Logic {false} \
  964. CONFIG.Valid_Flag {false} \
  965. CONFIG.Write_Data_Count {false} \
  966. CONFIG.Write_Data_Count_Width {6} \
  967. ] $fifo_input
  968. # Create instance: fifo_output, and set properties
  969. set fifo_output [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_output ]
  970. set_property -dict [ list \
  971. CONFIG.Almost_Empty_Flag {false} \
  972. CONFIG.Almost_Full_Flag {false} \
  973. CONFIG.Data_Count {false} \
  974. CONFIG.Data_Count_Width {9} \
  975. CONFIG.Empty_Threshold_Assert_Value {2} \
  976. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  977. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  978. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  979. CONFIG.Empty_Threshold_Negate_Value {3} \
  980. CONFIG.Enable_Safety_Circuit {false} \
  981. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  982. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  983. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  984. CONFIG.Fifo_Implementation {Independent_Clocks_Distributed_RAM} \
  985. CONFIG.Full_Flags_Reset_Value {1} \
  986. CONFIG.Full_Threshold_Assert_Value {509} \
  987. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  988. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  989. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  990. CONFIG.Full_Threshold_Negate_Value {508} \
  991. CONFIG.INTERFACE_TYPE {Native} \
  992. CONFIG.Input_Data_Width {32} \
  993. CONFIG.Input_Depth {512} \
  994. CONFIG.Output_Data_Width {32} \
  995. CONFIG.Output_Depth {512} \
  996. CONFIG.Overflow_Flag {true} \
  997. CONFIG.Performance_Options {Standard_FIFO} \
  998. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  999. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  1000. CONFIG.Read_Data_Count {true} \
  1001. CONFIG.Read_Data_Count_Width {9} \
  1002. CONFIG.Reset_Pin {true} \
  1003. CONFIG.Reset_Type {Asynchronous_Reset} \
  1004. CONFIG.Underflow_Flag {false} \
  1005. CONFIG.Use_Dout_Reset {true} \
  1006. CONFIG.Use_Embedded_Registers {false} \
  1007. CONFIG.Use_Extra_Logic {false} \
  1008. CONFIG.Valid_Flag {false} \
  1009. CONFIG.Write_Data_Count {false} \
  1010. CONFIG.Write_Data_Count_Width {9} \
  1011. ] $fifo_output
  1012. # Create instance: invert_reset_0, and set properties
  1013. set invert_reset_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_vector_logic:2.0 invert_reset_0 ]
  1014. set_property -dict [ list \
  1015. CONFIG.C_OPERATION {not} \
  1016. CONFIG.C_SIZE {1} \
  1017. CONFIG.LOGO_FILE {data/sym_notgate.png} \
  1018. ] $invert_reset_0
  1019. # Create instance: packaging_0, and set properties
  1020. set block_name packaging
  1021. set block_cell_name packaging_0
  1022. if { [catch {set packaging_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
  1023. 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."}
  1024. return 1
  1025. } elseif { $packaging_0 eq "" } {
  1026. 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."}
  1027. return 1
  1028. }
  1029. # Create interface connections
  1030. connect_bd_intf_net -intf_net FIFO_READ_0_1 [get_bd_intf_ports FIFO_READ_0] [get_bd_intf_pins fifo_output/FIFO_READ]
  1031. connect_bd_intf_net -intf_net FIFO_WRITE_0 [get_bd_intf_ports FIFO_WRITE_0] [get_bd_intf_pins fifo_input/FIFO_WRITE]
  1032. # Create port connections
  1033. connect_bd_net -net clk_0_1 [get_bd_ports clk_100MHz] [get_bd_pins fifo_input/clk] [get_bd_pins fifo_output/rd_clk] [get_bd_pins fifo_output/wr_clk] [get_bd_pins packaging_0/clk]
  1034. connect_bd_net -net fifo_input_dout [get_bd_pins fifo_input/dout] [get_bd_pins packaging_0/inputStream]
  1035. connect_bd_net -net fifo_input_empty [get_bd_pins fifo_input/empty] [get_bd_pins packaging_0/inputEmpty]
  1036. connect_bd_net -net fifo_input_overflow [get_bd_ports overflow_0] [get_bd_pins fifo_input/overflow]
  1037. connect_bd_net -net fifo_output_full [get_bd_pins fifo_output/full] [get_bd_pins packaging_0/outputFull]
  1038. connect_bd_net -net fifo_output_overflow [get_bd_ports overflow_1] [get_bd_pins fifo_output/overflow]
  1039. connect_bd_net -net fifo_output_rd_data_count [get_bd_ports rd_data_count_0] [get_bd_pins fifo_output/rd_data_count]
  1040. connect_bd_net -net invert_reset_0_Res [get_bd_pins fifo_input/srst] [get_bd_pins fifo_output/rst] [get_bd_pins invert_reset_0/Res]
  1041. connect_bd_net -net packaging_0_errorCode [get_bd_ports errorCode_0] [get_bd_pins packaging_0/errorCode]
  1042. connect_bd_net -net packaging_0_inpRdEn [get_bd_pins fifo_input/rd_en] [get_bd_pins packaging_0/inpRdEn]
  1043. connect_bd_net -net packaging_0_outData [get_bd_pins fifo_output/din] [get_bd_pins packaging_0/outData]
  1044. connect_bd_net -net packaging_0_outWrEn [get_bd_pins fifo_output/wr_en] [get_bd_pins packaging_0/outWrEn]
  1045. connect_bd_net -net packaging_0_stateOut [get_bd_ports stateOut_0] [get_bd_pins packaging_0/stateOut]
  1046. connect_bd_net -net rst_0_1 [get_bd_ports reset_rtl_0] [get_bd_pins invert_reset_0/Op1] [get_bd_pins packaging_0/rst]
  1047. # Create address segments
  1048. # Perform GUI Layout
  1049. regenerate_bd_layout -layout_string {
  1050. "ExpandedHierarchyInLayout":"",
  1051. "guistr":"# # String gsaved with Nlview 6.8.11 2018-08-07 bk=1.4403 VDI=40 GEI=35 GUI=JA:9.0 non-TLS
  1052. # -string -flagsOSRD
  1053. preplace port clk_100MHz -pg 1 -y 210 -defaultsOSRD
  1054. preplace port FIFO_WRITE_0 -pg 1 -y 110 -defaultsOSRD
  1055. preplace port overflow_0 -pg 1 -y 170 -defaultsOSRD
  1056. preplace port overflow_1 -pg 1 -y 520 -defaultsOSRD
  1057. preplace port reset_rtl_0 -pg 1 -y 290 -defaultsOSRD
  1058. preplace port FIFO_READ_0 -pg 1 -y 610 -defaultsOSRD
  1059. preplace portBus rd_data_count_0 -pg 1 -y 550 -defaultsOSRD
  1060. preplace portBus stateOut_0 -pg 1 -y 350 -defaultsOSRD
  1061. preplace portBus errorCode_0 -pg 1 -y 320 -defaultsOSRD
  1062. preplace inst fifo_input -pg 1 -lvl 2 -y 200 -defaultsOSRD
  1063. preplace inst packaging_0 -pg 1 -lvl 1 -y 310 -defaultsOSRD
  1064. preplace inst fifo_output -pg 1 -lvl 2 -y 600 -defaultsOSRD
  1065. preplace inst invert_reset_0 -pg 1 -lvl 1 -y 640 -defaultsOSRD
  1066. preplace netloc packaging_0_errorCode 1 1 2 350J 350 760J
  1067. preplace netloc FIFO_READ_0_1 1 0 2 10J 580 320J
  1068. preplace netloc packaging_0_outData 1 1 1 360
  1069. preplace netloc clk_0_1 1 0 2 0 190 340
  1070. preplace netloc fifo_input_dout 1 0 2 10 200 370J
  1071. preplace netloc rst_0_1 1 0 1 0
  1072. preplace netloc packaging_0_inpRdEn 1 1 1 320
  1073. preplace netloc FIFO_WRITE_0 1 0 2 NJ 110 N
  1074. preplace netloc fifo_output_overflow 1 2 1 760J
  1075. preplace netloc invert_reset_0_Res 1 1 1 370
  1076. preplace netloc fifo_output_rd_data_count 1 2 1 770
  1077. preplace netloc packaging_0_stateOut 1 1 2 320J 360 770J
  1078. preplace netloc fifo_input_empty 1 0 2 20 210 NJ
  1079. preplace netloc packaging_0_outWrEn 1 1 1 330
  1080. preplace netloc fifo_output_full 1 0 2 20 550 NJ
  1081. preplace netloc fifo_input_overflow 1 2 1 760J
  1082. levelinfo -pg 1 -20 170 570 790 -top 0 -bot 730
  1083. "
  1084. }
  1085. # Restore current instance
  1086. current_bd_instance $oldCurInst
  1087. validate_bd_design
  1088. save_bd_design
  1089. close_bd_design $design_name
  1090. }
  1091. # End of cr_bd_tb_design_1()
  1092. cr_bd_tb_design_1 ""
  1093. set_property REGISTERED_WITH_MANAGER "1" [get_files tb_design_1.bd ]
  1094. # Create wrapper file for tb_design_1.bd
  1095. make_wrapper -files [get_files tb_design_1.bd] -import -top
  1096. # Create 'synth_1' run (if not found)
  1097. if {[string equal [get_runs -quiet synth_1] ""]} {
  1098. create_run -name synth_1 -part xc7a100tcsg324-1 -flow {Vivado Synthesis 2018} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
  1099. } else {
  1100. set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
  1101. set_property flow "Vivado Synthesis 2018" [get_runs synth_1]
  1102. }
  1103. set obj [get_runs synth_1]
  1104. set_property set_report_strategy_name 1 $obj
  1105. set_property report_strategy {Vivado Synthesis Default Reports} $obj
  1106. set_property set_report_strategy_name 0 $obj
  1107. # Create 'synth_1_synth_report_utilization_0' report (if not found)
  1108. if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
  1109. create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
  1110. }
  1111. set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
  1112. if { $obj != "" } {
  1113. set_property -name "display_name" -value "synth_1_synth_report_utilization_0" -objects $obj
  1114. }
  1115. set obj [get_runs synth_1]
  1116. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  1117. set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
  1118. # set the current synth run
  1119. current_run -synthesis [get_runs synth_1]
  1120. # Create 'impl_1' run (if not found)
  1121. if {[string equal [get_runs -quiet impl_1] ""]} {
  1122. 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
  1123. } else {
  1124. set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
  1125. set_property flow "Vivado Implementation 2018" [get_runs impl_1]
  1126. }
  1127. set obj [get_runs impl_1]
  1128. set_property set_report_strategy_name 1 $obj
  1129. set_property report_strategy {Vivado Implementation Default Reports} $obj
  1130. set_property set_report_strategy_name 0 $obj
  1131. # Create 'impl_1_init_report_timing_summary_0' report (if not found)
  1132. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
  1133. 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
  1134. }
  1135. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
  1136. if { $obj != "" } {
  1137. set_property -name "is_enabled" -value "0" -objects $obj
  1138. set_property -name "display_name" -value "impl_1_init_report_timing_summary_0" -objects $obj
  1139. }
  1140. # Create 'impl_1_opt_report_drc_0' report (if not found)
  1141. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
  1142. create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
  1143. }
  1144. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
  1145. if { $obj != "" } {
  1146. set_property -name "display_name" -value "impl_1_opt_report_drc_0" -objects $obj
  1147. }
  1148. # Create 'impl_1_opt_report_timing_summary_0' report (if not found)
  1149. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
  1150. 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
  1151. }
  1152. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
  1153. if { $obj != "" } {
  1154. set_property -name "is_enabled" -value "0" -objects $obj
  1155. set_property -name "display_name" -value "impl_1_opt_report_timing_summary_0" -objects $obj
  1156. }
  1157. # Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
  1158. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
  1159. 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
  1160. }
  1161. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
  1162. if { $obj != "" } {
  1163. set_property -name "is_enabled" -value "0" -objects $obj
  1164. set_property -name "display_name" -value "impl_1_power_opt_report_timing_summary_0" -objects $obj
  1165. }
  1166. # Create 'impl_1_place_report_io_0' report (if not found)
  1167. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
  1168. create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
  1169. }
  1170. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
  1171. if { $obj != "" } {
  1172. set_property -name "display_name" -value "impl_1_place_report_io_0" -objects $obj
  1173. }
  1174. # Create 'impl_1_place_report_utilization_0' report (if not found)
  1175. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
  1176. create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
  1177. }
  1178. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
  1179. if { $obj != "" } {
  1180. set_property -name "display_name" -value "impl_1_place_report_utilization_0" -objects $obj
  1181. }
  1182. # Create 'impl_1_place_report_control_sets_0' report (if not found)
  1183. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
  1184. 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
  1185. }
  1186. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
  1187. if { $obj != "" } {
  1188. set_property -name "display_name" -value "impl_1_place_report_control_sets_0" -objects $obj
  1189. }
  1190. # Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
  1191. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
  1192. 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
  1193. }
  1194. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
  1195. if { $obj != "" } {
  1196. set_property -name "is_enabled" -value "0" -objects $obj
  1197. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_0" -objects $obj
  1198. }
  1199. # Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
  1200. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
  1201. 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
  1202. }
  1203. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
  1204. if { $obj != "" } {
  1205. set_property -name "is_enabled" -value "0" -objects $obj
  1206. set_property -name "display_name" -value "impl_1_place_report_incremental_reuse_1" -objects $obj
  1207. }
  1208. # Create 'impl_1_place_report_timing_summary_0' report (if not found)
  1209. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
  1210. 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
  1211. }
  1212. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
  1213. if { $obj != "" } {
  1214. set_property -name "is_enabled" -value "0" -objects $obj
  1215. set_property -name "display_name" -value "impl_1_place_report_timing_summary_0" -objects $obj
  1216. }
  1217. # Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
  1218. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
  1219. 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
  1220. }
  1221. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
  1222. if { $obj != "" } {
  1223. set_property -name "is_enabled" -value "0" -objects $obj
  1224. set_property -name "display_name" -value "impl_1_post_place_power_opt_report_timing_summary_0" -objects $obj
  1225. }
  1226. # Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
  1227. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
  1228. 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
  1229. }
  1230. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
  1231. if { $obj != "" } {
  1232. set_property -name "is_enabled" -value "0" -objects $obj
  1233. set_property -name "display_name" -value "impl_1_phys_opt_report_timing_summary_0" -objects $obj
  1234. }
  1235. # Create 'impl_1_route_report_drc_0' report (if not found)
  1236. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
  1237. create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
  1238. }
  1239. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
  1240. if { $obj != "" } {
  1241. set_property -name "display_name" -value "impl_1_route_report_drc_0" -objects $obj
  1242. }
  1243. # Create 'impl_1_route_report_methodology_0' report (if not found)
  1244. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
  1245. create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
  1246. }
  1247. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
  1248. if { $obj != "" } {
  1249. set_property -name "display_name" -value "impl_1_route_report_methodology_0" -objects $obj
  1250. }
  1251. # Create 'impl_1_route_report_power_0' report (if not found)
  1252. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
  1253. create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
  1254. }
  1255. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
  1256. if { $obj != "" } {
  1257. set_property -name "display_name" -value "impl_1_route_report_power_0" -objects $obj
  1258. }
  1259. # Create 'impl_1_route_report_route_status_0' report (if not found)
  1260. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
  1261. 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
  1262. }
  1263. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
  1264. if { $obj != "" } {
  1265. set_property -name "display_name" -value "impl_1_route_report_route_status_0" -objects $obj
  1266. }
  1267. # Create 'impl_1_route_report_timing_summary_0' report (if not found)
  1268. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
  1269. 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
  1270. }
  1271. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
  1272. if { $obj != "" } {
  1273. set_property -name "display_name" -value "impl_1_route_report_timing_summary_0" -objects $obj
  1274. }
  1275. # Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
  1276. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
  1277. 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
  1278. }
  1279. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
  1280. if { $obj != "" } {
  1281. set_property -name "display_name" -value "impl_1_route_report_incremental_reuse_0" -objects $obj
  1282. }
  1283. # Create 'impl_1_route_report_clock_utilization_0' report (if not found)
  1284. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
  1285. 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
  1286. }
  1287. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
  1288. if { $obj != "" } {
  1289. set_property -name "display_name" -value "impl_1_route_report_clock_utilization_0" -objects $obj
  1290. }
  1291. # Create 'impl_1_route_report_bus_skew_0' report (if not found)
  1292. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
  1293. 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
  1294. }
  1295. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
  1296. if { $obj != "" } {
  1297. set_property -name "display_name" -value "impl_1_route_report_bus_skew_0" -objects $obj
  1298. }
  1299. # Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
  1300. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
  1301. 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
  1302. }
  1303. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
  1304. if { $obj != "" } {
  1305. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_timing_summary_0" -objects $obj
  1306. }
  1307. # Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
  1308. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
  1309. 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
  1310. }
  1311. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
  1312. if { $obj != "" } {
  1313. set_property -name "display_name" -value "impl_1_post_route_phys_opt_report_bus_skew_0" -objects $obj
  1314. }
  1315. set obj [get_runs impl_1]
  1316. set_property -name "part" -value "xc7a100tcsg324-1" -objects $obj
  1317. set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
  1318. set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
  1319. set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
  1320. # set the current impl run
  1321. current_run -implementation [get_runs impl_1]
  1322. # Change current directory to project folder
  1323. cd [file dirname [info script]]
  1324. puts "INFO: Project created:${_xil_proj_name_}"
  1325. # Create 'drc_1' gadget (if not found)
  1326. if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} {
  1327. create_dashboard_gadget -name {drc_1} -type drc
  1328. }
  1329. set obj [get_dashboard_gadgets [ list "drc_1" ] ]
  1330. set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
  1331. # Create 'methodology_1' gadget (if not found)
  1332. if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} {
  1333. create_dashboard_gadget -name {methodology_1} -type methodology
  1334. }
  1335. set obj [get_dashboard_gadgets [ list "methodology_1" ] ]
  1336. set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
  1337. # Create 'power_1' gadget (if not found)
  1338. if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} {
  1339. create_dashboard_gadget -name {power_1} -type power
  1340. }
  1341. set obj [get_dashboard_gadgets [ list "power_1" ] ]
  1342. set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
  1343. # Create 'timing_1' gadget (if not found)
  1344. if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} {
  1345. create_dashboard_gadget -name {timing_1} -type timing
  1346. }
  1347. set obj [get_dashboard_gadgets [ list "timing_1" ] ]
  1348. set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
  1349. # Create 'utilization_1' gadget (if not found)
  1350. if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} {
  1351. create_dashboard_gadget -name {utilization_1} -type utilization
  1352. }
  1353. set obj [get_dashboard_gadgets [ list "utilization_1" ] ]
  1354. set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
  1355. set_property -name "run.step" -value "synth_design" -objects $obj
  1356. set_property -name "run.type" -value "synthesis" -objects $obj
  1357. # Create 'utilization_2' gadget (if not found)
  1358. if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} {
  1359. create_dashboard_gadget -name {utilization_2} -type utilization
  1360. }
  1361. set obj [get_dashboard_gadgets [ list "utilization_2" ] ]
  1362. set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
  1363. move_dashboard_gadget -name {utilization_1} -row 0 -col 0
  1364. move_dashboard_gadget -name {power_1} -row 1 -col 0
  1365. move_dashboard_gadget -name {drc_1} -row 2 -col 0
  1366. move_dashboard_gadget -name {timing_1} -row 0 -col 1
  1367. move_dashboard_gadget -name {utilization_2} -row 1 -col 1
  1368. move_dashboard_gadget -name {methodology_1} -row 2 -col 1