# Proc to create Block Design
proc create_block_design { parentCell design_name target_path } {

    # Define design name
    set block_design_name $design_name
    write_msg "INFO: Creating block design $block_design_name" "1"
    create_bd_design $block_design_name

    # Get object for parentCell
    set parentObj [get_bd_cells $parentCell]

    # Save current instance; Restore later
    set oldCurInst [current_bd_instance .]

    # Set parent object as current
    current_bd_instance $parentObj

    # Create interface ports
    set gtrefclk_in [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:diff_clock_rtl:1.0 gtrefclk_in ]
    set_property -dict [ list \
        CONFIG.FREQ_HZ {100000000} \
    ] $gtrefclk_in

    # Create interface SFP
    set sfp [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:sfp_rtl:1.0 sfp ]

    # Create ports
    set M_SCL_0 [ create_bd_port -dir IO -from 0 -to 0 M_SCL_0 ]
    set M_SDA_0 [ create_bd_port -dir IO -from 0 -to 0 M_SDA_0 ]
    set bckpl_rst_n_o [ create_bd_port -dir O bckpl_rst_n_o ]
    set bckpl_scl [ create_bd_port -dir IO -from 0 -to 0 bckpl_scl ]
    set bckpl_sda [ create_bd_port -dir IO -from 0 -to 0 bckpl_sda ]
    set bckpl_servmod_b [ create_bd_port -dir IO -from 7 -to 0 bckpl_servmod_b ]
    set clk_src_sel_o [ create_bd_port -dir O -from 1 -to 0 clk_src_sel_o ]
    set emio_i2c_scl [ create_bd_port -dir IO -from 0 -to 0 emio_i2c_scl ]
    set emio_i2c_sda [ create_bd_port -dir IO -from 0 -to 0 emio_i2c_sda ]
    set f_rst [ create_bd_port -dir IO -from 0 -to 0 f_rst ]
    set link_status_led [ create_bd_port -dir O -from 0 -to 0 link_status_led ]
    set link_sync_led [ create_bd_port -dir O -from 0 -to 0 link_sync_led ]
    set mdc_clk_led [ create_bd_port -dir O -from 0 -to 0 mdc_clk_led ]
    set p_pres_i_0 [ create_bd_port -dir I -from 1 -to 0 p_pres_i_0 ]
    set pl_reset_led [ create_bd_port -dir O -type rst pl_reset_led ]
    set psu_alert_i [ create_bd_port -dir I psu_alert_i ]
    set pwr_cycle_req_o_0 [ create_bd_port -dir O pwr_cycle_req_o_0 ]
    set wrflash_scl [ create_bd_port -dir IO -from 0 -to 0 wrflash_scl ]
    set wrflash_sda [ create_bd_port -dir IO -from 0 -to 0 wrflash_sda ]

    # Create instance: axi_iic_0, and set properties
    set axi_iic_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_iic axi_iic_0 ]

    # Create instance: axi_iic_1, and set properties
    set axi_iic_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_iic axi_iic_1 ]
    set_property -dict [ list \
        CONFIG.IIC_FREQ_KHZ {100} \
    ] $axi_iic_1

    # Create instance: axi_iic_2, and set properties
    set axi_iic_2 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_iic axi_iic_2 ]
    set_property -dict [ list \
        CONFIG.IIC_FREQ_KHZ {100} \
    ] $axi_iic_2

    # Create instance: constants_and_slices, and set properties
    set constants_and_slices [ create_bd_cell -type module -reference constants constants_and_slices ]
    set_property -dict [ list \
        CONFIG.POLARITY {ACTIVE_HIGH} \
    ] [ get_bd_pins /constants_and_slices/reset_o ]

    # Create instance: gig_ethernet_pcs_pma_0, and set properties
    set gig_ethernet_pcs_pma_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:gig_ethernet_pcs_pma gig_ethernet_pcs_pma_0 ]
    set_property -dict [ list \
        CONFIG.Auto_Negotiation {true} \
        CONFIG.EMAC_IF_TEMAC {GEM} \
        CONFIG.Ext_Management_Interface {false} \
        CONFIG.GT_Location {X0Y3} \
        CONFIG.GTinEx {false} \
        CONFIG.LvdsRefClk {125} \
        CONFIG.Physical_Interface {Transceiver} \
        CONFIG.RefClkRate {125} \
        CONFIG.Standard {1000BASEX} \
        CONFIG.SupportLevel {Include_Shared_Logic_in_Core} \
        CONFIG.TransceiverControl {false} \
    ] $gig_ethernet_pcs_pma_0

     # Create instance: ps8_0_axi_periph, and set properties
     set ps8_0_axi_periph [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect ps8_0_axi_periph ]
     set_property -dict [ list \
      CONFIG.NUM_MI {3} \
    ] $ps8_0_axi_periph

    # Create instance: rst_ps8_0_50M, and set properties
    set rst_ps8_0_50M [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset rst_ps8_0_50M ]

    # Create instance: util_ds_buf_0, and set properties
    set util_ds_buf_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_0 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_0

    # Create instance: util_ds_buf_1, and set properties
    set util_ds_buf_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_1 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_1

    # Create instance: util_ds_buf_2, and set properties
    set util_ds_buf_2 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_2 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_2

    # Create instance: util_ds_buf_3, and set properties
    set util_ds_buf_3 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_3 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_3

    # Create instance: util_ds_buf_4, and set properties
    set util_ds_buf_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_4 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_4

    # Create instance: util_ds_buf_5, and set properties
    set util_ds_buf_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_5 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_5

    # Create instance: util_ds_buf_6, and set properties
    set util_ds_buf_6 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_6 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
        CONFIG.C_SIZE {8} \
    ] $util_ds_buf_6

    # Create instance: util_ds_buf_7, and set properties
    set util_ds_buf_7 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_7 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_7

    # Create instance: util_ds_buf_8, and set properties
    set util_ds_buf_8 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_8 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_8

    # Create instance: util_ds_buf_9, and set properties
    set util_ds_buf_9 [ create_bd_cell -type ip -vlnv xilinx.com:ip:util_ds_buf util_ds_buf_9 ]
    set_property -dict [ list \
        CONFIG.C_BUF_TYPE {IOBUF} \
    ] $util_ds_buf_9

    source $target_path/tcl/ps_cfg.tcl

    # Create interface connections
    connect_bd_intf_net -intf_net diff_clock_rtl_0_1 [get_bd_intf_ports gtrefclk_in] [get_bd_intf_pins gig_ethernet_pcs_pma_0/gtrefclk_in]
    connect_bd_intf_net -intf_net gig_ethernet_pcs_pma_0_sfp [get_bd_intf_ports sfp] [get_bd_intf_pins gig_ethernet_pcs_pma_0/sfp]
    connect_bd_intf_net -intf_net ps8_0_axi_periph_M00_AXI [get_bd_intf_pins axi_iic_0/S_AXI] [get_bd_intf_pins ps8_0_axi_periph/M00_AXI]
    connect_bd_intf_net -intf_net ps8_0_axi_periph_M01_AXI [get_bd_intf_pins axi_iic_1/S_AXI] [get_bd_intf_pins ps8_0_axi_periph/M01_AXI]
    connect_bd_intf_net -intf_net ps8_0_axi_periph_M02_AXI [get_bd_intf_pins axi_iic_2/S_AXI] [get_bd_intf_pins ps8_0_axi_periph/M02_AXI]
    connect_bd_intf_net -intf_net zynqmp_ps_GMII_ENET0 [get_bd_intf_pins gig_ethernet_pcs_pma_0/gmii_gem_pcs_pma] [get_bd_intf_pins zynqmp_ps/GMII_ENET0]
    connect_bd_intf_net -intf_net zynqmp_ps_MDIO_ENET0 [get_bd_intf_pins gig_ethernet_pcs_pma_0/mdio_pcs_pma] [get_bd_intf_pins zynqmp_ps/MDIO_ENET0]
    connect_bd_intf_net -intf_net zynqmp_ps_M_AXI_HPM0_FPD [get_bd_intf_pins ps8_0_axi_periph/S00_AXI] [get_bd_intf_pins zynqmp_ps/M_AXI_HPM0_FPD]

    # Create port connections
    connect_bd_net -net Net [get_bd_ports emio_i2c_scl] [get_bd_pins util_ds_buf_0/IOBUF_IO_IO]
    connect_bd_net -net Net1 [get_bd_ports emio_i2c_sda] [get_bd_pins util_ds_buf_1/IOBUF_IO_IO]
    connect_bd_net -net Net2 [get_bd_ports M_SDA_0] [get_bd_pins util_ds_buf_2/IOBUF_IO_IO]
    connect_bd_net -net Net3 [get_bd_ports M_SCL_0] [get_bd_pins util_ds_buf_3/IOBUF_IO_IO]
    connect_bd_net -net Net4 [get_bd_ports wrflash_sda] [get_bd_pins util_ds_buf_4/IOBUF_IO_IO]
    connect_bd_net -net Net5 [get_bd_ports wrflash_scl] [get_bd_pins util_ds_buf_5/IOBUF_IO_IO]
    connect_bd_net -net Net6 [get_bd_ports bckpl_servmod_b] [get_bd_pins util_ds_buf_6/IOBUF_IO_IO]
    connect_bd_net -net Net7 [get_bd_ports bckpl_scl] [get_bd_pins util_ds_buf_7/IOBUF_IO_IO]
    connect_bd_net -net Net8 [get_bd_ports bckpl_sda] [get_bd_pins util_ds_buf_8/IOBUF_IO_IO]
    connect_bd_net -net Net9 [get_bd_ports f_rst] [get_bd_pins util_ds_buf_9/IOBUF_IO_IO]
    connect_bd_net -net axi_iic_0_iic2intc_irpt [get_bd_pins axi_iic_0/iic2intc_irpt] [get_bd_pins constants_and_slices/wrflash_i2c_irq_i]
    connect_bd_net -net axi_iic_0_scl_o [get_bd_pins axi_iic_0/scl_o] [get_bd_pins util_ds_buf_5/IOBUF_IO_I]
    connect_bd_net -net axi_iic_0_scl_t [get_bd_pins axi_iic_0/scl_t] [get_bd_pins util_ds_buf_5/IOBUF_IO_T]
    connect_bd_net -net axi_iic_0_sda_o [get_bd_pins axi_iic_0/sda_o] [get_bd_pins util_ds_buf_4/IOBUF_IO_I]
    connect_bd_net -net axi_iic_0_sda_t [get_bd_pins axi_iic_0/sda_t] [get_bd_pins util_ds_buf_4/IOBUF_IO_T]
    connect_bd_net -net axi_iic_1_iic2intc_irpt [get_bd_pins axi_iic_1/iic2intc_irpt] [get_bd_pins constants_and_slices/m_i2c_irq_i]
    connect_bd_net -net axi_iic_1_scl_o [get_bd_pins axi_iic_1/scl_o] [get_bd_pins util_ds_buf_3/IOBUF_IO_I]
    connect_bd_net -net axi_iic_1_scl_t [get_bd_pins axi_iic_1/scl_t] [get_bd_pins util_ds_buf_3/IOBUF_IO_T]
    connect_bd_net -net axi_iic_1_sda_o [get_bd_pins axi_iic_1/sda_o] [get_bd_pins util_ds_buf_2/IOBUF_IO_I]
    connect_bd_net -net axi_iic_1_sda_t [get_bd_pins axi_iic_1/sda_t] [get_bd_pins util_ds_buf_2/IOBUF_IO_T]
    connect_bd_net -net axi_iic_2_iic2intc_irpt [get_bd_pins axi_iic_2/iic2intc_irpt] [get_bd_pins constants_and_slices/bckpl_i2c_irq_i]
    connect_bd_net -net axi_iic_2_scl_o [get_bd_pins axi_iic_2/scl_o] [get_bd_pins util_ds_buf_7/IOBUF_IO_I]
    connect_bd_net -net axi_iic_2_scl_t [get_bd_pins axi_iic_2/scl_t] [get_bd_pins util_ds_buf_7/IOBUF_IO_T]
    connect_bd_net -net axi_iic_2_sda_o [get_bd_pins axi_iic_2/sda_o] [get_bd_pins util_ds_buf_8/IOBUF_IO_I]
    connect_bd_net -net axi_iic_2_sda_t [get_bd_pins axi_iic_2/sda_t] [get_bd_pins util_ds_buf_8/IOBUF_IO_T]
    connect_bd_net -net constants_0_configuration_valid [get_bd_pins constants_and_slices/configuration_valid] [get_bd_pins gig_ethernet_pcs_pma_0/configuration_valid]
    connect_bd_net -net constants_0_configuration_vector [get_bd_pins constants_and_slices/configuration_vector] [get_bd_pins gig_ethernet_pcs_pma_0/configuration_vector]
    connect_bd_net -net constants_0_link_status_led [get_bd_ports link_status_led] [get_bd_pins constants_and_slices/link_status_led]
    connect_bd_net -net constants_0_link_sync_led [get_bd_ports link_sync_led] [get_bd_pins constants_and_slices/link_sync_led]
    connect_bd_net -net constants_0_mdc_clk_led [get_bd_ports mdc_clk_led] [get_bd_pins constants_and_slices/mdc_clk_led]
    connect_bd_net -net constants_0_phyaddr [get_bd_pins constants_and_slices/phyaddr] [get_bd_pins gig_ethernet_pcs_pma_0/phyaddr]
    connect_bd_net -net constants_0_signal_detect [get_bd_pins constants_and_slices/signal_detect] [get_bd_pins gig_ethernet_pcs_pma_0/signal_detect]
    connect_bd_net -net constants_and_slices_an_config_o [get_bd_pins constants_and_slices/an_config_o] [get_bd_pins gig_ethernet_pcs_pma_0/an_adv_config_val] [get_bd_pins gig_ethernet_pcs_pma_0/an_restart_config]
    connect_bd_net -net constants_and_slices_an_config_vec_o [get_bd_pins constants_and_slices/an_config_vec_o] [get_bd_pins gig_ethernet_pcs_pma_0/an_adv_config_vector]
    connect_bd_net -net constants_and_slices_bckpl_rst_n_o [get_bd_ports bckpl_rst_n_o] [get_bd_pins constants_and_slices/bckpl_rst_n_o]
    connect_bd_net -net constants_and_slices_bckpl_servmod_o [get_bd_pins constants_and_slices/bckpl_servmod_o] [get_bd_pins util_ds_buf_6/IOBUF_IO_I]
    connect_bd_net -net constants_and_slices_bckpl_servmod_t_o [get_bd_pins constants_and_slices/bckpl_servmod_t_o] [get_bd_pins util_ds_buf_6/IOBUF_IO_T]
    connect_bd_net -net constants_and_slices_clk_src_sel_o [get_bd_ports clk_src_sel_o] [get_bd_pins constants_and_slices/clk_src_sel_o]
    connect_bd_net -net constants_and_slices_f_rst_o [get_bd_pins constants_and_slices/f_rst_o] [get_bd_pins util_ds_buf_9/IOBUF_IO_I]
    connect_bd_net -net constants_and_slices_f_rst_t_o [get_bd_pins constants_and_slices/f_rst_t_o] [get_bd_pins util_ds_buf_9/IOBUF_IO_T]
    connect_bd_net -net constants_and_slices_ps_emio_o [get_bd_pins constants_and_slices/ps_emio_o] [get_bd_pins zynqmp_ps/emio_gpio_i]
    connect_bd_net -net constants_and_slices_ps_irq_o [get_bd_pins constants_and_slices/ps_irq_o] [get_bd_pins zynqmp_ps/pl_ps_irq0]
    connect_bd_net -net constants_and_slices_pwr_cycle_req_o [get_bd_ports pwr_cycle_req_o_0] [get_bd_pins constants_and_slices/pwr_cycle_req_o]
    connect_bd_net -net constants_and_slices_reset_o [get_bd_pins constants_and_slices/reset_o] [get_bd_pins gig_ethernet_pcs_pma_0/reset]
    connect_bd_net -net gig_ethernet_pcs_pma_0_status_vector [get_bd_pins constants_and_slices/status_vector] [get_bd_pins gig_ethernet_pcs_pma_0/status_vector]
    connect_bd_net -net p_pres_i_0_1 [get_bd_ports p_pres_i_0] [get_bd_pins constants_and_slices/p_pres_i]
    connect_bd_net -net psu_alert_i_0_1 [get_bd_ports psu_alert_i] [get_bd_pins constants_and_slices/psu_alert_i]
    connect_bd_net -net rst_ps8_0_50M_peripheral_aresetn [get_bd_pins axi_iic_0/s_axi_aresetn] [get_bd_pins axi_iic_1/s_axi_aresetn] [get_bd_pins axi_iic_2/s_axi_aresetn] [get_bd_pins ps8_0_axi_periph/ARESETN] [get_bd_pins ps8_0_axi_periph/M00_ARESETN] [get_bd_pins ps8_0_axi_periph/M01_ARESETN] [get_bd_pins ps8_0_axi_periph/M02_ARESETN] [get_bd_pins ps8_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps8_0_50M/peripheral_aresetn]
    connect_bd_net -net util_ds_buf_0_IOBUF_IO_O [get_bd_pins util_ds_buf_0/IOBUF_IO_O] [get_bd_pins zynqmp_ps/emio_i2c1_scl_i]
    connect_bd_net -net util_ds_buf_1_IOBUF_IO_O [get_bd_pins util_ds_buf_1/IOBUF_IO_O] [get_bd_pins zynqmp_ps/emio_i2c1_sda_i]
    connect_bd_net -net util_ds_buf_2_IOBUF_IO_O [get_bd_pins axi_iic_1/sda_i] [get_bd_pins util_ds_buf_2/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_3_IOBUF_IO_O [get_bd_pins axi_iic_1/scl_i] [get_bd_pins util_ds_buf_3/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_4_IOBUF_IO_O [get_bd_pins axi_iic_0/sda_i] [get_bd_pins util_ds_buf_4/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_5_IOBUF_IO_O [get_bd_pins axi_iic_0/scl_i] [get_bd_pins util_ds_buf_5/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_6_IOBUF_IO_O [get_bd_pins constants_and_slices/bckpl_servmod_i] [get_bd_pins util_ds_buf_6/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_7_IOBUF_IO_O [get_bd_pins axi_iic_2/scl_i] [get_bd_pins util_ds_buf_7/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_8_IOBUF_IO_O [get_bd_pins axi_iic_2/sda_i] [get_bd_pins util_ds_buf_8/IOBUF_IO_O]
    connect_bd_net -net util_ds_buf_9_IOBUF_IO_O [get_bd_pins constants_and_slices/f_rst_i] [get_bd_pins util_ds_buf_9/IOBUF_IO_O]
    connect_bd_net -net zynqmp_ps_emio_enet0_mdio_mdc [get_bd_pins constants_and_slices/mdc_i] [get_bd_pins gig_ethernet_pcs_pma_0/mdc] [get_bd_pins zynqmp_ps/emio_enet0_mdio_mdc]
    connect_bd_net -net zynqmp_ps_emio_gpio_o [get_bd_pins constants_and_slices/ps_emio_i] [get_bd_pins zynqmp_ps/emio_gpio_o]
    connect_bd_net -net zynqmp_ps_emio_gpio_t [get_bd_pins constants_and_slices/ps_emio_t_i] [get_bd_pins zynqmp_ps/emio_gpio_t]
    connect_bd_net -net zynqmp_ps_emio_i2c1_scl_o [get_bd_pins util_ds_buf_0/IOBUF_IO_I] [get_bd_pins zynqmp_ps/emio_i2c1_scl_o]
    connect_bd_net -net zynqmp_ps_emio_i2c1_scl_t [get_bd_pins util_ds_buf_0/IOBUF_IO_T] [get_bd_pins zynqmp_ps/emio_i2c1_scl_t]
    connect_bd_net -net zynqmp_ps_emio_i2c1_sda_o [get_bd_pins util_ds_buf_1/IOBUF_IO_I] [get_bd_pins zynqmp_ps/emio_i2c1_sda_o]
    connect_bd_net -net zynqmp_ps_emio_i2c1_sda_t [get_bd_pins util_ds_buf_1/IOBUF_IO_T] [get_bd_pins zynqmp_ps/emio_i2c1_sda_t]
    connect_bd_net -net zynqmp_ps_pl_clk0 [get_bd_pins axi_iic_0/s_axi_aclk] [get_bd_pins axi_iic_1/s_axi_aclk] [get_bd_pins axi_iic_2/s_axi_aclk] [get_bd_pins constants_and_slices/pl_clk_i] [get_bd_pins gig_ethernet_pcs_pma_0/independent_clock_bufg] [get_bd_pins ps8_0_axi_periph/ACLK] [get_bd_pins ps8_0_axi_periph/M00_ACLK] [get_bd_pins ps8_0_axi_periph/M01_ACLK] [get_bd_pins ps8_0_axi_periph/M02_ACLK] [get_bd_pins ps8_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps8_0_50M/slowest_sync_clk] [get_bd_pins zynqmp_ps/maxihpm0_fpd_aclk] [get_bd_pins zynqmp_ps/pl_clk0]
    connect_bd_net -net zynqmp_ps_pl_resetn0 [get_bd_ports pl_reset_led] [get_bd_pins constants_and_slices/pl_resetn_i] [get_bd_pins rst_ps8_0_50M/ext_reset_in] [get_bd_pins zynqmp_ps/pl_resetn0]

    # Create address segments
    assign_bd_address -offset 0xA0000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces zynqmp_ps/Data] [get_bd_addr_segs axi_iic_0/S_AXI/Reg] -force
    assign_bd_address -offset 0xA0010000 -range 0x00010000 -target_address_space [get_bd_addr_spaces zynqmp_ps/Data] [get_bd_addr_segs axi_iic_1/S_AXI/Reg] -force
    assign_bd_address -offset 0xA0020000 -range 0x00010000 -target_address_space [get_bd_addr_spaces zynqmp_ps/Data] [get_bd_addr_segs axi_iic_2/S_AXI/Reg] -force

    # Restore current instance
    current_bd_instance $oldCurInst

    validate_bd_design
    save_bd_design
    close_bd_design $block_design_name
}
