1#*****************************************************************************************
2# Vivado (TM) v2019.1 (64-bit)
3#
4# project_v4.tcl: Tcl script for re-creating project 'faust_v4_project'
5#
6# Generated by Vivado on Fri Jun 25 15:15:29 CEST 2021
7# IP Build 2548770 on Fri May 24 18:01:18 MDT 2019
8#
9# This file contains the Vivado Tcl commands for re-creating the project to the state*
10# when this script was generated. In order to re-create the project, please source this
11# file in the Vivado Tcl Shell.
12#
13# * Note that the runs in the created project will be configured the same way as the
14#   original project, however they will not be launched automatically. To regenerate the
15#   run results please launch the synthesis/implementation runs as needed.
16#
17#*****************************************************************************************
18# NOTE: In order to use this script for source control purposes, please make sure that the
19#       following files are added to the source control system:-
20#
21# 1. This project restoration tcl script (project_v4.tcl) that was generated.
22#
23# 2. The following source(s) files that were local or imported into the original project.
24#    (Please see the '$orig_proj_dir' and '$origin_dir' variable setting below at the start of the script)
25#
26#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/debounce_onepulse.vhd"
27#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/i2c_master.vhd"
28#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/i2s_transceiver.vhd"
29#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/fixed_float_types_c.vhd"
30#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/fixed_pkg_c.vhd"
31#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/faust.vhd"
32#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/bd/main_wrapper.vhd"
33#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/constrs_1/imports/src/master.xdc"
34#    "/home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sim_1/imports/sim/main_wrapper_behav.wcfg"
35#
36# 3. The following remote source files that were added to the original project:-
37#
38#    <none>
39#
40#*****************************************************************************************
41
42# Set the reference directory for source file relative paths (by default the value is script directory path)
43set origin_dir "."
44
45# Use origin directory path location variable, if specified in the tcl shell
46if { [info exists ::origin_dir_loc] } {
47  set origin_dir $::origin_dir_loc
48}
49
50# Set the project name
51set _xil_proj_name_ "faust_v4_project"
52
53# Use project name variable, if specified in the tcl shell
54if { [info exists ::user_project_name] } {
55  set _xil_proj_name_ $::user_project_name
56}
57
58variable script_file
59set script_file "project_v4.tcl"
60
61# Help information for this script
62proc print_help {} {
63  variable script_file
64  puts "\nDescription:"
65  puts "Recreate a Vivado project from this script. The created project will be"
66  puts "functionally equivalent to the original project for which this script was"
67  puts "generated. The script contains commands for creating a project, filesets,"
68  puts "runs, adding/importing sources and setting properties on various objects.\n"
69  puts "Syntax:"
70  puts "$script_file"
71  puts "$script_file -tclargs \[--origin_dir <path>\]"
72  puts "$script_file -tclargs \[--project_name <name>\]"
73  puts "$script_file -tclargs \[--help\]\n"
74  puts "Usage:"
75  puts "Name                   Description"
76  puts "-------------------------------------------------------------------------"
77  puts "\[--origin_dir <path>\]  Determine source file paths wrt this path. Default"
78  puts "                       origin_dir path value is \".\", otherwise, the value"
79  puts "                       that was set with the \"-paths_relative_to\" switch"
80  puts "                       when this script was generated.\n"
81  puts "\[--project_name <name>\] Create project with the specified name. Default"
82  puts "                       name is the name of the project from where this"
83  puts "                       script was generated.\n"
84  puts "\[--help\]               Print help information for this script"
85  puts "-------------------------------------------------------------------------\n"
86  exit 0
87}
88
89if { $::argc > 0 } {
90  for {set i 0} {$i < $::argc} {incr i} {
91    set option [string trim [lindex $::argv $i]]
92    switch -regexp -- $option {
93      "--origin_dir"   { incr i; set origin_dir [lindex $::argv $i] }
94      "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] }
95      "--help"         { print_help }
96      default {
97        if { [regexp {^-} $option] } {
98          puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n"
99          return 1
100        }
101      }
102    }
103  }
104}
105
106# Set the directory path for the original project from where this script was exported
107set orig_proj_dir "[file normalize "$origin_dir/build/faust_v4_project"]"
108
109# Create project
110create_project ${_xil_proj_name_} ./${_xil_proj_name_} -part xc7z010clg400-1 -force
111
112# Set the directory path for the new project
113set proj_dir [get_property directory [current_project]]
114
115# Set project properties
116set obj [current_project]
117set_property -name "board_part" -value "digilentinc.com:zybo-z7-10:part0:1.0" -objects $obj
118set_property -name "board_part_repo_paths" -value "/home/trisset/.Xilinx/Vivado/2019.1/xhub/board_store" -objects $obj
119set_property -name "default_lib" -value "xil_defaultlib" -objects $obj
120set_property -name "dsa.accelerator_binary_content" -value "bitstream" -objects $obj
121set_property -name "dsa.accelerator_binary_format" -value "xclbin2" -objects $obj
122set_property -name "dsa.board_id" -value "zybo-z7-10" -objects $obj
123set_property -name "dsa.description" -value "Vivado generated DSA" -objects $obj
124set_property -name "dsa.dr_bd_base_address" -value "0" -objects $obj
125set_property -name "dsa.emu_dir" -value "emu" -objects $obj
126set_property -name "dsa.flash_interface_type" -value "bpix16" -objects $obj
127set_property -name "dsa.flash_offset_address" -value "0" -objects $obj
128set_property -name "dsa.flash_size" -value "1024" -objects $obj
129set_property -name "dsa.host_architecture" -value "x86_64" -objects $obj
130set_property -name "dsa.host_interface" -value "pcie" -objects $obj
131set_property -name "dsa.num_compute_units" -value "60" -objects $obj
132set_property -name "dsa.platform_state" -value "pre_synth" -objects $obj
133set_property -name "dsa.vendor" -value "xilinx" -objects $obj
134set_property -name "dsa.version" -value "0.0" -objects $obj
135set_property -name "enable_vhdl_2008" -value "1" -objects $obj
136set_property -name "ip_cache_permissions" -value "read write" -objects $obj
137set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj
138set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj
139set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj
140set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj
141set_property -name "simulator_language" -value "Mixed" -objects $obj
142set_property -name "target_language" -value "VHDL" -objects $obj
143set_property -name "webtalk.activehdl_export_sim" -value "6" -objects $obj
144set_property -name "webtalk.ies_export_sim" -value "6" -objects $obj
145set_property -name "webtalk.modelsim_export_sim" -value "6" -objects $obj
146set_property -name "webtalk.questa_export_sim" -value "6" -objects $obj
147set_property -name "webtalk.riviera_export_sim" -value "6" -objects $obj
148set_property -name "webtalk.vcs_export_sim" -value "6" -objects $obj
149set_property -name "webtalk.xsim_export_sim" -value "6" -objects $obj
150set_property -name "webtalk.xsim_launch_sim" -value "6" -objects $obj
151set_property -name "xpm_libraries" -value "XPM_CDC" -objects $obj
152
153# Create 'sources_1' fileset (if not found)
154if {[string equal [get_filesets -quiet sources_1] ""]} {
155  create_fileset -srcset sources_1
156}
157
158# Set IP repository paths
159#set obj [get_filesets sources_1]
160#set_property "ip_repo_paths" "[file normalize "$origin_dir/build/faust_v4_ip/faust_v4"]" $obj
161
162# Rebuild user ip_repo's index before adding any source files
163update_ip_catalog -rebuild
164
165# Set 'sources_1' fileset object
166set obj [get_filesets sources_1]
167# Import local files from the original project
168set files [list \
169 [file normalize "${origin_dir}/src/debounce_onepulse.vhd"]\
170 [file normalize "${origin_dir}/src/i2c_master.vhd"]\
171 [file normalize "${origin_dir}/src/i2s_transceiver.vhd"]\
172 [file normalize "${origin_dir}/vhdl/fixed_float_types_c.vhd"]\
173 [file normalize "${origin_dir}/vhdl/fixed_pkg_c.vhd"]\
174 [file normalize "${origin_dir}/vhdl/faust.vhd"]\
175 [file normalize "${origin_dir}/src/bd/main_wrapper.vhd" ]\
176]
177set imported_files [import_files -fileset sources_1 $files]
178
179# Set 'sources_1' fileset file properties for remote files
180# None
181
182# Set 'sources_1' fileset file properties for local files
183set file "src/debounce_onepulse.vhd"
184set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
185set_property -name "file_type" -value "VHDL" -objects $file_obj
186
187set file "src/i2c_master.vhd"
188set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
189set_property -name "file_type" -value "VHDL" -objects $file_obj
190
191set file "src/i2s_transceiver.vhd"
192set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
193set_property -name "file_type" -value "VHDL" -objects $file_obj
194
195set file "vhdl/fixed_float_types_c.vhd"
196set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
197set_property -name "file_type" -value "VHDL" -objects $file_obj
198
199set file "vhdl/fixed_pkg_c.vhd"
200set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
201set_property -name "file_type" -value "VHDL" -objects $file_obj
202
203set file "vhdl/faust.vhd"
204set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
205set_property -name "file_type" -value "VHDL" -objects $file_obj
206
207set file "bd/main_wrapper.vhd"
208set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
209set_property -name "file_type" -value "VHDL" -objects $file_obj
210
211
212# Set 'sources_1' fileset properties
213set obj [get_filesets sources_1]
214set_property -name "top" -value "main_wrapper" -objects $obj
215set_property -name "top_auto_set" -value "0" -objects $obj
216
217# Create 'constrs_1' fileset (if not found)
218if {[string equal [get_filesets -quiet constrs_1] ""]} {
219  create_fileset -constrset constrs_1
220}
221
222# Set 'constrs_1' fileset object
223set obj [get_filesets constrs_1]
224
225# Add/Import constrs file and set constrs file properties
226set file "[file normalize ${origin_dir}/src/master.xdc]"
227set file_imported [import_files -fileset constrs_1 [list $file]]
228set file "src/master.xdc"
229set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
230set_property -name "file_type" -value "XDC" -objects $file_obj
231
232# Set 'constrs_1' fileset properties
233set obj [get_filesets constrs_1]
234
235# Create 'sim_1' fileset (if not found)
236if {[string equal [get_filesets -quiet sim_1] ""]} {
237  create_fileset -simset sim_1
238}
239
240# Set 'sim_1' fileset object
241set obj [get_filesets sim_1]
242# Import local files from the original project
243set files [list \
244 [file normalize "${origin_dir}/src/sim/main_wrapper_behav.wcfg"]\
245]
246set imported_files [import_files -fileset sim_1 $files]
247
248# Set 'sim_1' fileset file properties for remote files
249# None
250
251# Set 'sim_1' fileset file properties for local files
252# None
253
254# Set 'sim_1' fileset properties
255set obj [get_filesets sim_1]
256set_property -name "top" -value "main_wrapper" -objects $obj
257set_property -name "top_auto_set" -value "0" -objects $obj
258set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
259
260# Set 'utils_1' fileset object
261set obj [get_filesets utils_1]
262# Empty (no sources present)
263
264# Set 'utils_1' fileset properties
265set obj [get_filesets utils_1]
266
267
268# # Adding sources referenced in BDs, if not already added
269# if { [get_files debounce_onepulse.vhd] == "" } {
270#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/debounce_onepulse.vhd
271# }
272# if { [get_files i2c_master.vhd] == "" } {
273#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/i2c_master.vhd
274# }
275# if { [get_files i2s_transceiver.vhd] == "" } {
276#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/src/i2s_transceiver.vhd
277# }
278# if { [get_files fixed_float_types_c.vhd] == "" } {
279#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/fixed_float_types_c.vhd
280# }
281# if { [get_files fixed_pkg_c.vhd] == "" } {
282#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/fixed_pkg_c.vhd
283# }
284# if { [get_files faust.vhd] == "" } {
285#   import_files -quiet -fileset sources_1 /home/trisset/technical/syfala/v5.5-oussama/v4.1-hand-shake-no-axi/build/faust_v4_project/faust_v4_project.srcs/sources_1/imports/vhdl/faust.vhd
286# }
287
288
289# Proc to create BD main
290proc cr_bd_main { parentCell } {
291# The design that will be created by this Tcl proc contains the following
292# module references:
293# FAUST, i2cemu, i2s_transceiver
294
295
296
297  # CHANGE DESIGN NAME HERE
298  set design_name main
299
300  common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
301
302  create_bd_design $design_name
303
304  set bCheckIPsPassed 1
305  ##################################################################
306  # CHECK IPs
307  ##################################################################
308  set bCheckIPs 1
309  if { $bCheckIPs == 1 } {
310     set list_check_ips "\ 
311  xilinx.com:ip:clk_wiz:6.0\
312  xilinx.com:ip:proc_sys_reset:5.0\
313  "
314
315   set list_ips_missing ""
316   common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
317
318   foreach ip_vlnv $list_check_ips {
319      set ip_obj [get_ipdefs -all $ip_vlnv]
320      if { $ip_obj eq "" } {
321         lappend list_ips_missing $ip_vlnv
322      }
323   }
324
325   if { $list_ips_missing ne "" } {
326      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." }
327      set bCheckIPsPassed 0
328   }
329
330  }
331
332  ##################################################################
333  # CHECK Modules
334  ##################################################################
335  set bCheckModules 1
336  if { $bCheckModules == 1 } {
337     set list_check_mods "\ 
338  FAUST\
339  i2cemu\
340  i2s_transceiver\
341  "
342
343   set list_mods_missing ""
344   common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following modules exist in the project's sources: $list_check_mods ."
345
346   foreach mod_vlnv $list_check_mods {
347      if { [can_resolve_reference $mod_vlnv] == 0 } {
348         lappend list_mods_missing $mod_vlnv
349      }
350   }
351
352   if { $list_mods_missing ne "" } {
353      catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following module(s) are not found in the project: $list_mods_missing" }
354      common::send_msg_id "BD_TCL-008" "INFO" "Please add source files for the missing module(s) above."
355      set bCheckIPsPassed 0
356   }
357}
358
359  if { $bCheckIPsPassed != 1 } {
360    common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
361    return 3
362  }
363
364  variable script_folder
365
366  if { $parentCell eq "" } {
367     set parentCell [get_bd_cells /]
368  }
369
370  # Get object for parentCell
371  set parentObj [get_bd_cells $parentCell]
372  if { $parentObj == "" } {
373     catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
374     return
375  }
376
377  # Make sure parentObj is hier blk
378  set parentType [get_property TYPE $parentObj]
379  if { $parentType ne "hier" } {
380     catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
381     return
382  }
383
384  # Save current instance; Restore later
385  set oldCurInst [current_bd_instance .]
386
387  # Set parent object as current
388  current_bd_instance $parentObj
389
390
391  # Create interface ports
392
393  # Create ports
394  set ack_error [ create_bd_port -dir O ack_error ]
395  set bclk [ create_bd_port -dir O bclk ]
396  set bclkpmod [ create_bd_port -dir O bclkpmod ]
397  set bypass_analog [ create_bd_port -dir I bypass_analog ]
398  set bypass_dsp [ create_bd_port -dir I -type data bypass_dsp ]
399  set bypass_faust [ create_bd_port -dir I -type data bypass_faust ]
400  set in_mute [ create_bd_port -dir I in_mute ]
401  set mclk [ create_bd_port -dir O mclk ]
402  set mclkpmod [ create_bd_port -dir O mclkpmod ]
403  set out_mute [ create_bd_port -dir O out_mute ]
404  set reset_btn [ create_bd_port -dir I -type rst reset_btn ]
405  set_property -dict [ list \
406   CONFIG.POLARITY {ACTIVE_HIGH} \
407 ] $reset_btn
408  set sclk [ create_bd_port -dir IO sclk ]
409  set sclpmod [ create_bd_port -dir O sclpmod ]
410  set sd_rx [ create_bd_port -dir I sd_rx ]
411  set sd_rxpmod [ create_bd_port -dir O sd_rxpmod ]
412  set sd_tx [ create_bd_port -dir O sd_tx ]
413  set sd_txpmod [ create_bd_port -dir O sd_txpmod ]
414  set sdapmod [ create_bd_port -dir O sdapmod ]
415  set sdin [ create_bd_port -dir IO sdin ]
416  set sys_clk [ create_bd_port -dir I -type clk sys_clk ]
417  set_property -dict [ list \
418   CONFIG.FREQ_HZ {125000000} \
419 ] $sys_clk
420  set vol_down [ create_bd_port -dir I vol_down ]
421  set vol_up [ create_bd_port -dir I vol_up ]
422  set ws_rx [ create_bd_port -dir O ws_rx ]
423  set ws_tx [ create_bd_port -dir O ws_tx ]
424  set wspmod [ create_bd_port -dir O wspmod ]
425
426  # Create instance: FAUST_0, and set properties
427  set block_name FAUST
428  set block_cell_name FAUST_0
429  if { [catch {set FAUST_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
430     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."}
431     return 1
432   } elseif { $FAUST_0 eq "" } {
433     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."}
434     return 1
435   }
436
437  # Create instance: clk_wiz_0, and set properties
438  set clk_wiz_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:6.0 clk_wiz_0 ]
439  set_property -dict [ list \
440   CONFIG.CLKOUT1_JITTER {129.915} \
441   CONFIG.CLKOUT1_PHASE_ERROR {112.379} \
442   CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {120.000} \
443   CONFIG.CLKOUT2_JITTER {205.311} \
444   CONFIG.CLKOUT2_PHASE_ERROR {112.379} \
445   CONFIG.CLKOUT2_REQUESTED_OUT_FREQ {12.288} \
446   CONFIG.CLKOUT2_USED {true} \
447   CONFIG.CLK_OUT1_PORT {sys_clock} \
448   CONFIG.CLK_OUT2_PORT {mclk} \
449   CONFIG.MMCM_CLKFBOUT_MULT_F {6.000} \
450   CONFIG.MMCM_CLKOUT0_DIVIDE_F {6.250} \
451   CONFIG.MMCM_CLKOUT1_DIVIDE {61} \
452   CONFIG.MMCM_DIVCLK_DIVIDE {1} \
453   CONFIG.NUM_OUT_CLKS {2} \
454 ] $clk_wiz_0
455
456  # Create instance: i2cemu_0, and set properties
457  set block_name i2cemu
458  set block_cell_name i2cemu_0
459  if { [catch {set i2cemu_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
460     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."}
461     return 1
462   } elseif { $i2cemu_0 eq "" } {
463     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."}
464     return 1
465   }
466
467  # Create instance: i2s_transceiver_0, and set properties
468  set block_name i2s_transceiver
469  set block_cell_name i2s_transceiver_0
470  if { [catch {set i2s_transceiver_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } {
471     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."}
472     return 1
473   } elseif { $i2s_transceiver_0 eq "" } {
474     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."}
475     return 1
476   }
477
478  # Create instance: proc_sys_reset_0, and set properties
479  set proc_sys_reset_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 proc_sys_reset_0 ]
480
481  # Create port connections
482  connect_bd_net -net FAUST_0_ap_done [get_bd_pins FAUST_0/ap_done] [get_bd_pins i2s_transceiver_0/ap_done]
483  connect_bd_net -net FAUST_0_out_left_V [get_bd_pins FAUST_0/out_left_V] [get_bd_pins i2s_transceiver_0/l_data_tx]
484  connect_bd_net -net FAUST_0_out_left_V_ap_vld [get_bd_pins FAUST_0/out_left_V_ap_vld] [get_bd_pins i2s_transceiver_0/out_left_V_ap_vld]
485  connect_bd_net -net FAUST_0_out_right_V [get_bd_pins FAUST_0/out_right_V] [get_bd_pins i2s_transceiver_0/r_data_tx]
486  connect_bd_net -net FAUST_0_out_right_V_ap_vld [get_bd_pins FAUST_0/out_right_V_ap_vld] [get_bd_pins i2s_transceiver_0/out_right_V_ap_vld]
487  connect_bd_net -net Net [get_bd_ports sclk] [get_bd_pins i2cemu_0/sclk]
488  connect_bd_net -net Net1 [get_bd_ports sdin] [get_bd_pins i2cemu_0/sdin]
489  connect_bd_net -net analog_bypass_0_1 [get_bd_ports bypass_analog] [get_bd_pins i2cemu_0/analog_bypass]
490  connect_bd_net -net bypass_dsp_0_1 [get_bd_ports bypass_dsp] [get_bd_pins FAUST_0/bypass_dsp]
491  connect_bd_net -net bypass_faust_0_1 [get_bd_ports bypass_faust] [get_bd_pins FAUST_0/bypass_faust]
492  connect_bd_net -net clk_in1_0_1 [get_bd_ports sys_clk] [get_bd_pins clk_wiz_0/clk_in1]
493  connect_bd_net -net clk_wiz_0_locked [get_bd_pins clk_wiz_0/locked] [get_bd_pins proc_sys_reset_0/dcm_locked]
494  connect_bd_net -net clk_wiz_0_mclk [get_bd_ports mclk] [get_bd_ports mclkpmod] [get_bd_pins clk_wiz_0/mclk] [get_bd_pins i2s_transceiver_0/mclk]
495  connect_bd_net -net clk_wiz_0_sys_clock [get_bd_pins FAUST_0/ap_clk] [get_bd_pins clk_wiz_0/sys_clock] [get_bd_pins i2cemu_0/clk] [get_bd_pins i2s_transceiver_0/sys_clk] [get_bd_pins proc_sys_reset_0/slowest_sync_clk]
496  connect_bd_net -net i2cemu_0_ack_error [get_bd_ports ack_error] [get_bd_pins i2cemu_0/ack_error]
497  connect_bd_net -net i2cemu_0_done [get_bd_pins i2cemu_0/done] [get_bd_pins i2s_transceiver_0/start]
498  connect_bd_net -net i2cemu_0_sclkpmod [get_bd_ports sclpmod] [get_bd_pins i2cemu_0/sclkpmod]
499  connect_bd_net -net i2cemu_0_sdinpmod [get_bd_ports sdapmod] [get_bd_pins i2cemu_0/sdinpmod]
500  connect_bd_net -net i2s_transceiver_0_l_data_rx [get_bd_pins FAUST_0/in_left_V] [get_bd_pins i2s_transceiver_0/l_data_rx]
501  connect_bd_net -net i2s_transceiver_0_r_data_rx [get_bd_pins FAUST_0/in_right_V] [get_bd_pins i2s_transceiver_0/r_data_rx]
502  connect_bd_net -net i2s_transceiver_0_rdy [get_bd_pins FAUST_0/ap_start] [get_bd_pins i2s_transceiver_0/rdy]
503  connect_bd_net -net i2s_transceiver_0_sclk [get_bd_ports bclk] [get_bd_ports bclkpmod] [get_bd_pins i2s_transceiver_0/sclk]
504  connect_bd_net -net i2s_transceiver_0_sd_tx [get_bd_ports sd_tx] [get_bd_ports sd_txpmod] [get_bd_pins i2s_transceiver_0/sd_tx]
505  connect_bd_net -net i2s_transceiver_0_ws [get_bd_ports ws_rx] [get_bd_ports ws_tx] [get_bd_ports wspmod] [get_bd_pins FAUST_0/ws] [get_bd_pins i2s_transceiver_0/ws]
506  connect_bd_net -net in_mute_1 [get_bd_ports in_mute] [get_bd_ports out_mute]
507  connect_bd_net -net proc_sys_reset_0_peripheral_aresetn [get_bd_pins FAUST_0/ap_rst_n] [get_bd_pins i2cemu_0/reset_n] [get_bd_pins i2s_transceiver_0/reset_n] [get_bd_pins proc_sys_reset_0/peripheral_aresetn]
508  connect_bd_net -net reset_btn_1 [get_bd_ports reset_btn] [get_bd_pins clk_wiz_0/reset] [get_bd_pins proc_sys_reset_0/ext_reset_in]
509  connect_bd_net -net sd_rx_1 [get_bd_ports sd_rx] [get_bd_ports sd_rxpmod] [get_bd_pins i2s_transceiver_0/sd_rx]
510  connect_bd_net -net vol_down_0_1 [get_bd_ports vol_down] [get_bd_pins i2cemu_0/vol_down]
511  connect_bd_net -net vol_up_0_1 [get_bd_ports vol_up] [get_bd_pins i2cemu_0/vol_up]
512
513  # Create address segments
514
515  # Perform GUI Layout
516  regenerate_bd_layout -layout_string {
517   "ExpandedHierarchyInLayout":"",
518   "guistr":"# # String gsaved with Nlview 7.0.19  2019-03-26 bk=1.5019 VDI=41 GEI=35 GUI=JA:9.0 TLS
519#  -string -flagsOSRD
520preplace port ack_error -pg 1 -lvl 5 -x 1610 -y 480 -defaultsOSRD
521preplace port bclk -pg 1 -lvl 5 -x 1610 -y 100 -defaultsOSRD
522preplace port bclkpmod -pg 1 -lvl 5 -x 1610 -y 120 -defaultsOSRD
523preplace port bypass_analog -pg 1 -lvl 0 -x -90 -y 570 -defaultsOSRD
524preplace port bypass_dsp -pg 1 -lvl 0 -x -90 -y 330 -defaultsOSRD
525preplace port bypass_faust -pg 1 -lvl 0 -x -90 -y 350 -defaultsOSRD
526preplace port in_mute -pg 1 -lvl 0 -x -90 -y 20 -defaultsOSRD
527preplace port mclk -pg 1 -lvl 5 -x 1610 -y 40 -defaultsOSRD
528preplace port mclkpmod -pg 1 -lvl 5 -x 1610 -y 60 -defaultsOSRD
529preplace port out_mute -pg 1 -lvl 5 -x 1610 -y 20 -defaultsOSRD
530preplace port reset_btn -pg 1 -lvl 0 -x -90 -y 160 -defaultsOSRD
531preplace port sclk -pg 1 -lvl 5 -x 1610 -y 540 -defaultsOSRD
532preplace port sclpmod -pg 1 -lvl 5 -x 1610 -y 580 -defaultsOSRD
533preplace port sd_rx -pg 1 -lvl 0 -x -90 -y 420 -defaultsOSRD
534preplace port sd_rxpmod -pg 1 -lvl 5 -x 1610 -y 360 -defaultsOSRD
535preplace port sd_tx -pg 1 -lvl 5 -x 1610 -y 200 -defaultsOSRD
536preplace port sd_txpmod -pg 1 -lvl 5 -x 1610 -y 220 -defaultsOSRD
537preplace port sdapmod -pg 1 -lvl 5 -x 1610 -y 560 -defaultsOSRD
538preplace port sdin -pg 1 -lvl 5 -x 1610 -y 520 -defaultsOSRD
539preplace port sys_clk -pg 1 -lvl 0 -x -90 -y 250 -defaultsOSRD
540preplace port vol_down -pg 1 -lvl 0 -x -90 -y 550 -defaultsOSRD
541preplace port vol_up -pg 1 -lvl 0 -x -90 -y 530 -defaultsOSRD
542preplace port ws_rx -pg 1 -lvl 5 -x 1610 -y 160 -defaultsOSRD
543preplace port ws_tx -pg 1 -lvl 5 -x 1610 -y 140 -defaultsOSRD
544preplace port wspmod -pg 1 -lvl 5 -x 1610 -y 180 -defaultsOSRD
545preplace inst clk_wiz_0 -pg 1 -lvl 1 -x 120 -y 130 -defaultsOSRD
546preplace inst i2cemu_0 -pg 1 -lvl 3 -x 920 -y 530 -defaultsOSRD
547preplace inst i2s_transceiver_0 -pg 1 -lvl 4 -x 1370 -y 210 -defaultsOSRD
548preplace inst proc_sys_reset_0 -pg 1 -lvl 2 -x 480 -y 220 -defaultsOSRD
549preplace inst FAUST_0 -pg 1 -lvl 3 -x 920 -y 20 -defaultsOSRD
550preplace netloc Net 1 3 2 NJ 540 NJ
551preplace netloc Net1 1 3 2 NJ 520 NJ
552preplace netloc analog_bypass_0_1 1 0 3 NJ 570 NJ 570 NJ
553preplace netloc bypass_dsp_0_1 1 0 3 -70J 30 NJ 30 NJ
554preplace netloc bypass_faust_0_1 1 0 3 -60J 50 NJ 50 NJ
555preplace netloc clk_in1_0_1 1 0 1 -50J 140n
556preplace netloc clk_wiz_0_locked 1 1 1 220 150n
557preplace netloc clk_wiz_0_mclk 1 1 4 220 120 660J 150 1090 50 1590J
558preplace netloc clk_wiz_0_sys_clock 1 1 3 230 110 670 170 1130J
559preplace netloc i2cemu_0_ack_error 1 3 2 NJ 480 NJ
560preplace netloc i2cemu_0_done 1 3 1 1180 180n
561preplace netloc i2cemu_0_sclkpmod 1 3 2 NJ 580 NJ
562preplace netloc i2cemu_0_sdinpmod 1 3 2 NJ 560 NJ
563preplace netloc i2s_transceiver_0_rdy 1 2 3 720 -110 NJ -110 1540
564preplace netloc i2s_transceiver_0_sclk 1 4 1 1570 100n
565preplace netloc i2s_transceiver_0_sd_tx 1 4 1 1580 200n
566preplace netloc i2s_transceiver_0_ws 1 2 3 710 160 1110 60 1580
567preplace netloc in_mute_1 1 0 5 -70J -140 NJ -140 NJ -140 NJ -140 1590J
568preplace netloc proc_sys_reset_0_peripheral_aresetn 1 2 2 680 180 1150
569preplace netloc reset_btn_1 1 0 2 -40 210 230J
570preplace netloc sd_rx_1 1 0 5 NJ 420 NJ 420 NJ 420 1190 360 NJ
571preplace netloc vol_down_0_1 1 0 3 NJ 550 NJ 550 NJ
572preplace netloc vol_up_0_1 1 0 3 NJ 530 NJ 530 NJ
573preplace netloc FAUST_0_ap_done 1 3 1 1170 -20n
574preplace netloc i2s_transceiver_0_l_data_rx 1 2 3 700 -120 NJ -120 1550
575preplace netloc i2s_transceiver_0_r_data_rx 1 2 3 690 -130 NJ -130 1560
576preplace netloc FAUST_0_out_left_V 1 3 1 1120 40n
577preplace netloc FAUST_0_out_right_V 1 3 1 1100 60n
578preplace netloc FAUST_0_out_right_V_ap_vld 1 3 1 1140 20n
579preplace netloc FAUST_0_out_left_V_ap_vld 1 3 1 1160 0n
580levelinfo -pg 1 -90 120 480 920 1370 1610
581pagesize -pg 1 -db -bbox -sgen -250 -150 1740 680
582"
583}
584
585  # Restore current instance
586  current_bd_instance $oldCurInst
587
588  validate_bd_design
589  save_bd_design
590  close_bd_design $design_name
591}
592# End of cr_bd_main()
593cr_bd_main ""
594set_property REGISTERED_WITH_MANAGER "1" [get_files main.bd ]
595set_property SYNTH_CHECKPOINT_MODE "Hierarchical" [get_files main.bd ]
596
597# Create 'synth_1' run (if not found)
598if {[string equal [get_runs -quiet synth_1] ""]} {
599    create_run -name synth_1 -part xc7z010clg400-1 -flow {Vivado Synthesis 2019} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
600} else {
601  set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
602  set_property flow "Vivado Synthesis 2019" [get_runs synth_1]
603}
604set obj [get_runs synth_1]
605set_property set_report_strategy_name 1 $obj
606set_property report_strategy {Vivado Synthesis Default Reports} $obj
607set_property set_report_strategy_name 0 $obj
608# Create 'synth_1_synth_report_utilization_0' report (if not found)
609if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
610  create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
611}
612set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
613if { $obj != "" } {
614
615}
616set obj [get_runs synth_1]
617set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
618
619# set the current synth run
620current_run -synthesis [get_runs synth_1]
621
622# Create 'impl_1' run (if not found)
623if {[string equal [get_runs -quiet impl_1] ""]} {
624    create_run -name impl_1 -part xc7z010clg400-1 -flow {Vivado Implementation 2019} -strategy "Vivado Implementation Defaults" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1
625} else {
626  set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
627  set_property flow "Vivado Implementation 2019" [get_runs impl_1]
628}
629set obj [get_runs impl_1]
630set_property set_report_strategy_name 1 $obj
631set_property report_strategy {Vivado Implementation Default Reports} $obj
632set_property set_report_strategy_name 0 $obj
633# Create 'impl_1_init_report_timing_summary_0' report (if not found)
634if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
635  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
636}
637set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
638if { $obj != "" } {
639set_property -name "is_enabled" -value "0" -objects $obj
640set_property -name "options.max_paths" -value "10" -objects $obj
641
642}
643# Create 'impl_1_opt_report_drc_0' report (if not found)
644if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
645  create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
646}
647set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
648if { $obj != "" } {
649
650}
651# Create 'impl_1_opt_report_timing_summary_0' report (if not found)
652if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
653  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
654}
655set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
656if { $obj != "" } {
657set_property -name "is_enabled" -value "0" -objects $obj
658set_property -name "options.max_paths" -value "10" -objects $obj
659
660}
661# Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
662if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
663  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
664}
665set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
666if { $obj != "" } {
667set_property -name "is_enabled" -value "0" -objects $obj
668set_property -name "options.max_paths" -value "10" -objects $obj
669
670}
671# Create 'impl_1_place_report_io_0' report (if not found)
672if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
673  create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
674}
675set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
676if { $obj != "" } {
677
678}
679# Create 'impl_1_place_report_utilization_0' report (if not found)
680if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
681  create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
682}
683set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
684if { $obj != "" } {
685
686}
687# Create 'impl_1_place_report_control_sets_0' report (if not found)
688if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
689  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
690}
691set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
692if { $obj != "" } {
693set_property -name "options.verbose" -value "1" -objects $obj
694
695}
696# Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
697if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
698  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
699}
700set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
701if { $obj != "" } {
702set_property -name "is_enabled" -value "0" -objects $obj
703
704}
705# Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
706if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
707  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
708}
709set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
710if { $obj != "" } {
711set_property -name "is_enabled" -value "0" -objects $obj
712
713}
714# Create 'impl_1_place_report_timing_summary_0' report (if not found)
715if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
716  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
717}
718set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
719if { $obj != "" } {
720set_property -name "is_enabled" -value "0" -objects $obj
721set_property -name "options.max_paths" -value "10" -objects $obj
722
723}
724# Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
725if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
726  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
727}
728set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
729if { $obj != "" } {
730set_property -name "is_enabled" -value "0" -objects $obj
731set_property -name "options.max_paths" -value "10" -objects $obj
732
733}
734# Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
735if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
736  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
737}
738set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
739if { $obj != "" } {
740set_property -name "is_enabled" -value "0" -objects $obj
741set_property -name "options.max_paths" -value "10" -objects $obj
742
743}
744# Create 'impl_1_route_report_drc_0' report (if not found)
745if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
746  create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
747}
748set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
749if { $obj != "" } {
750
751}
752# Create 'impl_1_route_report_methodology_0' report (if not found)
753if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
754  create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
755}
756set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
757if { $obj != "" } {
758
759}
760# Create 'impl_1_route_report_power_0' report (if not found)
761if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
762  create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
763}
764set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
765if { $obj != "" } {
766
767}
768# Create 'impl_1_route_report_route_status_0' report (if not found)
769if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
770  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
771}
772set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
773if { $obj != "" } {
774
775}
776# Create 'impl_1_route_report_timing_summary_0' report (if not found)
777if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
778  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
779}
780set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
781if { $obj != "" } {
782set_property -name "options.max_paths" -value "10" -objects $obj
783
784}
785# Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
786if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
787  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
788}
789set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
790if { $obj != "" } {
791
792}
793# Create 'impl_1_route_report_clock_utilization_0' report (if not found)
794if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
795  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
796}
797set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
798if { $obj != "" } {
799
800}
801# Create 'impl_1_route_report_bus_skew_0' report (if not found)
802if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
803  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
804}
805set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
806if { $obj != "" } {
807set_property -name "options.warn_on_violation" -value "1" -objects $obj
808
809}
810# Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
811if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
812  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
813}
814set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
815if { $obj != "" } {
816set_property -name "options.max_paths" -value "10" -objects $obj
817set_property -name "options.warn_on_violation" -value "1" -objects $obj
818
819}
820# Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
821if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
822  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
823}
824set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
825if { $obj != "" } {
826set_property -name "options.warn_on_violation" -value "1" -objects $obj
827
828}
829set obj [get_runs impl_1]
830set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
831set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
832set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
833
834# set the current impl run
835current_run -implementation [get_runs impl_1]
836
837puts "INFO: Project created:${_xil_proj_name_}"
838# Create 'drc_1' gadget (if not found)
839if {[string equal [get_dashboard_gadgets  [ list "drc_1" ] ] ""]} {
840create_dashboard_gadget -name {drc_1} -type drc
841}
842set obj [get_dashboard_gadgets [ list "drc_1" ] ]
843set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
844
845# Create 'methodology_1' gadget (if not found)
846if {[string equal [get_dashboard_gadgets  [ list "methodology_1" ] ] ""]} {
847create_dashboard_gadget -name {methodology_1} -type methodology
848}
849set obj [get_dashboard_gadgets [ list "methodology_1" ] ]
850set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
851
852# Create 'power_1' gadget (if not found)
853if {[string equal [get_dashboard_gadgets  [ list "power_1" ] ] ""]} {
854create_dashboard_gadget -name {power_1} -type power
855}
856set obj [get_dashboard_gadgets [ list "power_1" ] ]
857set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
858
859# Create 'timing_1' gadget (if not found)
860if {[string equal [get_dashboard_gadgets  [ list "timing_1" ] ] ""]} {
861create_dashboard_gadget -name {timing_1} -type timing
862}
863set obj [get_dashboard_gadgets [ list "timing_1" ] ]
864set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
865
866# Create 'utilization_1' gadget (if not found)
867if {[string equal [get_dashboard_gadgets  [ list "utilization_1" ] ] ""]} {
868create_dashboard_gadget -name {utilization_1} -type utilization
869}
870set obj [get_dashboard_gadgets [ list "utilization_1" ] ]
871set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
872set_property -name "run.step" -value "synth_design" -objects $obj
873set_property -name "run.type" -value "synthesis" -objects $obj
874
875# Create 'utilization_2' gadget (if not found)
876if {[string equal [get_dashboard_gadgets  [ list "utilization_2" ] ] ""]} {
877create_dashboard_gadget -name {utilization_2} -type utilization
878}
879set obj [get_dashboard_gadgets [ list "utilization_2" ] ]
880set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
881
882move_dashboard_gadget -name {utilization_1} -row 0 -col 0
883move_dashboard_gadget -name {power_1} -row 1 -col 0
884move_dashboard_gadget -name {drc_1} -row 2 -col 0
885move_dashboard_gadget -name {timing_1} -row 0 -col 1
886move_dashboard_gadget -name {utilization_2} -row 1 -col 1
887move_dashboard_gadget -name {methodology_1} -row 2 -col 1
888