From 9b4044df5c268af3a624037e1a9cb15f15ce7a22 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Wed, 31 May 2023 21:22:07 +0100
Subject: [PATCH 01/19] MIPI-CSI: Add MIPI-CSI PHY for camera.

Camera PHY bringing camera data to cape pins for board validation
and debug.
---
 .../ADD_MIPI_CSI_INTERFACE.tcl                |  63 +++++
 .../CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl       | 223 ++++++++++++++++
 .../CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl       |   6 +
 .../CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl  |  10 +
 .../CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl  |  43 +++
 .../IMX219_PHY_TEST/CORERESET_PF_C2.tcl       |   6 +
 .../IMX219_PHY_TEST/IMX219_IF_TOP.tcl         | 126 +++++++++
 .../MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl    | 248 ++++++++++++++++++
 .../constraints/MIPI_CSI_INTERFACE.pdc        | 157 +++++++++++
 .../mipicsi2rxdecoderPF_C0.tcl                |  12 +
 10 files changed, 894 insertions(+)
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl

diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
new file mode 100644
index 0000000..2fbb9b9
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
@@ -0,0 +1,63 @@
+puts "======== Add MIPI CSI option: IMX219_PHY_TEST ========"
+
+auto_promote_pad_pins -promote_all 1
+
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl
+
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
+
+
+set sd_name {BVF_GATEWARE}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN32} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN33} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN34} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN35} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN36} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN37} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN38} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN39} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN40} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN41} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN42} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN43} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN44} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN45} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN46} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CSI1_PWND} -port_direction {OUT}
+
+sd_instantiate_component -sd_name ${sd_name} -component_name {IMX219_IF_TOP} -instance_name {IMX219_IF_TOP_0} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[0:0]"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:DEVICE_INIT_DONE" "IMX219_IF_TOP_0:INIT_DONE"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:CAMCLK_RESET_N" "P8_PIN46"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:CAMERA_CLK" "P8_PIN45"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:FRAME_START" "P8_PIN44"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:FRAME_VALID" "P8_PIN43"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:LINE_VALID" "P8_PIN42"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:PARALLEL_CLOCK" "P8_PIN41"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[0:0]" "P8_PIN40"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[1:1]" "P8_PIN39"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[2:2]" "P8_PIN38"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[3:3]" "P8_PIN37"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[4:4]" "P8_PIN36"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[5:5]" "P8_PIN35"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[6:6]" "P8_PIN34"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[7:7]" "P8_PIN33"} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN32} -value {GND} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:TRNG_RST_N} -value {VCC} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CSI1_PWND} -value {VCC} 
+
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl
new file mode 100644
index 0000000..8b56313
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IOD_TIP_TOP.tcl
@@ -0,0 +1,223 @@
+# Creating SmartDesign CAM_IOD_TIP_TOP
+set sd_name {CAM_IOD_TIP_TOP}
+create_smartdesign -sd_name ${sd_name}
+
+# Disable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 0
+
+# Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {ARST_N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {HS_IO_CLK_PAUSE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {HS_SEL} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PLL_LOCK} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RESTART_TRNG} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_CLK_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_CLK_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {SKIP_TRNG} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TRAINING_RESETN} -port_direction {IN}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CLK_TRAIN_DONE} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CLK_TRAIN_ERROR} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L0_LP_DATA_N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L0_LP_DATA} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L1_LP_DATA_N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L1_LP_DATA} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L2_LP_DATA_N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L2_LP_DATA} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L3_LP_DATA_N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {L3_LP_DATA} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_CLK_G} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {training_done_o} -port_direction {OUT}
+
+
+# Create top level Bus Ports
+sd_create_bus_port -sd_name ${sd_name} -port_name {RXD_N} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
+sd_create_bus_port -sd_name ${sd_name} -port_name {RXD} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
+
+sd_create_bus_port -sd_name ${sd_name} -port_name {L0_RXD_DATA} -port_direction {OUT} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {L1_RXD_DATA} -port_direction {OUT} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {L2_RXD_DATA} -port_direction {OUT} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {L3_RXD_DATA} -port_direction {OUT} -port_range {[7:0]}
+
+
+# Add AND2_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
+
+
+
+# Add AND4_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND4} -instance_name {AND4_0}
+
+
+
+# Add CORERESET_PF_C1_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERESET_PF_C1} -instance_name {CORERESET_PF_C1_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:BANK_x_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:BANK_y_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:PLL_LOCK} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:SS_BUSY} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:INIT_DONE} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:FF_US_RESTORE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:FPGA_POR_N} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:PLL_POWERDOWN_B}
+
+
+
+# Add CORERXIODBITALIGN_C1_L0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERXIODBITALIGN_C1} -instance_name {CORERXIODBITALIGN_C1_L0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:BIT_ALGN_START}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:BIT_ALGN_OOR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:BIT_ALGN_HOLD} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:BIT_ALGN_ERR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:BIT_ALGN_EYE_IN} -value {011}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:DEM_BIT_ALGN_TAPDLY}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:RX_BIT_ALIGN_LEFT_WIN}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L0:RX_BIT_ALIGN_RGHT_WIN}
+
+
+
+# Add CORERXIODBITALIGN_C1_L1 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERXIODBITALIGN_C1} -instance_name {CORERXIODBITALIGN_C1_L1}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:BIT_ALGN_START}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:BIT_ALGN_OOR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:BIT_ALGN_HOLD} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:BIT_ALGN_ERR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:BIT_ALGN_EYE_IN} -value {011}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:DEM_BIT_ALGN_TAPDLY}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:RX_BIT_ALIGN_LEFT_WIN}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L1:RX_BIT_ALIGN_RGHT_WIN}
+
+
+
+# Add CORERXIODBITALIGN_C1_L2 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERXIODBITALIGN_C1} -instance_name {CORERXIODBITALIGN_C1_L2}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:BIT_ALGN_START}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:BIT_ALGN_OOR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:BIT_ALGN_HOLD} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:BIT_ALGN_ERR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:BIT_ALGN_EYE_IN} -value {011}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:DEM_BIT_ALGN_TAPDLY}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:RX_BIT_ALIGN_LEFT_WIN}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L2:RX_BIT_ALIGN_RGHT_WIN}
+
+
+
+# Add CORERXIODBITALIGN_C1_L3 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERXIODBITALIGN_C1} -instance_name {CORERXIODBITALIGN_C1_L3}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:BIT_ALGN_START}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:BIT_ALGN_OOR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:BIT_ALGN_HOLD} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:BIT_ALGN_ERR}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:BIT_ALGN_EYE_IN} -value {011}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:DEM_BIT_ALGN_TAPDLY}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:RX_BIT_ALIGN_LEFT_WIN}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERXIODBITALIGN_C1_L3:RX_BIT_ALIGN_RGHT_WIN}
+
+
+
+# Add PF_IOD_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_IOD_GENERIC_RX_C0} -instance_name {PF_IOD_0}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_EARLY} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_EARLY} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_EARLY} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_EARLY} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_LATE} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_LATE} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_LATE} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:EYE_MONITOR_LATE} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_MOVE} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_MOVE} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_MOVE} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_MOVE} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_DIRECTION} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_DIRECTION} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_DIRECTION} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_DIRECTION} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_LOAD} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_LOAD} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_LOAD} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_LOAD} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_OUT_OF_RANGE} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_OUT_OF_RANGE} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_OUT_OF_RANGE} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {PF_IOD_0:DELAY_LINE_OUT_OF_RANGE} -pin_slices {[3:3]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_IOD_0:EYE_MONITOR_WIDTH} -value {011}
+
+
+
+# Add scalar net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "CORERESET_PF_C1_0:FABRIC_RESET_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "CLK_TRAIN_DONE" "PF_IOD_0:CLK_TRAIN_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "CORERXIODBITALIGN_C1_L0:RESETN" "CORERXIODBITALIGN_C1_L1:RESETN" "CORERXIODBITALIGN_C1_L2:RESETN" "CORERXIODBITALIGN_C1_L3:RESETN" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND4_0:A" "CORERXIODBITALIGN_C1_L0:BIT_ALGN_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND4_0:B" "CORERXIODBITALIGN_C1_L1:BIT_ALGN_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND4_0:C" "CORERXIODBITALIGN_C1_L2:BIT_ALGN_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND4_0:D" "CORERXIODBITALIGN_C1_L3:BIT_ALGN_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND4_0:Y" "training_done_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"ARST_N" "PF_IOD_0:ARST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLK_TRAIN_ERROR" "PF_IOD_0:CLK_TRAIN_ERROR" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:CLK" "CORERXIODBITALIGN_C1_L0:SCLK" "CORERXIODBITALIGN_C1_L1:SCLK" "CORERXIODBITALIGN_C1_L2:SCLK" "CORERXIODBITALIGN_C1_L3:SCLK" "PF_IOD_0:RX_CLK_G" "RX_CLK_G" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:EXT_RST_N" "TRAINING_RESETN" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_CLR_FLGS" "PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_DIR" "PF_IOD_0:DELAY_LINE_DIRECTION[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_LOAD" "PF_IOD_0:DELAY_LINE_LOAD[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_MOVE" "PF_IOD_0:DELAY_LINE_MOVE[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_RSTRT" "CORERXIODBITALIGN_C1_L1:BIT_ALGN_RSTRT" "CORERXIODBITALIGN_C1_L2:BIT_ALGN_RSTRT" "CORERXIODBITALIGN_C1_L3:BIT_ALGN_RSTRT" "RESTART_TRNG" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:BIT_ALGN_SKIP" "CORERXIODBITALIGN_C1_L1:BIT_ALGN_SKIP" "CORERXIODBITALIGN_C1_L2:BIT_ALGN_SKIP" "CORERXIODBITALIGN_C1_L3:BIT_ALGN_SKIP" "SKIP_TRNG" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:IOD_EARLY" "PF_IOD_0:EYE_MONITOR_EARLY[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:IOD_LATE" "PF_IOD_0:EYE_MONITOR_LATE[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:IOD_OOR" "PF_IOD_0:DELAY_LINE_OUT_OF_RANGE[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:LP_IN" "L0_LP_DATA_N" "PF_IOD_0:L0_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L0:PLL_LOCK" "CORERXIODBITALIGN_C1_L1:PLL_LOCK" "CORERXIODBITALIGN_C1_L2:PLL_LOCK" "CORERXIODBITALIGN_C1_L3:PLL_LOCK" "PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:BIT_ALGN_CLR_FLGS" "PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:BIT_ALGN_DIR" "PF_IOD_0:DELAY_LINE_DIRECTION[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:BIT_ALGN_LOAD" "PF_IOD_0:DELAY_LINE_LOAD[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:BIT_ALGN_MOVE" "PF_IOD_0:DELAY_LINE_MOVE[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:IOD_EARLY" "PF_IOD_0:EYE_MONITOR_EARLY[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:IOD_LATE" "PF_IOD_0:EYE_MONITOR_LATE[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:IOD_OOR" "PF_IOD_0:DELAY_LINE_OUT_OF_RANGE[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L1:LP_IN" "L1_LP_DATA_N" "PF_IOD_0:L1_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:BIT_ALGN_CLR_FLGS" "PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:BIT_ALGN_DIR" "PF_IOD_0:DELAY_LINE_DIRECTION[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:BIT_ALGN_LOAD" "PF_IOD_0:DELAY_LINE_LOAD[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:BIT_ALGN_MOVE" "PF_IOD_0:DELAY_LINE_MOVE[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:IOD_EARLY" "PF_IOD_0:EYE_MONITOR_EARLY[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:IOD_LATE" "PF_IOD_0:EYE_MONITOR_LATE[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:IOD_OOR" "PF_IOD_0:DELAY_LINE_OUT_OF_RANGE[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L2:LP_IN" "L2_LP_DATA_N" "PF_IOD_0:L2_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:BIT_ALGN_CLR_FLGS" "PF_IOD_0:EYE_MONITOR_CLEAR_FLAGS[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:BIT_ALGN_DIR" "PF_IOD_0:DELAY_LINE_DIRECTION[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:BIT_ALGN_LOAD" "PF_IOD_0:DELAY_LINE_LOAD[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:BIT_ALGN_MOVE" "PF_IOD_0:DELAY_LINE_MOVE[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:IOD_EARLY" "PF_IOD_0:EYE_MONITOR_EARLY[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:IOD_LATE" "PF_IOD_0:EYE_MONITOR_LATE[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:IOD_OOR" "PF_IOD_0:DELAY_LINE_OUT_OF_RANGE[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERXIODBITALIGN_C1_L3:LP_IN" "L3_LP_DATA_N" "PF_IOD_0:L3_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HS_IO_CLK_PAUSE" "PF_IOD_0:HS_IO_CLK_PAUSE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HS_SEL" "PF_IOD_0:HS_SEL" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L0_LP_DATA" "PF_IOD_0:L0_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L1_LP_DATA" "PF_IOD_0:L1_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L2_LP_DATA" "PF_IOD_0:L2_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L3_LP_DATA" "PF_IOD_0:L3_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_IOD_0:RX_CLK_N" "RX_CLK_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_IOD_0:RX_CLK_P" "RX_CLK_P" }
+
+# Add bus net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L0_RXD_DATA" "PF_IOD_0:L0_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L1_RXD_DATA" "PF_IOD_0:L1_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L2_RXD_DATA" "PF_IOD_0:L2_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"L3_RXD_DATA" "PF_IOD_0:L3_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_IOD_0:RXD" "RXD" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_IOD_0:RXD_N" "RXD_N" }
+
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign CAM_IOD_TIP_TOP
+generate_component -component_name ${sd_name}
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl
new file mode 100644
index 0000000..c93e253
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERESET_PF_C1.tcl
@@ -0,0 +1,6 @@
+# Exporting Component Description of CORERESET_PF_C1 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component CORERESET_PF_C1
+create_and_configure_core -core_vlnv {Actel:DirectCore:CORERESET_PF:2.3.100} -component_name {CORERESET_PF_C1} -params { }
+# Exporting Component Description of CORERESET_PF_C1 to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl
new file mode 100644
index 0000000..ff4d7d2
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CORERXIODBITALIGN_C1.tcl
@@ -0,0 +1,10 @@
+# Exporting Component Description of CORERXIODBITALIGN_C1 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component CORERXIODBITALIGN_C1
+create_and_configure_core -core_vlnv {Actel:DirectCore:CORERXIODBITALIGN:2.2.100} -component_name {CORERXIODBITALIGN_C1} -params {\
+"DEM_TAP_WAIT_CNT_WIDTH:3"  \
+"HOLD_TRNG:0"  \
+"MIPI_TRNG:1"  \
+"SKIP_TRNG:0"   }
+# Exporting Component Description of CORERXIODBITALIGN_C1 to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl
new file mode 100644
index 0000000..2be1a39
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/PF_IOD_GENERIC_RX_C0.tcl
@@ -0,0 +1,43 @@
+# Exporting Component Description of PF_IOD_GENERIC_RX_C0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component PF_IOD_GENERIC_RX_C0
+create_and_configure_core -core_vlnv {Actel:SystemBuilder:PF_IOD_GENERIC_RX:2.1.110} -component_name {PF_IOD_GENERIC_RX_C0} -params {\
+"CLOCK_DELAY_VALUE:0" \
+"DATA_RATE:500" \
+"DATA_RATIO:8" \
+"DATA_WIDTH:7" \
+"DDR_MODE:DDR" \
+"DYN_USE_WIDE_MODE:false" \
+"EXPOSE_CLK_TRAIN_PORTS:false" \
+"EXPOSE_DYNAMIC_DELAY_CTRL:false" \
+"EXPOSE_EXTRA_TRAINING_PORTS:false" \
+"EXPOSE_FA_CLK_DATA:false" \
+"EXPOSE_RX_RAW_DATA:false" \
+"FABRIC_CLK_SOURCE:GLOBAL" \
+"FRACTIONAL_CLOCK_RATIO:RATIO" \
+"ICB_BCLK_OFFSET:0" \
+"ICB_USE_WIDE_MODE:true" \
+"IO_NUMBER:4" \
+"NEED_LANECTRL:false" \
+"NEED_TIP:false" \
+"PLL_BCLK_OFFSET:3" \
+"RATIO:4" \
+"RXCTL_SPLIT_WIDTH:1" \
+"RXD_LVDS_FAILSAFE_EN:false" \
+"RXD_SPLIT_WIDTH:4" \
+"RX_BIT_SLIP_EN:false" \
+"RX_CLK_DIFFERENTIAL:true" \
+"RX_CLK_LVDS_FAILSAFE_EN:false" \
+"RX_CLK_SOURCE:HS_IO_CLK" \
+"RX_CLK_TO_DATA:DYNAMIC" \
+"RX_DATA_BUS_MODE:RX_DATA_PER_IO" \
+"RX_DATA_DIFFERENTIAL:true" \
+"RX_ENABLED:true" \
+"RX_INTERFACE_NAME:RX_DDRX_B_G_DYN" \
+"RX_IOG_ARCHETYPE:RX_DDRX_L_DYN_X4" \
+"RX_MIPI_MODE:true" \
+"SIMULATION_MODE:FULL" \
+"USE_SHARED_PLL:false" \
+"X1_ADD_DELAY_LINE_ON_CLOCK:false" }
+# Exporting Component Description of PF_IOD_GENERIC_RX_C0 to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl
new file mode 100644
index 0000000..c01db2d
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl
@@ -0,0 +1,6 @@
+# Exporting Component Description of CORERESET_PF_C2 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component CORERESET_PF_C2
+create_and_configure_core -core_vlnv {Actel:DirectCore:CORERESET_PF:2.3.100} -component_name {CORERESET_PF_C2} -params { }
+# Exporting Component Description of CORERESET_PF_C2 to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
new file mode 100644
index 0000000..4a984f4
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
@@ -0,0 +1,126 @@
+# Creating SmartDesign IMX219_IF_TOP
+set sd_name {IMX219_IF_TOP}
+create_smartdesign -sd_name ${sd_name}
+
+# Disable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 0
+
+# Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CAM_C_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CAM_C_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TRNG_RST_N} -port_direction {IN}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CAMCLK_RESET_N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CAMERA_CLK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {FRAME_START} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {FRAME_VALID} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {LINE_VALID} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PARALLEL_CLOCK} -port_direction {OUT}
+
+
+# Create top level Bus Ports
+sd_create_bus_port -sd_name ${sd_name} -port_name {CAM_D_N} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
+sd_create_bus_port -sd_name ${sd_name} -port_name {CAM_D_P} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
+
+sd_create_bus_port -sd_name ${sd_name} -port_name {DATA_OUT} -port_direction {OUT} -port_range {[7:0]}
+
+
+# Add AND2_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
+
+
+
+# Add CORERESET_PF_C1_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERESET_PF_C1} -instance_name {CORERESET_PF_C1_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:BANK_x_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:BANK_y_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:SS_BUSY} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:FF_US_RESTORE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:FPGA_POR_N} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:PLL_POWERDOWN_B}
+
+
+
+# Add CORERESET_PF_C2_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CORERESET_PF_C2} -instance_name {CORERESET_PF_C2_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:BANK_x_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:BANK_y_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:SS_BUSY} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:FF_US_RESTORE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:FPGA_POR_N} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CORERESET_PF_C2_0:PLL_POWERDOWN_B}
+
+
+
+# Add CSI2_RXDecoder_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {mipicsi2rxdecoderPF_C0} -instance_name {CSI2_RXDecoder_0}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CSI2_RXDecoder_0:DATA_O} -pin_slices {[9:2]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:FRAME_END_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:LINE_START_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:LINE_END_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:ECC_ERROR_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:CRC_ERROR_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:EBD_VALID_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:VIRTUAL_CHANNEL_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:DATA_TYPE_O}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CSI2_RXDecoder_0:WORD_COUNT_O}
+
+
+
+# Add PF_CCC_C2_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CCC_C2} -instance_name {PF_CCC_C2_0}
+
+
+
+# Add PF_IOD_GENERIC_RX_C0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CAM_IOD_TIP_TOP} -instance_name {PF_IOD_GENERIC_RX_C0_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:HS_IO_CLK_PAUSE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:HS_SEL} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:RESTART_TRNG} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:SKIP_TRNG} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:CLK_TRAIN_DONE}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:CLK_TRAIN_ERROR}
+
+
+
+# Add scalar net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "TRNG_RST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "CORERESET_PF_C1_0:PLL_LOCK" "CORERESET_PF_C2_0:PLL_LOCK" "PF_CCC_C2_0:PLL_LOCK_0" "PF_IOD_GENERIC_RX_C0_0:PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "PF_IOD_GENERIC_RX_C0_0:TRAINING_RESETN" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_N" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_P" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAMCLK_RESET_N" "CORERESET_PF_C1_0:FABRIC_RESET_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAMERA_CLK" "CORERESET_PF_C2_0:CLK" "CSI2_RXDecoder_0:CAM_CLOCK_I" "PF_CCC_C2_0:REF_CLK_0" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_G" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:CLK" "CSI2_RXDecoder_0:PARALLEL_CLOCK_I" "PARALLEL_CLOCK" "PF_CCC_C2_0:OUT0_FABCLK_0" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:EXT_RST_N" "CORERESET_PF_C2_0:EXT_RST_N" "PF_IOD_GENERIC_RX_C0_0:training_done_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:INIT_DONE" "CORERESET_PF_C2_0:INIT_DONE" "INIT_DONE" "PF_IOD_GENERIC_RX_C0_0:ARST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C2_0:FABRIC_RESET_N" "CSI2_RXDecoder_0:RESET_N_I" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_START_O" "FRAME_START" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_VALID_O" "FRAME_VALID" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L0_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L0_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L1_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L1_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L1_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L1_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L2_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L2_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L3_LP_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L3_LP_DATA_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:LINE_VALID_O" "LINE_VALID" }
+
+# Add bus net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D_P" "PF_IOD_GENERIC_RX_C0_0:RXD" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D_N" "PF_IOD_GENERIC_RX_C0_0:RXD_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:DATA_O[9:2]" "DATA_OUT" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L0_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L1_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L1_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L2_RXD_DATA" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L3_RXD_DATA" }
+
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign IMX219_IF_TOP
+generate_component -component_name ${sd_name}
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl
new file mode 100644
index 0000000..89b198a
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl
@@ -0,0 +1,248 @@
+# Exporting Component Description of PF_CCC_C2 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component PF_CCC_C2
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_CCC:2.2.220} -component_name {PF_CCC_C2} -params {\
+"DLL_CLK_0_BANKCLK_EN:false"  \
+"DLL_CLK_0_DEDICATED_EN:false"  \
+"DLL_CLK_0_FABCLK_EN:false"  \
+"DLL_CLK_1_BANKCLK_EN:false"  \
+"DLL_CLK_1_DEDICATED_EN:false"  \
+"DLL_CLK_1_FABCLK_EN:false"  \
+"DLL_CLK_P_EN:false"  \
+"DLL_CLK_P_OPTIONS_EN:false"  \
+"DLL_CLK_REF_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_REF_OPTIONS_EN:false"  \
+"DLL_CLK_S_EN:false"  \
+"DLL_CLK_S_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_S_OPTIONS_EN:false"  \
+"DLL_DELAY4:0"  \
+"DLL_DYNAMIC_CODE_EN:false"  \
+"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"DLL_EXPORT_PWRDWN:false"  \
+"DLL_FB_CLK:Primary"  \
+"DLL_FB_EN:false"  \
+"DLL_FINE_PHASE_CODE:0"  \
+"DLL_IN:133"  \
+"DLL_JITTER:0"  \
+"DLL_MODE:PHASE_REF_MODE"  \
+"DLL_ONLY_EN:false"  \
+"DLL_OUT_0:1"  \
+"DLL_OUT_1:1"  \
+"DLL_PRIM_PHASE:90"  \
+"DLL_PRIM_PHASE_CODE:0"  \
+"DLL_SEC_PHASE:90"  \
+"DLL_SEC_PHASE_CODE:0"  \
+"DLL_SELECTED_IN:Output2"  \
+"FF_REQUIRES_LOCK_EN_0:0"  \
+"GL0_0_BANKCLK_USED:false"  \
+"GL0_0_BYPASS:0"  \
+"GL0_0_BYPASS_EN:false"  \
+"GL0_0_DEDICATED_USED:false"  \
+"GL0_0_DIV:7"  \
+"GL0_0_DIVSTART:0"  \
+"GL0_0_DYNAMIC_PH:false"  \
+"GL0_0_EXPOSE_EN:false"  \
+"GL0_0_FABCLK_GATED_USED:false"  \
+"GL0_0_FABCLK_USED:true"  \
+"GL0_0_FREQ_SEL:false"  \
+"GL0_0_IS_USED:true"  \
+"GL0_0_OUT_FREQ:170"  \
+"GL0_0_PHASE_INDEX:0"  \
+"GL0_0_PHASE_SEL:false"  \
+"GL0_0_PLL_PHASE:0"  \
+"GL0_1_BANKCLK_USED:false"  \
+"GL0_1_BYPASS:0"  \
+"GL0_1_BYPASS_EN:false"  \
+"GL0_1_DEDICATED_USED:false"  \
+"GL0_1_DIV:1"  \
+"GL0_1_DIVSTART:0"  \
+"GL0_1_DYNAMIC_PH:false"  \
+"GL0_1_EXPOSE_EN:false"  \
+"GL0_1_FABCLK_USED:false"  \
+"GL0_1_FREQ_SEL:false"  \
+"GL0_1_IS_USED:true"  \
+"GL0_1_OUT_FREQ:100"  \
+"GL0_1_PHASE_INDEX:0"  \
+"GL0_1_PHASE_SEL:false"  \
+"GL0_1_PLL_PHASE:0"  \
+"GL1_0_BANKCLK_USED:false"  \
+"GL1_0_BYPASS:0"  \
+"GL1_0_BYPASS_EN:false"  \
+"GL1_0_DEDICATED_USED:false"  \
+"GL1_0_DIV:1"  \
+"GL1_0_DIVSTART:0"  \
+"GL1_0_DYNAMIC_PH:false"  \
+"GL1_0_EXPOSE_EN:false"  \
+"GL1_0_FABCLK_GATED_USED:false"  \
+"GL1_0_FABCLK_USED:true"  \
+"GL1_0_FREQ_SEL:false"  \
+"GL1_0_IS_USED:false"  \
+"GL1_0_OUT_FREQ:100"  \
+"GL1_0_PHASE_INDEX:0"  \
+"GL1_0_PHASE_SEL:false"  \
+"GL1_0_PLL_PHASE:0"  \
+"GL1_1_BANKCLK_USED:false"  \
+"GL1_1_BYPASS:0"  \
+"GL1_1_BYPASS_EN:false"  \
+"GL1_1_DEDICATED_USED:false"  \
+"GL1_1_DIV:1"  \
+"GL1_1_DIVSTART:0"  \
+"GL1_1_DYNAMIC_PH:false"  \
+"GL1_1_EXPOSE_EN:false"  \
+"GL1_1_FABCLK_USED:false"  \
+"GL1_1_FREQ_SEL:false"  \
+"GL1_1_IS_USED:false"  \
+"GL1_1_OUT_FREQ:0"  \
+"GL1_1_PHASE_INDEX:0"  \
+"GL1_1_PHASE_SEL:false"  \
+"GL1_1_PLL_PHASE:0"  \
+"GL2_0_BANKCLK_USED:false"  \
+"GL2_0_BYPASS:0"  \
+"GL2_0_BYPASS_EN:false"  \
+"GL2_0_DEDICATED_USED:false"  \
+"GL2_0_DIV:1"  \
+"GL2_0_DIVSTART:0"  \
+"GL2_0_DYNAMIC_PH:false"  \
+"GL2_0_EXPOSE_EN:false"  \
+"GL2_0_FABCLK_GATED_USED:false"  \
+"GL2_0_FABCLK_USED:true"  \
+"GL2_0_FREQ_SEL:false"  \
+"GL2_0_IS_USED:false"  \
+"GL2_0_OUT_FREQ:100"  \
+"GL2_0_PHASE_INDEX:0"  \
+"GL2_0_PHASE_SEL:false"  \
+"GL2_0_PLL_PHASE:0"  \
+"GL2_1_BANKCLK_USED:false"  \
+"GL2_1_BYPASS:0"  \
+"GL2_1_BYPASS_EN:false"  \
+"GL2_1_DEDICATED_USED:false"  \
+"GL2_1_DIV:1"  \
+"GL2_1_DIVSTART:0"  \
+"GL2_1_DYNAMIC_PH:false"  \
+"GL2_1_EXPOSE_EN:false"  \
+"GL2_1_FABCLK_USED:false"  \
+"GL2_1_FREQ_SEL:false"  \
+"GL2_1_IS_USED:false"  \
+"GL2_1_OUT_FREQ:0"  \
+"GL2_1_PHASE_INDEX:0"  \
+"GL2_1_PHASE_SEL:false"  \
+"GL2_1_PLL_PHASE:0"  \
+"GL3_0_BANKCLK_USED:false"  \
+"GL3_0_BYPASS:0"  \
+"GL3_0_BYPASS_EN:false"  \
+"GL3_0_DEDICATED_USED:false"  \
+"GL3_0_DIV:1"  \
+"GL3_0_DIVSTART:0"  \
+"GL3_0_DYNAMIC_PH:false"  \
+"GL3_0_EXPOSE_EN:false"  \
+"GL3_0_FABCLK_GATED_USED:false"  \
+"GL3_0_FABCLK_USED:true"  \
+"GL3_0_FREQ_SEL:false"  \
+"GL3_0_IS_USED:false"  \
+"GL3_0_OUT_FREQ:100"  \
+"GL3_0_PHASE_INDEX:0"  \
+"GL3_0_PHASE_SEL:false"  \
+"GL3_0_PLL_PHASE:0"  \
+"GL3_1_BANKCLK_USED:false"  \
+"GL3_1_BYPASS:0"  \
+"GL3_1_BYPASS_EN:false"  \
+"GL3_1_DEDICATED_USED:false"  \
+"GL3_1_DIV:1"  \
+"GL3_1_DIVSTART:0"  \
+"GL3_1_DYNAMIC_PH:false"  \
+"GL3_1_EXPOSE_EN:false"  \
+"GL3_1_FABCLK_USED:false"  \
+"GL3_1_FREQ_SEL:false"  \
+"GL3_1_IS_USED:false"  \
+"GL3_1_OUT_FREQ:0"  \
+"GL3_1_PHASE_INDEX:0"  \
+"GL3_1_PHASE_SEL:false"  \
+"GL3_1_PLL_PHASE:0"  \
+"PLL_ALLOW_CCC_EXT_FB:false"  \
+"PLL_BANDWIDTH_0:2"  \
+"PLL_BANDWIDTH_1:1"  \
+"PLL_BYPASS_GO_B_0:false"  \
+"PLL_BYPASS_GO_B_1:false"  \
+"PLL_BYPASS_POST_0:0"  \
+"PLL_BYPASS_POST_0_0:false"  \
+"PLL_BYPASS_POST_0_1:false"  \
+"PLL_BYPASS_POST_0_2:false"  \
+"PLL_BYPASS_POST_0_3:false"  \
+"PLL_BYPASS_POST_1:0"  \
+"PLL_BYPASS_POST_1_0:false"  \
+"PLL_BYPASS_POST_1_1:false"  \
+"PLL_BYPASS_POST_1_2:false"  \
+"PLL_BYPASS_POST_1_3:false"  \
+"PLL_BYPASS_PRE_0:0"  \
+"PLL_BYPASS_PRE_0_0:false"  \
+"PLL_BYPASS_PRE_0_1:false"  \
+"PLL_BYPASS_PRE_0_2:false"  \
+"PLL_BYPASS_PRE_0_3:false"  \
+"PLL_BYPASS_PRE_1:0"  \
+"PLL_BYPASS_PRE_1_0:false"  \
+"PLL_BYPASS_PRE_1_1:false"  \
+"PLL_BYPASS_PRE_1_2:false"  \
+"PLL_BYPASS_PRE_1_3:false"  \
+"PLL_BYPASS_SEL_0:0"  \
+"PLL_BYPASS_SEL_0_0:false"  \
+"PLL_BYPASS_SEL_0_1:false"  \
+"PLL_BYPASS_SEL_0_2:false"  \
+"PLL_BYPASS_SEL_0_3:false"  \
+"PLL_BYPASS_SEL_1:0"  \
+"PLL_BYPASS_SEL_1_0:false"  \
+"PLL_BYPASS_SEL_1_1:false"  \
+"PLL_BYPASS_SEL_1_2:false"  \
+"PLL_BYPASS_SEL_1_3:false"  \
+"PLL_DELAY_LINE_REF_FB_0:false"  \
+"PLL_DELAY_LINE_REF_FB_1:false"  \
+"PLL_DELAY_LINE_USED_0:false"  \
+"PLL_DELAY_LINE_USED_1:false"  \
+"PLL_DELAY_STEPS_0:1"  \
+"PLL_DELAY_STEPS_1:1"  \
+"PLL_DLL_CASCADED_EN:false"  \
+"PLL_DYNAMIC_CONTROL_EN_0:true"  \
+"PLL_DYNAMIC_CONTROL_EN_1:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false"  \
+"PLL_EXPORT_PWRDWN:false"  \
+"PLL_EXT_MAX_ADDR_0:128"  \
+"PLL_EXT_MAX_ADDR_1:128"  \
+"PLL_EXT_WAVE_SEL_0:0"  \
+"PLL_EXT_WAVE_SEL_1:0"  \
+"PLL_FB_CLK_0:GL0_0"  \
+"PLL_FB_CLK_1:GL0_1"  \
+"PLL_FEEDBACK_MODE_0:Post-VCO"  \
+"PLL_FEEDBACK_MODE_1:Post-VCO"  \
+"PLL_IN_FREQ_0:62.5"  \
+"PLL_IN_FREQ_1:100"  \
+"PLL_INT_MODE_EN_0:false"  \
+"PLL_INT_MODE_EN_1:false"  \
+"PLL_LOCK_COUNT_0:0"  \
+"PLL_LOCK_COUNT_1:0"  \
+"PLL_LP_REQUIRES_LOCK_EN_0:false"  \
+"PLL_LP_REQUIRES_LOCK_EN_1:false"  \
+"PLL_PLL_CASCADED_EN:false"  \
+"PLL_PLL_CASCADED_SELECTED_CLK:Output2"  \
+"PLL_POSTDIVIDERADDSOFTLOGIC_0:true"  \
+"PLL_REF_CLK_SEL_0:false"  \
+"PLL_REF_CLK_SEL_1:false"  \
+"PLL_REFDIV_0:5"  \
+"PLL_REFDIV_1:1"  \
+"PLL_SPREAD_MODE_0:false"  \
+"PLL_SPREAD_MODE_1:false"  \
+"PLL_SSM_DEPTH_0:5"  \
+"PLL_SSM_DEPTH_1:5"  \
+"PLL_SSM_DIVVAL_0:1"  \
+"PLL_SSM_DIVVAL_1:1"  \
+"PLL_SSM_FREQ_0:32"  \
+"PLL_SSM_FREQ_1:32"  \
+"PLL_SSM_RAND_PATTERN_0:2"  \
+"PLL_SSM_RAND_PATTERN_1:2"  \
+"PLL_SSMD_EN_0:false"  \
+"PLL_SSMD_EN_1:false"  \
+"PLL_SYNC_CORNER_PLL:false"  \
+"PLL_SYNC_EN:false"  \
+"PLL_VCO_MODE_0:MIN_JITTER"  \
+"PLL_VCO_MODE_1:MIN_JITTER"   }
+# Exporting Component Description of PF_CCC_C2 to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
new file mode 100644
index 0000000..83c3c75
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
@@ -0,0 +1,157 @@
+set_io -port_name CSI1_PWND  \
+    -pin_name Y13            \
+    -fixed true              \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name CAM_C_N  \
+    -pin_name AB13         \
+    -fixed true            \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name CAM_C_P  \
+    -pin_name AA13         \
+    -fixed true            \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_N[0]}  \
+    -pin_name AB12              \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_N[1]}  \
+    -pin_name W14               \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_N[2]}  \
+    -pin_name AA15              \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_N[3]}  \
+    -pin_name AB15              \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_P[0]}  \
+    -pin_name AA12              \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_P[1]}  \
+    -pin_name Y14               \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_P[2]}  \
+    -pin_name Y15               \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name {CAM_D_P[3]}  \
+    -pin_name AB14              \
+    -fixed true                 \
+    -DIRECTION OUTPUT
+
+
+
+set_io -port_name P8_PIN32	\
+    -pin_name B15	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN33	\
+    -pin_name A15	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN34	\
+    -pin_name C15	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN35	\
+    -pin_name C14	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN36	\
+    -pin_name B4	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN37	\
+    -pin_name C4	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN38	\
+    -pin_name C17	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN39	\
+    -pin_name B17	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN40	\
+    -pin_name B18	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN41	\
+    -pin_name A18	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN42	\
+    -pin_name D6	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN43	\
+    -pin_name D7	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN44	\
+    -pin_name D8	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN45	\
+    -pin_name D9	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN46	\
+    -pin_name D18	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+	
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl
new file mode 100644
index 0000000..98f843d
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl
@@ -0,0 +1,12 @@
+# Exporting Component Description of mipicsi2rxdecoderPF_C0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS250T_ES-1FCG1152E
+# Create and Configure the core component mipicsi2rxdecoderPF_C0
+create_and_configure_core -core_vlnv {Microchip:SolutionCore:mipicsi2rxdecoderPF:4.7.0} -component_name {mipicsi2rxdecoderPF_C0} -params {\
+"g_DATAWIDTH:10"  \
+"g_FIFO_SIZE:12"  \
+"g_FORMAT:0"  \
+"g_INPUT_DATA_INVERT:0"  \
+"g_LANE_WIDTH:4"  \
+"g_NUM_OF_PIXELS:1"   }
+# Exporting Component Description of mipicsi2rxdecoderPF_C0 to TCL done
-- 
GitLab


From 58d3a123c213f6dd41e719b943db1c9d44068cb6 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Tue, 4 Jul 2023 16:39:32 +0100
Subject: [PATCH 02/19] MIPI-CSI: Correct CSI-PWDN signal polarity.

---
 .../MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl       | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
index 2fbb9b9..b1d7035 100644
--- a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
@@ -57,7 +57,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[4:4]"
 sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[5:5]" "P8_PIN35"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[6:6]" "P8_PIN34"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[7:7]" "P8_PIN33"} 
+
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CSI1_PWND} -value {VCC}
+
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN32} -value {GND} 
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:TRNG_RST_N} -value {VCC} 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CSI1_PWND} -value {VCC} 
 
-- 
GitLab


From dadeb78e07fd5365df376489d04d374726ece9ce Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 16 Jul 2023 18:48:27 +0100
Subject: [PATCH 03/19] MIPI-CSI: Handle variable design names.

---
 .../MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
index b1d7035..5b54374 100644
--- a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
@@ -13,7 +13,7 @@ source script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0
 source script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
 
 
-set sd_name {BVF_GATEWARE}
+set sd_name ${top_level_name}
 
 sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN32} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN33} -port_direction {OUT}
-- 
GitLab


From e14cdd10b70b6687f96dc245d7ba92d311bfc9a6 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Thu, 20 Jul 2023 20:07:58 +0100
Subject: [PATCH 04/19] MIPI_CSI: Add GPIO to read status for board tests.

---
 .../ADD_MIPI_CSI_INTERFACE.tcl                |  50 ++-----
 .../IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl     | 138 ++++++++++++++++++
 .../IMX219_PHY_TEST/IMX219_IF_TOP.tcl         |  66 ++++++++-
 .../constraints/MIPI_CSI_INTERFACE.pdc        |  93 ------------
 4 files changed, 208 insertions(+), 139 deletions(-)
 create mode 100644 script_support/components/MIPI_CSI/IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl

diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
index 5b54374..ef59270 100644
--- a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/ADD_MIPI_CSI_INTERFACE.tcl
@@ -10,56 +10,30 @@ source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CAM_IOD_TIP_TOP/CAM_IO
 source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CORERESET_PF_C2.tcl
 source script_support/components/MIPI_CSI/IMX219_PHY_TEST/PF_CCC_C2.tcl
 source script_support/components/MIPI_CSI/IMX219_PHY_TEST/mipicsi2rxdecoderPF_C0.tcl
+source script_support/components/MIPI_CSI/IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl
 source script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
 
 
 set sd_name ${top_level_name}
 
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN32} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN33} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN34} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN35} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN36} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN37} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN38} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN39} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN40} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN41} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN42} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN43} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN44} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN45} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN46} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {CSI1_PWND} -port_direction {OUT}
 
 sd_instantiate_component -sd_name ${sd_name} -component_name {IMX219_IF_TOP} -instance_name {IMX219_IF_TOP_0} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {IMX219_IF_TOP_0:DATA_OUT} -pin_slices {"[0:0]"} 
 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:DEVICE_INIT_DONE" "IMX219_IF_TOP_0:INIT_DONE"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:CAMCLK_RESET_N" "P8_PIN46"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:CAMERA_CLK" "P8_PIN45"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:FRAME_START" "P8_PIN44"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:FRAME_VALID" "P8_PIN43"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:LINE_VALID" "P8_PIN42"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:PARALLEL_CLOCK" "P8_PIN41"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[0:0]" "P8_PIN40"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[1:1]" "P8_PIN39"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[2:2]" "P8_PIN38"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[3:3]" "P8_PIN37"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[4:4]" "P8_PIN36"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[5:5]" "P8_PIN35"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[6:6]" "P8_PIN34"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"IMX219_IF_TOP_0:DATA_OUT[7:7]" "P8_PIN33"} 
 
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CSI1_PWND} -value {VCC}
 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN32} -value {GND} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_PCLK" "IMX219_IF_TOP_0:PCLK"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_FABRIC_RESET_N" "IMX219_IF_TOP_0:PRESETN"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:CSI_APB_MTARGET" "IMX219_IF_TOP_0:APB_TARGET"} 
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:CAMCLK_RESET_N} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:CAMERA_CLK} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:FRAME_START} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:FRAME_VALID} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:LINE_VALID} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:PARALLEL_CLOCK} 
+
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {IMX219_IF_TOP_0:TRNG_RST_N} -value {VCC} 
 
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl
new file mode 100644
index 0000000..0ae8425
--- /dev/null
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/CoreGPIO_MIPI_CSI.tcl
@@ -0,0 +1,138 @@
+# Exporting Component Description of CoreGPIO_MIPI_CSI to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component CoreGPIO_MIPI_CSI
+create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_MIPI_CSI} -params {\
+"APB_WIDTH:32"  \
+"FIXED_CONFIG_0:true"  \
+"FIXED_CONFIG_1:true"  \
+"FIXED_CONFIG_2:true"  \
+"FIXED_CONFIG_3:true"  \
+"FIXED_CONFIG_4:true"  \
+"FIXED_CONFIG_5:true"  \
+"FIXED_CONFIG_6:true"  \
+"FIXED_CONFIG_7:true"  \
+"FIXED_CONFIG_8:true"  \
+"FIXED_CONFIG_9:true"  \
+"FIXED_CONFIG_10:true"  \
+"FIXED_CONFIG_11:false"  \
+"FIXED_CONFIG_12:false"  \
+"FIXED_CONFIG_13:false"  \
+"FIXED_CONFIG_14:false"  \
+"FIXED_CONFIG_15:false"  \
+"FIXED_CONFIG_16:false"  \
+"FIXED_CONFIG_17:false"  \
+"FIXED_CONFIG_18:false"  \
+"FIXED_CONFIG_19:false"  \
+"FIXED_CONFIG_20:false"  \
+"FIXED_CONFIG_21:false"  \
+"FIXED_CONFIG_22:false"  \
+"FIXED_CONFIG_23:false"  \
+"FIXED_CONFIG_24:false"  \
+"FIXED_CONFIG_25:false"  \
+"FIXED_CONFIG_26:false"  \
+"FIXED_CONFIG_27:false"  \
+"FIXED_CONFIG_28:false"  \
+"FIXED_CONFIG_29:false"  \
+"FIXED_CONFIG_30:false"  \
+"FIXED_CONFIG_31:false"  \
+"INT_BUS:0"  \
+"IO_INT_TYPE_0:7"  \
+"IO_INT_TYPE_1:7"  \
+"IO_INT_TYPE_2:7"  \
+"IO_INT_TYPE_3:7"  \
+"IO_INT_TYPE_4:7"  \
+"IO_INT_TYPE_5:7"  \
+"IO_INT_TYPE_6:7"  \
+"IO_INT_TYPE_7:7"  \
+"IO_INT_TYPE_8:7"  \
+"IO_INT_TYPE_9:7"  \
+"IO_INT_TYPE_10:7"  \
+"IO_INT_TYPE_11:7"  \
+"IO_INT_TYPE_12:7"  \
+"IO_INT_TYPE_13:7"  \
+"IO_INT_TYPE_14:7"  \
+"IO_INT_TYPE_15:7"  \
+"IO_INT_TYPE_16:7"  \
+"IO_INT_TYPE_17:7"  \
+"IO_INT_TYPE_18:7"  \
+"IO_INT_TYPE_19:7"  \
+"IO_INT_TYPE_20:7"  \
+"IO_INT_TYPE_21:7"  \
+"IO_INT_TYPE_22:7"  \
+"IO_INT_TYPE_23:7"  \
+"IO_INT_TYPE_24:7"  \
+"IO_INT_TYPE_25:7"  \
+"IO_INT_TYPE_26:7"  \
+"IO_INT_TYPE_27:7"  \
+"IO_INT_TYPE_28:7"  \
+"IO_INT_TYPE_29:7"  \
+"IO_INT_TYPE_30:7"  \
+"IO_INT_TYPE_31:7"  \
+"IO_NUM:11"  \
+"IO_TYPE_0:0"  \
+"IO_TYPE_1:0"  \
+"IO_TYPE_2:0"  \
+"IO_TYPE_3:0"  \
+"IO_TYPE_4:0"  \
+"IO_TYPE_5:0"  \
+"IO_TYPE_6:0"  \
+"IO_TYPE_7:0"  \
+"IO_TYPE_8:0"  \
+"IO_TYPE_9:0"  \
+"IO_TYPE_10:0"  \
+"IO_TYPE_11:0"  \
+"IO_TYPE_12:0"  \
+"IO_TYPE_13:0"  \
+"IO_TYPE_14:0"  \
+"IO_TYPE_15:0"  \
+"IO_TYPE_16:0"  \
+"IO_TYPE_17:0"  \
+"IO_TYPE_18:0"  \
+"IO_TYPE_19:0"  \
+"IO_TYPE_20:0"  \
+"IO_TYPE_21:0"  \
+"IO_TYPE_22:0"  \
+"IO_TYPE_23:0"  \
+"IO_TYPE_24:0"  \
+"IO_TYPE_25:0"  \
+"IO_TYPE_26:0"  \
+"IO_TYPE_27:0"  \
+"IO_TYPE_28:0"  \
+"IO_TYPE_29:0"  \
+"IO_TYPE_30:0"  \
+"IO_TYPE_31:0"  \
+"IO_VAL_0:0"  \
+"IO_VAL_1:0"  \
+"IO_VAL_2:0"  \
+"IO_VAL_3:0"  \
+"IO_VAL_4:0"  \
+"IO_VAL_5:0"  \
+"IO_VAL_6:0"  \
+"IO_VAL_7:0"  \
+"IO_VAL_8:0"  \
+"IO_VAL_9:0"  \
+"IO_VAL_10:0"  \
+"IO_VAL_11:0"  \
+"IO_VAL_12:0"  \
+"IO_VAL_13:0"  \
+"IO_VAL_14:0"  \
+"IO_VAL_15:0"  \
+"IO_VAL_16:0"  \
+"IO_VAL_17:0"  \
+"IO_VAL_18:0"  \
+"IO_VAL_19:0"  \
+"IO_VAL_20:0"  \
+"IO_VAL_21:0"  \
+"IO_VAL_22:0"  \
+"IO_VAL_23:0"  \
+"IO_VAL_24:0"  \
+"IO_VAL_25:0"  \
+"IO_VAL_26:0"  \
+"IO_VAL_27:0"  \
+"IO_VAL_28:0"  \
+"IO_VAL_29:0"  \
+"IO_VAL_30:0"  \
+"IO_VAL_31:0"  \
+"OE_TYPE:0"   }
+# Exporting Component Description of CoreGPIO_MIPI_CSI to TCL done
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
index 4a984f4..a31f068 100644
--- a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/IMX219_IF_TOP.tcl
@@ -6,11 +6,18 @@ create_smartdesign -sd_name ${sd_name}
 auto_promote_pad_pins -promote_all 0
 
 # Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PENABLE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSEL} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PWRITE} -port_direction {IN}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {CAM_C_N} -port_direction {IN} -port_is_pad {1}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {CAM_C_P} -port_direction {IN} -port_is_pad {1}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {TRNG_RST_N} -port_direction {IN}
 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PREADY} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSLVERR} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {CAMCLK_RESET_N} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {CAMERA_CLK} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {FRAME_START} -port_direction {OUT}
@@ -20,17 +27,57 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {PARALLEL_CLOCK} -port_dire
 
 
 # Create top level Bus Ports
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PADDR} -port_direction {IN} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PWDATA} -port_direction {IN} -port_range {[31:0]}
 sd_create_bus_port -sd_name ${sd_name} -port_name {CAM_D_N} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
 sd_create_bus_port -sd_name ${sd_name} -port_name {CAM_D_P} -port_direction {IN} -port_range {[3:0]} -port_is_pad {1}
 
-sd_create_bus_port -sd_name ${sd_name} -port_name {DATA_OUT} -port_direction {OUT} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PRDATA} -port_direction {OUT} -port_range {[31:0]}
 
 
+# Create top level Bus interface Ports
+sd_create_bif_port -sd_name ${sd_name} -port_name {APB_TARGET} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\
+"PADDR:APB_TARGET_PADDR" \
+"PSELx:APB_TARGET_PSEL" \
+"PENABLE:APB_TARGET_PENABLE" \
+"PWRITE:APB_TARGET_PWRITE" \
+"PRDATA:APB_TARGET_PRDATA" \
+"PWDATA:APB_TARGET_PWDATA" \
+"PREADY:APB_TARGET_PREADY" \
+"PSLVERR:APB_TARGET_PSLVERR" } 
+
 # Add AND2_0 instance
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
 
 
 
+# Add CoreGPIO_MIPI_CSI_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_MIPI_CSI} -instance_name {CoreGPIO_MIPI_CSI_0}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[10:10]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[10:10]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[3:3]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[3:3]} -value {VCC}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[4:4]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[4:4]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[5:5]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[5:5]} -value {VCC}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[6:6]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[6:6]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[7:7]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[7:7]} -value {VCC}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[8:8]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[8:8]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_MIPI_CSI_0:GPIO_IN} -pin_slices {[9:9]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_IN[9:9]} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:INT}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_OUT}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_MIPI_CSI_0:GPIO_OE}
+
+
+
 # Add CORERESET_PF_C1_0 instance
 sd_instantiate_component -sd_name ${sd_name} -component_name {CORERESET_PF_C1} -instance_name {CORERESET_PF_C1_0}
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CORERESET_PF_C1_0:BANK_x_VDDI_STATUS} -value {VCC}
@@ -88,16 +135,16 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_IOD_GENERIC_RX_C0_0:CLK_T
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "TRNG_RST_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "CORERESET_PF_C1_0:PLL_LOCK" "CORERESET_PF_C2_0:PLL_LOCK" "PF_CCC_C2_0:PLL_LOCK_0" "PF_IOD_GENERIC_RX_C0_0:PLL_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "PF_IOD_GENERIC_RX_C0_0:TRAINING_RESETN" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_N" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_N" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_P" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_P" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CAMCLK_RESET_N" "CORERESET_PF_C1_0:FABRIC_RESET_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CAMERA_CLK" "CORERESET_PF_C2_0:CLK" "CSI2_RXDecoder_0:CAM_CLOCK_I" "PF_CCC_C2_0:REF_CLK_0" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_G" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_N" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_C_P" "PF_IOD_GENERIC_RX_C0_0:RX_CLK_P" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:CLK" "CSI2_RXDecoder_0:PARALLEL_CLOCK_I" "PARALLEL_CLOCK" "PF_CCC_C2_0:OUT0_FABCLK_0" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:EXT_RST_N" "CORERESET_PF_C2_0:EXT_RST_N" "PF_IOD_GENERIC_RX_C0_0:training_done_o" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C1_0:INIT_DONE" "CORERESET_PF_C2_0:INIT_DONE" "INIT_DONE" "PF_IOD_GENERIC_RX_C0_0:ARST_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CORERESET_PF_C2_0:FABRIC_RESET_N" "CSI2_RXDecoder_0:RESET_N_I" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_START_O" "FRAME_START" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_VALID_O" "FRAME_VALID" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_START_O" "CoreGPIO_MIPI_CSI_0:GPIO_IN[1:1]" "FRAME_START" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:FRAME_VALID_O" "CoreGPIO_MIPI_CSI_0:GPIO_IN[0:0]" "FRAME_VALID" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L0_LP_DATA" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L0_LP_DATA_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L1_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L1_LP_DATA" }
@@ -106,17 +153,20 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_LP_DATA_I"
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L2_LP_DATA_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_LP_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L3_LP_DATA" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_LP_DATA_N_I" "PF_IOD_GENERIC_RX_C0_0:L3_LP_DATA_N" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:LINE_VALID_O" "LINE_VALID" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:LINE_VALID_O" "CoreGPIO_MIPI_CSI_0:GPIO_IN[2:2]" "LINE_VALID" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_MIPI_CSI_0:PCLK" "PCLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_MIPI_CSI_0:PRESETN" "PRESETN" }
 
 # Add bus net connections
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D_P" "PF_IOD_GENERIC_RX_C0_0:RXD" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D_N" "PF_IOD_GENERIC_RX_C0_0:RXD_N" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:DATA_O[9:2]" "DATA_OUT" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D_P" "PF_IOD_GENERIC_RX_C0_0:RXD" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L0_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L0_RXD_DATA" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L1_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L1_RXD_DATA" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L2_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L2_RXD_DATA" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CSI2_RXDecoder_0:L3_HS_DATA_I" "PF_IOD_GENERIC_RX_C0_0:L3_RXD_DATA" }
 
+# Add bus interface net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_TARGET" "CoreGPIO_MIPI_CSI_0:APB_bif" }
 
 # Re-enable auto promotion of pins of type 'pad'
 auto_promote_pad_pins -promote_all 1
diff --git a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
index 83c3c75..e6909e4 100644
--- a/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
+++ b/script_support/components/MIPI_CSI/IMX219_PHY_TEST/constraints/MIPI_CSI_INTERFACE.pdc
@@ -62,96 +62,3 @@ set_io -port_name {CAM_D_P[3]}  \
     -pin_name AB14              \
     -fixed true                 \
     -DIRECTION OUTPUT
-
-
-
-set_io -port_name P8_PIN32	\
-    -pin_name B15	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN33	\
-    -pin_name A15	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN34	\
-    -pin_name C15	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN35	\
-    -pin_name C14	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN36	\
-    -pin_name B4	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN37	\
-    -pin_name C4	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN38	\
-    -pin_name C17	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN39	\
-    -pin_name B17	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN40	\
-    -pin_name B18	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN41	\
-    -pin_name A18	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN42	\
-    -pin_name D6	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN43	\
-    -pin_name D7	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN44	\
-    -pin_name D8	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN45	\
-    -pin_name D9	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN46	\
-    -pin_name D18	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-	
-- 
GitLab


From fc8eec11b3a868e9e8c954a02309cef9ffe0dd98 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Fri, 21 Jul 2023 10:39:03 +0100
Subject: [PATCH 05/19] Build options: Use "DEFAULT" for all gateware
 components.

All gateware components now use the "DEFAULT" directory for their
default configuration. Previously a mix of "DEFAULT" and "NONE" were
used depending on the gateware component.
---
 BUILD_BVF_GATEWARE.tcl                                        | 4 ++--
 .../HIGH_SPEED_CONNECTOR/DEFAULT/ADD_HIGH_SPEED_CONNECTOR.tcl | 0
 .../DEFAULT/constraints/HIGH_SPEED_CONNECTOR.pdc              | 0
 .../components/MIPI_CSI/DEFAULT/ADD_MIPI_CSI_INTERFACE.tcl    | 0
 .../MIPI_CSI/DEFAULT/constraints/MIPI_CSI_INTERFACE.pdc       | 0
 5 files changed, 2 insertions(+), 2 deletions(-)
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/ADD_HIGH_SPEED_CONNECTOR.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/MIPI_CSI/DEFAULT/ADD_MIPI_CSI_INTERFACE.tcl
 create mode 100644 script_support/components/MIPI_CSI/DEFAULT/constraints/MIPI_CSI_INTERFACE.pdc

diff --git a/BUILD_BVF_GATEWARE.tcl b/BUILD_BVF_GATEWARE.tcl
index 963a974..2b438c4 100644
--- a/BUILD_BVF_GATEWARE.tcl
+++ b/BUILD_BVF_GATEWARE.tcl
@@ -89,14 +89,14 @@ puts "M.2 option selected: $m2_option"
 if {[info exists HIGH_SPEED_CONN_OPTION]} {
     set high_speed_conn_option "$HIGH_SPEED_CONN_OPTION"
 } else {
-    set high_speed_conn_option "NONE"
+    set high_speed_conn_option "DEFAULT"
 }
 puts "High speed connector option option selected: $high_speed_conn_option"
 
 if {[info exists MIPI_CSI_OPTION]} {
     set mipi_csi_option "$MIPI_CSI_OPTION"
 } else {
-    set mipi_csi_option "NONE"
+    set mipi_csi_option "DEFAULT"
 }
 puts "MIPI CSI option option selected: $mipi_csi_option"
 
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/ADD_HIGH_SPEED_CONNECTOR.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/ADD_HIGH_SPEED_CONNECTOR.tcl
new file mode 100644
index 0000000..e69de29
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..e69de29
diff --git a/script_support/components/MIPI_CSI/DEFAULT/ADD_MIPI_CSI_INTERFACE.tcl b/script_support/components/MIPI_CSI/DEFAULT/ADD_MIPI_CSI_INTERFACE.tcl
new file mode 100644
index 0000000..e69de29
diff --git a/script_support/components/MIPI_CSI/DEFAULT/constraints/MIPI_CSI_INTERFACE.pdc b/script_support/components/MIPI_CSI/DEFAULT/constraints/MIPI_CSI_INTERFACE.pdc
new file mode 100644
index 0000000..e69de29
-- 
GitLab


From f6dd4349a50a9e33c667d1254441f8c54f9af7b6 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Fri, 21 Jul 2023 11:35:23 +0100
Subject: [PATCH 06/19] Pin constraints: Correct I2C pins assignment on P9
 header.

---
 script_support/constraints/base_design.pdc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/script_support/constraints/base_design.pdc b/script_support/constraints/base_design.pdc
index fde5025..933f4cb 100644
--- a/script_support/constraints/base_design.pdc
+++ b/script_support/constraints/base_design.pdc
@@ -55,13 +55,13 @@ set_io -port_name P9_13  \
     -DIRECTION OUTPUT
 
 set_io -port_name P9_19 \
-    -pin_name A11	\
+    -pin_name A10	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT    
 
 set_io -port_name P9_20	\
-    -pin_name A10	\
+    -pin_name A11	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
-- 
GitLab


From 68ac1551bda012541621044cfb028e1ae5b7c578 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sat, 22 Jul 2023 10:02:31 +0100
Subject: [PATCH 07/19] Core design: Optimize MSS GPIO_2 usage.

---
 script_support/MSS_Configuration.cfg          | 91 ++++++++++---------
 .../components/BVF_RISCV_SUBSYSTEM.tcl        | 23 +++--
 .../components/CAPE/DEFAULT/CAPE.tcl          |  3 +-
 .../CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl       | 22 ++---
 .../components/CAPE/DEFAULT/P8_GPIO_LCD.tcl   | 13 +--
 script_support/components/CAPE/GPIOS/CAPE.tcl |  5 +-
 .../CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl         | 22 ++---
 .../components/CAPE/GPIOS/CoreGPIO_LCD.tcl    |  4 +-
 .../components/CAPE/GPIOS/P8_GPIO_LCD.tcl     | 11 +--
 9 files changed, 91 insertions(+), 103 deletions(-)

diff --git a/script_support/MSS_Configuration.cfg b/script_support/MSS_Configuration.cfg
index 879c3e5..8cd805b 100644
--- a/script_support/MSS_Configuration.cfg
+++ b/script_support/MSS_Configuration.cfg
@@ -147,14 +147,18 @@ DDR4_ZQ_CALIB_TYPE                                  0
 DDR4_ZQ_CAL_INIT_TIME                               1024
 DDR4_ZQ_CAL_L_TIME                                  512
 DDR4_ZQ_CAL_S_TIME                                  128
-DDR_CACHED_32BIT_MEM_SIZE                           32
-DDR_CACHED_32BIT_MEM_UNIT                           MB
-DDR_CACHED_64BIT_MEM_SIZE                           1888
-DDR_CACHED_64BIT_MEM_UNIT                           MB
-DDR_NON_CACHED_32BIT_MEM_SIZE                       128
+DDR_CACHED_32BIT_MEM_SIZE                           1
+DDR_CACHED_32BIT_MEM_UNIT                           GB
+DDR_CACHED_32BIT_PHY_OFFSET                         0x0
+DDR_CACHED_64BIT_MEM_SIZE                           2
+DDR_CACHED_64BIT_MEM_UNIT                           GB
+DDR_CACHED_64BIT_PHY_OFFSET                         0x0
+DDR_NON_CACHED_32BIT_MEM_SIZE                       256
 DDR_NON_CACHED_32BIT_MEM_UNIT                       MB
-DDR_NON_CACHED_64BIT_MEM_SIZE                       0
+DDR_NON_CACHED_32BIT_PHY_OFFSET                     0x0
+DDR_NON_CACHED_64BIT_MEM_SIZE                       2
 DDR_NON_CACHED_64BIT_MEM_UNIT                       GB
+DDR_NON_CACHED_64BIT_PHY_OFFSET                     0x0
 DDR_REFCLK                                          DEDICATED_IO
 DDR_SDRAM_TYPE                                      LPDDR4
 DIE                                                 MPFS025T
@@ -163,7 +167,7 @@ EMMC_DATA_7_4                                       MSSIO_B4
 EMMC_SD_CLK_SOURCE                                  MSS_PLL
 EMMC_SD_SDIO_FREQ                                   200
 EMMC_SD_SWITCHING                                   DISABLED
-EMMC_SPEED_MODE                                     DEFAULT_SPEED
+EMMC_SPEED_MODE                                     HIGH_SPEED_400_ES
 ENABLE_FEEDBACK_PORTS                               false
 EXPOSE_BOOT_STATUS_PORTS                            false
 FF_IN_PROGRESS                                      UNUSED
@@ -307,12 +311,12 @@ GPIO_2_25                                           FABRIC
 GPIO_2_25_DIR                                       BI
 GPIO_2_26                                           FABRIC
 GPIO_2_26_DIR                                       BI
-GPIO_2_27                                           UNUSED
-GPIO_2_27_DIR                                       IN
-GPIO_2_28                                           UNUSED
-GPIO_2_28_DIR                                       IN
-GPIO_2_29                                           UNUSED
-GPIO_2_29_DIR                                       IN
+GPIO_2_27                                           FABRIC
+GPIO_2_27_DIR                                       BI
+GPIO_2_28                                           FABRIC
+GPIO_2_28_DIR                                       OUT
+GPIO_2_29                                           FABRIC
+GPIO_2_29_DIR                                       OUT
 GPIO_2_2_DIR                                        BI
 GPIO_2_3                                            FABRIC
 GPIO_2_30                                           FABRIC
@@ -640,12 +644,12 @@ LPDDR4_BANK_ADDR_WIDTH                              3
 LPDDR4_CA_ODT                                       RZQ4
 LPDDR4_CLOCK_DDR                                    800.0
 LPDDR4_COL_ADDR_WIDTH                               10
-LPDDR4_CONTROLLER_ADD_CMD_DRIVE                     34
-LPDDR4_CONTROLLER_CLK_DRIVE                         34
-LPDDR4_CONTROLLER_DQS_DRIVE                         40
-LPDDR4_CONTROLLER_DQS_ODT                           40
-LPDDR4_CONTROLLER_DQ_DRIVE                          40
-LPDDR4_CONTROLLER_DQ_ODT                            40
+LPDDR4_CONTROLLER_ADD_CMD_DRIVE                     48
+LPDDR4_CONTROLLER_CLK_DRIVE                         48
+LPDDR4_CONTROLLER_DQS_DRIVE                         48
+LPDDR4_CONTROLLER_DQS_ODT                           80
+LPDDR4_CONTROLLER_DQ_DRIVE                          48
+LPDDR4_CONTROLLER_DQ_ODT                            80
 LPDDR4_DM_MODE                                      DM
 LPDDR4_DQDQS_TRAINING_OFFSET                        1
 LPDDR4_DQ_ODT                                       RZQ2
@@ -656,10 +660,10 @@ LPDDR4_MEMORY_FORMAT                                COMPONENT
 LPDDR4_ODTE_CA                                      0
 LPDDR4_ODTE_CK                                      0
 LPDDR4_ODTE_CS                                      0
-LPDDR4_PULLUP_CAL                                   VDDQ3
+LPDDR4_PULLUP_CAL                                   VDDQ2P5
 LPDDR4_RD_POSTAMBLE                                 CK0P5
 LPDDR4_RD_PREAMBLE                                  STATIC
-LPDDR4_READ_LATENCY                                 RL14
+LPDDR4_READ_LATENCY                                 RL28
 LPDDR4_ROW_ADDR_WIDTH                               16
 LPDDR4_SELF_REFRESH_ABORT_MODE                      0
 LPDDR4_SOC_ODT                                      RZQ6
@@ -669,20 +673,20 @@ LPDDR4_TIMING_MRW                                   10
 LPDDR4_TIMING_RAS                                   42
 LPDDR4_TIMING_RC                                    63
 LPDDR4_TIMING_RCD                                   18
-LPDDR4_TIMING_REFI                                  3.905
-LPDDR4_TIMING_RFC                                   380
+LPDDR4_TIMING_REFI                                  3.9
+LPDDR4_TIMING_RFC                                   280
 LPDDR4_TIMING_RP                                    21
 LPDDR4_TIMING_RRD                                   10
-LPDDR4_TIMING_RTP                                   10
+LPDDR4_TIMING_RTP                                   7.5
 LPDDR4_TIMING_WR                                    18
-LPDDR4_TIMING_WTR                                   8
+LPDDR4_TIMING_WTR                                   10
 LPDDR4_VREF_CA                                      50
 LPDDR4_VREF_CALIB_ENABLE                            1
 LPDDR4_VREF_CALIB_RANGE                             1
 LPDDR4_VREF_CALIB_VALUE                             31.2
 LPDDR4_VREF_DATA                                    15
 LPDDR4_WIDTH                                        32
-LPDDR4_WRITE_LATENCY                                WL8
+LPDDR4_WRITE_LATENCY                                WL14
 LPDDR4_WR_POSTAMBLE                                 CK0P5
 LPDDR4_ZQ_CALIB_PERIOD                              200
 LPDDR4_ZQ_CAL_LATCH_TIME                            30
@@ -718,7 +722,7 @@ MSSIO_0_LPMD_IBUF                                   false
 MSSIO_0_LPMD_OBUF                                   false
 MSSIO_0_LP_PERSIST                                  false
 MSSIO_0_MD_IBUF                                     true
-MSSIO_0_OUT_DRIVE                                   8
+MSSIO_0_OUT_DRIVE                                   10
 MSSIO_0_RES_PULL                                    UP
 MSSIO_0_SCHMITT_TRIGGER                             false
 MSSIO_10_ATP_EN                                     false
@@ -727,7 +731,7 @@ MSSIO_10_LPMD_IBUF                                  false
 MSSIO_10_LPMD_OBUF                                  false
 MSSIO_10_LP_PERSIST                                 false
 MSSIO_10_MD_IBUF                                    true
-MSSIO_10_OUT_DRIVE                                  8
+MSSIO_10_OUT_DRIVE                                  10
 MSSIO_10_RES_PULL                                   UP
 MSSIO_10_SCHMITT_TRIGGER                            false
 MSSIO_11_ATP_EN                                     false
@@ -736,7 +740,7 @@ MSSIO_11_LPMD_IBUF                                  false
 MSSIO_11_LPMD_OBUF                                  false
 MSSIO_11_LP_PERSIST                                 false
 MSSIO_11_MD_IBUF                                    true
-MSSIO_11_OUT_DRIVE                                  8
+MSSIO_11_OUT_DRIVE                                  10
 MSSIO_11_RES_PULL                                   UP
 MSSIO_11_SCHMITT_TRIGGER                            false
 MSSIO_12_ATP_EN                                     false
@@ -745,7 +749,7 @@ MSSIO_12_LPMD_IBUF                                  false
 MSSIO_12_LPMD_OBUF                                  false
 MSSIO_12_LP_PERSIST                                 false
 MSSIO_12_MD_IBUF                                    true
-MSSIO_12_OUT_DRIVE                                  8
+MSSIO_12_OUT_DRIVE                                  10
 MSSIO_12_RES_PULL                                   UP
 MSSIO_12_SCHMITT_TRIGGER                            false
 MSSIO_13_ATP_EN                                     false
@@ -817,7 +821,7 @@ MSSIO_1_LPMD_IBUF                                   false
 MSSIO_1_LPMD_OBUF                                   false
 MSSIO_1_LP_PERSIST                                  false
 MSSIO_1_MD_IBUF                                     true
-MSSIO_1_OUT_DRIVE                                   8
+MSSIO_1_OUT_DRIVE                                   10
 MSSIO_1_RES_PULL                                    UP
 MSSIO_1_SCHMITT_TRIGGER                             false
 MSSIO_20_ATP_EN                                     false
@@ -916,7 +920,7 @@ MSSIO_2_LPMD_IBUF                                   false
 MSSIO_2_LPMD_OBUF                                   false
 MSSIO_2_LP_PERSIST                                  false
 MSSIO_2_MD_IBUF                                     true
-MSSIO_2_OUT_DRIVE                                   8
+MSSIO_2_OUT_DRIVE                                   10
 MSSIO_2_RES_PULL                                    UP
 MSSIO_2_SCHMITT_TRIGGER                             false
 MSSIO_30_ATP_EN                                     false
@@ -997,7 +1001,7 @@ MSSIO_3_LPMD_IBUF                                   false
 MSSIO_3_LPMD_OBUF                                   false
 MSSIO_3_LP_PERSIST                                  false
 MSSIO_3_MD_IBUF                                     true
-MSSIO_3_OUT_DRIVE                                   8
+MSSIO_3_OUT_DRIVE                                   10
 MSSIO_3_RES_PULL                                    UP
 MSSIO_3_SCHMITT_TRIGGER                             false
 MSSIO_4_ATP_EN                                      false
@@ -1006,7 +1010,7 @@ MSSIO_4_LPMD_IBUF                                   false
 MSSIO_4_LPMD_OBUF                                   false
 MSSIO_4_LP_PERSIST                                  false
 MSSIO_4_MD_IBUF                                     true
-MSSIO_4_OUT_DRIVE                                   8
+MSSIO_4_OUT_DRIVE                                   10
 MSSIO_4_RES_PULL                                    UP
 MSSIO_4_SCHMITT_TRIGGER                             false
 MSSIO_5_ATP_EN                                      false
@@ -1015,7 +1019,7 @@ MSSIO_5_LPMD_IBUF                                   false
 MSSIO_5_LPMD_OBUF                                   false
 MSSIO_5_LP_PERSIST                                  false
 MSSIO_5_MD_IBUF                                     true
-MSSIO_5_OUT_DRIVE                                   8
+MSSIO_5_OUT_DRIVE                                   10
 MSSIO_5_RES_PULL                                    UP
 MSSIO_5_SCHMITT_TRIGGER                             false
 MSSIO_6_ATP_EN                                      false
@@ -1033,7 +1037,7 @@ MSSIO_7_LPMD_IBUF                                   false
 MSSIO_7_LPMD_OBUF                                   false
 MSSIO_7_LP_PERSIST                                  false
 MSSIO_7_MD_IBUF                                     true
-MSSIO_7_OUT_DRIVE                                   8
+MSSIO_7_OUT_DRIVE                                   10
 MSSIO_7_RES_PULL                                    UP
 MSSIO_7_SCHMITT_TRIGGER                             false
 MSSIO_8_ATP_EN                                      false
@@ -1042,7 +1046,7 @@ MSSIO_8_LPMD_IBUF                                   false
 MSSIO_8_LPMD_OBUF                                   false
 MSSIO_8_LP_PERSIST                                  false
 MSSIO_8_MD_IBUF                                     true
-MSSIO_8_OUT_DRIVE                                   8
+MSSIO_8_OUT_DRIVE                                   10
 MSSIO_8_RES_PULL                                    UP
 MSSIO_8_SCHMITT_TRIGGER                             false
 MSSIO_9_ATP_EN                                      false
@@ -1051,7 +1055,7 @@ MSSIO_9_LPMD_IBUF                                   false
 MSSIO_9_LPMD_OBUF                                   false
 MSSIO_9_LP_PERSIST                                  false
 MSSIO_9_MD_IBUF                                     true
-MSSIO_9_OUT_DRIVE                                   8
+MSSIO_9_OUT_DRIVE                                   10
 MSSIO_9_RES_PULL                                    UP
 MSSIO_9_SCHMITT_TRIGGER                             false
 MSSIO_REFCLK_IOSTD                                  LVDS25
@@ -1062,11 +1066,12 @@ MSSIO_REFCLK_THEVENIN                               OFF
 MSS_AHB_APB_CLK_DIV                                 4
 MSS_AXI_CLK_DIV                                     2
 MSS_CLK_DIV                                         1
+MSS_MANUAL_DDR_PHY_OFFSET_ENABLE                    true
 MSS_PLLOUT_FREQ                                     600.000
 MSS_PMP_ENABLE                                      false
 MSS_REFCLK                                          DEDICATED_IO
 PACKAGE                                             FCVG484
-PFSOC_MSS_VERSION                                   2022.2
+PFSOC_MSS_VERSION                                   2022.3
 PLL_NW_REFCLK0_FREQ                                 100
 PLL_NW_REFCLK1_FREQ                                 125
 PMP_CAN0_CONTEXT_A_EN                               true
@@ -1097,10 +1102,10 @@ PMP_INITIATOR_U54_1_CONTEXT_A_EN                    true
 PMP_INITIATOR_U54_1_CONTEXT_B_EN                    false
 PMP_INITIATOR_U54_2_CONTEXT_A_EN                    true
 PMP_INITIATOR_U54_2_CONTEXT_B_EN                    false
-PMP_INITIATOR_U54_3_CONTEXT_A_EN                    false
-PMP_INITIATOR_U54_3_CONTEXT_B_EN                    true
-PMP_INITIATOR_U54_4_CONTEXT_A_EN                    false
-PMP_INITIATOR_U54_4_CONTEXT_B_EN                    true
+PMP_INITIATOR_U54_3_CONTEXT_A_EN                    true
+PMP_INITIATOR_U54_3_CONTEXT_B_EN                    false
+PMP_INITIATOR_U54_4_CONTEXT_A_EN                    true
+PMP_INITIATOR_U54_4_CONTEXT_B_EN                    false
 PMP_MMUART1_CONTEXT_A_EN                            true
 PMP_MMUART1_CONTEXT_B_EN                            false
 PMP_MMUART2_CONTEXT_A_EN                            true
diff --git a/script_support/components/BVF_RISCV_SUBSYSTEM.tcl b/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
index 8c85360..83be93c 100644
--- a/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
+++ b/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
@@ -66,9 +66,9 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {USER_BUTTON} -port_directi
 sd_create_scalar_port -sd_name ${sd_name} -port_name {SD_CARD_CS} -port_direction {OUT} 
 sd_create_scalar_port -sd_name ${sd_name} -port_name {SD_DET} -port_direction {IN} 
 
-sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_M2F} -port_direction {OUT} -port_range {[26:0]}
-sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_OE_M2F} -port_direction {OUT} -port_range {[26:0]} 
-sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_F2M} -port_direction {IN} -port_range {[26:0]} 
+sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_M2F} -port_direction {OUT} -port_range {[27:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_OE_M2F} -port_direction {OUT} -port_range {[27:0]} 
+sd_create_bus_port -sd_name ${sd_name} -port_name {GPIO_2_F2M} -port_direction {IN} -port_range {[27:0]} 
 
 #-------------------------------------------------------------------------------
 # Analog to Digital Converter pins (for cape analog inputs)
@@ -170,6 +170,11 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:I2C_0_SDA_F2M" "I2C0
 sd_connect_pins -sd_name ${sd_name} -pin_names {"I2C0_SDA_BIBUF:PAD" "I2C0_SDA"}
 sd_connect_pins -sd_name ${sd_name} -pin_names {"I2C0_SCL_BIBUF:PAD" "I2C0_SCL"}
 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {M2_W_DISABLE1} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {M2_W_DISABLE2} -port_direction {OUT} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"M2_W_DISABLE1" "PF_SOC_MSS:GPIO_2_M2F_28"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"M2_W_DISABLE2" "PF_SOC_MSS:GPIO_2_M2F_29"} 
 
 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:I2C_1_SCL" "I2C_1_SCL" }
@@ -334,7 +339,7 @@ sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {PF_SOC_MSS:FIC_3_APB_M_PST
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[30:30]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[29:29]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[28:28]"} 
-#sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[27:27]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[27:27]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[26:26]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[25:25]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[24:24]"} 
@@ -366,7 +371,7 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_F2M} -pin_slices {"[0
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[30:30]" "PF_SOC_MSS:GPIO_2_F2M_30"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[29:29]" "PF_SOC_MSS:GPIO_2_F2M_29"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[28:28]" "PF_SOC_MSS:GPIO_2_F2M_28"} 
-#sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[27:27]" "PF_SOC_MSS:GPIO_2_F2M_27"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[27:27]" "PF_SOC_MSS:GPIO_2_F2M_27"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[26:26]" "PF_SOC_MSS:GPIO_2_F2M_26"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[25:25]" "PF_SOC_MSS:GPIO_2_F2M_25"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[24:24]" "PF_SOC_MSS:GPIO_2_F2M_24"} 
@@ -401,7 +406,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_F2M[0:0]" "PF_SOC_MSS:GP
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[30:30]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[29:29]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[28:28]"} 
-#sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[27:27]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[27:27]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[26:26]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[25:25]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[24:24]"} 
@@ -433,7 +438,7 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_M2F} -pin_slices {"[0
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_30" "GPIO_2_M2F[30:30]"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_29" "GPIO_2_M2F[29:29]"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_28" "GPIO_2_M2F[28:28]"} 
-#sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_27" "GPIO_2_M2F[27:27]"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_27" "GPIO_2_M2F[27:27]"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_26" "GPIO_2_M2F[26:26]"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_25" "GPIO_2_M2F[25:25]"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_24" "GPIO_2_M2F[24:24]"} 
@@ -467,7 +472,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:GPIO_2_M2F_0" "GPIO_
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[30:30]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[29:29]"} 
 #sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[28:28]"} 
-#sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[27:27]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[27:27]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[26:26]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[25:25]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {"[24:24]"} 
@@ -500,7 +505,7 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {GPIO_2_OE_M2F} -pin_slices {
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[30:30]" "PF_SOC_MSS:GPIO_2_OE_M2F_30"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[29:29]" "PF_SOC_MSS:GPIO_2_OE_M2F_29"} 
 #sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[28:28]" "PF_SOC_MSS:GPIO_2_OE_M2F_28"} 
-#sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[27:27]" "PF_SOC_MSS:GPIO_2_OE_M2F_27"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[27:27]" "PF_SOC_MSS:GPIO_2_OE_M2F_27"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[26:26]" "PF_SOC_MSS:GPIO_2_OE_M2F_26"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[25:25]" "PF_SOC_MSS:GPIO_2_OE_M2F_25"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"GPIO_2_OE_M2F[24:24]" "PF_SOC_MSS:GPIO_2_OE_M2F_24"} 
diff --git a/script_support/components/CAPE/DEFAULT/CAPE.tcl b/script_support/components/CAPE/DEFAULT/CAPE.tcl
index 8154e93..af2d92e 100644
--- a/script_support/components/CAPE/DEFAULT/CAPE.tcl
+++ b/script_support/components/CAPE/DEFAULT/CAPE.tcl
@@ -63,7 +63,7 @@ sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_na
 sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P9_31}
 sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P9_41}
 
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_4}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_28}
 #sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_28_PAD} -new_port_name {P8_5}
 #sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_29_PAD} -new_port_name {P8_6}
 #sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_30_PAD} -new_port_name {P8_7}
@@ -97,7 +97,6 @@ sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA15} -new_port_nam
 sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_HSYNC} -new_port_name {P8_29}
 sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_AC_BIAS} -new_port_name {P8_30}
 sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_VSYNC} -new_port_name {P8_27}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_PCLK} -new_port_name {P8_28}
 
 
 #-------------------------------------------------------------------------------
diff --git a/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl b/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
index a324423..22e5fd9 100644
--- a/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
+++ b/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
@@ -31,14 +31,14 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPI
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_24_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_25_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_26_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_28_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_29_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_30_BIBUF}
 
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OUT} -port_direction {IN} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OUT} -port_direction {IN} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[2:2]"}
@@ -66,13 +66,13 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_sli
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[30:30]"}
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[2:2]"}
@@ -100,13 +100,13 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[30:30]"}
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[2:2]"}
@@ -134,7 +134,7 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[30:30]"}
@@ -167,7 +167,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:D" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:D" "GPIO_OUT[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:D" "GPIO_OUT[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:D" "GPIO_OUT[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:D" "GPIO_OUT[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:D" "GPIO_OUT[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:D" "GPIO_OUT[30:30]"}
@@ -200,7 +200,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:E" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:E" "GPIO_OE[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:E" "GPIO_OE[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:E" "GPIO_OE[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:E" "GPIO_OE[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:E" "GPIO_OE[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:E" "GPIO_OE[30:30]"}
@@ -233,7 +233,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:Y" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:Y" "GPIO_IN[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:Y" "GPIO_IN[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:Y" "GPIO_IN[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:Y" "GPIO_IN[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:Y" "GPIO_IN[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:Y" "GPIO_IN[30:30]"}
@@ -266,7 +266,7 @@ sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_22} -new_po
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_23} -new_port_name {GPIO_24_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_24} -new_port_name {GPIO_25_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_25} -new_port_name {GPIO_26_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_27} -new_port_name {GPIO_28_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_28} -new_port_name {GPIO_29_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_29} -new_port_name {GPIO_30_PAD}
diff --git a/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl b/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
index ea0ab46..7461e9e 100644
--- a/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
+++ b/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
@@ -27,7 +27,6 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_HSYNC_GPIO_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_AC_BIAS_GPIO_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_VSYNC_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_PCLK_GPIO_BIBUF}
 
 
 
@@ -38,7 +37,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "FIXED_CONFIG_0:true" "FIXED_CONFIG_1:true" "FIXED_CONFIG_2:true" "FIXED_CONFIG_3:true" "FIXED_CONFIG_4:true" \
 "FIXED_CONFIG_5:true" "FIXED_CONFIG_6:true" "FIXED_CONFIG_7:true" "FIXED_CONFIG_8:true" "FIXED_CONFIG_9:true" \
 "FIXED_CONFIG_10:true" "FIXED_CONFIG_11:true" "FIXED_CONFIG_12:true" "FIXED_CONFIG_13:true" "FIXED_CONFIG_14:true" \
-"FIXED_CONFIG_15:true" "FIXED_CONFIG_16:true" "FIXED_CONFIG_17:true" "FIXED_CONFIG_18:true" "FIXED_CONFIG_19:true" \
+"FIXED_CONFIG_15:true" "FIXED_CONFIG_16:true" "FIXED_CONFIG_17:true" "FIXED_CONFIG_18:true" "FIXED_CONFIG_19:false" \
 "FIXED_CONFIG_20:false" "FIXED_CONFIG_21:false" "FIXED_CONFIG_22:false" "FIXED_CONFIG_23:false" "FIXED_CONFIG_24:false" \
 "FIXED_CONFIG_25:false" "FIXED_CONFIG_26:false" "FIXED_CONFIG_27:false" "FIXED_CONFIG_28:false" "FIXED_CONFIG_29:false" \
 "FIXED_CONFIG_30:false" "FIXED_CONFIG_31:false" \
@@ -50,7 +49,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "IO_INT_TYPE_20:7" "IO_INT_TYPE_21:7" "IO_INT_TYPE_22:7" "IO_INT_TYPE_23:7" "IO_INT_TYPE_24:7" \
 "IO_INT_TYPE_25:7" "IO_INT_TYPE_26:7" "IO_INT_TYPE_27:7" "IO_INT_TYPE_28:7" "IO_INT_TYPE_29:7" \
 "IO_INT_TYPE_30:7" "IO_INT_TYPE_31:7" \
-"IO_NUM:20" \
+"IO_NUM:19" \
 "IO_TYPE_0:2" "IO_TYPE_1:2"  "IO_TYPE_2:2" "IO_TYPE_3:2" "IO_TYPE_4:2" "IO_TYPE_5:2" "IO_TYPE_6:2" "IO_TYPE_7:2" "IO_TYPE_8:2" "IO_TYPE_9:2" \
 "IO_TYPE_10:2" "IO_TYPE_11:2" "IO_TYPE_12:2" "IO_TYPE_13:2" "IO_TYPE_14:2" "IO_TYPE_15:2" "IO_TYPE_16:2" "IO_TYPE_17:2" "IO_TYPE_18:2" "IO_TYPE_19:2" \
 "IO_TYPE_20:0" "IO_TYPE_21:0" "IO_TYPE_22:0" "IO_TYPE_23:0" "IO_TYPE_24:0" "IO_TYPE_25:0" "IO_TYPE_26:0" "IO_TYPE_27:0" "IO_TYPE_28:0" "IO_TYPE_29:0" \
@@ -62,7 +61,6 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "OE_TYPE:0"} 
 
 sd_instantiate_component -sd_name {P8_GPIO_LCD} -component_name {CoreGPIO_LCD} -instance_name {} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[19:19]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[18:18]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[17:17]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[16:16]"} 
@@ -82,7 +80,6 @@ sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[2:2]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[1:1]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[0:0]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[19:19]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[18:18]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[17:17]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[16:16]"} 
@@ -102,7 +99,6 @@ sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT}
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[2:2]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[1:1]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[0:0]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[19:19]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[18:18]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[17:17]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[16:16]"} 
@@ -200,10 +196,6 @@ sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[18:1
 sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[18:18]" "LCD_VSYNC_GPIO_BIBUF:Y"} 
 sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[18:18]" "LCD_VSYNC_GPIO_BIBUF:E"} 
 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[19:19]" "LCD_PCLK_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[19:19]" "LCD_PCLK_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[19:19]" "LCD_PCLK_GPIO_BIBUF:E"} 
-
 
 
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD} -new_port_name {LCD_DATA0}
@@ -226,7 +218,6 @@ sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_14} -new_port_name
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_15} -new_port_name {LCD_HSYNC}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_16} -new_port_name {LCD_AC_BIAS}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_17} -new_port_name {LCD_VSYNC}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_18} -new_port_name {LCD_PCLK}
 
 
 sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PRESETN} -port_name {} 
diff --git a/script_support/components/CAPE/GPIOS/CAPE.tcl b/script_support/components/CAPE/GPIOS/CAPE.tcl
index c962d8b..12d4de8 100644
--- a/script_support/components/CAPE/GPIOS/CAPE.tcl
+++ b/script_support/components/CAPE/GPIOS/CAPE.tcl
@@ -63,10 +63,7 @@ sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_na
 sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P9_31}
 sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P9_41}
 
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_4}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_28_PAD} -new_port_name {P8_5}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_29_PAD} -new_port_name {P8_6}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_30_PAD} -new_port_name {P8_7}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P9_42}
 
 
 #-------------------------------------------------------------------------------
diff --git a/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl b/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
index a324423..22e5fd9 100644
--- a/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
+++ b/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
@@ -31,14 +31,14 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPI
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_24_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_25_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_26_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_28_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_29_BIBUF}
 #sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_30_BIBUF}
 
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OUT} -port_direction {IN} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OUT} -port_direction {IN} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[2:2]"}
@@ -66,13 +66,13 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_sli
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[30:30]"}
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[2:2]"}
@@ -100,13 +100,13 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[30:30]"}
 
 
-sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[26:0]}
+sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[0:0]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[1:1]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[2:2]"}
@@ -134,7 +134,7 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[24:24]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[26:26]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
+sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[28:28]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[29:29]"}
 #sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[30:30]"}
@@ -167,7 +167,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:D" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:D" "GPIO_OUT[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:D" "GPIO_OUT[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:D" "GPIO_OUT[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:D" "GPIO_OUT[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:D" "GPIO_OUT[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:D" "GPIO_OUT[30:30]"}
@@ -200,7 +200,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:E" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:E" "GPIO_OE[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:E" "GPIO_OE[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:E" "GPIO_OE[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:E" "GPIO_OE[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:E" "GPIO_OE[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:E" "GPIO_OE[30:30]"}
@@ -233,7 +233,7 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_23_BIBUF:Y" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:Y" "GPIO_IN[24:24]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:Y" "GPIO_IN[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:Y" "GPIO_IN[26:26]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
+sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:Y" "GPIO_IN[28:28]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:Y" "GPIO_IN[29:29]"}
 #sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:Y" "GPIO_IN[30:30]"}
@@ -266,7 +266,7 @@ sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_22} -new_po
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_23} -new_port_name {GPIO_24_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_24} -new_port_name {GPIO_25_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_25} -new_port_name {GPIO_26_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_27} -new_port_name {GPIO_28_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_28} -new_port_name {GPIO_29_PAD}
 #sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_29} -new_port_name {GPIO_30_PAD}
diff --git a/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl b/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
index 34303b6..fb39d71 100644
--- a/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
+++ b/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
@@ -23,7 +23,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "FIXED_CONFIG_16:true"  \
 "FIXED_CONFIG_17:true"  \
 "FIXED_CONFIG_18:true"  \
-"FIXED_CONFIG_19:true"  \
+"FIXED_CONFIG_19:false"  \
 "FIXED_CONFIG_20:false"  \
 "FIXED_CONFIG_21:false"  \
 "FIXED_CONFIG_22:false"  \
@@ -69,7 +69,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "IO_INT_TYPE_29:7"  \
 "IO_INT_TYPE_30:7"  \
 "IO_INT_TYPE_31:7"  \
-"IO_NUM:24"  \
+"IO_NUM:23"  \
 "IO_TYPE_0:2"  \
 "IO_TYPE_1:2"  \
 "IO_TYPE_2:2"  \
diff --git a/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl b/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
index dd92f56..5b5bf54 100644
--- a/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
+++ b/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
@@ -24,7 +24,6 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_16_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_17_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_18_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_19_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_HSYNC_GPIO_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_AC_BIAS_GPIO_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_VSYNC_GPIO_BIBUF}
@@ -33,7 +32,6 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD
 
 sd_instantiate_component -sd_name {P8_GPIO_LCD} -component_name {CoreGPIO_LCD} -instance_name {} 
 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[23:23]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[22:22]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[21:21]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[20:20]"} 
@@ -59,7 +57,6 @@ sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[1:1]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[0:0]"} 
 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[23:23]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[22:22]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[21:21]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[20:20]"} 
@@ -85,7 +82,6 @@ sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT}
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[1:1]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[0:0]"} 
 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[23:23]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[22:22]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[21:21]"} 
 sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[20:20]"} 
@@ -207,10 +203,6 @@ sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[22:2
 sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[22:22]" "LCD_GPIO_18_BIBUF:Y"} 
 sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[22:22]" "LCD_GPIO_18_BIBUF:E"} 
 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[23:23]" "LCD_GPIO_19_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[23:23]" "LCD_GPIO_19_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[23:23]" "LCD_GPIO_19_BIBUF:E"} 
-
 
 
 
@@ -236,13 +228,12 @@ sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_14} -new_port_name
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_15} -new_port_name {P8_19}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_16} -new_port_name {P9_14}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_17} -new_port_name {P9_16}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_18} -new_port_name {P9_42}
+sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_18} -new_port_name {LCD_PCLK}
 
 
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_19} -new_port_name {LCD_HSYNC}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_20} -new_port_name {LCD_AC_BIAS}
 sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_21} -new_port_name {LCD_VSYNC}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_22} -new_port_name {LCD_PCLK}
 
 
 sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PRESETN} -port_name {} 
-- 
GitLab


From 099a479e4f93f7a4ad062e81a05d0574ff64b610 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sat, 22 Jul 2023 20:07:48 +0100
Subject: [PATCH 08/19] Cape: Assign GPIOs for cape pins.

- Optimize MSS GPIO_2 usage.
- GPIOS build option now uses GPIOs for all cape pins except I2C on
  P9_PIN19 and P9_PIN20 which are hard-wired to MSS I2C.
- Move user LEDs control to MSS GPIO_2.
---
 script_support/components/BVF_GATEWARE.tcl    |  14 +-
 .../components/BVF_RISCV_SUBSYSTEM.tcl        |  24 +-
 .../components/CAPE/DEFAULT/ADD_CAPE.tcl      |  19 +-
 .../components/CAPE/DEFAULT/CAPE.tcl          | 119 +++---
 .../CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl       |  69 +--
 .../components/CAPE/DEFAULT/CAPE_PWM.tcl      |   5 +-
 .../components/CAPE/DEFAULT/CoreGPIO_LCD.tcl  | 138 ++++++
 .../components/CAPE/DEFAULT/P8_GPIO_LCD.tcl   | 383 +++++++----------
 .../CAPE/DEFAULT/constraints/cape.pdc         | 195 ++++-----
 .../components/CAPE/GPIOS/ADD_CAPE.tcl        |   9 +-
 script_support/components/CAPE/GPIOS/CAPE.tcl | 149 ++++---
 .../CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl         |  24 --
 .../components/CAPE/GPIOS/CoreGPIO_LCD.tcl    |  16 +-
 .../components/CAPE/GPIOS/CoreGPIO_P9.tcl     | 138 ++++++
 .../components/CAPE/GPIOS/P8_GPIO_LCD.tcl     | 401 +++++++-----------
 .../components/CAPE/GPIOS/P9_GPIO.tcl         | 220 ++++++++++
 .../CAPE/GPIOS/constraints/cape.pdc           | 182 +++++---
 .../components/CAPE/NONE/constraints/cape.pdc |  15 +-
 script_support/components/FIC3_INITIATOR.tcl  |   2 +-
 script_support/constraints/base_design.pdc    |  76 ----
 20 files changed, 1246 insertions(+), 952 deletions(-)
 create mode 100644 script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl
 create mode 100644 script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl
 create mode 100644 script_support/components/CAPE/GPIOS/P9_GPIO.tcl

diff --git a/script_support/components/BVF_GATEWARE.tcl b/script_support/components/BVF_GATEWARE.tcl
index 82feeb4..8a1cb4f 100644
--- a/script_support/components/BVF_GATEWARE.tcl
+++ b/script_support/components/BVF_GATEWARE.tcl
@@ -1,5 +1,5 @@
 
-source script_support/components/BVF_RISCV_SUBSYSTEM/USER_LED_GPIO_PADS.tcl
+#source script_support/components/BVF_RISCV_SUBSYSTEM/USER_LED_GPIO_PADS.tcl
 
 # Creating SmartDesign BVF_GATEWARE
 set sd_name ${top_level_name}
@@ -204,12 +204,12 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"DQS_N" "BVF_RISCV_SUBSYSTEM:DQS
 #-------------------------------------------------------------------------------
 # User LEDs
 #-------------------------------------------------------------------------------
-auto_promote_pad_pins -promote_all 1
-sd_instantiate_component -sd_name ${sd_name} -component_name {USER_LED_PADS} -instance_name {USER_LED_PADS_0} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OUT" "USER_LED_PADS_0:USER_LED_GPIO_OUT"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OE" "USER_LED_PADS_0:USER_LED_GPIO_OE"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_IN" "USER_LED_PADS_0:USER_LED_GPIO_IN"} 
-auto_promote_pad_pins -promote_all 0
+#auto_promote_pad_pins -promote_all 1
+#sd_instantiate_component -sd_name ${sd_name} -component_name {USER_LED_PADS} -instance_name {USER_LED_PADS_0} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OUT" "USER_LED_PADS_0:USER_LED_GPIO_OUT"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OE" "USER_LED_PADS_0:USER_LED_GPIO_OE"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_IN" "USER_LED_PADS_0:USER_LED_GPIO_IN"} 
+#auto_promote_pad_pins -promote_all 0
 
 #-------------------------------------------------------------------------------
 # MIPI CSI-2 RX interface
diff --git a/script_support/components/BVF_RISCV_SUBSYSTEM.tcl b/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
index 83be93c..ff7a2f4 100644
--- a/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
+++ b/script_support/components/BVF_RISCV_SUBSYSTEM.tcl
@@ -1,4 +1,4 @@
-source script_support/components/BVF_RISCV_SUBSYSTEM/USER_LED_GPIO.tcl
+#source script_support/components/BVF_RISCV_SUBSYSTEM/USER_LED_GPIO.tcl
 
 # Creating SmartDesign BVF_RISCV_SUBSYSTEM
 set sd_name {BVF_RISCV_SUBSYSTEM}
@@ -101,9 +101,9 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_MDIO} -port_direction
 #-------------------------------------------------------------------------------
 # User LEDs
 #-------------------------------------------------------------------------------
-sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_OUT} -port_direction {OUT} -port_range {[11:0]} 
-sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_OE} -port_direction {OUT} -port_range {[11:0]} 
-sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_IN} -port_direction {IN} -port_range {[11:0]} 
+#sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_OUT} -port_direction {OUT} -port_range {[11:0]} 
+#sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_OE} -port_direction {OUT} -port_range {[11:0]} 
+#sd_create_bus_port -sd_name ${sd_name} -port_name {USER_LED_GPIO_IN} -port_direction {IN} -port_range {[11:0]} 
 
 
 
@@ -302,14 +302,14 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_SOC_MSS:MMUART_4_RXD_F2M" "M
 #-------------------------------------------------------------------------------
 # User LEDs
 #-------------------------------------------------------------------------------
-sd_instantiate_component -sd_name ${sd_name} -component_name {USER_LED_GPIO} -instance_name {}
-sd_connect_pins -sd_name ${sd_name} -pin_names {"FIC3_INITIATOR:APBmslave0" "USER_LED_GPIO_0:APB_bif"}
-sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:PRESETN" "PRESETN"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"FIC_3_PCLK" "USER_LED_GPIO_0:PCLK"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_OE" "USER_LED_GPIO_OE"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_OUT" "USER_LED_GPIO_OUT"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_IN" "USER_LED_GPIO_IN"}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {USER_LED_GPIO_0:INT}
+#sd_instantiate_component -sd_name ${sd_name} -component_name {USER_LED_GPIO} -instance_name {}
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"FIC3_INITIATOR:APBmslave0" "USER_LED_GPIO_0:APB_bif"}
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:PRESETN" "PRESETN"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"FIC_3_PCLK" "USER_LED_GPIO_0:PCLK"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_OE" "USER_LED_GPIO_OE"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_OUT" "USER_LED_GPIO_OUT"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"USER_LED_GPIO_0:GPIO_IN" "USER_LED_GPIO_IN"}
+#sd_mark_pins_unused -sd_name ${sd_name} -pin_names {USER_LED_GPIO_0:INT}
 
 #-------------------------------------------------------------------------------
 # High speed connector VIO_ENABLE.
diff --git a/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl b/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl
index b18bfbd..8105274 100644
--- a/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl
+++ b/script_support/components/CAPE/DEFAULT/ADD_CAPE.tcl
@@ -4,6 +4,7 @@ puts "======== Add cape option: DEFAULT ========"
 # Build cape's submodules
 #-------------------------------------------------------------------------------
 source script_support/components/CAPE/DEFAULT/APB_BUS_CONVERTER.tcl
+source script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl
 source script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
 source script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
 source script_support/components/CAPE/DEFAULT/CAPE_PWM.tcl
@@ -17,13 +18,14 @@ set sd_name ${top_level_name}
 #-------------------------------------------------------------------------------
 # Cape pins
 #-------------------------------------------------------------------------------
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_19} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN13_USER_LED_10} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN19} -port_direction {OUT}
 
 sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_11} -port_direction {IN}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_13} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_14} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_16} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_42} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN14} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN16} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P9_PIN42} -port_direction {OUT}
 
 #-------------------------------------------------------------------------------
 # Instantiate.
@@ -46,11 +48,12 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_F2M"
 sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_M2F" "CAPE:GPIO_OUT"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_OE_M2F" "CAPE:GPIO_OE"} 
 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P8_PIN13_USER_LED_10" "P8_PIN13_USER_LED_10"}
 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P8_19" "P8_19"}
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_14" "P9_14"}
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_16" "P9_16"}
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_42" "P9_42"}
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P8_PIN19" "P8_PIN19"}
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_PIN14" "P9_PIN14"}
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_PIN16" "P9_PIN16"}
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:P9_PIN42" "P9_PIN42"}
 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_SLAVE" "BVF_RISCV_SUBSYSTEM:CAPE_APB_MTARGET"}
 
diff --git a/script_support/components/CAPE/DEFAULT/CAPE.tcl b/script_support/components/CAPE/DEFAULT/CAPE.tcl
index af2d92e..72e2641 100644
--- a/script_support/components/CAPE/DEFAULT/CAPE.tcl
+++ b/script_support/components/CAPE/DEFAULT/CAPE.tcl
@@ -35,68 +35,59 @@ sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OU
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OE} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_IN} -port_name {} 
 
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_15}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_16}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_17}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_18}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_20}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_21}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_22}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_23}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_24}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_25}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_26}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P9_12}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P9_15}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P9_17}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P9_18}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P9_21}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P9_22}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P9_23}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P9_24}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P9_25}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P9_26}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_21_PAD} -new_port_name {P9_27}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_22_PAD} -new_port_name {P9_28}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_23_PAD} -new_port_name {P9_29}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_name {P9_30}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P9_31}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P9_41}
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_28}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_28_PAD} -new_port_name {P8_5}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_29_PAD} -new_port_name {P8_6}
-#sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_30_PAD} -new_port_name {P8_7}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN3_USER_LED_0}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN4_USER_LED_1}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN5_USER_LED_2}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN6_USER_LED_3}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN7_USER_LED_4}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN8_USER_LED_5}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN9_USER_LED_6}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN10_USER_LED_7}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN11_USER_LED_8}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN12_USER_LED_9}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN14_USER_LED_11}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN15}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN16}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN17}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN18}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P8_PIN20}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P8_PIN21}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P8_PIN22}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P8_PIN23}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_21_PAD} -new_port_name {P8_PIN24}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_22_PAD} -new_port_name {P8_PIN25}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_23_PAD} -new_port_name {P8_PIN26}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_name {P8_PIN27}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P8_PIN28}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P8_PIN29}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_PIN30}
 
 
 #-------------------------------------------------------------------------------
-# LCD interface stub
+# P8
 #-------------------------------------------------------------------------------
-sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_LCD} -instance_name {CAPE_LCD_STUB}
-
-sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_LCD_STUB:PRESETN} -port_name {} 
-sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_LCD_STUB:PCLK} -port_name {} 
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA0} -new_port_name {P8_31}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA1} -new_port_name {P8_32}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA2} -new_port_name {P8_33}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA3} -new_port_name {P8_34}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA4} -new_port_name {P8_35}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA5} -new_port_name {P8_36}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA6} -new_port_name {P8_37}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA7} -new_port_name {P8_38}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA8} -new_port_name {P8_39}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA9} -new_port_name {P8_40}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA10} -new_port_name {P8_41}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA11} -new_port_name {P8_42}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA12} -new_port_name {P8_43}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA13} -new_port_name {P8_44}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA14} -new_port_name {P8_45}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA15} -new_port_name {P8_46}
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_HSYNC} -new_port_name {P8_29}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_AC_BIAS} -new_port_name {P8_30}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_VSYNC} -new_port_name {P8_27}
+sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_UPPER} -instance_name {P8_GPIO_UPPER_0}
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PRESETN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PCLK} -port_name {} 
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN31}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN32}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN33}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN34}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN35}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN36}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN37}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN38}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN39}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN40}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_PIN41}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN42}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN43}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN44}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN45}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN46}
+
 
 
 #-------------------------------------------------------------------------------
@@ -108,11 +99,13 @@ sd_connect_pin_to_port -sd_name {CAPE} -pin_name {PWM_0:PWM_0} -port_name {}
 sd_connect_pin_to_port -sd_name {CAPE} -pin_name {PWM_0:PWM_1} -port_name {} 
 sd_connect_pin_to_port -sd_name {CAPE} -pin_name {PWM_0:PWM_2} -port_name {} 
 sd_connect_pin_to_port -sd_name {CAPE} -pin_name {PWM_0:PWM_3} -port_name {} 
+sd_connect_pin_to_port -sd_name {CAPE} -pin_name {PWM_0:PWM_4} -port_name {} 
 
-sd_rename_port -sd_name {CAPE} -current_port_name {PWM_0_0} -new_port_name {P9_42} 
-sd_rename_port -sd_name {CAPE} -current_port_name {PWM_1} -new_port_name {P9_14} 
-sd_rename_port -sd_name {CAPE} -current_port_name {PWM_2} -new_port_name {P9_16} 
-sd_rename_port -sd_name {CAPE} -current_port_name {PWM_3} -new_port_name {P8_19} 
+sd_rename_port -sd_name {CAPE} -current_port_name {PWM_0_0} -new_port_name {P9_PIN42} 
+sd_rename_port -sd_name {CAPE} -current_port_name {PWM_1} -new_port_name {P9_PIN14} 
+sd_rename_port -sd_name {CAPE} -current_port_name {PWM_2} -new_port_name {P9_PIN16} 
+sd_rename_port -sd_name {CAPE} -current_port_name {PWM_3} -new_port_name {P8_PIN13_USER_LED_10} 
+sd_rename_port -sd_name {CAPE} -current_port_name {PWM_4} -new_port_name {P8_PIN19} 
 
 
 #-------------------------------------------------------------------------------
@@ -122,7 +115,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"PRESETN" "PWM_0:PRESETN"}
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PCLK" "PWM_0:PCLK"} 
 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave0" "PWM_0:APBslave"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_LCD_STUB:APB_bif" "CoreAPB3_CAPE_0:APBmslave1"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:APB_bif" "CoreAPB3_CAPE_0:APBmslave1"} 
 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {APB_BUS_CONVERTER_0:APB_SLAVE} -port_name {} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster"} 
diff --git a/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl b/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
index 22e5fd9..d9bdbaf 100644
--- a/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
+++ b/script_support/components/CAPE/DEFAULT/CAPE_DEFAULT_GPIOS.tcl
@@ -14,13 +14,11 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPI
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_16_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_17_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_18_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_19_BIBUF}
@@ -32,9 +30,6 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPI
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_25_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_26_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_28_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_29_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_30_BIBUF}
 
 
 
@@ -67,9 +62,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_sli
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[30:30]"}
 
 
 sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[27:0]}
@@ -101,9 +93,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[30:30]"}
 
 
 sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]}
@@ -135,9 +124,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:D" "GPIO_OUT[0:0]"}
@@ -150,13 +136,11 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_6_BIBUF:D" "GPIO
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_7_BIBUF:D" "GPIO_OUT[7:7]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_8_BIBUF:D" "GPIO_OUT[8:8]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_9_BIBUF:D" "GPIO_OUT[9:9]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_10_BIBUF:D" "GPIO_OUT[10:10]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_11_BIBUF:D" "GPIO_OUT[11:11]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_12_BIBUF:D" "GPIO_OUT[12:12]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_13_BIBUF:D" "GPIO_OUT[13:13]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_14_BIBUF:D" "GPIO_OUT[14:14]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_15_BIBUF:D" "GPIO_OUT[15:15]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_16_BIBUF:D" "GPIO_OUT[16:16]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_17_BIBUF:D" "GPIO_OUT[17:17]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_18_BIBUF:D" "GPIO_OUT[18:18]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_19_BIBUF:D" "GPIO_OUT[19:19]"}
@@ -168,9 +152,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:D" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:D" "GPIO_OUT[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:D" "GPIO_OUT[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:D" "GPIO_OUT[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:D" "GPIO_OUT[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:D" "GPIO_OUT[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:E" "GPIO_OE[0:0]"}
@@ -183,13 +164,11 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_6_BIBUF:E" "GPIO
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_7_BIBUF:E" "GPIO_OE[7:7]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_8_BIBUF:E" "GPIO_OE[8:8]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_9_BIBUF:E" "GPIO_OE[9:9]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_10_BIBUF:E" "GPIO_OE[10:10]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_11_BIBUF:E" "GPIO_OE[11:11]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_12_BIBUF:E" "GPIO_OE[12:12]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_13_BIBUF:E" "GPIO_OE[13:13]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_14_BIBUF:E" "GPIO_OE[14:14]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_15_BIBUF:E" "GPIO_OE[15:15]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_16_BIBUF:E" "GPIO_OE[16:16]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_17_BIBUF:E" "GPIO_OE[17:17]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_18_BIBUF:E" "GPIO_OE[18:18]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_19_BIBUF:E" "GPIO_OE[19:19]"}
@@ -201,9 +180,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:E" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:E" "GPIO_OE[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:E" "GPIO_OE[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:E" "GPIO_OE[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:E" "GPIO_OE[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:E" "GPIO_OE[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:Y" "GPIO_IN[0:0]"}
@@ -216,13 +192,11 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_6_BIBUF:Y" "GPIO
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_7_BIBUF:Y" "GPIO_IN[7:7]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_8_BIBUF:Y" "GPIO_IN[8:8]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_9_BIBUF:Y" "GPIO_IN[9:9]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_10_BIBUF:Y" "GPIO_IN[10:10]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_11_BIBUF:Y" "GPIO_IN[11:11]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_12_BIBUF:Y" "GPIO_IN[12:12]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_13_BIBUF:Y" "GPIO_IN[13:13]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_14_BIBUF:Y" "GPIO_IN[14:14]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_15_BIBUF:Y" "GPIO_IN[15:15]"}
-sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_16_BIBUF:Y" "GPIO_IN[16:16]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_17_BIBUF:Y" "GPIO_IN[17:17]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_18_BIBUF:Y" "GPIO_IN[18:18]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_19_BIBUF:Y" "GPIO_IN[19:19]"}
@@ -234,9 +208,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:Y" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:Y" "GPIO_IN[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:Y" "GPIO_IN[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:Y" "GPIO_IN[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:Y" "GPIO_IN[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:Y" "GPIO_IN[30:30]"}
 
 
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD} -new_port_name {GPIO_0_PAD}
@@ -249,27 +220,25 @@ sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_5} -new_por
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_15} -new_port_name {GPIO_16_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_16} -new_port_name {GPIO_17_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_17} -new_port_name {GPIO_18_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_18} -new_port_name {GPIO_19_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_19} -new_port_name {GPIO_20_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_20} -new_port_name {GPIO_21_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_21} -new_port_name {GPIO_22_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_22} -new_port_name {GPIO_23_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_23} -new_port_name {GPIO_24_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_24} -new_port_name {GPIO_25_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_25} -new_port_name {GPIO_26_PAD}
-sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_27} -new_port_name {GPIO_28_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_28} -new_port_name {GPIO_29_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_29} -new_port_name {GPIO_30_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_9} -new_port_name {GPIO_11_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_10} -new_port_name {GPIO_12_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_11} -new_port_name {GPIO_13_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_12} -new_port_name {GPIO_14_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_13} -new_port_name {GPIO_15_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_14} -new_port_name {GPIO_17_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_15} -new_port_name {GPIO_18_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_16} -new_port_name {GPIO_19_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_17} -new_port_name {GPIO_20_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_18} -new_port_name {GPIO_21_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_19} -new_port_name {GPIO_22_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_20} -new_port_name {GPIO_23_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_21} -new_port_name {GPIO_24_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_22} -new_port_name {GPIO_25_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_23} -new_port_name {GPIO_26_PAD}
+sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_24} -new_port_name {GPIO_27_PAD}
+
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {GPIO_IN[10:10]} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {GPIO_IN[16:16]} -value {GND}
 
 
 # Re-enable auto promotion of pins of type 'pad'
diff --git a/script_support/components/CAPE/DEFAULT/CAPE_PWM.tcl b/script_support/components/CAPE/DEFAULT/CAPE_PWM.tcl
index aaffab1..69ddf92 100644
--- a/script_support/components/CAPE/DEFAULT/CAPE_PWM.tcl
+++ b/script_support/components/CAPE/DEFAULT/CAPE_PWM.tcl
@@ -26,7 +26,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:corepwm:4.5.100} -compone
 "FIXED_PWM_POS_EN6:true" "FIXED_PWM_POS_EN7:true" "FIXED_PWM_POS_EN8:true" "FIXED_PWM_POS_EN9:true" "FIXED_PWM_POS_EN10:true" \
 "FIXED_PWM_POS_EN11:true" "FIXED_PWM_POS_EN12:true" "FIXED_PWM_POS_EN13:true" "FIXED_PWM_POS_EN14:true" "FIXED_PWM_POS_EN15:true" \
 "FIXED_PWM_POS_EN16:true" \
-"PWM_NUM:4" \
+"PWM_NUM:5" \
 "PWM_STRETCH_VALUE1:false" "PWM_STRETCH_VALUE2:false" "PWM_STRETCH_VALUE3:false" "PWM_STRETCH_VALUE4:false" "PWM_STRETCH_VALUE5:false" \
 "PWM_STRETCH_VALUE6:false" "PWM_STRETCH_VALUE7:false" "PWM_STRETCH_VALUE8:false" "PWM_STRETCH_VALUE9:false" "PWM_STRETCH_VALUE10:false" \
 "PWM_STRETCH_VALUE11:false" "PWM_STRETCH_VALUE12:false" "PWM_STRETCH_VALUE13:false" "PWM_STRETCH_VALUE14:false" "PWM_STRETCH_VALUE15:false" \
@@ -45,6 +45,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:corepwm:4.5.100} -compone
 
 sd_instantiate_component -sd_name ${sd_name} -component_name {corepwm_C1} -instance_name {} 
 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[4:4]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[3:3]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[2:2]"} 
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM} -pin_slices {"[1:1]"} 
@@ -54,10 +55,12 @@ sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:APBslave} -po
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PRESETN} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PCLK} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[0:0]} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[4:4]} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[3:3]} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[2:2]} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {corepwm_C1_0:PWM[1:1]} -port_name {} 
 
+sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_3} -new_port_name {PWM_4}
 sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_2} -new_port_name {PWM_3}
 sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_1} -new_port_name {PWM_2}
 sd_rename_port -sd_name ${sd_name} -current_port_name {PWM_0} -new_port_name {PWM_1}
diff --git a/script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl b/script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl
new file mode 100644
index 0000000..564801b
--- /dev/null
+++ b/script_support/components/CAPE/DEFAULT/CoreGPIO_LCD.tcl
@@ -0,0 +1,138 @@
+# Exporting Component Description of CoreGPIO_P8_UPPER to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component CoreGPIO_P8_UPPER
+create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_P8_UPPER} -params {\
+"APB_WIDTH:32"  \
+"FIXED_CONFIG_0:true"  \
+"FIXED_CONFIG_1:true"  \
+"FIXED_CONFIG_2:true"  \
+"FIXED_CONFIG_3:true"  \
+"FIXED_CONFIG_4:true"  \
+"FIXED_CONFIG_5:true"  \
+"FIXED_CONFIG_6:true"  \
+"FIXED_CONFIG_7:true"  \
+"FIXED_CONFIG_8:true"  \
+"FIXED_CONFIG_9:true"  \
+"FIXED_CONFIG_10:true"  \
+"FIXED_CONFIG_11:true"  \
+"FIXED_CONFIG_12:true"  \
+"FIXED_CONFIG_13:true"  \
+"FIXED_CONFIG_14:true"  \
+"FIXED_CONFIG_15:true"  \
+"FIXED_CONFIG_16:false"  \
+"FIXED_CONFIG_17:false"  \
+"FIXED_CONFIG_18:false"  \
+"FIXED_CONFIG_19:false"  \
+"FIXED_CONFIG_20:false"  \
+"FIXED_CONFIG_21:false"  \
+"FIXED_CONFIG_22:false"  \
+"FIXED_CONFIG_23:false"  \
+"FIXED_CONFIG_24:false"  \
+"FIXED_CONFIG_25:false"  \
+"FIXED_CONFIG_26:false"  \
+"FIXED_CONFIG_27:false"  \
+"FIXED_CONFIG_28:false"  \
+"FIXED_CONFIG_29:false"  \
+"FIXED_CONFIG_30:false"  \
+"FIXED_CONFIG_31:false"  \
+"INT_BUS:0"  \
+"IO_INT_TYPE_0:7"  \
+"IO_INT_TYPE_1:7"  \
+"IO_INT_TYPE_2:7"  \
+"IO_INT_TYPE_3:7"  \
+"IO_INT_TYPE_4:7"  \
+"IO_INT_TYPE_5:7"  \
+"IO_INT_TYPE_6:7"  \
+"IO_INT_TYPE_7:7"  \
+"IO_INT_TYPE_8:7"  \
+"IO_INT_TYPE_9:7"  \
+"IO_INT_TYPE_10:7"  \
+"IO_INT_TYPE_11:7"  \
+"IO_INT_TYPE_12:7"  \
+"IO_INT_TYPE_13:7"  \
+"IO_INT_TYPE_14:7"  \
+"IO_INT_TYPE_15:7"  \
+"IO_INT_TYPE_16:7"  \
+"IO_INT_TYPE_17:7"  \
+"IO_INT_TYPE_18:7"  \
+"IO_INT_TYPE_19:7"  \
+"IO_INT_TYPE_20:7"  \
+"IO_INT_TYPE_21:7"  \
+"IO_INT_TYPE_22:7"  \
+"IO_INT_TYPE_23:7"  \
+"IO_INT_TYPE_24:7"  \
+"IO_INT_TYPE_25:7"  \
+"IO_INT_TYPE_26:7"  \
+"IO_INT_TYPE_27:7"  \
+"IO_INT_TYPE_28:7"  \
+"IO_INT_TYPE_29:7"  \
+"IO_INT_TYPE_30:7"  \
+"IO_INT_TYPE_31:7"  \
+"IO_NUM:16"  \
+"IO_TYPE_0:2"  \
+"IO_TYPE_1:2"  \
+"IO_TYPE_2:2"  \
+"IO_TYPE_3:2"  \
+"IO_TYPE_4:2"  \
+"IO_TYPE_5:2"  \
+"IO_TYPE_6:2"  \
+"IO_TYPE_7:2"  \
+"IO_TYPE_8:2"  \
+"IO_TYPE_9:2"  \
+"IO_TYPE_10:2"  \
+"IO_TYPE_11:2"  \
+"IO_TYPE_12:2"  \
+"IO_TYPE_13:2"  \
+"IO_TYPE_14:2"  \
+"IO_TYPE_15:2"  \
+"IO_TYPE_16:2"  \
+"IO_TYPE_17:2"  \
+"IO_TYPE_18:2"  \
+"IO_TYPE_19:2"  \
+"IO_TYPE_20:0"  \
+"IO_TYPE_21:0"  \
+"IO_TYPE_22:0"  \
+"IO_TYPE_23:0"  \
+"IO_TYPE_24:0"  \
+"IO_TYPE_25:0"  \
+"IO_TYPE_26:0"  \
+"IO_TYPE_27:0"  \
+"IO_TYPE_28:0"  \
+"IO_TYPE_29:0"  \
+"IO_TYPE_30:0"  \
+"IO_TYPE_31:0"  \
+"IO_VAL_0:0"  \
+"IO_VAL_1:0"  \
+"IO_VAL_2:0"  \
+"IO_VAL_3:0"  \
+"IO_VAL_4:0"  \
+"IO_VAL_5:0"  \
+"IO_VAL_6:0"  \
+"IO_VAL_7:0"  \
+"IO_VAL_8:0"  \
+"IO_VAL_9:0"  \
+"IO_VAL_10:0"  \
+"IO_VAL_11:0"  \
+"IO_VAL_12:0"  \
+"IO_VAL_13:0"  \
+"IO_VAL_14:0"  \
+"IO_VAL_15:0"  \
+"IO_VAL_16:0"  \
+"IO_VAL_17:0"  \
+"IO_VAL_18:0"  \
+"IO_VAL_19:0"  \
+"IO_VAL_20:0"  \
+"IO_VAL_21:0"  \
+"IO_VAL_22:0"  \
+"IO_VAL_23:0"  \
+"IO_VAL_24:0"  \
+"IO_VAL_25:0"  \
+"IO_VAL_26:0"  \
+"IO_VAL_27:0"  \
+"IO_VAL_28:0"  \
+"IO_VAL_29:0"  \
+"IO_VAL_30:0"  \
+"IO_VAL_31:0"  \
+"OE_TYPE:0"   }
+# Exporting Component Description of CoreGPIO_P8_UPPER to TCL done
diff --git a/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl b/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
index 7461e9e..9b16ecc 100644
--- a/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
+++ b/script_support/components/CAPE/DEFAULT/P8_GPIO_LCD.tcl
@@ -1,233 +1,174 @@
-# Creating SmartDesign P8_GPIO_LCD
-set sd_name {P8_GPIO_LCD}
+# Creating SmartDesign P8_GPIO_UPPER
+set sd_name {P8_GPIO_UPPER}
 create_smartdesign -sd_name ${sd_name}
 
 auto_promote_pad_pins -promote_all 1
 
 # Add GPIO BIBUFs
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_0_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_1_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_2_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_3_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_4_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_5_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_6_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_7_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_8_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_9_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_10_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_11_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_12_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_13_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_14_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_15_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_16_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_17_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_18_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_HSYNC_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_AC_BIAS_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_VSYNC_GPIO_BIBUF}
-
-
-
-
-
-create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_LCD} -params {\
-"APB_WIDTH:32" \
-"FIXED_CONFIG_0:true" "FIXED_CONFIG_1:true" "FIXED_CONFIG_2:true" "FIXED_CONFIG_3:true" "FIXED_CONFIG_4:true" \
-"FIXED_CONFIG_5:true" "FIXED_CONFIG_6:true" "FIXED_CONFIG_7:true" "FIXED_CONFIG_8:true" "FIXED_CONFIG_9:true" \
-"FIXED_CONFIG_10:true" "FIXED_CONFIG_11:true" "FIXED_CONFIG_12:true" "FIXED_CONFIG_13:true" "FIXED_CONFIG_14:true" \
-"FIXED_CONFIG_15:true" "FIXED_CONFIG_16:true" "FIXED_CONFIG_17:true" "FIXED_CONFIG_18:true" "FIXED_CONFIG_19:false" \
-"FIXED_CONFIG_20:false" "FIXED_CONFIG_21:false" "FIXED_CONFIG_22:false" "FIXED_CONFIG_23:false" "FIXED_CONFIG_24:false" \
-"FIXED_CONFIG_25:false" "FIXED_CONFIG_26:false" "FIXED_CONFIG_27:false" "FIXED_CONFIG_28:false" "FIXED_CONFIG_29:false" \
-"FIXED_CONFIG_30:false" "FIXED_CONFIG_31:false" \
-"INT_BUS:0" \
-"IO_INT_TYPE_0:7" "IO_INT_TYPE_1:7" "IO_INT_TYPE_2:7" "IO_INT_TYPE_3:7" "IO_INT_TYPE_4:7" \
-"IO_INT_TYPE_5:7" "IO_INT_TYPE_6:7" "IO_INT_TYPE_7:7" "IO_INT_TYPE_8:7" "IO_INT_TYPE_9:7" \
-"IO_INT_TYPE_10:7" "IO_INT_TYPE_11:7" "IO_INT_TYPE_12:7" "IO_INT_TYPE_13:7" "IO_INT_TYPE_14:7" \
-"IO_INT_TYPE_15:7" "IO_INT_TYPE_16:7" "IO_INT_TYPE_17:7" "IO_INT_TYPE_18:7" "IO_INT_TYPE_19:7" \
-"IO_INT_TYPE_20:7" "IO_INT_TYPE_21:7" "IO_INT_TYPE_22:7" "IO_INT_TYPE_23:7" "IO_INT_TYPE_24:7" \
-"IO_INT_TYPE_25:7" "IO_INT_TYPE_26:7" "IO_INT_TYPE_27:7" "IO_INT_TYPE_28:7" "IO_INT_TYPE_29:7" \
-"IO_INT_TYPE_30:7" "IO_INT_TYPE_31:7" \
-"IO_NUM:19" \
-"IO_TYPE_0:2" "IO_TYPE_1:2"  "IO_TYPE_2:2" "IO_TYPE_3:2" "IO_TYPE_4:2" "IO_TYPE_5:2" "IO_TYPE_6:2" "IO_TYPE_7:2" "IO_TYPE_8:2" "IO_TYPE_9:2" \
-"IO_TYPE_10:2" "IO_TYPE_11:2" "IO_TYPE_12:2" "IO_TYPE_13:2" "IO_TYPE_14:2" "IO_TYPE_15:2" "IO_TYPE_16:2" "IO_TYPE_17:2" "IO_TYPE_18:2" "IO_TYPE_19:2" \
-"IO_TYPE_20:0" "IO_TYPE_21:0" "IO_TYPE_22:0" "IO_TYPE_23:0" "IO_TYPE_24:0" "IO_TYPE_25:0" "IO_TYPE_26:0" "IO_TYPE_27:0" "IO_TYPE_28:0" "IO_TYPE_29:0" \
-"IO_TYPE_30:0" "IO_TYPE_31:0" \
-"IO_VAL_0:0" "IO_VAL_1:0" "IO_VAL_2:0" "IO_VAL_3:0" "IO_VAL_4:0" "IO_VAL_5:0" "IO_VAL_6:0" "IO_VAL_7:0" "IO_VAL_8:0" "IO_VAL_9:0" \
-"IO_VAL_10:0" "IO_VAL_11:0" "IO_VAL_12:0" "IO_VAL_13:0" "IO_VAL_14:0" "IO_VAL_15:0" "IO_VAL_16:0" "IO_VAL_17:0" "IO_VAL_18:0" "IO_VAL_19:0" \
-"IO_VAL_20:0" "IO_VAL_21:0" "IO_VAL_22:0" "IO_VAL_23:0" "IO_VAL_24:0" "IO_VAL_25:0" "IO_VAL_26:0" "IO_VAL_27:0" "IO_VAL_28:0" "IO_VAL_29:0" \
-"IO_VAL_30:0" "IO_VAL_31:0" \
-"OE_TYPE:0"} 
-
-sd_instantiate_component -sd_name {P8_GPIO_LCD} -component_name {CoreGPIO_LCD} -instance_name {} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[0:0]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[0:0]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[0:0]"} 
-
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[0:0]" "LCD_GPIO_0_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[0:0]" "LCD_GPIO_0_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[0:0]" "LCD_GPIO_0_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[1:1]" "LCD_GPIO_1_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[1:1]" "LCD_GPIO_1_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[1:1]" "LCD_GPIO_1_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[2:2]" "LCD_GPIO_2_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[2:2]" "LCD_GPIO_2_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[2:2]" "LCD_GPIO_2_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[3:3]" "LCD_GPIO_3_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[3:3]" "LCD_GPIO_3_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[3:3]" "LCD_GPIO_3_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[4:4]" "LCD_GPIO_4_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[4:4]" "LCD_GPIO_4_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[4:4]" "LCD_GPIO_4_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[5:5]" "LCD_GPIO_5_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[5:5]" "LCD_GPIO_5_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[5:5]" "LCD_GPIO_5_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[6:6]" "LCD_GPIO_6_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[6:6]" "LCD_GPIO_6_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[6:6]" "LCD_GPIO_6_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[7:7]" "LCD_GPIO_7_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[7:7]" "LCD_GPIO_7_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[7:7]" "LCD_GPIO_7_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[8:8]" "LCD_GPIO_8_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[8:8]" "LCD_GPIO_8_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[8:8]" "LCD_GPIO_8_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[9:9]" "LCD_GPIO_9_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[9:9]" "LCD_GPIO_9_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[9:9]" "LCD_GPIO_9_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[10:10]" "LCD_GPIO_10_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[10:10]" "LCD_GPIO_10_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[10:10]" "LCD_GPIO_10_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[11:11]" "LCD_GPIO_11_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[11:11]" "LCD_GPIO_11_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[11:11]" "LCD_GPIO_11_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[12:12]" "LCD_GPIO_12_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[12:12]" "LCD_GPIO_12_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[12:12]" "LCD_GPIO_12_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[13:13]" "LCD_GPIO_13_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[13:13]" "LCD_GPIO_13_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[13:13]" "LCD_GPIO_13_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[14:14]" "LCD_GPIO_14_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[14:14]" "LCD_GPIO_14_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[14:14]" "LCD_GPIO_14_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[15:15]" "LCD_GPIO_15_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[15:15]" "LCD_GPIO_15_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[15:15]" "LCD_GPIO_15_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[16:16]" "LCD_HSYNC_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[16:16]" "LCD_HSYNC_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[16:16]" "LCD_HSYNC_GPIO_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[18:18]" "LCD_VSYNC_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[18:18]" "LCD_VSYNC_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[18:18]" "LCD_VSYNC_GPIO_BIBUF:E"} 
-
-
-
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD} -new_port_name {LCD_DATA0}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_0} -new_port_name {LCD_DATA1}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_1} -new_port_name {LCD_DATA2}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_2} -new_port_name {LCD_DATA3}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_3} -new_port_name {LCD_DATA4}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_4} -new_port_name {LCD_DATA5}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_5} -new_port_name {LCD_DATA6}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_6} -new_port_name {LCD_DATA7}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_7} -new_port_name {LCD_DATA8}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_8} -new_port_name {LCD_DATA9}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_9} -new_port_name {LCD_DATA10}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_10} -new_port_name {LCD_DATA11}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_11} -new_port_name {LCD_DATA12}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_12} -new_port_name {LCD_DATA13}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_13} -new_port_name {LCD_DATA14}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_14} -new_port_name {LCD_DATA15}
-
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_15} -new_port_name {LCD_HSYNC}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_16} -new_port_name {LCD_AC_BIAS}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_17} -new_port_name {LCD_VSYNC}
-
-
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PRESETN} -port_name {} 
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PCLK} -port_name {} 
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:APB_bif} -port_name {} 
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF}
+
+
+sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[0:0]"} 
+
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} 
+
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD}
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PRESETN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PCLK} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:APB_bif} -port_name {} 
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P8_UPPER_0:INT} 
 
 
 # Re-enable auto promotion of pins of type 'pad'
 auto_promote_pad_pins -promote_all 1
 # Save the smartDesign
 save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign P8_GPIO_LCD
+# Generate SmartDesign P8_GPIO_UPPER
 generate_component -component_name ${sd_name}
diff --git a/script_support/components/CAPE/DEFAULT/constraints/cape.pdc b/script_support/components/CAPE/DEFAULT/constraints/cape.pdc
index 582d6b9..39b8ae4 100644
--- a/script_support/components/CAPE/DEFAULT/constraints/cape.pdc
+++ b/script_support/components/CAPE/DEFAULT/constraints/cape.pdc
@@ -1,302 +1,275 @@
 
-#set_io -port_name P9_PWR_BUT  \
-#    -pin_name V16        \
-#    -fixed true          \
-#    -DIRECTION INPUT
-
-set_io -port_name P9_12	\
-    -pin_name C5	\
+set_io -port_name P9_11	\
+    -pin_name B5	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_14	\
-    -pin_name C6	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
-
-set_io -port_name P9_15	\
-    -pin_name A5	    \
+set_io -port_name P9_13	\
+    -pin_name D19	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_16	\
-    -pin_name A6	\
+set_io -port_name P9_PIN14	\
+    -pin_name C6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_17	\
-    -pin_name C9	\
+set_io -port_name P9_PIN16	\
+    -pin_name A6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_18	\
-    -pin_name C10	\
-     -io_std LVCMOS33  \
-    -fixed true	\
-    -DIRECTION OUT
-
-set_io -port_name P9_21	\
-    -pin_name B8	\
+set_io -port_name P9_PIN42	\
+    -pin_name E14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_22	\
-    -pin_name A8	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+#-------------------------------------------------------------------------------
 
-set_io -port_name P9_23	\
-    -pin_name C12	\
-    -fixed true	\
-    -io_std LVCMOS33  \
+set_io -port_name P8_PIN3_USER_LED_0  \
+    -pin_name V22       \
+    -fixed true         \
     -DIRECTION INOUT
 
-set_io -port_name P9_24	\
-    -pin_name B12	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+set_io -port_name P8_PIN4_USER_LED_1  \
+    -pin_name W22        \
+    -fixed true         \
+    -DIRECTION INOUT
 
-set_io -port_name P9_25	\
-    -pin_name B7	\
-    -fixed true	\
-    -io_std LVCMOS33  \
+set_io -port_name P8_PIN5_USER_LED_2  \
+    -pin_name V19       \
+    -fixed true         \
     -DIRECTION INOUT
 
-set_io -port_name P9_26	\
-    -pin_name A7	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+set_io -port_name P8_PIN6_USER_LED_3  \
+    -pin_name V20        \
+    -fixed true         \
+    -DIRECTION INOUT
 
-set_io -port_name P9_27	\
-    -pin_name D11	\
-    -fixed true	\
-    -io_std LVCMOS33  \
+set_io -port_name P8_PIN7_USER_LED_4  \
+    -pin_name V15        \
+    -fixed true         \
     -DIRECTION INOUT
 
-#--- re-assigned from NC
-set_io -port_name P9_28	\
-    -pin_name C11	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+set_io -port_name P8_PIN8_USER_LED_5  \
+    -pin_name V14       \
+    -fixed true         \
+    -DIRECTION INOUT
 
-set_io -port_name P9_29	\
-    -pin_name F17	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+set_io -port_name P8_PIN9_USER_LED_6  \
+    -pin_name V21       \
+    -fixed true         \
+    -DIRECTION INOUT
 
-set_io -port_name P9_30	\
-    -pin_name F16	\
+set_io -port_name P8_PIN10_USER_LED_7  \
+    -pin_name W21       \
+    -fixed true          \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN11_USER_LED_8	\
+    -pin_name Y21	\
     -fixed true	\
-    -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_31	\
-    -pin_name E18	\
+set_io -port_name P8_PIN12_USER_LED_9	\
+    -pin_name Y20        \
     -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION OUT
+    -DIRECTION INOUT
 
-set_io -port_name P9_41	\
-    -pin_name E15	\
+set_io -port_name P8_PIN13_USER_LED_10	\
+    -pin_name B10	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_42	\
-    -pin_name E14	\
-    -fixed true	\
+set_io -port_name P8_PIN14_USER_LED_11  \
+    -pin_name B9	\
     -io_std LVCMOS33  \
-    -DIRECTION OUT
+    -fixed true          \
+    -DIRECTION INOUT
 
-#-------------------------------------------------------------------------------
 
-set_io -port_name P8_15  \
+set_io -port_name P8_PIN15  \
     -pin_name T12       \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_16  \
+set_io -port_name P8_PIN16  \
     -pin_name U12        \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_17  \
+set_io -port_name P8_PIN17  \
     -pin_name W13        \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_18  \
+set_io -port_name P8_PIN18  \
     -pin_name T16       \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_19	\
+set_io -port_name P8_PIN19	\
     -pin_name W18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_20	\
+set_io -port_name P8_PIN20	\
     -pin_name R16	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_21	\
+set_io -port_name P8_PIN21	\
     -pin_name AA21	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_22	\
+set_io -port_name P8_PIN22	\
     -pin_name AA22	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_23	\
+set_io -port_name P8_PIN23	\
     -pin_name AB18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_24	\
+set_io -port_name P8_PIN24	\
     -pin_name AA18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_25	\
+set_io -port_name P8_PIN25	\
     -pin_name V17	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_26  \
+set_io -port_name P8_PIN26  \
     -pin_name A12        \
     -fixed true          \
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_27	\
+set_io -port_name P8_PIN27	\
     -pin_name A13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_28	\
+set_io -port_name P8_PIN28	\
     -pin_name B14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_29	\
+set_io -port_name P8_PIN29	\
     -pin_name B13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_30	\
+set_io -port_name P8_PIN30	\
     -pin_name D14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_31	\
+set_io -port_name P8_PIN31	\
     -pin_name D13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_32	\
+set_io -port_name P8_PIN32	\
     -pin_name B15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_33	\
+set_io -port_name P8_PIN33	\
     -pin_name A15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_34	\
+set_io -port_name P8_PIN34	\
     -pin_name C15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_35	\
+set_io -port_name P8_PIN35	\
     -pin_name C14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_36	\
+set_io -port_name P8_PIN36	\
     -pin_name B4	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_37	\
+set_io -port_name P8_PIN37	\
     -pin_name C4	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_38	\
+set_io -port_name P8_PIN38	\
     -pin_name C17	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_39	\
+set_io -port_name P8_PIN39	\
     -pin_name B17	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_40	\
+set_io -port_name P8_PIN40	\
     -pin_name B18	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_41	\
+set_io -port_name P8_PIN41	\
     -pin_name A18	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_42	\
+set_io -port_name P8_PIN42	\
     -pin_name D6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_43	\
+set_io -port_name P8_PIN43	\
     -pin_name D7	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_44	\
+set_io -port_name P8_PIN44	\
     -pin_name D8	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_45	\
+set_io -port_name P8_PIN45	\
     -pin_name D9	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_46	\
+set_io -port_name P8_PIN46	\
     -pin_name D18	\
     -fixed true	\
     -io_std LVCMOS33  \
diff --git a/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl b/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl
index 5453ca4..331f13f 100644
--- a/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl
+++ b/script_support/components/CAPE/GPIOS/ADD_CAPE.tcl
@@ -6,8 +6,10 @@ puts "======== Add cape option: GPIOS ========"
 source script_support/components/CAPE/GPIOS/APB_BUS_CONVERTER.tcl
 source script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
 source script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
+source script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl
+source script_support/components/CAPE/GPIOS/P9_GPIO.tcl
 source script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
-source script_support/components/CAPE/GPIOS/CAPE_PWM.tcl
+#source script_support/components/CAPE/GPIOS/CAPE_PWM.tcl
 source script_support/components/CAPE/GPIOS/CAPE.tcl
 
 #-------------------------------------------------------------------------------
@@ -47,3 +49,8 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:GPIO_2_OE_M
 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE:APB_SLAVE" "BVF_RISCV_SUBSYSTEM:CAPE_APB_MTARGET"}
 
+sd_delete_ports -sd_name ${sd_name} -port_names {P9_11} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_RXD} -value {GND} 
+sd_delete_ports -sd_name ${sd_name} -port_names {P9_13} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MMUART_4_TXD} 
+
diff --git a/script_support/components/CAPE/GPIOS/CAPE.tcl b/script_support/components/CAPE/GPIOS/CAPE.tcl
index 12d4de8..8e14242 100644
--- a/script_support/components/CAPE/GPIOS/CAPE.tcl
+++ b/script_support/components/CAPE/GPIOS/CAPE.tcl
@@ -6,7 +6,7 @@ create_smartdesign -sd_name ${sd_name}
 # Create APB Bus
 #-------------------------------------------------------------------------------
 create_and_configure_core -core_vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -component_name {CoreAPB3_CAPE} -params {\
-"APBSLOT0ENABLE:true" "APBSLOT1ENABLE:true" "APBSLOT2ENABLE:false" "APBSLOT3ENABLE:false" \
+"APBSLOT0ENABLE:false" "APBSLOT1ENABLE:true" "APBSLOT2ENABLE:true" "APBSLOT3ENABLE:false" \
 "APBSLOT4ENABLE:false" "APBSLOT5ENABLE:false" "APBSLOT6ENABLE:false" "APBSLOT7ENABLE:false" \
 "APBSLOT8ENABLE:false" "APBSLOT9ENABLE:false" "APBSLOT10ENABLE:false" "APBSLOT11ENABLE:false" \
 "APBSLOT12ENABLE:false" "APBSLOT13ENABLE:false" "APBSLOT14ENABLE:false" "APBSLOT15ENABLE:false" \
@@ -35,87 +35,96 @@ sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OU
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_OE} -port_name {} 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_DEFAULT_GPIOS:GPIO_IN} -port_name {} 
 
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_15}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_16}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_17}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_18}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_20}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_21}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_22}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_23}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_24}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_25}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_26}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P9_12}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P9_15}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P9_17}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P9_18}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P9_21}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P9_22}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P9_23}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P9_24}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P9_25}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P9_26}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_21_PAD} -new_port_name {P9_27}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_22_PAD} -new_port_name {P9_28}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_23_PAD} -new_port_name {P9_29}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_name {P9_30}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P9_31}
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P9_41}
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P9_42}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN3_USER_LED_0}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN4_USER_LED_1}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN5_USER_LED_2}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN6_USER_LED_3}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN7_USER_LED_4}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN8_USER_LED_5}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN9_USER_LED_6}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN10_USER_LED_7}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN11_USER_LED_8}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN12_USER_LED_9}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_PIN13_USER_LED_10}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN14_USER_LED_11}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN15}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN16}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN17}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN18}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P8_PIN19}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P8_PIN20}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P8_PIN21}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P8_PIN22}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P8_PIN23}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_21_PAD} -new_port_name {P8_PIN24}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_22_PAD} -new_port_name {P8_PIN25}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_23_PAD} -new_port_name {P8_PIN26}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_24_PAD} -new_port_name {P8_PIN27}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_25_PAD} -new_port_name {P8_PIN28}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_26_PAD} -new_port_name {P8_PIN29}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_27_PAD} -new_port_name {P8_PIN30}
 
 
 #-------------------------------------------------------------------------------
-# LCD interface stub
+# P8
 #-------------------------------------------------------------------------------
-sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_LCD} -instance_name {CAPE_LCD_STUB}
-
-sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_LCD_STUB:PRESETN} -port_name {} 
-sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CAPE_LCD_STUB:PCLK} -port_name {} 
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA0} -new_port_name {P8_31}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA1} -new_port_name {P8_32}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA2} -new_port_name {P8_33}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA3} -new_port_name {P8_34}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA4} -new_port_name {P8_35}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA5} -new_port_name {P8_36}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA6} -new_port_name {P8_37}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA7} -new_port_name {P8_38}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA8} -new_port_name {P8_39}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA9} -new_port_name {P8_40}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA10} -new_port_name {P8_41}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA11} -new_port_name {P8_42}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA12} -new_port_name {P8_43}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA13} -new_port_name {P8_44}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA14} -new_port_name {P8_45}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_DATA15} -new_port_name {P8_46}
-
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_HSYNC} -new_port_name {P8_29}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_AC_BIAS} -new_port_name {P8_30}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_VSYNC} -new_port_name {P8_27}
-sd_rename_port -sd_name ${sd_name} -current_port_name {LCD_PCLK} -new_port_name {P8_28}
-
+sd_instantiate_component -sd_name ${sd_name} -component_name {P8_GPIO_UPPER} -instance_name {P8_GPIO_UPPER_0}
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PRESETN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {P8_GPIO_UPPER_0:PCLK} -port_name {} 
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P8_PIN31}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P8_PIN32}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P8_PIN33}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P8_PIN34}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P8_PIN35}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P8_PIN36}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P8_PIN37}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P8_PIN38}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P8_PIN39}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P8_PIN40}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P8_PIN41}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P8_PIN42}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P8_PIN43}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P8_PIN44}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P8_PIN45}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P8_PIN46}
 
 #-------------------------------------------------------------------------------
-# PWM
+# P9
 #-------------------------------------------------------------------------------
-sd_instantiate_component -sd_name ${sd_name} -component_name {CAPE_PWM} -instance_name {PWM_0}
-
-sd_mark_pins_unused -sd_name {CAPE} -pin_names {PWM_0:PWM_0} 
-sd_mark_pins_unused -sd_name {CAPE} -pin_names {PWM_0:PWM_1} 
-sd_mark_pins_unused -sd_name {CAPE} -pin_names {PWM_0:PWM_2} 
-sd_mark_pins_unused -sd_name {CAPE} -pin_names {PWM_0:PWM_3} 
-
+sd_instantiate_component -sd_name ${sd_name} -component_name {P9_GPIO} -instance_name {P9_GPIO_0}
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_0_PAD} -new_port_name {P9_PIN11}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_1_PAD} -new_port_name {P9_PIN12}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_2_PAD} -new_port_name {P9_PIN13}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_3_PAD} -new_port_name {P9_PIN14}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_4_PAD} -new_port_name {P9_PIN15}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_5_PAD} -new_port_name {P9_PIN16}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_6_PAD} -new_port_name {P9_PIN17}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_7_PAD} -new_port_name {P9_PIN18}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_8_PAD} -new_port_name {P9_PIN21}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_9_PAD} -new_port_name {P9_PIN22}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_10_PAD} -new_port_name {P9_PIN23}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_11_PAD} -new_port_name {P9_PIN24}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_12_PAD} -new_port_name {P9_PIN25}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_13_PAD} -new_port_name {P9_PIN26}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_14_PAD} -new_port_name {P9_PIN27}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_15_PAD} -new_port_name {P9_PIN28}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_16_PAD} -new_port_name {P9_PIN29}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_17_PAD} -new_port_name {P9_PIN30}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_18_PAD} -new_port_name {P9_PIN31}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_19_PAD} -new_port_name {P9_PIN41}
+sd_rename_port -sd_name ${sd_name} -current_port_name {GPIO_20_PAD} -new_port_name {P9_PIN42}
 
 #-------------------------------------------------------------------------------
 # Connections
 #-------------------------------------------------------------------------------
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PRESETN" "PWM_0:PRESETN"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PCLK" "PWM_0:PCLK"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PRESETN" "P9_GPIO_0:PRESETN"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PCLK" "P9_GPIO_0:PCLK"} 
 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_CAPE_0:APBmslave0" "PWM_0:APBslave"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"CAPE_LCD_STUB:APB_bif" "CoreAPB3_CAPE_0:APBmslave1"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"P8_GPIO_UPPER_0:APB_bif" "CoreAPB3_CAPE_0:APBmslave1"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"P9_GPIO_0:APB_bif" "CoreAPB3_CAPE_0:APBmslave2"} 
 
 sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {APB_BUS_CONVERTER_0:APB_SLAVE} -port_name {} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_BUS_CONVERTER_0:APB_MASTER" "CoreAPB3_CAPE_0:APB3mmaster"} 
diff --git a/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl b/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
index 22e5fd9..1f508ba 100644
--- a/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
+++ b/script_support/components/CAPE/GPIOS/CAPE_DEFAULT_GPIOS.tcl
@@ -32,9 +32,6 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPI
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_25_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_26_BIBUF}
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_27_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_28_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_29_BIBUF}
-#sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_30_BIBUF}
 
 
 
@@ -67,9 +64,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_sli
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OUT} -pin_slices {"[30:30]"}
 
 
 sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_OE} -port_direction {IN} -port_range {[27:0]}
@@ -101,9 +95,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_OE} -pin_slices {"[30:30]"}
 
 
 sd_create_bus_port -sd_name {CAPE_DEFAULT_GPIOS} -port_name {GPIO_IN} -port_direction {OUT} -port_range {[27:0]}
@@ -135,9 +126,6 @@ sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slic
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[25:25]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[26:26]"}
 sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[27:27]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[28:28]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[29:29]"}
-#sd_create_pin_slices -sd_name {CAPE_DEFAULT_GPIOS} -pin_name {GPIO_IN} -pin_slices {"[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:D" "GPIO_OUT[0:0]"}
@@ -168,9 +156,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:D" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:D" "GPIO_OUT[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:D" "GPIO_OUT[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:D" "GPIO_OUT[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:D" "GPIO_OUT[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:D" "GPIO_OUT[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:D" "GPIO_OUT[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:E" "GPIO_OE[0:0]"}
@@ -201,9 +186,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:E" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:E" "GPIO_OE[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:E" "GPIO_OE[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:E" "GPIO_OE[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:E" "GPIO_OE[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:E" "GPIO_OE[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:E" "GPIO_OE[30:30]"}
 
 
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_0_BIBUF:Y" "GPIO_IN[0:0]"}
@@ -234,9 +216,6 @@ sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_24_BIBUF:Y" "GPI
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_25_BIBUF:Y" "GPIO_IN[25:25]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_26_BIBUF:Y" "GPIO_IN[26:26]"}
 sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_27_BIBUF:Y" "GPIO_IN[27:27]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_28_BIBUF:Y" "GPIO_IN[28:28]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_29_BIBUF:Y" "GPIO_IN[29:29]"}
-#sd_connect_pins -sd_name {CAPE_DEFAULT_GPIOS} -pin_names {"GPIO_30_BIBUF:Y" "GPIO_IN[30:30]"}
 
 
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD} -new_port_name {GPIO_0_PAD}
@@ -267,9 +246,6 @@ sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_23} -new_po
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_24} -new_port_name {GPIO_25_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_25} -new_port_name {GPIO_26_PAD}
 sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_26} -new_port_name {GPIO_27_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_27} -new_port_name {GPIO_28_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_28} -new_port_name {GPIO_29_PAD}
-#sd_rename_port -sd_name {CAPE_DEFAULT_GPIOS} -current_port_name {PAD_29} -new_port_name {GPIO_30_PAD}
 
 
 # Re-enable auto promotion of pins of type 'pad'
diff --git a/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl b/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
index fb39d71..564801b 100644
--- a/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
+++ b/script_support/components/CAPE/GPIOS/CoreGPIO_LCD.tcl
@@ -1,8 +1,8 @@
-# Exporting Component Description of CoreGPIO_LCD to TCL
+# Exporting Component Description of CoreGPIO_P8_UPPER to TCL
 # Family: PolarFireSoC
 # Part Number: MPFS025T-FCVG484E
-# Create and Configure the core component CoreGPIO_LCD
-create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_LCD} -params {\
+# Create and Configure the core component CoreGPIO_P8_UPPER
+create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_P8_UPPER} -params {\
 "APB_WIDTH:32"  \
 "FIXED_CONFIG_0:true"  \
 "FIXED_CONFIG_1:true"  \
@@ -20,9 +20,9 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "FIXED_CONFIG_13:true"  \
 "FIXED_CONFIG_14:true"  \
 "FIXED_CONFIG_15:true"  \
-"FIXED_CONFIG_16:true"  \
-"FIXED_CONFIG_17:true"  \
-"FIXED_CONFIG_18:true"  \
+"FIXED_CONFIG_16:false"  \
+"FIXED_CONFIG_17:false"  \
+"FIXED_CONFIG_18:false"  \
 "FIXED_CONFIG_19:false"  \
 "FIXED_CONFIG_20:false"  \
 "FIXED_CONFIG_21:false"  \
@@ -69,7 +69,7 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "IO_INT_TYPE_29:7"  \
 "IO_INT_TYPE_30:7"  \
 "IO_INT_TYPE_31:7"  \
-"IO_NUM:23"  \
+"IO_NUM:16"  \
 "IO_TYPE_0:2"  \
 "IO_TYPE_1:2"  \
 "IO_TYPE_2:2"  \
@@ -135,4 +135,4 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "IO_VAL_30:0"  \
 "IO_VAL_31:0"  \
 "OE_TYPE:0"   }
-# Exporting Component Description of CoreGPIO_LCD to TCL done
+# Exporting Component Description of CoreGPIO_P8_UPPER to TCL done
diff --git a/script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl b/script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl
new file mode 100644
index 0000000..1516b5a
--- /dev/null
+++ b/script_support/components/CAPE/GPIOS/CoreGPIO_P9.tcl
@@ -0,0 +1,138 @@
+# Exporting Component Description of CoreGPIO_P9 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component CoreGPIO_P9
+create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {CoreGPIO_P9} -params {\
+"APB_WIDTH:32"  \
+"FIXED_CONFIG_0:true"  \
+"FIXED_CONFIG_1:true"  \
+"FIXED_CONFIG_2:true"  \
+"FIXED_CONFIG_3:true"  \
+"FIXED_CONFIG_4:true"  \
+"FIXED_CONFIG_5:true"  \
+"FIXED_CONFIG_6:true"  \
+"FIXED_CONFIG_7:true"  \
+"FIXED_CONFIG_8:true"  \
+"FIXED_CONFIG_9:true"  \
+"FIXED_CONFIG_10:true"  \
+"FIXED_CONFIG_11:true"  \
+"FIXED_CONFIG_12:true"  \
+"FIXED_CONFIG_13:true"  \
+"FIXED_CONFIG_14:true"  \
+"FIXED_CONFIG_15:true"  \
+"FIXED_CONFIG_16:true"  \
+"FIXED_CONFIG_17:true"  \
+"FIXED_CONFIG_18:true"  \
+"FIXED_CONFIG_19:true"  \
+"FIXED_CONFIG_20:true"  \
+"FIXED_CONFIG_21:false"  \
+"FIXED_CONFIG_22:false"  \
+"FIXED_CONFIG_23:false"  \
+"FIXED_CONFIG_24:false"  \
+"FIXED_CONFIG_25:false"  \
+"FIXED_CONFIG_26:false"  \
+"FIXED_CONFIG_27:false"  \
+"FIXED_CONFIG_28:false"  \
+"FIXED_CONFIG_29:false"  \
+"FIXED_CONFIG_30:false"  \
+"FIXED_CONFIG_31:false"  \
+"INT_BUS:0"  \
+"IO_INT_TYPE_0:7"  \
+"IO_INT_TYPE_1:7"  \
+"IO_INT_TYPE_2:7"  \
+"IO_INT_TYPE_3:7"  \
+"IO_INT_TYPE_4:7"  \
+"IO_INT_TYPE_5:7"  \
+"IO_INT_TYPE_6:7"  \
+"IO_INT_TYPE_7:7"  \
+"IO_INT_TYPE_8:7"  \
+"IO_INT_TYPE_9:7"  \
+"IO_INT_TYPE_10:7"  \
+"IO_INT_TYPE_11:7"  \
+"IO_INT_TYPE_12:7"  \
+"IO_INT_TYPE_13:7"  \
+"IO_INT_TYPE_14:7"  \
+"IO_INT_TYPE_15:7"  \
+"IO_INT_TYPE_16:7"  \
+"IO_INT_TYPE_17:7"  \
+"IO_INT_TYPE_18:7"  \
+"IO_INT_TYPE_19:7"  \
+"IO_INT_TYPE_20:7"  \
+"IO_INT_TYPE_21:7"  \
+"IO_INT_TYPE_22:7"  \
+"IO_INT_TYPE_23:7"  \
+"IO_INT_TYPE_24:7"  \
+"IO_INT_TYPE_25:7"  \
+"IO_INT_TYPE_26:7"  \
+"IO_INT_TYPE_27:7"  \
+"IO_INT_TYPE_28:7"  \
+"IO_INT_TYPE_29:7"  \
+"IO_INT_TYPE_30:7"  \
+"IO_INT_TYPE_31:7"  \
+"IO_NUM:21"  \
+"IO_TYPE_0:2"  \
+"IO_TYPE_1:2"  \
+"IO_TYPE_2:2"  \
+"IO_TYPE_3:2"  \
+"IO_TYPE_4:2"  \
+"IO_TYPE_5:2"  \
+"IO_TYPE_6:2"  \
+"IO_TYPE_7:2"  \
+"IO_TYPE_8:2"  \
+"IO_TYPE_9:2"  \
+"IO_TYPE_10:2"  \
+"IO_TYPE_11:2"  \
+"IO_TYPE_12:2"  \
+"IO_TYPE_13:2"  \
+"IO_TYPE_14:2"  \
+"IO_TYPE_15:2"  \
+"IO_TYPE_16:2"  \
+"IO_TYPE_17:2"  \
+"IO_TYPE_18:2"  \
+"IO_TYPE_19:2"  \
+"IO_TYPE_20:0"  \
+"IO_TYPE_21:0"  \
+"IO_TYPE_22:0"  \
+"IO_TYPE_23:0"  \
+"IO_TYPE_24:0"  \
+"IO_TYPE_25:0"  \
+"IO_TYPE_26:0"  \
+"IO_TYPE_27:0"  \
+"IO_TYPE_28:0"  \
+"IO_TYPE_29:0"  \
+"IO_TYPE_30:0"  \
+"IO_TYPE_31:0"  \
+"IO_VAL_0:0"  \
+"IO_VAL_1:0"  \
+"IO_VAL_2:0"  \
+"IO_VAL_3:0"  \
+"IO_VAL_4:0"  \
+"IO_VAL_5:0"  \
+"IO_VAL_6:0"  \
+"IO_VAL_7:0"  \
+"IO_VAL_8:0"  \
+"IO_VAL_9:0"  \
+"IO_VAL_10:0"  \
+"IO_VAL_11:0"  \
+"IO_VAL_12:0"  \
+"IO_VAL_13:0"  \
+"IO_VAL_14:0"  \
+"IO_VAL_15:0"  \
+"IO_VAL_16:0"  \
+"IO_VAL_17:0"  \
+"IO_VAL_18:0"  \
+"IO_VAL_19:0"  \
+"IO_VAL_20:0"  \
+"IO_VAL_21:0"  \
+"IO_VAL_22:0"  \
+"IO_VAL_23:0"  \
+"IO_VAL_24:0"  \
+"IO_VAL_25:0"  \
+"IO_VAL_26:0"  \
+"IO_VAL_27:0"  \
+"IO_VAL_28:0"  \
+"IO_VAL_29:0"  \
+"IO_VAL_30:0"  \
+"IO_VAL_31:0"  \
+"OE_TYPE:0"   }
+# Exporting Component Description of CoreGPIO_P9 to TCL done
diff --git a/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl b/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
index 5b5bf54..d14a5ae 100644
--- a/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
+++ b/script_support/components/CAPE/GPIOS/P8_GPIO_LCD.tcl
@@ -1,251 +1,174 @@
-# Creating SmartDesign P8_GPIO_LCD
-set sd_name {P8_GPIO_LCD}
+# Creating SmartDesign P8_GPIO_UPPER
+set sd_name {P8_GPIO_UPPER}
 create_smartdesign -sd_name ${sd_name}
 
 auto_promote_pad_pins -promote_all 1
 
 # Add GPIO BIBUFs
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_0_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_1_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_2_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_3_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_4_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_5_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_6_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_7_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_8_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_9_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_10_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_11_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_12_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_13_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_14_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_15_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_16_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_17_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_GPIO_18_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_HSYNC_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_AC_BIAS_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_VSYNC_GPIO_BIBUF}
-sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {LCD_PCLK_GPIO_BIBUF}
-
-
-sd_instantiate_component -sd_name {P8_GPIO_LCD} -component_name {CoreGPIO_LCD} -instance_name {} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[22:22]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[21:21]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[20:20]"} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[19:19]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OE} -pin_slices {"[0:0]"} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[22:22]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[21:21]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[20:20]"} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[19:19]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_OUT} -pin_slices {"[0:0]"} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[22:22]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[21:21]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[20:20]"} 
-
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[19:19]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[18:18]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[17:17]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[16:16]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[15:15]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[14:14]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[13:13]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[12:12]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:GPIO_IN} -pin_slices {"[0:0]"} 
-
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[0:0]" "LCD_GPIO_0_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[0:0]" "LCD_GPIO_0_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[0:0]" "LCD_GPIO_0_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[1:1]" "LCD_GPIO_1_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[1:1]" "LCD_GPIO_1_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[1:1]" "LCD_GPIO_1_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[2:2]" "LCD_GPIO_2_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[2:2]" "LCD_GPIO_2_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[2:2]" "LCD_GPIO_2_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[3:3]" "LCD_GPIO_3_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[3:3]" "LCD_GPIO_3_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[3:3]" "LCD_GPIO_3_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[4:4]" "LCD_GPIO_4_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[4:4]" "LCD_GPIO_4_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[4:4]" "LCD_GPIO_4_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[5:5]" "LCD_GPIO_5_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[5:5]" "LCD_GPIO_5_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[5:5]" "LCD_GPIO_5_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[6:6]" "LCD_GPIO_6_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[6:6]" "LCD_GPIO_6_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[6:6]" "LCD_GPIO_6_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[7:7]" "LCD_GPIO_7_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[7:7]" "LCD_GPIO_7_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[7:7]" "LCD_GPIO_7_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[8:8]" "LCD_GPIO_8_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[8:8]" "LCD_GPIO_8_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[8:8]" "LCD_GPIO_8_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[9:9]" "LCD_GPIO_9_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[9:9]" "LCD_GPIO_9_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[9:9]" "LCD_GPIO_9_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[10:10]" "LCD_GPIO_10_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[10:10]" "LCD_GPIO_10_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[10:10]" "LCD_GPIO_10_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[11:11]" "LCD_GPIO_11_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[11:11]" "LCD_GPIO_11_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[11:11]" "LCD_GPIO_11_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[12:12]" "LCD_GPIO_12_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[12:12]" "LCD_GPIO_12_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[12:12]" "LCD_GPIO_12_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[13:13]" "LCD_GPIO_13_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[13:13]" "LCD_GPIO_13_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[13:13]" "LCD_GPIO_13_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[14:14]" "LCD_GPIO_14_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[14:14]" "LCD_GPIO_14_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[14:14]" "LCD_GPIO_14_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[15:15]" "LCD_GPIO_15_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[15:15]" "LCD_GPIO_15_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[15:15]" "LCD_GPIO_15_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[16:16]" "LCD_HSYNC_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[16:16]" "LCD_HSYNC_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[16:16]" "LCD_HSYNC_GPIO_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[17:17]" "LCD_AC_BIAS_GPIO_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[18:18]" "LCD_VSYNC_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[18:18]" "LCD_VSYNC_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[18:18]" "LCD_VSYNC_GPIO_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[19:19]" "LCD_PCLK_GPIO_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[19:19]" "LCD_PCLK_GPIO_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[19:19]" "LCD_PCLK_GPIO_BIBUF:E"} 
-
-
-
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[20:20]" "LCD_GPIO_16_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[20:20]" "LCD_GPIO_16_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[20:20]" "LCD_GPIO_16_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[21:21]" "LCD_GPIO_17_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[21:21]" "LCD_GPIO_17_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[21:21]" "LCD_GPIO_17_BIBUF:E"} 
-
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OUT[22:22]" "LCD_GPIO_18_BIBUF:D"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_IN[22:22]" "LCD_GPIO_18_BIBUF:Y"} 
-sd_connect_pins -sd_name {P8_GPIO_LCD} -pin_names {"CoreGPIO_LCD_0:GPIO_OE[22:22]" "LCD_GPIO_18_BIBUF:E"} 
-
-
-
-
-
-
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD} -new_port_name {LCD_DATA0}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_0} -new_port_name {LCD_DATA1}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_1} -new_port_name {LCD_DATA2}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_2} -new_port_name {LCD_DATA3}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_3} -new_port_name {LCD_DATA4}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_4} -new_port_name {LCD_DATA5}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_5} -new_port_name {LCD_DATA6}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_6} -new_port_name {LCD_DATA7}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_7} -new_port_name {LCD_DATA8}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_8} -new_port_name {LCD_DATA9}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_9} -new_port_name {LCD_DATA10}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_10} -new_port_name {LCD_DATA11}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_11} -new_port_name {LCD_DATA12}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_12} -new_port_name {LCD_DATA13}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_13} -new_port_name {LCD_DATA14}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_14} -new_port_name {LCD_DATA15}
-
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_15} -new_port_name {P8_19}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_16} -new_port_name {P9_14}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_17} -new_port_name {P9_16}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_18} -new_port_name {LCD_PCLK}
-
-
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_19} -new_port_name {LCD_HSYNC}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_20} -new_port_name {LCD_AC_BIAS}
-sd_rename_port -sd_name {P8_GPIO_LCD} -current_port_name {PAD_21} -new_port_name {LCD_VSYNC}
-
-
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PRESETN} -port_name {} 
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:PCLK} -port_name {} 
-sd_connect_pin_to_port -sd_name {P8_GPIO_LCD} -pin_name {CoreGPIO_LCD_0:APB_bif} -port_name {} 
-
-sd_mark_pins_unused -sd_name {P8_GPIO_LCD} -pin_names {CoreGPIO_LCD_0:INT} 
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF}
+
+
+sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P8_UPPER} -instance_name {} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OE} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_OUT} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:GPIO_IN} -pin_slices {"[0:0]"} 
+
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P8_UPPER_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} 
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD}
+
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PRESETN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:PCLK} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P8_UPPER_0:APB_bif} -port_name {} 
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P8_UPPER_0:INT} 
 
 
 # Re-enable auto promotion of pins of type 'pad'
 auto_promote_pad_pins -promote_all 1
 # Save the smartDesign
 save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign P8_GPIO_LCD
+# Generate SmartDesign P8_GPIO_UPPER
 generate_component -component_name ${sd_name}
diff --git a/script_support/components/CAPE/GPIOS/P9_GPIO.tcl b/script_support/components/CAPE/GPIOS/P9_GPIO.tcl
new file mode 100644
index 0000000..0230e58
--- /dev/null
+++ b/script_support/components/CAPE/GPIOS/P9_GPIO.tcl
@@ -0,0 +1,220 @@
+# Creating SmartDesign P9_GPIO
+set sd_name {P9_GPIO}
+create_smartdesign -sd_name ${sd_name}
+
+auto_promote_pad_pins -promote_all 1
+
+# Add GPIO BIBUFs
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_0_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_1_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_2_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_3_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_4_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_5_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_6_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_7_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_8_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_9_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_10_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_11_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_12_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_13_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_14_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_15_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_16_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_17_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_18_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_19_BIBUF}
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {GPIO_20_BIBUF}
+
+
+sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_P9} -instance_name {} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[20:20]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[19:19]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[18:18]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[17:17]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[16:16]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OE} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[20:20]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[19:19]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[18:18]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[17:17]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[16:16]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_OUT} -pin_slices {"[0:0]"} 
+
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[20:20]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[19:19]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[18:18]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[17:17]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[16:16]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[15:15]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[14:14]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[13:13]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[12:12]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[11:11]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[10:10]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[9:9]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[8:8]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[7:7]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[6:6]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[5:5]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[4:4]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[3:3]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[2:2]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[1:1]"} 
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:GPIO_IN} -pin_slices {"[0:0]"} 
+
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[0:0]" "GPIO_0_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[0:0]" "GPIO_0_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[0:0]" "GPIO_0_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[1:1]" "GPIO_1_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[1:1]" "GPIO_1_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[1:1]" "GPIO_1_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[2:2]" "GPIO_2_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[2:2]" "GPIO_2_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[2:2]" "GPIO_2_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[3:3]" "GPIO_3_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[3:3]" "GPIO_3_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[3:3]" "GPIO_3_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[4:4]" "GPIO_4_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[4:4]" "GPIO_4_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[4:4]" "GPIO_4_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[5:5]" "GPIO_5_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[5:5]" "GPIO_5_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[5:5]" "GPIO_5_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[6:6]" "GPIO_6_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[6:6]" "GPIO_6_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[6:6]" "GPIO_6_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[7:7]" "GPIO_7_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[7:7]" "GPIO_7_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[7:7]" "GPIO_7_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[8:8]" "GPIO_8_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[8:8]" "GPIO_8_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[8:8]" "GPIO_8_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[9:9]" "GPIO_9_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[9:9]" "GPIO_9_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[9:9]" "GPIO_9_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[10:10]" "GPIO_10_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[10:10]" "GPIO_10_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[10:10]" "GPIO_10_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[11:11]" "GPIO_11_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[11:11]" "GPIO_11_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[11:11]" "GPIO_11_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[12:12]" "GPIO_12_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[12:12]" "GPIO_12_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[12:12]" "GPIO_12_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[13:13]" "GPIO_13_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[13:13]" "GPIO_13_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[13:13]" "GPIO_13_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[14:14]" "GPIO_14_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[14:14]" "GPIO_14_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[14:14]" "GPIO_14_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[15:15]" "GPIO_15_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[15:15]" "GPIO_15_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[15:15]" "GPIO_15_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[16:16]" "GPIO_16_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[16:16]" "GPIO_16_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[16:16]" "GPIO_16_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[17:17]" "GPIO_17_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[17:17]" "GPIO_17_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[17:17]" "GPIO_17_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[18:18]" "GPIO_18_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[18:18]" "GPIO_18_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[18:18]" "GPIO_18_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[19:19]" "GPIO_19_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[19:19]" "GPIO_19_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[19:19]" "GPIO_19_BIBUF:E"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OUT[20:20]" "GPIO_20_BIBUF:D"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_IN[20:20]" "GPIO_20_BIBUF:Y"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreGPIO_P9_0:GPIO_OE[20:20]" "GPIO_20_BIBUF:E"} 
+
+
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD} -new_port_name {GPIO_0_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_0} -new_port_name {GPIO_1_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_1} -new_port_name {GPIO_2_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_2} -new_port_name {GPIO_3_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_3} -new_port_name {GPIO_4_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_4} -new_port_name {GPIO_5_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_5} -new_port_name {GPIO_6_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_6} -new_port_name {GPIO_7_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_7} -new_port_name {GPIO_8_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_8} -new_port_name {GPIO_9_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_9} -new_port_name {GPIO_10_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_10} -new_port_name {GPIO_11_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_11} -new_port_name {GPIO_12_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_12} -new_port_name {GPIO_13_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_13} -new_port_name {GPIO_14_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_14} -new_port_name {GPIO_15_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_15} -new_port_name {GPIO_16_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_16} -new_port_name {GPIO_17_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_17} -new_port_name {GPIO_18_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_18} -new_port_name {GPIO_19_PAD}
+sd_rename_port -sd_name ${sd_name} -current_port_name {PAD_19} -new_port_name {GPIO_20_PAD}
+
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:PRESETN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:PCLK} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {CoreGPIO_P9_0:APB_bif} -port_name {} 
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_P9_0:INT} 
+
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign P9_GPIO
+generate_component -component_name ${sd_name}
diff --git a/script_support/components/CAPE/GPIOS/constraints/cape.pdc b/script_support/components/CAPE/GPIOS/constraints/cape.pdc
index 582d6b9..5fa4c39 100644
--- a/script_support/components/CAPE/GPIOS/constraints/cape.pdc
+++ b/script_support/components/CAPE/GPIOS/constraints/cape.pdc
@@ -1,119 +1,125 @@
 
-#set_io -port_name P9_PWR_BUT  \
-#    -pin_name V16        \
-#    -fixed true          \
-#    -DIRECTION INPUT
+set_io -port_name P9_PIN11	\
+    -pin_name B5	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
 
-set_io -port_name P9_12	\
+set_io -port_name P9_PIN12	\
     -pin_name C5	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_14	\
+set_io -port_name P9_PIN13	\
+    -pin_name D19	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P9_PIN14	\
     -pin_name C6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_15	\
+set_io -port_name P9_PIN15	\
     -pin_name A5	    \
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_16	\
+set_io -port_name P9_PIN16	\
     -pin_name A6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_17	\
+set_io -port_name P9_PIN17	\
     -pin_name C9	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_18	\
+set_io -port_name P9_PIN18	\
     -pin_name C10	\
      -io_std LVCMOS33  \
     -fixed true	\
     -DIRECTION OUT
 
-set_io -port_name P9_21	\
+set_io -port_name P9_PIN21	\
     -pin_name B8	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_22	\
+set_io -port_name P9_PIN22	\
     -pin_name A8	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_23	\
+set_io -port_name P9_PIN23	\
     -pin_name C12	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_24	\
+set_io -port_name P9_PIN24	\
     -pin_name B12	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_25	\
+set_io -port_name P9_PIN25	\
     -pin_name B7	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_26	\
+set_io -port_name P9_PIN26	\
     -pin_name A7	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_27	\
+set_io -port_name P9_PIN27	\
     -pin_name D11	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-#--- re-assigned from NC
-set_io -port_name P9_28	\
+set_io -port_name P9_PIN28	\
     -pin_name C11	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_29	\
+set_io -port_name P9_PIN29	\
     -pin_name F17	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_30	\
+set_io -port_name P9_PIN30	\
     -pin_name F16	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_31	\
+set_io -port_name P9_PIN31	\
     -pin_name E18	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION OUT
 
-set_io -port_name P9_41	\
+set_io -port_name P9_PIN41	\
     -pin_name E15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P9_42	\
+set_io -port_name P9_PIN42	\
     -pin_name E14	\
     -fixed true	\
     -io_std LVCMOS33  \
@@ -121,182 +127,246 @@ set_io -port_name P9_42	\
 
 #-------------------------------------------------------------------------------
 
-set_io -port_name P8_15  \
+set_io -port_name P8_PIN3_USER_LED_0  \
+    -pin_name V22       \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN4_USER_LED_1  \
+    -pin_name W22        \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN5_USER_LED_2  \
+    -pin_name V19       \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN6_USER_LED_3  \
+    -pin_name V20        \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN7_USER_LED_4  \
+    -pin_name V15        \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN8_USER_LED_5  \
+    -pin_name V14       \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN9_USER_LED_6  \
+    -pin_name V21       \
+    -fixed true         \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN10_USER_LED_7  \
+    -pin_name W21       \
+    -fixed true          \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN11_USER_LED_8	\
+    -pin_name Y21	\
+    -fixed true	\
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN12_USER_LED_9	\
+    -pin_name Y20        \
+    -fixed true	\
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN13_USER_LED_10	\
+    -pin_name B10	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+set_io -port_name P8_PIN14_USER_LED_11  \
+    -pin_name B9	\
+    -io_std LVCMOS33  \
+    -fixed true          \
+    -DIRECTION INOUT
+
+
+
+set_io -port_name P8_PIN15  \
     -pin_name T12       \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_16  \
+set_io -port_name P8_PIN16  \
     -pin_name U12        \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_17  \
+set_io -port_name P8_PIN17  \
     -pin_name W13        \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_18  \
+set_io -port_name P8_PIN18  \
     -pin_name T16       \
     -fixed true          \
     -DIRECTION INOUT
 
-set_io -port_name P8_19	\
+set_io -port_name P8_PIN19	\
     -pin_name W18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_20	\
+set_io -port_name P8_PIN20	\
     -pin_name R16	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_21	\
+set_io -port_name P8_PIN21	\
     -pin_name AA21	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_22	\
+set_io -port_name P8_PIN22	\
     -pin_name AA22	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_23	\
+set_io -port_name P8_PIN23	\
     -pin_name AB18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_24	\
+set_io -port_name P8_PIN24	\
     -pin_name AA18	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_25	\
+set_io -port_name P8_PIN25	\
     -pin_name V17	\
     -fixed true	\
     -DIRECTION INOUT
 
-set_io -port_name P8_26  \
+set_io -port_name P8_PIN26  \
     -pin_name A12        \
     -fixed true          \
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_27	\
+set_io -port_name P8_PIN27	\
     -pin_name A13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_28	\
+set_io -port_name P8_PIN28	\
     -pin_name B14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_29	\
+set_io -port_name P8_PIN29	\
     -pin_name B13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_30	\
+set_io -port_name P8_PIN30	\
     -pin_name D14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_31	\
+set_io -port_name P8_PIN31	\
     -pin_name D13	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_32	\
+set_io -port_name P8_PIN32	\
     -pin_name B15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_33	\
+set_io -port_name P8_PIN33	\
     -pin_name A15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_34	\
+set_io -port_name P8_PIN34	\
     -pin_name C15	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_35	\
+set_io -port_name P8_PIN35	\
     -pin_name C14	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_36	\
+set_io -port_name P8_PIN36	\
     -pin_name B4	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_37	\
+set_io -port_name P8_PIN37	\
     -pin_name C4	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_38	\
+set_io -port_name P8_PIN38	\
     -pin_name C17	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_39	\
+set_io -port_name P8_PIN39	\
     -pin_name B17	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_40	\
+set_io -port_name P8_PIN40	\
     -pin_name B18	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_41	\
+set_io -port_name P8_PIN41	\
     -pin_name A18	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_42	\
+set_io -port_name P8_PIN42	\
     -pin_name D6	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_43	\
+set_io -port_name P8_PIN43	\
     -pin_name D7	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_44	\
+set_io -port_name P8_PIN44	\
     -pin_name D8	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_45	\
+set_io -port_name P8_PIN45	\
     -pin_name D9	\
     -fixed true	\
     -io_std LVCMOS33  \
     -DIRECTION INOUT
 
-set_io -port_name P8_46	\
+set_io -port_name P8_PIN46	\
     -pin_name D18	\
     -fixed true	\
     -io_std LVCMOS33  \
diff --git a/script_support/components/CAPE/NONE/constraints/cape.pdc b/script_support/components/CAPE/NONE/constraints/cape.pdc
index 09d0fb5..3838d4d 100644
--- a/script_support/components/CAPE/NONE/constraints/cape.pdc
+++ b/script_support/components/CAPE/NONE/constraints/cape.pdc
@@ -1,4 +1,11 @@
-#
-# Intentionality empty constraints file.
-# Used when the cape interface is not used in the design.
-#
\ No newline at end of file
+set_io -port_name P9_11  \
+    -pin_name B5        \
+    -io_std LVCMOS33  \
+    -fixed true          \
+    -DIRECTION INPUT
+
+set_io -port_name P9_13  \
+    -pin_name D19        \
+    -io_std LVCMOS33  \
+    -fixed true          \
+    -DIRECTION OUTPUT
diff --git a/script_support/components/FIC3_INITIATOR.tcl b/script_support/components/FIC3_INITIATOR.tcl
index d176e83..5f740a0 100644
--- a/script_support/components/FIC3_INITIATOR.tcl
+++ b/script_support/components/FIC3_INITIATOR.tcl
@@ -4,7 +4,7 @@
 # Create and Configure the core component FIC3_INITIATOR
 create_and_configure_core -core_vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -component_name {FIC3_INITIATOR} -params {\
 "APB_DWIDTH:32"  \
-"APBSLOT0ENABLE:true"  \
+"APBSLOT0ENABLE:false"  \
 "APBSLOT1ENABLE:true"  \
 "APBSLOT2ENABLE:true"  \
 "APBSLOT3ENABLE:false"  \
diff --git a/script_support/constraints/base_design.pdc b/script_support/constraints/base_design.pdc
index 933f4cb..c9da7ce 100644
--- a/script_support/constraints/base_design.pdc
+++ b/script_support/constraints/base_design.pdc
@@ -42,18 +42,6 @@ set_io -port_name M2_W_DISABLE2  \
     -fixed true                  \
     -DIRECTION OUTPUT
 
-set_io -port_name P9_11  \
-    -pin_name B5        \
-    -io_std LVCMOS33  \
-    -fixed true          \
-    -DIRECTION INPUT
-
-set_io -port_name P9_13  \
-    -pin_name D19        \
-    -io_std LVCMOS33  \
-    -fixed true          \
-    -DIRECTION OUTPUT
-
 set_io -port_name P9_19 \
     -pin_name A10	\
     -fixed true	\
@@ -71,67 +59,3 @@ set_io -port_name SD_DET  \
     -fixed true           \
     -io_std LVCMOS33      \
     -DIRECTION INPUT
-
-
-set_io -port_name P8_PIN3_USER_LED_0  \
-    -pin_name V22       \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN4_USER_LED_1  \
-    -pin_name W22        \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN5_USER_LED_2  \
-    -pin_name V19       \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN6_USER_LED_3  \
-    -pin_name V20        \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN7_USER_LED_4  \
-    -pin_name V15        \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN8_USER_LED_5  \
-    -pin_name V14       \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN9_USER_LED_6  \
-    -pin_name V21       \
-    -fixed true         \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN10_USER_LED_7  \
-    -pin_name W21       \
-    -fixed true          \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN11_USER_LED_8	\
-    -pin_name Y21	\
-    -fixed true	\
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN12_USER_LED_9	\
-    -pin_name Y20        \
-    -fixed true	\
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN13_USER_LED_10	\
-    -pin_name B10	\
-    -fixed true	\
-    -io_std LVCMOS33  \
-    -DIRECTION INOUT
-
-set_io -port_name P8_PIN14_USER_LED_11  \
-    -pin_name B9	\
-    -io_std LVCMOS33  \
-    -fixed true          \
-    -DIRECTION INOUT
-
-- 
GitLab


From d5cf925ecfec587140d8456d27dab1c3db8df383 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 11:10:43 +0100
Subject: [PATCH 09/19] Board validation: Rework LED report of high-speed
 connector loopbacks.

---
 .../ADD_HIGH_SPEED_CONNECTOR.tcl              | 66 ++++++++--------
 .../constraints/HIGH_SPEED_CONNECTOR.pdc      | 77 +++++++++++++++++--
 2 files changed, 100 insertions(+), 43 deletions(-)

diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
index 0ac86c2..663be42 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
@@ -13,7 +13,6 @@ create_hdl_core -file $project_dir/hdl/pattern_gen.v -module {PATTERN_GEN} -libr
 
 
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl
-#source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_OSC_0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl
@@ -28,7 +27,6 @@ source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STU
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_CCC_C1.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
-#source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_PWM_C0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
 
 
@@ -46,39 +44,35 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:XCVR_INIT_DON
 sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:RCOSC_160MHZ_GL" "HIGH_SPEED_INTERFACE_0:RCOSC_160MHZ_GL"}
 
 
-sd_delete_nets -sd_name ${sd_name} -net_names {BVF_RISCV_SUBSYSTEM_USER_LED_GPIO_OUT} 
-sd_delete_nets -sd_name ${sd_name} -net_names {BVF_RISCV_SUBSYSTEM_USER_LED_GPIO_OE} 
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OUT} 
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:USER_LED_GPIO_OE} 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {USER_LED_PADS_0:USER_LED_GPIO_OE} -value {VCC} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[11:11]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[10:10]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[9:9]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[8:8]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[7:7]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[6:6]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[5:5]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[4:4]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[3:3]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[2:2]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[1:1]"} 
-sd_create_pin_slices -sd_name ${sd_name} -pin_name {USER_LED_PADS_0:USER_LED_GPIO_OUT} -pin_slices {"[0:0]"} 
-
-
-
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_RX_VALID" "USER_LED_PADS_0:USER_LED_GPIO_OUT[0:0]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_LOCK" "USER_LED_PADS_0:USER_LED_GPIO_OUT[1:1]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_ERROR" "USER_LED_PADS_0:USER_LED_GPIO_OUT[2:2]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_RX_VALID" "USER_LED_PADS_0:USER_LED_GPIO_OUT[3:3]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_LOCK" "USER_LED_PADS_0:USER_LED_GPIO_OUT[4:4]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_ERROR" "USER_LED_PADS_0:USER_LED_GPIO_OUT[5:5]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_RX_VALID" "USER_LED_PADS_0:USER_LED_GPIO_OUT[6:6]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_LOCK" "USER_LED_PADS_0:USER_LED_GPIO_OUT[7:7]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_ERROR" "USER_LED_PADS_0:USER_LED_GPIO_OUT[8:8]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:TEST_MODE_0_LED" "USER_LED_PADS_0:USER_LED_GPIO_OUT[9:9]"} 
-
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0C_REFCLK_PLL_LOCK" "USER_LED_PADS_0:USER_LED_GPIO_OUT[11:11]"} 
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0C_REFCLK_CCC_OUT" "USER_LED_PADS_0:USER_LED_GPIO_OUT[10:10]"} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN3_USER_LED_0} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN4_USER_LED_1} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN5_USER_LED_2} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN6_USER_LED_3} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN7_USER_LED_4} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN8_USER_LED_5} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN9_USER_LED_6} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN10_USER_LED_7} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN11_USER_LED_8} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN12_USER_LED_9} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN13_USER_LED_10} -port_direction {OUT} 
+sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN14_USER_LED_11} -port_direction {OUT} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_RX_VALID" "P8_PIN3_USER_LED_0"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_LOCK" "P8_PIN4_USER_LED_1"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_ERROR" "P8_PIN5_USER_LED_2"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_RX_VALID" "P8_PIN6_USER_LED_3"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_LOCK" "P8_PIN7_USER_LED_4"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_ERROR" "P8_PIN8_USER_LED_5"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_RX_VALID" "P8_PIN9_USER_LED_6"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_LOCK" "P8_PIN10_USER_LED_7"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_ERROR" "P8_PIN11_USER_LED_8"} 
+
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN12_USER_LED_9} -value {GND} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN13_USER_LED_10} -value {GND} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN14_USER_LED_11} -value {GND} 
+
 
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_3_LED} 
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_2_LED} 
@@ -113,5 +107,5 @@ sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_
 # Override software control of VIO.
 sd_delete_nets -sd_name ${sd_name} -net_names {VIO_ENABLE} 
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:VIO_ENABLE} 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {VIO_ENABLE} -value {VCC} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {VIO_ENABLE} -value {GND} 
 
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
index dc6babf..a360be8 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
@@ -1,3 +1,66 @@
+set_io -port_name P8_PIN3_USER_LED_0  \
+    -pin_name V22       \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN4_USER_LED_1  \
+    -pin_name W22        \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN5_USER_LED_2  \
+    -pin_name V19       \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN6_USER_LED_3  \
+    -pin_name V20        \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN7_USER_LED_4  \
+    -pin_name V15        \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN8_USER_LED_5  \
+    -pin_name V14       \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN9_USER_LED_6  \
+    -pin_name V21       \
+    -fixed true         \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN10_USER_LED_7  \
+    -pin_name W21       \
+    -fixed true          \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN11_USER_LED_8	\
+    -pin_name Y21	\
+    -fixed true	\
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN12_USER_LED_9	\
+    -pin_name Y20        \
+    -fixed true	\
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN13_USER_LED_10	\
+    -pin_name B10	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION OUTPUT
+
+set_io -port_name P8_PIN14_USER_LED_11  \
+    -pin_name B9	\
+    -io_std LVCMOS33  \
+    -fixed true          \
+    -DIRECTION OUTPUT
+
+
 set_io -port_name XCVR_TX1_N    \
     -pin_name H21 \
     -DIRECTION OUTPUT
@@ -66,13 +129,13 @@ set_io -port_name XCVR_0B_REFCLK_N  \
     -DIRECTION INPUT
 
 
-set_io -port_name XCVR_0C_REFCLK_P  \
-    -pin_name J19                \
-    -DIRECTION INPUT
-    
-set_io -port_name XCVR_0C_REFCLK_N  \
-    -pin_name J20                \
-    -DIRECTION INPUT
+#set_io -port_name XCVR_0C_REFCLK_P  \
+#    -pin_name J19                \
+#    -DIRECTION INPUT
+#    
+#set_io -port_name XCVR_0C_REFCLK_N  \
+#    -pin_name J20                \
+#    -DIRECTION INPUT
 
 
 
-- 
GitLab


From 41aecc16ddbe58aa8f9011c7302f114d81297771 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 15:27:41 +0100
Subject: [PATCH 10/19] Board validation: Add SYZYGY clock inputs validation.

---
 BUILD_BVF_GATEWARE.tcl                        |  2 ++
 .../ADD_HIGH_SPEED_CONNECTOR.tcl              |  6 ++--
 .../HIGH_SPEED_INTERFACE.tcl                  | 30 +++++++++++-----
 .../PF_TX_PLL_XCVR1.tcl                       | 35 +++++++++++++++++++
 .../constraints/HIGH_SPEED_CONNECTOR.pdc      | 14 ++++----
 .../constraints/fp/HIGH_SPEED_CONNECTOR.pdc   |  8 +++++
 6 files changed, 78 insertions(+), 17 deletions(-)
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc

diff --git a/BUILD_BVF_GATEWARE.tcl b/BUILD_BVF_GATEWARE.tcl
index 2b438c4..7f41fd0 100644
--- a/BUILD_BVF_GATEWARE.tcl
+++ b/BUILD_BVF_GATEWARE.tcl
@@ -199,6 +199,7 @@ import_files \
     -convert_EDN_to_HDL 0 \
     -io_pdc "${constraint_path}/base_design.pdc" \
     -fp_pdc "${constraint_path}/NW_PLL.pdc" \
+    -fp_pdc "./script_support/components/HIGH_SPEED_CONNECTOR/$high_speed_conn_option/constraints/fp/HIGH_SPEED_CONNECTOR.pdc" \
     -sdc "${constraint_path}/fic_clocks.sdc" \
     -io_pdc "./script_support/components/CAPE/$cape_option/constraints/cape.pdc" \
     -io_pdc "./script_support/components/M2/$m2_option/constraints/M2.pdc" \
@@ -219,6 +220,7 @@ organize_tool_files \
     -tool {PLACEROUTE} \
     -file "${project_dir}/constraint/io/base_design.pdc" \
     -file "${project_dir}/constraint/fp/NW_PLL.pdc" \
+    -file "${project_dir}/constraint/fp/HIGH_SPEED_CONNECTOR.pdc" \
     -file "${project_dir}/constraint/fic_clocks.sdc" \
     -file "${project_dir}/constraint/io/cape.pdc" \
     -file "${project_dir}/constraint/io/M2.pdc" \
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
index 663be42..af8b955 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
@@ -26,6 +26,7 @@ source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STU
 
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_CCC_C1.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
 source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
 
@@ -69,8 +70,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_RX
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_LOCK" "P8_PIN10_USER_LED_7"} 
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_ERROR" "P8_PIN11_USER_LED_8"} 
 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN12_USER_LED_9} -value {GND} 
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN13_USER_LED_10} -value {GND} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0B_REF_CLK_PLL_LOCK" "P8_PIN12_USER_LED_9"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0C_REF_CLK_PLL_LOCK" "P8_PIN13_USER_LED_10"} 
+
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN14_USER_LED_11} -value {GND} 
 
 
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
index 28d2db5..52f457b 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
@@ -57,8 +57,8 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_RX_VALID} -port_dire
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_ERROR} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_LOCK} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_RX_VALID} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_CCC_OUT} -port_direction {OUT}
-sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_PLL_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REF_CLK_PLL_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REF_CLK_PLL_LOCK} -port_direction {OUT}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_N} -port_direction {OUT} -port_is_pad {1}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_P} -port_direction {OUT} -port_is_pad {1}
 sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX2_N} -port_direction {OUT} -port_is_pad {1}
@@ -91,6 +91,11 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2
 
 
 
+# Add AND2_1 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_1}
+
+
+
 # Add BIBUF_0 instance
 sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {BIBUF_0}
 
@@ -170,6 +175,12 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_TX_PLL_0_0:CLK_125}
 
 
 
+# Add PF_TX_PLL_XCVR1_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_TX_PLL_XCVR1} -instance_name {PF_TX_PLL_XCVR1_0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_TX_PLL_XCVR1_0:CLK_125}
+
+
+
 # Add PF_XCVR_REF_CLK_0_0 instance
 sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_REF_CLK_0} -instance_name {PF_XCVR_REF_CLK_0_0}
 
@@ -205,9 +216,12 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_3_
 
 
 # Add scalar net connections
-sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "PF_CCC_C0_0:PLL_LOCK_0" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "PF_CCC_C0_0:PLL_LOCK_0" "XCVR_0B_REF_CLK_PLL_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "PF_TX_PLL_0_0:PLL_LOCK" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "XCVR_LOOPBACK_0:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_1:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_2:XCVR_REF_CLK_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "XCVR_LOOPBACK_0:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_2:XCVR_REF_CLK_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:A" "PF_TX_PLL_XCVR1_0:PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:B" "PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REF_CLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:Y" "XCVR_LOOPBACK_1:XCVR_REF_CLK_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[0:0]" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70P" "HSIO_CoreGPIO_C0_0:GPIO_IN[0:0]" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[1:1]" }
@@ -236,10 +250,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[8:8]
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[9:9]" "XCVR2_ERROR" "XCVR_LOOPBACK_2:error_o" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PCLK" "PCLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PRESETN" "PRESETN" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:OUT0_FABCLK_0" "PF_TX_PLL_0_0:FAB_REF_CLK" "XCVR_LOOPBACK_0:XCVR_REF_CLK" "XCVR_LOOPBACK_1:XCVR_REF_CLK" "XCVR_LOOPBACK_2:XCVR_REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:OUT0_FABCLK_0" "PF_TX_PLL_0_0:FAB_REF_CLK" "XCVR_LOOPBACK_0:XCVR_REF_CLK" "XCVR_LOOPBACK_2:XCVR_REF_CLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:REF_CLK_0" "PF_XCVR_REF_CLK_0_0:REF_CLK" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:OUT0_FABCLK_0" "XCVR_0C_REFCLK_CCC_OUT" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REFCLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:OUT0_FABCLK_0" "PF_TX_PLL_XCVR1_0:FAB_REF_CLK" "XCVR_LOOPBACK_1:XCVR_REF_CLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:REF_CLK_0" "PF_XCVR_REF_CLK_C0_0:FAB_REF_CLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_IN" "RCOSC_160MHZ_GL" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_OUT" "XCVR_LOOPBACK_0:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_1:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_2:RCOSC_160MHZ_GL" }
@@ -268,7 +281,8 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_TXD_P" "X
 
 # Add bus interface net connections
 sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_TARGET" "HSIO_CoreGPIO_C0_0:APB_bif" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_0_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_0:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_1:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_2:CLKS_FROM_TXPLL_0" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_0_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_0:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_2:CLKS_FROM_TXPLL_0" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_XCVR1_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_1:CLKS_FROM_TXPLL_0" }
 
 # Re-enable auto promotion of pins of type 'pad'
 auto_promote_pad_pins -promote_all 1
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
new file mode 100644
index 0000000..25161ed
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
@@ -0,0 +1,35 @@
+# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component PF_TX_PLL_XCVR1
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_TX_PLL:2.0.300} -component_name {PF_TX_PLL_XCVR1} -params {\
+"CORE:PF_TX_PLL"  \
+"INIT:0x0"  \
+"TxPLL_AUX_LOW_SEL:true"  \
+"TxPLL_AUX_OUT:125"  \
+"TxPLL_BANDWIDTH:Low"  \
+"TxPLL_CLK_125_EN:true"  \
+"TxPLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"TxPLL_EXT_WAVE_SEL:0"  \
+"TxPLL_FAB_LOCK_EN:false"  \
+"TxPLL_FAB_REF:200"  \
+"TxPLL_INTEGER_MODE:false"  \
+"TxPLL_JITTER_MODE_AT_POWERUP:true"  \
+"TxPLL_JITTER_MODE_CUT_OFF_FREQ:5000"  \
+"TxPLL_JITTER_MODE_OPTIMIZE_FOR:0"  \
+"TxPLL_JITTER_MODE_REFCLK_FREQ:125"  \
+"TxPLL_JITTER_MODE_REFCLK_SEL:DEDICATED"  \
+"TxPLL_JITTER_MODE_SEL:10G SyncE 32Bit"  \
+"TxPLL_JITTER_MODE_WANDER:15"  \
+"TxPLL_MODE:NORMAL"  \
+"TxPLL_OUT:2500.000"  \
+"TxPLL_REF:156.25"  \
+"TxPLL_RN_FILTER:false"  \
+"TxPLL_SOURCE:FABRIC"  \
+"TxPLL_SSM_DEPTH:0"  \
+"TxPLL_SSM_DIVVAL:1"  \
+"TxPLL_SSM_DOWN_SPREAD:false"  \
+"TxPLL_SSM_FREQ:64"  \
+"TxPLL_SSM_RAND_PATTERN:0"  \
+"VCOFREQUENCY:1600"   }
+# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
index a360be8..ee8c96c 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
@@ -129,13 +129,13 @@ set_io -port_name XCVR_0B_REFCLK_N  \
     -DIRECTION INPUT
 
 
-#set_io -port_name XCVR_0C_REFCLK_P  \
-#    -pin_name J19                \
-#    -DIRECTION INPUT
-#    
-#set_io -port_name XCVR_0C_REFCLK_N  \
-#    -pin_name J20                \
-#    -DIRECTION INPUT
+set_io -port_name XCVR_0C_REFCLK_P  \
+    -pin_name J19                \
+    -DIRECTION INPUT
+    
+set_io -port_name XCVR_0C_REFCLK_N  \
+    -pin_name J20                \
+    -DIRECTION INPUT
 
 
 
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..06e341a
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1,8 @@
+
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_C0_0/PF_XCVR_REF_CLK_C0_0/I_IO -fixed true -x 1014 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_0/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1009 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_TX_PLL_0_0/PF_TX_PLL_0_0/txpll_isnt_0 -fixed true -x 1009 -y 77
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_2/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_0_0/PF_XCVR_REF_CLK_0_0/I_IO -fixed true -x 1015 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_TX_PLL_XCVR1_0/PF_TX_PLL_XCVR1_0/txpll_isnt_0 -fixed true -x 1008 -y 77
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_1/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 47
-- 
GitLab


From 7d2bc3777cabaeb1931fdb228f1c30d729250c3c Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 16:08:09 +0100
Subject: [PATCH 11/19] Board validation: Route XCVR status signals to GPIO
 inputs.

---
 .../HIGH_SPEED_INTERFACE.tcl                  | 54 ++++++++++++-------
 .../HSIO_CoreGPIO_C0.tcl                      | 42 +++++++--------
 2 files changed, 55 insertions(+), 41 deletions(-)

diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
index 52f457b..4bc372c 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
@@ -104,17 +104,23 @@ sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {BIB
 # Add HSIO_CoreGPIO_C0_0 instance
 sd_instantiate_component -sd_name ${sd_name} -component_name {HSIO_CoreGPIO_C0} -instance_name {HSIO_CoreGPIO_C0_0}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[0:0]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[0:0]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[10:10]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[11:11]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[12:12]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[13:13]}
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[13:13]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[14:14]}
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[14:14]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[15:15]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[16:16]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[17:17]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[18:18]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[19:19]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[1:1]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[1:1]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[2:2]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[2:2]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[3:3]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[3:3]} -value {GND}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[4:4]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[5:5]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[6:6]}
@@ -134,6 +140,14 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT}
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[14:14]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[15:15]}
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[15:15]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[16:16]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[16:16]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[17:17]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[17:17]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[18:18]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[18:18]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[19:19]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[19:19]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[1:1]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[2:2]}
 sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[3:3]}
@@ -216,38 +230,38 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_3_
 
 
 # Add scalar net connections
-sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "PF_CCC_C0_0:PLL_LOCK_0" "XCVR_0B_REF_CLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "HSIO_CoreGPIO_C0_0:GPIO_IN[17:17]" "PF_CCC_C0_0:PLL_LOCK_0" "XCVR_0B_REF_CLK_PLL_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "PF_TX_PLL_0_0:PLL_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "XCVR_LOOPBACK_0:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_2:XCVR_REF_CLK_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:A" "PF_TX_PLL_XCVR1_0:PLL_LOCK" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:B" "PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REF_CLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:B" "HSIO_CoreGPIO_C0_0:GPIO_IN[18:18]" "PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REF_CLK_PLL_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:Y" "XCVR_LOOPBACK_1:XCVR_REF_CLK_LOCK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[0:0]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70P" "HSIO_CoreGPIO_C0_0:GPIO_IN[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70P" "HSIO_CoreGPIO_C0_0:GPIO_IN[4:4]" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[1:1]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71P" "HSIO_CoreGPIO_C0_0:GPIO_IN[1:1]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73N_C2P_CLKN" "HSIO_CoreGPIO_C0_0:GPIO_OUT[2:2]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73P_C2P_CLKP" "HSIO_CoreGPIO_C0_0:GPIO_IN[2:2]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81N" "HSIO_CoreGPIO_C0_0:GPIO_IN[15:15]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71P" "HSIO_CoreGPIO_C0_0:GPIO_IN[5:5]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73N_C2P_CLKN" "HSIO_CoreGPIO_C0_0:GPIO_OUT[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73P_C2P_CLKP" "HSIO_CoreGPIO_C0_0:GPIO_IN[7:7]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81N" "HSIO_CoreGPIO_C0_0:GPIO_IN[19:19]" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81P" "SYS_RESET_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82N" "BIBUF_0:PAD" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82P" "MAC_1_MDC_M2F" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[3:3]" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83P" "HSIO_CoreGPIO_C0_0:GPIO_IN[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83P" "HSIO_CoreGPIO_C0_0:GPIO_IN[6:6]" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:D" "MAC_1_MDO_M2F" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:E" "MAC_1_MDO_OE_M2F" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:Y" "MAC_1_MDI_F2M" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"DEVICE_INIT_DONE" "XCVR_LOOPBACK_0:DEVICE_INIT_DONE" "XCVR_LOOPBACK_1:DEVICE_INIT_DONE" "XCVR_LOOPBACK_2:DEVICE_INIT_DONE" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "XCVR_LOOPBACK_0:EXT_RST_N" "XCVR_LOOPBACK_1:EXT_RST_N" "XCVR_LOOPBACK_2:EXT_RST_N" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[10:10]" "XCVR3_RX_VALID" "XCVR_LOOPBACK_0:rx_val_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[11:11]" "XCVR3_LOCK" "XCVR_LOOPBACK_0:lock_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[12:12]" "XCVR3_ERROR" "XCVR_LOOPBACK_0:error_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[4:4]" "XCVR1_RX_VALID" "XCVR_LOOPBACK_1:rx_val_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[5:5]" "XCVR1_LOCK" "XCVR_LOOPBACK_1:lock_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[6:6]" "XCVR1_ERROR" "XCVR_LOOPBACK_1:error_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[7:7]" "XCVR2_RX_VALID" "XCVR_LOOPBACK_2:rx_val_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[8:8]" "XCVR2_LOCK" "XCVR_LOOPBACK_2:lock_o" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[9:9]" "XCVR2_ERROR" "XCVR_LOOPBACK_2:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[10:10]" "XCVR1_ERROR" "XCVR_LOOPBACK_1:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[11:11]" "XCVR2_RX_VALID" "XCVR_LOOPBACK_2:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[12:12]" "XCVR2_LOCK" "XCVR_LOOPBACK_2:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[13:13]" "XCVR2_ERROR" "XCVR_LOOPBACK_2:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[14:14]" "XCVR3_RX_VALID" "XCVR_LOOPBACK_0:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[15:15]" "XCVR3_LOCK" "XCVR_LOOPBACK_0:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[16:16]" "XCVR3_ERROR" "XCVR_LOOPBACK_0:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[8:8]" "XCVR1_RX_VALID" "XCVR_LOOPBACK_1:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[9:9]" "XCVR1_LOCK" "XCVR_LOOPBACK_1:lock_o" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PCLK" "PCLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PRESETN" "PRESETN" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:OUT0_FABCLK_0" "PF_TX_PLL_0_0:FAB_REF_CLK" "XCVR_LOOPBACK_0:XCVR_REF_CLK" "XCVR_LOOPBACK_2:XCVR_REF_CLK" }
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
index c766113..8b5fec7 100644
--- a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
@@ -20,10 +20,10 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "FIXED_CONFIG_13:true"  \
 "FIXED_CONFIG_14:true"  \
 "FIXED_CONFIG_15:true"  \
-"FIXED_CONFIG_16:false"  \
-"FIXED_CONFIG_17:false"  \
-"FIXED_CONFIG_18:false"  \
-"FIXED_CONFIG_19:false"  \
+"FIXED_CONFIG_16:true"  \
+"FIXED_CONFIG_17:true"  \
+"FIXED_CONFIG_18:true"  \
+"FIXED_CONFIG_19:true"  \
 "FIXED_CONFIG_20:false"  \
 "FIXED_CONFIG_21:false"  \
 "FIXED_CONFIG_22:false"  \
@@ -69,23 +69,23 @@ create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -compon
 "IO_INT_TYPE_29:7"  \
 "IO_INT_TYPE_30:7"  \
 "IO_INT_TYPE_31:7"  \
-"IO_NUM:16"  \
-"IO_TYPE_0:2"  \
-"IO_TYPE_1:2"  \
-"IO_TYPE_2:2"  \
-"IO_TYPE_3:2"  \
-"IO_TYPE_4:2"  \
-"IO_TYPE_5:2"  \
-"IO_TYPE_6:2"  \
-"IO_TYPE_7:2"  \
-"IO_TYPE_8:2"  \
-"IO_TYPE_9:2"  \
-"IO_TYPE_10:2"  \
-"IO_TYPE_11:2"  \
-"IO_TYPE_12:2"  \
-"IO_TYPE_13:2"  \
-"IO_TYPE_14:2"  \
-"IO_TYPE_15:2"  \
+"IO_NUM:20"  \
+"IO_TYPE_0:1"  \
+"IO_TYPE_1:1"  \
+"IO_TYPE_2:1"  \
+"IO_TYPE_3:1"  \
+"IO_TYPE_4:0"  \
+"IO_TYPE_5:0"  \
+"IO_TYPE_6:0"  \
+"IO_TYPE_7:0"  \
+"IO_TYPE_8:0"  \
+"IO_TYPE_9:0"  \
+"IO_TYPE_10:0"  \
+"IO_TYPE_11:0"  \
+"IO_TYPE_12:0"  \
+"IO_TYPE_13:0"  \
+"IO_TYPE_14:0"  \
+"IO_TYPE_15:0"  \
 "IO_TYPE_16:0"  \
 "IO_TYPE_17:0"  \
 "IO_TYPE_18:0"  \
-- 
GitLab


From 43fc1ffcfb6e3cd57897eb2219369ff2a3e88142 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 16:34:25 +0100
Subject: [PATCH 12/19] Board tests: Add SYGYGY connector tests build option.

---
 .../ADD_HIGH_SPEED_CONNECTOR.tcl              | 125 +++++++
 .../HIGH_SPEED_INTERFACE.tcl                  | 306 ++++++++++++++++++
 .../HSIO_CoreGPIO_C0.tcl                      | 138 ++++++++
 .../BOARD_TESTS_SEEED_STUDIO/PF_CCC_C1.tcl    | 249 ++++++++++++++
 .../PF_TX_PLL_XCVR1.tcl                       |  35 ++
 .../PF_XCVR_REF_CLK_C0.tcl                    |  12 +
 .../XCVR_LOOPBACK/PF_CCC_01.tcl               | 248 ++++++++++++++
 .../XCVR_LOOPBACK/PF_CCC_C0.tcl               | 249 ++++++++++++++
 .../XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl           |   9 +
 .../XCVR_LOOPBACK/PF_OSC_0.tcl                |  12 +
 .../XCVR_LOOPBACK/PF_TX_PLL_0.tcl             |  35 ++
 .../XCVR_LOOPBACK/PF_XCVR_0.tcl               |  55 ++++
 .../XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl       |  12 +
 .../XCVR_LOOPBACK/Reset_Block.tcl             |  66 ++++
 .../XCVR_LOOPBACK/Reset_sync_rx.tcl           |   6 +
 .../XCVR_LOOPBACK/Reset_sync_tx.tcl           |   6 +
 .../XCVR_LOOPBACK/XCVR_LOOPBACK.tcl           | 151 +++++++++
 .../constraints/HIGH_SPEED_CONNECTOR.pdc      | 148 +++++++++
 .../constraints/fp/HIGH_SPEED_CONNECTOR.pdc   |   8 +
 19 files changed, 1870 insertions(+)
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_CCC_C1.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_01.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_OSC_0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_Block.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_rx.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_tx.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc

diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
new file mode 100644
index 0000000..943f07d
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/ADD_HIGH_SPEED_CONNECTOR.tcl
@@ -0,0 +1,125 @@
+
+puts "======== Add High Speed Connector option: BOARD_VALIDATION_SEEED_STUDIO ========"
+
+# Import source files
+import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/pattern_chk.v}
+import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/pattern_gen.v}
+import_files -hdl_source {script_support/HDL/XCVR_LOOPBACK/startup.v}
+
+build_design_hierarchy
+create_hdl_core -file $project_dir/hdl/startup.v -module {STARTUP} -library {work} -package {}
+create_hdl_core -file $project_dir/hdl/pattern_chk.v -module {PATTERN_CHK} -library {work} -package {}
+create_hdl_core -file $project_dir/hdl/pattern_gen.v -module {PATTERN_GEN} -library {work} -package {}
+
+
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_rx.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_tx.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/Reset_Block.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl
+
+
+
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_CCC_C1.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
+source script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
+
+
+
+
+set sd_name ${top_level_name}
+
+sd_instantiate_component -sd_name ${sd_name} -component_name {HIGH_SPEED_INTERFACE} -instance_name {HIGH_SPEED_INTERFACE_0} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MSS_RESET_N_M2F" "HIGH_SPEED_INTERFACE_0:EXT_RST_N"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:DEVICE_INIT_DONE" "HIGH_SPEED_INTERFACE_0:DEVICE_INIT_DONE"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:XCVR_INIT_DONE" "HIGH_SPEED_INTERFACE_0:XCVR_INIT_DONE"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:RCOSC_160MHZ_GL" "HIGH_SPEED_INTERFACE_0:RCOSC_160MHZ_GL"}
+
+
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN3_USER_LED_0} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN4_USER_LED_1} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN5_USER_LED_2} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN6_USER_LED_3} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN7_USER_LED_4} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN8_USER_LED_5} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN9_USER_LED_6} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN10_USER_LED_7} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN11_USER_LED_8} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN12_USER_LED_9} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN13_USER_LED_10} -port_direction {OUT} 
+#sd_create_scalar_port -sd_name ${sd_name} -port_name {P8_PIN14_USER_LED_11} -port_direction {OUT} 
+#
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_RX_VALID" "P8_PIN3_USER_LED_0"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_LOCK" "P8_PIN4_USER_LED_1"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR1_ERROR" "P8_PIN5_USER_LED_2"} 
+#
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_RX_VALID" "P8_PIN6_USER_LED_3"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_LOCK" "P8_PIN7_USER_LED_4"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR2_ERROR" "P8_PIN8_USER_LED_5"} 
+#
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_RX_VALID" "P8_PIN9_USER_LED_6"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_LOCK" "P8_PIN10_USER_LED_7"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR3_ERROR" "P8_PIN11_USER_LED_8"} 
+#
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0B_REF_CLK_PLL_LOCK" "P8_PIN12_USER_LED_9"} 
+#sd_connect_pins -sd_name ${sd_name} -pin_names {"HIGH_SPEED_INTERFACE_0:XCVR_0C_REF_CLK_PLL_LOCK" "P8_PIN13_USER_LED_10"} 
+#
+#sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {P8_PIN14_USER_LED_11} -value {GND} 
+
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_3_LED} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_2_LED} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:TEST_MODE_1_LED} 
+
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO82P} -port_name {} 
+sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDI_F2M} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDI_F2M" "HIGH_SPEED_INTERFACE_0:MAC_1_MDI_F2M"} 
+sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDO_M2F} 
+sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDO_OE_M2F} 
+sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:MAC_1_MDC_M2F} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDC_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDC_M2F"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDO_OE_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDO_OE_M2F"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:MAC_1_MDO_M2F" "HIGH_SPEED_INTERFACE_0:MAC_1_MDO_M2F"} 
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_PCLK" "HIGH_SPEED_INTERFACE_0:PCLK"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_3_FABRIC_RESET_N" "HIGH_SPEED_INTERFACE_0:PRESETN"} 
+sd_clear_pin_attributes -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:HSI_APB_MTARGET} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BVF_RISCV_SUBSYSTEM:HSI_APB_MTARGET" "HIGH_SPEED_INTERFACE_0:APB_TARGET"} 
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLOCKS_AND_RESETS:FIC_0_FABRIC_RESET_N" "HIGH_SPEED_INTERFACE_0:SYS_RESET_N"} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO83N} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO70P} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO71P} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO73P_C2P_CLKP} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO81N} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO83P} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO70N} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO71N} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO73N_C2P_CLKN} -port_name {} 
+sd_connect_pin_to_port -sd_name ${sd_name} -pin_name {HIGH_SPEED_INTERFACE_0:B0_HSIO81P} -port_name {} 
+
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR_0C_REF_CLK_PLL_LOCK} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR1_ERROR} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR1_LOCK} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR1_RX_VALID} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR2_ERROR} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR2_LOCK} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR2_RX_VALID} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR3_ERROR} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR3_LOCK} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR3_RX_VALID} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HIGH_SPEED_INTERFACE_0:XCVR_0B_REF_CLK_PLL_LOCK} 
+
+# Override software control of VIO.
+sd_delete_nets -sd_name ${sd_name} -net_names {VIO_ENABLE} 
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {BVF_RISCV_SUBSYSTEM:VIO_ENABLE} 
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {VIO_ENABLE} -value {GND} 
+
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
new file mode 100644
index 0000000..4bc372c
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HIGH_SPEED_INTERFACE.tcl
@@ -0,0 +1,306 @@
+# Creating SmartDesign HIGH_SPEED_INTERFACE
+set sd_name {HIGH_SPEED_INTERFACE}
+create_smartdesign -sd_name ${sd_name}
+
+# Disable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 0
+
+# Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PENABLE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSEL} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PWRITE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO70P} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO71P} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO73P_C2P_CLKP} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO81N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO83P} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {DEVICE_INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDC_M2F} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDO_M2F} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDO_OE_M2F} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PCLK} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PRESETN} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RCOSC_160MHZ_GL} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {SYS_RESET_N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REFCLK_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REFCLK_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REFCLK_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX1_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX1_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX2_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX2_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX3_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_RX3_P} -port_direction {IN} -port_is_pad {1}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PREADY} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {APB_TARGET_PSLVERR} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO70N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO71N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO73N_C2P_CLKN} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO81P} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO82P} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO83N} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {MAC_1_MDI_F2M} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_0_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_1_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_2_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_3_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_ERROR} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR1_RX_VALID} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_ERROR} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR2_RX_VALID} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_ERROR} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR3_RX_VALID} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0B_REF_CLK_PLL_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_0C_REF_CLK_PLL_LOCK} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_N} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX1_P} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX2_N} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX2_P} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX3_N} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_TX3_P} -port_direction {OUT} -port_is_pad {1}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {B0_HSIO82N} -port_direction {INOUT} -port_is_pad {1}
+
+# Create top level Bus Ports
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PADDR} -port_direction {IN} -port_range {[7:0]}
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PWDATA} -port_direction {IN} -port_range {[31:0]}
+
+sd_create_bus_port -sd_name ${sd_name} -port_name {APB_TARGET_PRDATA} -port_direction {OUT} -port_range {[31:0]}
+
+
+# Create top level Bus interface Ports
+sd_create_bif_port -sd_name ${sd_name} -port_name {APB_TARGET} -port_bif_vlnv {AMBA:AMBA2:APB:r0p0} -port_bif_role {slave} -port_bif_mapping {\
+"PADDR:APB_TARGET_PADDR" \
+"PSELx:APB_TARGET_PSEL" \
+"PENABLE:APB_TARGET_PENABLE" \
+"PWRITE:APB_TARGET_PWRITE" \
+"PRDATA:APB_TARGET_PRDATA" \
+"PWDATA:APB_TARGET_PWDATA" \
+"PREADY:APB_TARGET_PREADY" \
+"PSLVERR:APB_TARGET_PSLVERR" } 
+
+# Add AND2_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
+
+
+
+# Add AND2_1 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_1}
+
+
+
+# Add BIBUF_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {BIBUF} -instance_name {BIBUF_0}
+
+
+
+# Add HSIO_CoreGPIO_C0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {HSIO_CoreGPIO_C0} -instance_name {HSIO_CoreGPIO_C0_0}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[0:0]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[0:0]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[10:10]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[11:11]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[12:12]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[13:13]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[14:14]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[15:15]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[16:16]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[17:17]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[18:18]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[19:19]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[1:1]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[1:1]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[2:2]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[2:2]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[3:3]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_IN[3:3]} -value {GND}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[4:4]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[5:5]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[6:6]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[7:7]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[8:8]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_IN} -pin_slices {[9:9]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[10:10]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[10:10]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[11:11]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[11:11]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[12:12]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[12:12]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[13:13]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[13:13]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[14:14]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[14:14]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[15:15]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[15:15]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[16:16]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[16:16]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[17:17]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[17:17]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[18:18]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[18:18]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[19:19]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[19:19]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[2:2]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[3:3]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[4:4]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[4:4]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[5:5]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[5:5]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[6:6]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[6:6]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[7:7]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[7:7]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[8:8]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[8:8]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {HSIO_CoreGPIO_C0_0:GPIO_OUT} -pin_slices {[9:9]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:GPIO_OUT[9:9]}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {HSIO_CoreGPIO_C0_0:INT}
+
+
+
+# Add PF_CCC_C0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CCC_C0} -instance_name {PF_CCC_C0_0}
+
+
+
+# Add PF_CCC_C1_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CCC_C1} -instance_name {PF_CCC_C1_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_CCC_C1_0:PLL_POWERDOWN_N_0} -value {VCC}
+
+
+
+# Add PF_CLK_DIV_C0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_CLK_DIV_C0} -instance_name {PF_CLK_DIV_C0_0}
+
+
+
+# Add PF_TX_PLL_0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_TX_PLL_0} -instance_name {PF_TX_PLL_0_0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_TX_PLL_0_0:CLK_125}
+
+
+
+# Add PF_TX_PLL_XCVR1_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_TX_PLL_XCVR1} -instance_name {PF_TX_PLL_XCVR1_0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_TX_PLL_XCVR1_0:CLK_125}
+
+
+
+# Add PF_XCVR_REF_CLK_0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_REF_CLK_0} -instance_name {PF_XCVR_REF_CLK_0_0}
+
+
+
+# Add PF_XCVR_REF_CLK_C0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_REF_CLK_C0} -instance_name {PF_XCVR_REF_CLK_C0_0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_XCVR_REF_CLK_C0_0:REF_CLK}
+
+
+
+# Add XCVR_LOOPBACK_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_0}
+
+
+
+# Add XCVR_LOOPBACK_1 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_1}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_0_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_1_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_2_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_1:TEST_MODE_3_LED}
+
+
+
+# Add XCVR_LOOPBACK_2 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {XCVR_LOOPBACK} -instance_name {XCVR_LOOPBACK_2}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_0_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_1_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_2_LED}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {XCVR_LOOPBACK_2:TEST_MODE_3_LED}
+
+
+
+# Add scalar net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "HSIO_CoreGPIO_C0_0:GPIO_IN[17:17]" "PF_CCC_C0_0:PLL_LOCK_0" "XCVR_0B_REF_CLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "PF_TX_PLL_0_0:PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "XCVR_LOOPBACK_0:XCVR_REF_CLK_LOCK" "XCVR_LOOPBACK_2:XCVR_REF_CLK_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:A" "PF_TX_PLL_XCVR1_0:PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:B" "HSIO_CoreGPIO_C0_0:GPIO_IN[18:18]" "PF_CCC_C1_0:PLL_LOCK_0" "XCVR_0C_REF_CLK_PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_1:Y" "XCVR_LOOPBACK_1:XCVR_REF_CLK_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO70P" "HSIO_CoreGPIO_C0_0:GPIO_IN[4:4]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO71P" "HSIO_CoreGPIO_C0_0:GPIO_IN[5:5]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73N_C2P_CLKN" "HSIO_CoreGPIO_C0_0:GPIO_OUT[3:3]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO73P_C2P_CLKP" "HSIO_CoreGPIO_C0_0:GPIO_IN[7:7]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81N" "HSIO_CoreGPIO_C0_0:GPIO_IN[19:19]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO81P" "SYS_RESET_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82N" "BIBUF_0:PAD" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO82P" "MAC_1_MDC_M2F" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83N" "HSIO_CoreGPIO_C0_0:GPIO_OUT[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"B0_HSIO83P" "HSIO_CoreGPIO_C0_0:GPIO_IN[6:6]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:D" "MAC_1_MDO_M2F" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:E" "MAC_1_MDO_OE_M2F" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BIBUF_0:Y" "MAC_1_MDI_F2M" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"DEVICE_INIT_DONE" "XCVR_LOOPBACK_0:DEVICE_INIT_DONE" "XCVR_LOOPBACK_1:DEVICE_INIT_DONE" "XCVR_LOOPBACK_2:DEVICE_INIT_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "XCVR_LOOPBACK_0:EXT_RST_N" "XCVR_LOOPBACK_1:EXT_RST_N" "XCVR_LOOPBACK_2:EXT_RST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[10:10]" "XCVR1_ERROR" "XCVR_LOOPBACK_1:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[11:11]" "XCVR2_RX_VALID" "XCVR_LOOPBACK_2:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[12:12]" "XCVR2_LOCK" "XCVR_LOOPBACK_2:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[13:13]" "XCVR2_ERROR" "XCVR_LOOPBACK_2:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[14:14]" "XCVR3_RX_VALID" "XCVR_LOOPBACK_0:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[15:15]" "XCVR3_LOCK" "XCVR_LOOPBACK_0:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[16:16]" "XCVR3_ERROR" "XCVR_LOOPBACK_0:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[8:8]" "XCVR1_RX_VALID" "XCVR_LOOPBACK_1:rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:GPIO_IN[9:9]" "XCVR1_LOCK" "XCVR_LOOPBACK_1:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PCLK" "PCLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"HSIO_CoreGPIO_C0_0:PRESETN" "PRESETN" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:OUT0_FABCLK_0" "PF_TX_PLL_0_0:FAB_REF_CLK" "XCVR_LOOPBACK_0:XCVR_REF_CLK" "XCVR_LOOPBACK_2:XCVR_REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C0_0:REF_CLK_0" "PF_XCVR_REF_CLK_0_0:REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:OUT0_FABCLK_0" "PF_TX_PLL_XCVR1_0:FAB_REF_CLK" "XCVR_LOOPBACK_1:XCVR_REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CCC_C1_0:REF_CLK_0" "PF_XCVR_REF_CLK_C0_0:FAB_REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_IN" "RCOSC_160MHZ_GL" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_CLK_DIV_C0_0:CLK_OUT" "XCVR_LOOPBACK_0:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_1:RCOSC_160MHZ_GL" "XCVR_LOOPBACK_2:RCOSC_160MHZ_GL" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_0_0:REF_CLK_PAD_N" "XCVR_0B_REFCLK_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_0_0:REF_CLK_PAD_P" "XCVR_0B_REFCLK_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_C0_0:REF_CLK_PAD_N" "XCVR_0C_REFCLK_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_REF_CLK_C0_0:REF_CLK_PAD_P" "XCVR_0C_REFCLK_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_0_LED" "XCVR_LOOPBACK_0:TEST_MODE_0_LED" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_1_LED" "XCVR_LOOPBACK_0:TEST_MODE_1_LED" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_2_LED" "XCVR_LOOPBACK_0:TEST_MODE_2_LED" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_3_LED" "XCVR_LOOPBACK_0:TEST_MODE_3_LED" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_INIT_DONE" "XCVR_LOOPBACK_0:XCVR_INIT_DONE" "XCVR_LOOPBACK_1:XCVR_INIT_DONE" "XCVR_LOOPBACK_2:XCVR_INIT_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_0:LANE0_RXD_N" "XCVR_RX3_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_0:LANE0_RXD_P" "XCVR_RX3_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_0:LANE0_TXD_N" "XCVR_TX3_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_0:LANE0_TXD_P" "XCVR_TX3_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_RXD_N" "XCVR_RX1_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_RXD_P" "XCVR_RX1_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_TXD_N" "XCVR_TX1_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_1:LANE0_TXD_P" "XCVR_TX1_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_RXD_N" "XCVR_RX2_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_RXD_P" "XCVR_RX2_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_TXD_N" "XCVR_TX2_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"XCVR_LOOPBACK_2:LANE0_TXD_P" "XCVR_TX2_P" }
+
+
+# Add bus interface net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"APB_TARGET" "HSIO_CoreGPIO_C0_0:APB_bif" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_0_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_0:CLKS_FROM_TXPLL_0" "XCVR_LOOPBACK_2:CLKS_FROM_TXPLL_0" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_TX_PLL_XCVR1_0:CLKS_TO_XCVR" "XCVR_LOOPBACK_1:CLKS_FROM_TXPLL_0" }
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign HIGH_SPEED_INTERFACE
+generate_component -component_name ${sd_name}
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
new file mode 100644
index 0000000..8b5fec7
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/HSIO_CoreGPIO_C0.tcl
@@ -0,0 +1,138 @@
+# Exporting Component Description of HSIO_CoreGPIO_C0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component HSIO_CoreGPIO_C0
+create_and_configure_core -core_vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -component_name {HSIO_CoreGPIO_C0} -params {\
+"APB_WIDTH:32"  \
+"FIXED_CONFIG_0:true"  \
+"FIXED_CONFIG_1:true"  \
+"FIXED_CONFIG_2:true"  \
+"FIXED_CONFIG_3:true"  \
+"FIXED_CONFIG_4:true"  \
+"FIXED_CONFIG_5:true"  \
+"FIXED_CONFIG_6:true"  \
+"FIXED_CONFIG_7:true"  \
+"FIXED_CONFIG_8:true"  \
+"FIXED_CONFIG_9:true"  \
+"FIXED_CONFIG_10:true"  \
+"FIXED_CONFIG_11:true"  \
+"FIXED_CONFIG_12:true"  \
+"FIXED_CONFIG_13:true"  \
+"FIXED_CONFIG_14:true"  \
+"FIXED_CONFIG_15:true"  \
+"FIXED_CONFIG_16:true"  \
+"FIXED_CONFIG_17:true"  \
+"FIXED_CONFIG_18:true"  \
+"FIXED_CONFIG_19:true"  \
+"FIXED_CONFIG_20:false"  \
+"FIXED_CONFIG_21:false"  \
+"FIXED_CONFIG_22:false"  \
+"FIXED_CONFIG_23:false"  \
+"FIXED_CONFIG_24:false"  \
+"FIXED_CONFIG_25:false"  \
+"FIXED_CONFIG_26:false"  \
+"FIXED_CONFIG_27:false"  \
+"FIXED_CONFIG_28:false"  \
+"FIXED_CONFIG_29:false"  \
+"FIXED_CONFIG_30:false"  \
+"FIXED_CONFIG_31:false"  \
+"INT_BUS:0"  \
+"IO_INT_TYPE_0:7"  \
+"IO_INT_TYPE_1:7"  \
+"IO_INT_TYPE_2:7"  \
+"IO_INT_TYPE_3:7"  \
+"IO_INT_TYPE_4:7"  \
+"IO_INT_TYPE_5:7"  \
+"IO_INT_TYPE_6:7"  \
+"IO_INT_TYPE_7:7"  \
+"IO_INT_TYPE_8:7"  \
+"IO_INT_TYPE_9:7"  \
+"IO_INT_TYPE_10:7"  \
+"IO_INT_TYPE_11:7"  \
+"IO_INT_TYPE_12:7"  \
+"IO_INT_TYPE_13:7"  \
+"IO_INT_TYPE_14:7"  \
+"IO_INT_TYPE_15:7"  \
+"IO_INT_TYPE_16:7"  \
+"IO_INT_TYPE_17:7"  \
+"IO_INT_TYPE_18:7"  \
+"IO_INT_TYPE_19:7"  \
+"IO_INT_TYPE_20:7"  \
+"IO_INT_TYPE_21:7"  \
+"IO_INT_TYPE_22:7"  \
+"IO_INT_TYPE_23:7"  \
+"IO_INT_TYPE_24:7"  \
+"IO_INT_TYPE_25:7"  \
+"IO_INT_TYPE_26:7"  \
+"IO_INT_TYPE_27:7"  \
+"IO_INT_TYPE_28:7"  \
+"IO_INT_TYPE_29:7"  \
+"IO_INT_TYPE_30:7"  \
+"IO_INT_TYPE_31:7"  \
+"IO_NUM:20"  \
+"IO_TYPE_0:1"  \
+"IO_TYPE_1:1"  \
+"IO_TYPE_2:1"  \
+"IO_TYPE_3:1"  \
+"IO_TYPE_4:0"  \
+"IO_TYPE_5:0"  \
+"IO_TYPE_6:0"  \
+"IO_TYPE_7:0"  \
+"IO_TYPE_8:0"  \
+"IO_TYPE_9:0"  \
+"IO_TYPE_10:0"  \
+"IO_TYPE_11:0"  \
+"IO_TYPE_12:0"  \
+"IO_TYPE_13:0"  \
+"IO_TYPE_14:0"  \
+"IO_TYPE_15:0"  \
+"IO_TYPE_16:0"  \
+"IO_TYPE_17:0"  \
+"IO_TYPE_18:0"  \
+"IO_TYPE_19:0"  \
+"IO_TYPE_20:0"  \
+"IO_TYPE_21:0"  \
+"IO_TYPE_22:0"  \
+"IO_TYPE_23:0"  \
+"IO_TYPE_24:0"  \
+"IO_TYPE_25:0"  \
+"IO_TYPE_26:0"  \
+"IO_TYPE_27:0"  \
+"IO_TYPE_28:0"  \
+"IO_TYPE_29:0"  \
+"IO_TYPE_30:0"  \
+"IO_TYPE_31:0"  \
+"IO_VAL_0:0"  \
+"IO_VAL_1:0"  \
+"IO_VAL_2:0"  \
+"IO_VAL_3:0"  \
+"IO_VAL_4:0"  \
+"IO_VAL_5:0"  \
+"IO_VAL_6:0"  \
+"IO_VAL_7:0"  \
+"IO_VAL_8:0"  \
+"IO_VAL_9:0"  \
+"IO_VAL_10:0"  \
+"IO_VAL_11:0"  \
+"IO_VAL_12:0"  \
+"IO_VAL_13:0"  \
+"IO_VAL_14:0"  \
+"IO_VAL_15:0"  \
+"IO_VAL_16:0"  \
+"IO_VAL_17:0"  \
+"IO_VAL_18:0"  \
+"IO_VAL_19:0"  \
+"IO_VAL_20:0"  \
+"IO_VAL_21:0"  \
+"IO_VAL_22:0"  \
+"IO_VAL_23:0"  \
+"IO_VAL_24:0"  \
+"IO_VAL_25:0"  \
+"IO_VAL_26:0"  \
+"IO_VAL_27:0"  \
+"IO_VAL_28:0"  \
+"IO_VAL_29:0"  \
+"IO_VAL_30:0"  \
+"IO_VAL_31:0"  \
+"OE_TYPE:0"   }
+# Exporting Component Description of HSIO_CoreGPIO_C0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_CCC_C1.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_CCC_C1.tcl
new file mode 100644
index 0000000..2e1d947
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_CCC_C1.tcl
@@ -0,0 +1,249 @@
+# Exporting Component Description of PF_CCC_C1 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component PF_CCC_C1
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_CCC:*} -component_name {PF_CCC_C1} -params {\
+"DLL_CLK_0_BANKCLK_EN:false"  \
+"DLL_CLK_0_DEDICATED_EN:false"  \
+"DLL_CLK_0_FABCLK_EN:false"  \
+"DLL_CLK_1_BANKCLK_EN:false"  \
+"DLL_CLK_1_DEDICATED_EN:false"  \
+"DLL_CLK_1_FABCLK_EN:false"  \
+"DLL_CLK_P_EN:false"  \
+"DLL_CLK_P_OPTIONS_EN:false"  \
+"DLL_CLK_REF_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_REF_OPTIONS_EN:false"  \
+"DLL_CLK_S_EN:false"  \
+"DLL_CLK_S_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_S_OPTIONS_EN:false"  \
+"DLL_DELAY4:0"  \
+"DLL_DYNAMIC_CODE_EN:false"  \
+"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"DLL_EXPORT_PWRDWN:false"  \
+"DLL_FB_CLK:Primary"  \
+"DLL_FB_EN:false"  \
+"DLL_FINE_PHASE_CODE:0"  \
+"DLL_IN:133"  \
+"DLL_JITTER:0"  \
+"DLL_MODE:PHASE_REF_MODE"  \
+"DLL_ONLY_EN:false"  \
+"DLL_OUT_0:1"  \
+"DLL_OUT_1:1"  \
+"DLL_PRIM_PHASE:90"  \
+"DLL_PRIM_PHASE_CODE:0"  \
+"DLL_SEC_PHASE:90"  \
+"DLL_SEC_PHASE_CODE:0"  \
+"DLL_SELECTED_IN:Output2"  \
+"FF_REQUIRES_LOCK_EN_0:0"  \
+"GL0_0_BANKCLK_USED:false"  \
+"GL0_0_BYPASS:0"  \
+"GL0_0_BYPASS_EN:false"  \
+"GL0_0_DEDICATED_USED:false"  \
+"GL0_0_DIV:12"  \
+"GL0_0_DIVSTART:0"  \
+"GL0_0_DYNAMIC_PH:false"  \
+"GL0_0_EXPOSE_EN:false"  \
+"GL0_0_FABCLK_GATED_USED:false"  \
+"GL0_0_FABCLK_USED:true"  \
+"GL0_0_FREQ_SEL:false"  \
+"GL0_0_IS_USED:true"  \
+"GL0_0_OUT_FREQ:25"  \
+"GL0_0_PHASE_INDEX:0"  \
+"GL0_0_PHASE_SEL:false"  \
+"GL0_0_PLL_PHASE:0"  \
+"GL0_1_BANKCLK_USED:false"  \
+"GL0_1_BYPASS:0"  \
+"GL0_1_BYPASS_EN:false"  \
+"GL0_1_DEDICATED_USED:false"  \
+"GL0_1_DIV:1"  \
+"GL0_1_DIVSTART:0"  \
+"GL0_1_DYNAMIC_PH:false"  \
+"GL0_1_EXPOSE_EN:false"  \
+"GL0_1_FABCLK_USED:false"  \
+"GL0_1_FREQ_SEL:false"  \
+"GL0_1_IS_USED:true"  \
+"GL0_1_OUT_FREQ:100"  \
+"GL0_1_PHASE_INDEX:0"  \
+"GL0_1_PHASE_SEL:false"  \
+"GL0_1_PLL_PHASE:0"  \
+"GL1_0_BANKCLK_USED:false"  \
+"GL1_0_BYPASS:0"  \
+"GL1_0_BYPASS_EN:false"  \
+"GL1_0_DEDICATED_USED:false"  \
+"GL1_0_DIV:1"  \
+"GL1_0_DIVSTART:0"  \
+"GL1_0_DYNAMIC_PH:false"  \
+"GL1_0_EXPOSE_EN:false"  \
+"GL1_0_FABCLK_GATED_USED:false"  \
+"GL1_0_FABCLK_USED:true"  \
+"GL1_0_FREQ_SEL:false"  \
+"GL1_0_IS_USED:false"  \
+"GL1_0_OUT_FREQ:100"  \
+"GL1_0_PHASE_INDEX:0"  \
+"GL1_0_PHASE_SEL:false"  \
+"GL1_0_PLL_PHASE:0"  \
+"GL1_1_BANKCLK_USED:false"  \
+"GL1_1_BYPASS:0"  \
+"GL1_1_BYPASS_EN:false"  \
+"GL1_1_DEDICATED_USED:false"  \
+"GL1_1_DIV:1"  \
+"GL1_1_DIVSTART:0"  \
+"GL1_1_DYNAMIC_PH:false"  \
+"GL1_1_EXPOSE_EN:false"  \
+"GL1_1_FABCLK_USED:false"  \
+"GL1_1_FREQ_SEL:false"  \
+"GL1_1_IS_USED:false"  \
+"GL1_1_OUT_FREQ:0"  \
+"GL1_1_PHASE_INDEX:0"  \
+"GL1_1_PHASE_SEL:false"  \
+"GL1_1_PLL_PHASE:0"  \
+"GL2_0_BANKCLK_USED:false"  \
+"GL2_0_BYPASS:0"  \
+"GL2_0_BYPASS_EN:false"  \
+"GL2_0_DEDICATED_USED:false"  \
+"GL2_0_DIV:1"  \
+"GL2_0_DIVSTART:0"  \
+"GL2_0_DYNAMIC_PH:false"  \
+"GL2_0_EXPOSE_EN:false"  \
+"GL2_0_FABCLK_GATED_USED:false"  \
+"GL2_0_FABCLK_USED:true"  \
+"GL2_0_FREQ_SEL:false"  \
+"GL2_0_IS_USED:false"  \
+"GL2_0_OUT_FREQ:100"  \
+"GL2_0_PHASE_INDEX:0"  \
+"GL2_0_PHASE_SEL:false"  \
+"GL2_0_PLL_PHASE:0"  \
+"GL2_1_BANKCLK_USED:false"  \
+"GL2_1_BYPASS:0"  \
+"GL2_1_BYPASS_EN:false"  \
+"GL2_1_DEDICATED_USED:false"  \
+"GL2_1_DIV:1"  \
+"GL2_1_DIVSTART:0"  \
+"GL2_1_DYNAMIC_PH:false"  \
+"GL2_1_EXPOSE_EN:false"  \
+"GL2_1_FABCLK_USED:false"  \
+"GL2_1_FREQ_SEL:false"  \
+"GL2_1_IS_USED:false"  \
+"GL2_1_OUT_FREQ:0"  \
+"GL2_1_PHASE_INDEX:0"  \
+"GL2_1_PHASE_SEL:false"  \
+"GL2_1_PLL_PHASE:0"  \
+"GL3_0_BANKCLK_USED:false"  \
+"GL3_0_BYPASS:0"  \
+"GL3_0_BYPASS_EN:false"  \
+"GL3_0_DEDICATED_USED:false"  \
+"GL3_0_DIV:1"  \
+"GL3_0_DIVSTART:0"  \
+"GL3_0_DYNAMIC_PH:false"  \
+"GL3_0_EXPOSE_EN:false"  \
+"GL3_0_FABCLK_GATED_USED:false"  \
+"GL3_0_FABCLK_USED:true"  \
+"GL3_0_FREQ_SEL:false"  \
+"GL3_0_IS_USED:false"  \
+"GL3_0_OUT_FREQ:100"  \
+"GL3_0_PHASE_INDEX:0"  \
+"GL3_0_PHASE_SEL:false"  \
+"GL3_0_PLL_PHASE:0"  \
+"GL3_1_BANKCLK_USED:false"  \
+"GL3_1_BYPASS:0"  \
+"GL3_1_BYPASS_EN:false"  \
+"GL3_1_DEDICATED_USED:false"  \
+"GL3_1_DIV:1"  \
+"GL3_1_DIVSTART:0"  \
+"GL3_1_DYNAMIC_PH:false"  \
+"GL3_1_EXPOSE_EN:false"  \
+"GL3_1_FABCLK_USED:false"  \
+"GL3_1_FREQ_SEL:false"  \
+"GL3_1_IS_USED:false"  \
+"GL3_1_OUT_FREQ:0"  \
+"GL3_1_PHASE_INDEX:0"  \
+"GL3_1_PHASE_SEL:false"  \
+"GL3_1_PLL_PHASE:0"  \
+"PLL_ALLOW_CCC_EXT_FB:false"  \
+"PLL_BANDWIDTH_0:2"  \
+"PLL_BANDWIDTH_1:1"  \
+"PLL_BYPASS_GO_B_0:false"  \
+"PLL_BYPASS_GO_B_1:false"  \
+"PLL_BYPASS_POST_0:0"  \
+"PLL_BYPASS_POST_0_0:false"  \
+"PLL_BYPASS_POST_0_1:false"  \
+"PLL_BYPASS_POST_0_2:false"  \
+"PLL_BYPASS_POST_0_3:false"  \
+"PLL_BYPASS_POST_1:0"  \
+"PLL_BYPASS_POST_1_0:false"  \
+"PLL_BYPASS_POST_1_1:false"  \
+"PLL_BYPASS_POST_1_2:false"  \
+"PLL_BYPASS_POST_1_3:false"  \
+"PLL_BYPASS_PRE_0:0"  \
+"PLL_BYPASS_PRE_0_0:false"  \
+"PLL_BYPASS_PRE_0_1:false"  \
+"PLL_BYPASS_PRE_0_2:false"  \
+"PLL_BYPASS_PRE_0_3:false"  \
+"PLL_BYPASS_PRE_1:0"  \
+"PLL_BYPASS_PRE_1_0:false"  \
+"PLL_BYPASS_PRE_1_1:false"  \
+"PLL_BYPASS_PRE_1_2:false"  \
+"PLL_BYPASS_PRE_1_3:false"  \
+"PLL_BYPASS_SEL_0:0"  \
+"PLL_BYPASS_SEL_0_0:false"  \
+"PLL_BYPASS_SEL_0_1:false"  \
+"PLL_BYPASS_SEL_0_2:false"  \
+"PLL_BYPASS_SEL_0_3:false"  \
+"PLL_BYPASS_SEL_1:0"  \
+"PLL_BYPASS_SEL_1_0:false"  \
+"PLL_BYPASS_SEL_1_1:false"  \
+"PLL_BYPASS_SEL_1_2:false"  \
+"PLL_BYPASS_SEL_1_3:false"  \
+"PLL_DELAY_LINE_REF_FB_0:false"  \
+"PLL_DELAY_LINE_REF_FB_1:false"  \
+"PLL_DELAY_LINE_USED_0:false"  \
+"PLL_DELAY_LINE_USED_1:false"  \
+"PLL_DELAY_STEPS_0:1"  \
+"PLL_DELAY_STEPS_1:1"  \
+"PLL_DLL_CASCADED_EN:false"  \
+"PLL_DYNAMIC_CONTROL_EN_0:true"  \
+"PLL_DYNAMIC_CONTROL_EN_1:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false"  \
+"PLL_EXPORT_PWRDWN:true"  \
+"PLL_EXT_MAX_ADDR_0:128"  \
+"PLL_EXT_MAX_ADDR_1:128"  \
+"PLL_EXT_WAVE_SEL_0:0"  \
+"PLL_EXT_WAVE_SEL_1:0"  \
+"PLL_FB_CLK_0:GL0_0"  \
+"PLL_FB_CLK_1:GL0_1"  \
+"PLL_FEEDBACK_MODE_0:Post-VCO"  \
+"PLL_FEEDBACK_MODE_1:Post-VCO"  \
+"PLL_IN_FREQ_0:125"  \
+"PLL_IN_FREQ_1:100"  \
+"PLL_INT_MODE_EN_0:false"  \
+"PLL_INT_MODE_EN_1:false"  \
+"PLL_LOCK_COUNT_0:8"  \
+"PLL_LOCK_COUNT_1:8"  \
+"PLL_LP_REQUIRES_LOCK_EN_0:false"  \
+"PLL_LP_REQUIRES_LOCK_EN_1:false"  \
+"PLL_PLL_CASCADED_EN:false"  \
+"PLL_PLL_CASCADED_SELECTED_CLK:Output2"  \
+"PLL_POSTDIVIDERADDSOFTLOGIC_0:true"  \
+"PLL_REF_CLK_SEL_0:false"  \
+"PLL_REF_CLK_SEL_1:false"  \
+"PLL_REFDIV_0:1"  \
+"PLL_REFDIV_1:1"  \
+"PLL_RESET_ON_LOCK_0:true"  \
+"PLL_SPREAD_MODE_0:false"  \
+"PLL_SPREAD_MODE_1:false"  \
+"PLL_SSM_DEPTH_0:5"  \
+"PLL_SSM_DEPTH_1:5"  \
+"PLL_SSM_DIVVAL_0:1"  \
+"PLL_SSM_DIVVAL_1:1"  \
+"PLL_SSM_FREQ_0:32"  \
+"PLL_SSM_FREQ_1:32"  \
+"PLL_SSM_RAND_PATTERN_0:2"  \
+"PLL_SSM_RAND_PATTERN_1:2"  \
+"PLL_SSMD_EN_0:false"  \
+"PLL_SSMD_EN_1:false"  \
+"PLL_SYNC_CORNER_PLL:false"  \
+"PLL_SYNC_EN:false"  \
+"PLL_VCO_MODE_0:MIN_JITTER"  \
+"PLL_VCO_MODE_1:MIN_JITTER"   }
+# Exporting Component Description of PF_CCC_C1 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
new file mode 100644
index 0000000..25161ed
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_TX_PLL_XCVR1.tcl
@@ -0,0 +1,35 @@
+# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component PF_TX_PLL_XCVR1
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_TX_PLL:2.0.300} -component_name {PF_TX_PLL_XCVR1} -params {\
+"CORE:PF_TX_PLL"  \
+"INIT:0x0"  \
+"TxPLL_AUX_LOW_SEL:true"  \
+"TxPLL_AUX_OUT:125"  \
+"TxPLL_BANDWIDTH:Low"  \
+"TxPLL_CLK_125_EN:true"  \
+"TxPLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"TxPLL_EXT_WAVE_SEL:0"  \
+"TxPLL_FAB_LOCK_EN:false"  \
+"TxPLL_FAB_REF:200"  \
+"TxPLL_INTEGER_MODE:false"  \
+"TxPLL_JITTER_MODE_AT_POWERUP:true"  \
+"TxPLL_JITTER_MODE_CUT_OFF_FREQ:5000"  \
+"TxPLL_JITTER_MODE_OPTIMIZE_FOR:0"  \
+"TxPLL_JITTER_MODE_REFCLK_FREQ:125"  \
+"TxPLL_JITTER_MODE_REFCLK_SEL:DEDICATED"  \
+"TxPLL_JITTER_MODE_SEL:10G SyncE 32Bit"  \
+"TxPLL_JITTER_MODE_WANDER:15"  \
+"TxPLL_MODE:NORMAL"  \
+"TxPLL_OUT:2500.000"  \
+"TxPLL_REF:156.25"  \
+"TxPLL_RN_FILTER:false"  \
+"TxPLL_SOURCE:FABRIC"  \
+"TxPLL_SSM_DEPTH:0"  \
+"TxPLL_SSM_DIVVAL:1"  \
+"TxPLL_SSM_DOWN_SPREAD:false"  \
+"TxPLL_SSM_FREQ:64"  \
+"TxPLL_SSM_RAND_PATTERN:0"  \
+"VCOFREQUENCY:1600"   }
+# Exporting Component Description of PF_TX_PLL_XCVR1 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
new file mode 100644
index 0000000..55f816c
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/PF_XCVR_REF_CLK_C0.tcl
@@ -0,0 +1,12 @@
+# Exporting Component Description of PF_XCVR_REF_CLK_C0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-FCVG484E
+# Create and Configure the core component PF_XCVR_REF_CLK_C0
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_XCVR_REF_CLK:*} -component_name {PF_XCVR_REF_CLK_C0} -params {\
+"ENABLE_FAB_CLK_0:true"  \
+"ENABLE_FAB_CLK_1:false"  \
+"ENABLE_REF_CLK_0:true"  \
+"ENABLE_REF_CLK_1:false"  \
+"REF_CLK_MODE_0:DIFFERENTIAL"  \
+"REF_CLK_MODE_1:LVCMOS"   }
+# Exporting Component Description of PF_XCVR_REF_CLK_C0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_01.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_01.tcl
new file mode 100644
index 0000000..c6ba95c
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_01.tcl
@@ -0,0 +1,248 @@
+# Exporting Component Description of PF_CCC_01 to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component PF_CCC_01
+create_and_configure_core -core_vlnv Actel:SgCore:PF_CCC:* -component_name {PF_CCC_01} -params {\
+"DLL_CLK_0_BANKCLK_EN:false"  \
+"DLL_CLK_0_DEDICATED_EN:false"  \
+"DLL_CLK_0_FABCLK_EN:false"  \
+"DLL_CLK_1_BANKCLK_EN:false"  \
+"DLL_CLK_1_DEDICATED_EN:false"  \
+"DLL_CLK_1_FABCLK_EN:false"  \
+"DLL_CLK_P_EN:false"  \
+"DLL_CLK_P_OPTIONS_EN:false"  \
+"DLL_CLK_REF_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_REF_OPTIONS_EN:false"  \
+"DLL_CLK_S_EN:false"  \
+"DLL_CLK_S_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_S_OPTIONS_EN:false"  \
+"DLL_DELAY4:0"  \
+"DLL_DYNAMIC_CODE_EN:false"  \
+"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"DLL_EXPORT_PWRDWN:false"  \
+"DLL_FB_CLK:Primary"  \
+"DLL_FB_EN:false"  \
+"DLL_FINE_PHASE_CODE:0"  \
+"DLL_IN:1"  \
+"DLL_JITTER:0"  \
+"DLL_MODE:PHASE_REF_MODE"  \
+"DLL_ONLY_EN:false"  \
+"DLL_OUT_0:1"  \
+"DLL_OUT_1:1"  \
+"DLL_PRIM_PHASE:90"  \
+"DLL_PRIM_PHASE_CODE:0"  \
+"DLL_SEC_PHASE:90"  \
+"DLL_SEC_PHASE_CODE:0"  \
+"DLL_SELECTED_IN:Output2"  \
+"FF_REQUIRES_LOCK_EN_0:0"  \
+"GL0_0_BANKCLK_USED:false"  \
+"GL0_0_BYPASS:0"  \
+"GL0_0_BYPASS_EN:false"  \
+"GL0_0_DEDICATED_USED:false"  \
+"GL0_0_DIV:10"  \
+"GL0_0_DIVSTART:0"  \
+"GL0_0_DYNAMIC_PH:false"  \
+"GL0_0_EXPOSE_EN:false"  \
+"GL0_0_FABCLK_GATED_USED:false"  \
+"GL0_0_FABCLK_USED:true"  \
+"GL0_0_FREQ_SEL:false"  \
+"GL0_0_IS_USED:true"  \
+"GL0_0_OUT_FREQ:125"  \
+"GL0_0_PHASE_INDEX:0"  \
+"GL0_0_PHASE_SEL:false"  \
+"GL0_0_PLL_PHASE:0"  \
+"GL0_1_BANKCLK_USED:false"  \
+"GL0_1_BYPASS:0"  \
+"GL0_1_BYPASS_EN:false"  \
+"GL0_1_DEDICATED_USED:false"  \
+"GL0_1_DIV:1"  \
+"GL0_1_DIVSTART:0"  \
+"GL0_1_DYNAMIC_PH:false"  \
+"GL0_1_EXPOSE_EN:false"  \
+"GL0_1_FABCLK_USED:false"  \
+"GL0_1_FREQ_SEL:false"  \
+"GL0_1_IS_USED:true"  \
+"GL0_1_OUT_FREQ:100"  \
+"GL0_1_PHASE_INDEX:0"  \
+"GL0_1_PHASE_SEL:false"  \
+"GL0_1_PLL_PHASE:0"  \
+"GL1_0_BANKCLK_USED:false"  \
+"GL1_0_BYPASS:0"  \
+"GL1_0_BYPASS_EN:false"  \
+"GL1_0_DEDICATED_USED:false"  \
+"GL1_0_DIV:1"  \
+"GL1_0_DIVSTART:0"  \
+"GL1_0_DYNAMIC_PH:false"  \
+"GL1_0_EXPOSE_EN:false"  \
+"GL1_0_FABCLK_GATED_USED:false"  \
+"GL1_0_FABCLK_USED:true"  \
+"GL1_0_FREQ_SEL:false"  \
+"GL1_0_IS_USED:false"  \
+"GL1_0_OUT_FREQ:100"  \
+"GL1_0_PHASE_INDEX:0"  \
+"GL1_0_PHASE_SEL:false"  \
+"GL1_0_PLL_PHASE:0"  \
+"GL1_1_BANKCLK_USED:false"  \
+"GL1_1_BYPASS:0"  \
+"GL1_1_BYPASS_EN:false"  \
+"GL1_1_DEDICATED_USED:false"  \
+"GL1_1_DIV:1"  \
+"GL1_1_DIVSTART:0"  \
+"GL1_1_DYNAMIC_PH:false"  \
+"GL1_1_EXPOSE_EN:false"  \
+"GL1_1_FABCLK_USED:false"  \
+"GL1_1_FREQ_SEL:false"  \
+"GL1_1_IS_USED:false"  \
+"GL1_1_OUT_FREQ:0"  \
+"GL1_1_PHASE_INDEX:0"  \
+"GL1_1_PHASE_SEL:false"  \
+"GL1_1_PLL_PHASE:0"  \
+"GL2_0_BANKCLK_USED:false"  \
+"GL2_0_BYPASS:0"  \
+"GL2_0_BYPASS_EN:false"  \
+"GL2_0_DEDICATED_USED:false"  \
+"GL2_0_DIV:1"  \
+"GL2_0_DIVSTART:0"  \
+"GL2_0_DYNAMIC_PH:false"  \
+"GL2_0_EXPOSE_EN:false"  \
+"GL2_0_FABCLK_GATED_USED:false"  \
+"GL2_0_FABCLK_USED:true"  \
+"GL2_0_FREQ_SEL:false"  \
+"GL2_0_IS_USED:false"  \
+"GL2_0_OUT_FREQ:100"  \
+"GL2_0_PHASE_INDEX:0"  \
+"GL2_0_PHASE_SEL:false"  \
+"GL2_0_PLL_PHASE:0"  \
+"GL2_1_BANKCLK_USED:false"  \
+"GL2_1_BYPASS:0"  \
+"GL2_1_BYPASS_EN:false"  \
+"GL2_1_DEDICATED_USED:false"  \
+"GL2_1_DIV:1"  \
+"GL2_1_DIVSTART:0"  \
+"GL2_1_DYNAMIC_PH:false"  \
+"GL2_1_EXPOSE_EN:false"  \
+"GL2_1_FABCLK_USED:false"  \
+"GL2_1_FREQ_SEL:false"  \
+"GL2_1_IS_USED:false"  \
+"GL2_1_OUT_FREQ:0"  \
+"GL2_1_PHASE_INDEX:0"  \
+"GL2_1_PHASE_SEL:false"  \
+"GL2_1_PLL_PHASE:0"  \
+"GL3_0_BANKCLK_USED:false"  \
+"GL3_0_BYPASS:0"  \
+"GL3_0_BYPASS_EN:false"  \
+"GL3_0_DEDICATED_USED:false"  \
+"GL3_0_DIV:1"  \
+"GL3_0_DIVSTART:0"  \
+"GL3_0_DYNAMIC_PH:false"  \
+"GL3_0_EXPOSE_EN:false"  \
+"GL3_0_FABCLK_GATED_USED:false"  \
+"GL3_0_FABCLK_USED:true"  \
+"GL3_0_FREQ_SEL:false"  \
+"GL3_0_IS_USED:false"  \
+"GL3_0_OUT_FREQ:100"  \
+"GL3_0_PHASE_INDEX:0"  \
+"GL3_0_PHASE_SEL:false"  \
+"GL3_0_PLL_PHASE:0"  \
+"GL3_1_BANKCLK_USED:false"  \
+"GL3_1_BYPASS:0"  \
+"GL3_1_BYPASS_EN:false"  \
+"GL3_1_DEDICATED_USED:false"  \
+"GL3_1_DIV:1"  \
+"GL3_1_DIVSTART:0"  \
+"GL3_1_DYNAMIC_PH:false"  \
+"GL3_1_EXPOSE_EN:false"  \
+"GL3_1_FABCLK_USED:false"  \
+"GL3_1_FREQ_SEL:false"  \
+"GL3_1_IS_USED:false"  \
+"GL3_1_OUT_FREQ:0"  \
+"GL3_1_PHASE_INDEX:0"  \
+"GL3_1_PHASE_SEL:false"  \
+"GL3_1_PLL_PHASE:0"  \
+"PLL_ALLOW_CCC_EXT_FB:false"  \
+"PLL_BANDWIDTH_0:0"  \
+"PLL_BANDWIDTH_1:1"  \
+"PLL_BYPASS_GO_B_0:false"  \
+"PLL_BYPASS_GO_B_1:false"  \
+"PLL_BYPASS_POST_0:0"  \
+"PLL_BYPASS_POST_0_0:false"  \
+"PLL_BYPASS_POST_0_1:false"  \
+"PLL_BYPASS_POST_0_2:false"  \
+"PLL_BYPASS_POST_0_3:false"  \
+"PLL_BYPASS_POST_1:0"  \
+"PLL_BYPASS_POST_1_0:false"  \
+"PLL_BYPASS_POST_1_1:false"  \
+"PLL_BYPASS_POST_1_2:false"  \
+"PLL_BYPASS_POST_1_3:false"  \
+"PLL_BYPASS_PRE_0:0"  \
+"PLL_BYPASS_PRE_0_0:false"  \
+"PLL_BYPASS_PRE_0_1:false"  \
+"PLL_BYPASS_PRE_0_2:false"  \
+"PLL_BYPASS_PRE_0_3:false"  \
+"PLL_BYPASS_PRE_1:0"  \
+"PLL_BYPASS_PRE_1_0:false"  \
+"PLL_BYPASS_PRE_1_1:false"  \
+"PLL_BYPASS_PRE_1_2:false"  \
+"PLL_BYPASS_PRE_1_3:false"  \
+"PLL_BYPASS_SEL_0:0"  \
+"PLL_BYPASS_SEL_0_0:false"  \
+"PLL_BYPASS_SEL_0_1:false"  \
+"PLL_BYPASS_SEL_0_2:false"  \
+"PLL_BYPASS_SEL_0_3:false"  \
+"PLL_BYPASS_SEL_1:0"  \
+"PLL_BYPASS_SEL_1_0:false"  \
+"PLL_BYPASS_SEL_1_1:false"  \
+"PLL_BYPASS_SEL_1_2:false"  \
+"PLL_BYPASS_SEL_1_3:false"  \
+"PLL_DELAY_LINE_REF_FB_0:false"  \
+"PLL_DELAY_LINE_REF_FB_1:false"  \
+"PLL_DELAY_LINE_USED_0:false"  \
+"PLL_DELAY_LINE_USED_1:false"  \
+"PLL_DELAY_STEPS_0:1"  \
+"PLL_DELAY_STEPS_1:1"  \
+"PLL_DLL_CASCADED_EN:false"  \
+"PLL_DYNAMIC_CONTROL_EN_0:true"  \
+"PLL_DYNAMIC_CONTROL_EN_1:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false"  \
+"PLL_EXPORT_PWRDWN:false"  \
+"PLL_EXT_MAX_ADDR_0:128"  \
+"PLL_EXT_MAX_ADDR_1:128"  \
+"PLL_EXT_WAVE_SEL_0:0"  \
+"PLL_EXT_WAVE_SEL_1:0"  \
+"PLL_FB_CLK_0:GL0_0"  \
+"PLL_FB_CLK_1:GL0_1"  \
+"PLL_FEEDBACK_MODE_0:Post-VCO"  \
+"PLL_FEEDBACK_MODE_1:Post-VCO"  \
+"PLL_IN_FREQ_0:160"  \
+"PLL_IN_FREQ_1:100"  \
+"PLL_INT_MODE_EN_0:false"  \
+"PLL_INT_MODE_EN_1:false"  \
+"PLL_LOCK_COUNT_0:0"  \
+"PLL_LOCK_COUNT_1:0"  \
+"PLL_LP_REQUIRES_LOCK_EN_0:false"  \
+"PLL_LP_REQUIRES_LOCK_EN_1:false"  \
+"PLL_PLL_CASCADED_EN:false"  \
+"PLL_PLL_CASCADED_SELECTED_CLK:Output2"  \
+"PLL_POSTDIVIDERADDSOFTLOGIC_0:true"  \
+"PLL_REF_CLK_SEL_0:false"  \
+"PLL_REF_CLK_SEL_1:false"  \
+"PLL_REFDIV_0:4"  \
+"PLL_REFDIV_1:1"  \
+"PLL_SPREAD_MODE_0:false"  \
+"PLL_SPREAD_MODE_1:false"  \
+"PLL_SSM_DEPTH_0:5"  \
+"PLL_SSM_DEPTH_1:5"  \
+"PLL_SSM_DIVVAL_0:1"  \
+"PLL_SSM_DIVVAL_1:1"  \
+"PLL_SSM_FREQ_0:32"  \
+"PLL_SSM_FREQ_1:32"  \
+"PLL_SSM_RAND_PATTERN_0:2"  \
+"PLL_SSM_RAND_PATTERN_1:2"  \
+"PLL_SSMD_EN_0:false"  \
+"PLL_SSMD_EN_1:false"  \
+"PLL_SYNC_CORNER_PLL:false"  \
+"PLL_SYNC_EN:false"  \
+"PLL_VCO_MODE_0:MIN_JITTER"  \
+"PLL_VCO_MODE_1:MIN_JITTER"   }
+# Exporting Component Description of PF_CCC_01 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl
new file mode 100644
index 0000000..3abd00e
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CCC_C0.tcl
@@ -0,0 +1,249 @@
+# Exporting Component Description of PF_CCC_C0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-1FCVG484I
+# Create and Configure the core component PF_CCC_C0
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_CCC:*} -component_name {PF_CCC_C0} -params {\
+"DLL_CLK_0_BANKCLK_EN:false"  \
+"DLL_CLK_0_DEDICATED_EN:false"  \
+"DLL_CLK_0_FABCLK_EN:false"  \
+"DLL_CLK_1_BANKCLK_EN:false"  \
+"DLL_CLK_1_DEDICATED_EN:false"  \
+"DLL_CLK_1_FABCLK_EN:false"  \
+"DLL_CLK_P_EN:false"  \
+"DLL_CLK_P_OPTIONS_EN:false"  \
+"DLL_CLK_REF_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_REF_OPTIONS_EN:false"  \
+"DLL_CLK_S_EN:false"  \
+"DLL_CLK_S_OPTION:DIVIDE_BY_1"  \
+"DLL_CLK_S_OPTIONS_EN:false"  \
+"DLL_DELAY4:0"  \
+"DLL_DYNAMIC_CODE_EN:false"  \
+"DLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"DLL_EXPORT_PWRDWN:false"  \
+"DLL_FB_CLK:Primary"  \
+"DLL_FB_EN:false"  \
+"DLL_FINE_PHASE_CODE:0"  \
+"DLL_IN:133"  \
+"DLL_JITTER:0"  \
+"DLL_MODE:PHASE_REF_MODE"  \
+"DLL_ONLY_EN:false"  \
+"DLL_OUT_0:1"  \
+"DLL_OUT_1:1"  \
+"DLL_PRIM_PHASE:90"  \
+"DLL_PRIM_PHASE_CODE:0"  \
+"DLL_SEC_PHASE:90"  \
+"DLL_SEC_PHASE_CODE:0"  \
+"DLL_SELECTED_IN:Output2"  \
+"FF_REQUIRES_LOCK_EN_0:0"  \
+"GL0_0_BANKCLK_USED:false"  \
+"GL0_0_BYPASS:0"  \
+"GL0_0_BYPASS_EN:false"  \
+"GL0_0_DEDICATED_USED:false"  \
+"GL0_0_DIV:8"  \
+"GL0_0_DIVSTART:0"  \
+"GL0_0_DYNAMIC_PH:false"  \
+"GL0_0_EXPOSE_EN:false"  \
+"GL0_0_FABCLK_GATED_USED:false"  \
+"GL0_0_FABCLK_USED:true"  \
+"GL0_0_FREQ_SEL:false"  \
+"GL0_0_IS_USED:true"  \
+"GL0_0_OUT_FREQ:156.25"  \
+"GL0_0_PHASE_INDEX:0"  \
+"GL0_0_PHASE_SEL:false"  \
+"GL0_0_PLL_PHASE:0"  \
+"GL0_1_BANKCLK_USED:false"  \
+"GL0_1_BYPASS:0"  \
+"GL0_1_BYPASS_EN:false"  \
+"GL0_1_DEDICATED_USED:false"  \
+"GL0_1_DIV:1"  \
+"GL0_1_DIVSTART:0"  \
+"GL0_1_DYNAMIC_PH:false"  \
+"GL0_1_EXPOSE_EN:false"  \
+"GL0_1_FABCLK_USED:false"  \
+"GL0_1_FREQ_SEL:false"  \
+"GL0_1_IS_USED:true"  \
+"GL0_1_OUT_FREQ:100"  \
+"GL0_1_PHASE_INDEX:0"  \
+"GL0_1_PHASE_SEL:false"  \
+"GL0_1_PLL_PHASE:0"  \
+"GL1_0_BANKCLK_USED:false"  \
+"GL1_0_BYPASS:0"  \
+"GL1_0_BYPASS_EN:false"  \
+"GL1_0_DEDICATED_USED:false"  \
+"GL1_0_DIV:1"  \
+"GL1_0_DIVSTART:0"  \
+"GL1_0_DYNAMIC_PH:false"  \
+"GL1_0_EXPOSE_EN:false"  \
+"GL1_0_FABCLK_GATED_USED:false"  \
+"GL1_0_FABCLK_USED:true"  \
+"GL1_0_FREQ_SEL:false"  \
+"GL1_0_IS_USED:false"  \
+"GL1_0_OUT_FREQ:100"  \
+"GL1_0_PHASE_INDEX:0"  \
+"GL1_0_PHASE_SEL:false"  \
+"GL1_0_PLL_PHASE:0"  \
+"GL1_1_BANKCLK_USED:false"  \
+"GL1_1_BYPASS:0"  \
+"GL1_1_BYPASS_EN:false"  \
+"GL1_1_DEDICATED_USED:false"  \
+"GL1_1_DIV:1"  \
+"GL1_1_DIVSTART:0"  \
+"GL1_1_DYNAMIC_PH:false"  \
+"GL1_1_EXPOSE_EN:false"  \
+"GL1_1_FABCLK_USED:false"  \
+"GL1_1_FREQ_SEL:false"  \
+"GL1_1_IS_USED:false"  \
+"GL1_1_OUT_FREQ:0"  \
+"GL1_1_PHASE_INDEX:0"  \
+"GL1_1_PHASE_SEL:false"  \
+"GL1_1_PLL_PHASE:0"  \
+"GL2_0_BANKCLK_USED:false"  \
+"GL2_0_BYPASS:0"  \
+"GL2_0_BYPASS_EN:false"  \
+"GL2_0_DEDICATED_USED:false"  \
+"GL2_0_DIV:1"  \
+"GL2_0_DIVSTART:0"  \
+"GL2_0_DYNAMIC_PH:false"  \
+"GL2_0_EXPOSE_EN:false"  \
+"GL2_0_FABCLK_GATED_USED:false"  \
+"GL2_0_FABCLK_USED:true"  \
+"GL2_0_FREQ_SEL:false"  \
+"GL2_0_IS_USED:false"  \
+"GL2_0_OUT_FREQ:100"  \
+"GL2_0_PHASE_INDEX:0"  \
+"GL2_0_PHASE_SEL:false"  \
+"GL2_0_PLL_PHASE:0"  \
+"GL2_1_BANKCLK_USED:false"  \
+"GL2_1_BYPASS:0"  \
+"GL2_1_BYPASS_EN:false"  \
+"GL2_1_DEDICATED_USED:false"  \
+"GL2_1_DIV:1"  \
+"GL2_1_DIVSTART:0"  \
+"GL2_1_DYNAMIC_PH:false"  \
+"GL2_1_EXPOSE_EN:false"  \
+"GL2_1_FABCLK_USED:false"  \
+"GL2_1_FREQ_SEL:false"  \
+"GL2_1_IS_USED:false"  \
+"GL2_1_OUT_FREQ:0"  \
+"GL2_1_PHASE_INDEX:0"  \
+"GL2_1_PHASE_SEL:false"  \
+"GL2_1_PLL_PHASE:0"  \
+"GL3_0_BANKCLK_USED:false"  \
+"GL3_0_BYPASS:0"  \
+"GL3_0_BYPASS_EN:false"  \
+"GL3_0_DEDICATED_USED:false"  \
+"GL3_0_DIV:1"  \
+"GL3_0_DIVSTART:0"  \
+"GL3_0_DYNAMIC_PH:false"  \
+"GL3_0_EXPOSE_EN:false"  \
+"GL3_0_FABCLK_GATED_USED:false"  \
+"GL3_0_FABCLK_USED:true"  \
+"GL3_0_FREQ_SEL:false"  \
+"GL3_0_IS_USED:false"  \
+"GL3_0_OUT_FREQ:100"  \
+"GL3_0_PHASE_INDEX:0"  \
+"GL3_0_PHASE_SEL:false"  \
+"GL3_0_PLL_PHASE:0"  \
+"GL3_1_BANKCLK_USED:false"  \
+"GL3_1_BYPASS:0"  \
+"GL3_1_BYPASS_EN:false"  \
+"GL3_1_DEDICATED_USED:false"  \
+"GL3_1_DIV:1"  \
+"GL3_1_DIVSTART:0"  \
+"GL3_1_DYNAMIC_PH:false"  \
+"GL3_1_EXPOSE_EN:false"  \
+"GL3_1_FABCLK_USED:false"  \
+"GL3_1_FREQ_SEL:false"  \
+"GL3_1_IS_USED:false"  \
+"GL3_1_OUT_FREQ:0"  \
+"GL3_1_PHASE_INDEX:0"  \
+"GL3_1_PHASE_SEL:false"  \
+"GL3_1_PLL_PHASE:0"  \
+"PLL_ALLOW_CCC_EXT_FB:false"  \
+"PLL_BANDWIDTH_0:2"  \
+"PLL_BANDWIDTH_1:1"  \
+"PLL_BYPASS_GO_B_0:false"  \
+"PLL_BYPASS_GO_B_1:false"  \
+"PLL_BYPASS_POST_0:0"  \
+"PLL_BYPASS_POST_0_0:false"  \
+"PLL_BYPASS_POST_0_1:false"  \
+"PLL_BYPASS_POST_0_2:false"  \
+"PLL_BYPASS_POST_0_3:false"  \
+"PLL_BYPASS_POST_1:0"  \
+"PLL_BYPASS_POST_1_0:false"  \
+"PLL_BYPASS_POST_1_1:false"  \
+"PLL_BYPASS_POST_1_2:false"  \
+"PLL_BYPASS_POST_1_3:false"  \
+"PLL_BYPASS_PRE_0:0"  \
+"PLL_BYPASS_PRE_0_0:false"  \
+"PLL_BYPASS_PRE_0_1:false"  \
+"PLL_BYPASS_PRE_0_2:false"  \
+"PLL_BYPASS_PRE_0_3:false"  \
+"PLL_BYPASS_PRE_1:0"  \
+"PLL_BYPASS_PRE_1_0:false"  \
+"PLL_BYPASS_PRE_1_1:false"  \
+"PLL_BYPASS_PRE_1_2:false"  \
+"PLL_BYPASS_PRE_1_3:false"  \
+"PLL_BYPASS_SEL_0:0"  \
+"PLL_BYPASS_SEL_0_0:false"  \
+"PLL_BYPASS_SEL_0_1:false"  \
+"PLL_BYPASS_SEL_0_2:false"  \
+"PLL_BYPASS_SEL_0_3:false"  \
+"PLL_BYPASS_SEL_1:0"  \
+"PLL_BYPASS_SEL_1_0:false"  \
+"PLL_BYPASS_SEL_1_1:false"  \
+"PLL_BYPASS_SEL_1_2:false"  \
+"PLL_BYPASS_SEL_1_3:false"  \
+"PLL_DELAY_LINE_REF_FB_0:false"  \
+"PLL_DELAY_LINE_REF_FB_1:false"  \
+"PLL_DELAY_LINE_USED_0:false"  \
+"PLL_DELAY_LINE_USED_1:false"  \
+"PLL_DELAY_STEPS_0:1"  \
+"PLL_DELAY_STEPS_1:1"  \
+"PLL_DLL_CASCADED_EN:false"  \
+"PLL_DYNAMIC_CONTROL_EN_0:true"  \
+"PLL_DYNAMIC_CONTROL_EN_1:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_0:false"  \
+"PLL_DYNAMIC_RECONFIG_INTERFACE_EN_1:false"  \
+"PLL_EXPORT_PWRDWN:false"  \
+"PLL_EXT_MAX_ADDR_0:128"  \
+"PLL_EXT_MAX_ADDR_1:128"  \
+"PLL_EXT_WAVE_SEL_0:0"  \
+"PLL_EXT_WAVE_SEL_1:0"  \
+"PLL_FB_CLK_0:GL0_0"  \
+"PLL_FB_CLK_1:GL0_1"  \
+"PLL_FEEDBACK_MODE_0:Post-VCO"  \
+"PLL_FEEDBACK_MODE_1:Post-VCO"  \
+"PLL_IN_FREQ_0:100"  \
+"PLL_IN_FREQ_1:100"  \
+"PLL_INT_MODE_EN_0:false"  \
+"PLL_INT_MODE_EN_1:false"  \
+"PLL_LOCK_COUNT_0:8"  \
+"PLL_LOCK_COUNT_1:8"  \
+"PLL_LP_REQUIRES_LOCK_EN_0:false"  \
+"PLL_LP_REQUIRES_LOCK_EN_1:false"  \
+"PLL_PLL_CASCADED_EN:false"  \
+"PLL_PLL_CASCADED_SELECTED_CLK:Output2"  \
+"PLL_POSTDIVIDERADDSOFTLOGIC_0:true"  \
+"PLL_REF_CLK_SEL_0:false"  \
+"PLL_REF_CLK_SEL_1:false"  \
+"PLL_REFDIV_0:1"  \
+"PLL_REFDIV_1:1"  \
+"PLL_RESET_ON_LOCK_0:true"  \
+"PLL_SPREAD_MODE_0:false"  \
+"PLL_SPREAD_MODE_1:false"  \
+"PLL_SSM_DEPTH_0:5"  \
+"PLL_SSM_DEPTH_1:5"  \
+"PLL_SSM_DIVVAL_0:1"  \
+"PLL_SSM_DIVVAL_1:1"  \
+"PLL_SSM_FREQ_0:32"  \
+"PLL_SSM_FREQ_1:32"  \
+"PLL_SSM_RAND_PATTERN_0:2"  \
+"PLL_SSM_RAND_PATTERN_1:2"  \
+"PLL_SSMD_EN_0:false"  \
+"PLL_SSMD_EN_1:false"  \
+"PLL_SYNC_CORNER_PLL:false"  \
+"PLL_SYNC_EN:false"  \
+"PLL_VCO_MODE_0:MIN_JITTER"  \
+"PLL_VCO_MODE_1:MIN_JITTER"   }
+# Exporting Component Description of PF_CCC_C0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl
new file mode 100644
index 0000000..c6a23b9
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_CLK_DIV_C0.tcl
@@ -0,0 +1,9 @@
+# Exporting Component Description of PF_CLK_DIV_C0 to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component PF_CLK_DIV_C0
+create_and_configure_core -core_vlnv Actel:SgCore:PF_CLK_DIV:* -component_name {PF_CLK_DIV_C0} -params {\
+"DIVIDER:4"  \
+"ENABLE_BIT_SLIP:false"  \
+"ENABLE_SRESET:false"   }
+# Exporting Component Description of PF_CLK_DIV_C0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_OSC_0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_OSC_0.tcl
new file mode 100644
index 0000000..88eb2d4
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_OSC_0.tcl
@@ -0,0 +1,12 @@
+# Exporting Component Description of PF_OSC_0 to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component PF_OSC_0
+create_and_configure_core -core_vlnv Actel:SgCore:PF_OSC:1.0.102 -component_name {PF_OSC_0} -params {\
+"RCOSC_2MHZ_CLK_DIV_EN:false"  \
+"RCOSC_2MHZ_GL_EN:false"  \
+"RCOSC_2MHZ_NGMUX_EN:false"  \
+"RCOSC_160MHZ_CLK_DIV_EN:false"  \
+"RCOSC_160MHZ_GL_EN:true"  \
+"RCOSC_160MHZ_NGMUX_EN:false"   }
+# Exporting Component Description of PF_OSC_0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl
new file mode 100644
index 0000000..71025d8
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_TX_PLL_0.tcl
@@ -0,0 +1,35 @@
+# Exporting Component Description of PF_TX_PLL_0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-1FCVG484I
+# Create and Configure the core component PF_TX_PLL_0
+create_and_configure_core -core_vlnv {Actel:SgCore:PF_TX_PLL:*} -component_name {PF_TX_PLL_0} -params {\
+"CORE:PF_TX_PLL"  \
+"INIT:0x0"  \
+"TxPLL_AUX_LOW_SEL:true"  \
+"TxPLL_AUX_OUT:125"  \
+"TxPLL_BANDWIDTH:Low"  \
+"TxPLL_CLK_125_EN:true"  \
+"TxPLL_DYNAMIC_RECONFIG_INTERFACE_EN:false"  \
+"TxPLL_EXT_WAVE_SEL:0"  \
+"TxPLL_FAB_LOCK_EN:false"  \
+"TxPLL_FAB_REF:200"  \
+"TxPLL_INTEGER_MODE:false"  \
+"TxPLL_JITTER_MODE_AT_POWERUP:true"  \
+"TxPLL_JITTER_MODE_CUT_OFF_FREQ:5000"  \
+"TxPLL_JITTER_MODE_OPTIMIZE_FOR:0"  \
+"TxPLL_JITTER_MODE_REFCLK_FREQ:125"  \
+"TxPLL_JITTER_MODE_REFCLK_SEL:DEDICATED"  \
+"TxPLL_JITTER_MODE_SEL:10G SyncE 32Bit"  \
+"TxPLL_JITTER_MODE_WANDER:15"  \
+"TxPLL_MODE:NORMAL"  \
+"TxPLL_OUT:2500.000"  \
+"TxPLL_REF:156.25"  \
+"TxPLL_RN_FILTER:false"  \
+"TxPLL_SOURCE:FABRIC"  \
+"TxPLL_SSM_DEPTH:0"  \
+"TxPLL_SSM_DIVVAL:1"  \
+"TxPLL_SSM_DOWN_SPREAD:false"  \
+"TxPLL_SSM_FREQ:64"  \
+"TxPLL_SSM_RAND_PATTERN:0"  \
+"VCOFREQUENCY:1600"   }
+# Exporting Component Description of PF_TX_PLL_0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl
new file mode 100644
index 0000000..1d1081e
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_0.tcl
@@ -0,0 +1,55 @@
+# Exporting Component Description of PF_XCVR_0 to TCL
+# Family: PolarFireSoC
+# Part Number: MPFS025T-1FCVG484I
+# Create and Configure the core component PF_XCVR_0
+create_and_configure_core -core_vlnv {Actel:SystemBuilder:PF_XCVR_ERM:*} -component_name {PF_XCVR_0} -params {\
+"EXPOSE_ALL_DEBUG_PORTS:false" \
+"EXPOSE_FWF_EN_PORTS:false" \
+"SHOW_UNIVERSAL_SOLN_PORTS:true" \
+"UI_CDR_LOCK_MODE:Lock to data" \
+"UI_CDR_REFERENCE_CLK_FREQ:156.25" \
+"UI_CDR_REFERENCE_CLK_SOURCE:Fabric" \
+"UI_CDR_REFERENCE_CLK_TOLERANCE:1" \
+"UI_ENABLE_32BIT_DATA_WIDTH:false" \
+"UI_ENABLE_64B66B:true" \
+"UI_ENABLE_64B67B:false" \
+"UI_ENABLE_64B6XB_MODE:false" \
+"UI_ENABLE_8B10B_MODE:true" \
+"UI_ENABLE_BER:false" \
+"UI_ENABLE_DISPARITY:false" \
+"UI_ENABLE_FIBRE_CHANNEL_DISPARITY:false" \
+"UI_ENABLE_PHASE_COMP_MODE:false" \
+"UI_ENABLE_PIPE_MODE:false" \
+"UI_ENABLE_PMA_MODE:false" \
+"UI_ENABLE_SCRAMBLING:false" \
+"UI_ENABLE_SWITCH_BETWEEN_CDR_REFCLKS:false" \
+"UI_ENABLE_SWITCH_BETWEEN_TXPLLS:false" \
+"UI_EXPOSE_APBLINK_PORTS:false" \
+"UI_EXPOSE_CDR_BITSLIP_PORT:false" \
+"UI_EXPOSE_DYNAMIC_RECONFIGURATION_PORTS:false" \
+"UI_EXPOSE_JA_CLOCK_PORT:false" \
+"UI_EXPOSE_RX_READY_VAL_CDR_PORT:false" \
+"UI_EXPOSE_TX_BYPASS_DATA:false" \
+"UI_EXPOSE_TX_ELEC_IDLE:false" \
+"UI_INTERFACE_RXCLOCK:Regional" \
+"UI_INTERFACE_TXCLOCK:Regional" \
+"UI_IS_CONFIGURED:true" \
+"UI_NUMBER_OF_LANES:1" \
+"UI_PCS_ARST_N:RX Only" \
+"UI_PIPE_PROTOCOL_USED:PCIe" \
+"UI_PMA_ARST_N:TX and RX PMA" \
+"UI_PROTOCOL_PRESET_USED:None" \
+"UI_RX_DATA_RATE:5000" \
+"UI_RX_PCS_FAB_IF_WIDTH:32" \
+"UI_SATA_IDLE_BURST_TIMING:MAC" \
+"UI_TX_CLK_DIV_FACTOR:1" \
+"UI_TX_DATA_RATE:5000" \
+"UI_TX_PCS_FAB_IF_WIDTH:32" \
+"UI_TX_RX_MODE:Duplex" \
+"UI_USE_INTERFACE_CLK_AS_PLL_REFCLK:false" \
+"UI_XCVR_RX_CALIBRATION:None (CDR)" \
+"UI_XCVR_RX_DATA_EYE_CALIBRATION:false" \
+"UI_XCVR_RX_DFE_COEFF_CALIBRATION:false" \
+"UI_XCVR_RX_ENHANCED_MANAGEMENT:true" \
+"XT_ES_DEVICE:false" }
+# Exporting Component Description of PF_XCVR_0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl
new file mode 100644
index 0000000..94d64dc
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/PF_XCVR_REF_CLK_0.tcl
@@ -0,0 +1,12 @@
+# Exporting Component Description of PF_XCVR_REF_CLK_0 to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component PF_XCVR_REF_CLK_0
+create_and_configure_core -core_vlnv Actel:SgCore:PF_XCVR_REF_CLK:* -component_name {PF_XCVR_REF_CLK_0} -params {\
+"ENABLE_FAB_CLK_0:false"  \
+"ENABLE_FAB_CLK_1:false"  \
+"ENABLE_REF_CLK_0:true"  \
+"ENABLE_REF_CLK_1:false"  \
+"REF_CLK_MODE_0:DIFFERENTIAL"  \
+"REF_CLK_MODE_1:LVCMOS"   }
+# Exporting Component Description of PF_XCVR_REF_CLK_0 to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_Block.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_Block.tcl
new file mode 100644
index 0000000..56de848
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_Block.tcl
@@ -0,0 +1,66 @@
+puts "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+puts "vvvvvvvvvvvvvvvvvvvvvv Create Transceivers Reset Block vvvvvvvvvvvvvvvvvvvvvvv"
+puts "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+
+# Creating SmartDesign Reset_Block
+set sd_name {Reset_Block}
+create_smartdesign -sd_name ${sd_name}
+
+# Disable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 0
+
+# Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {BANK_x_VDDI_STATUS} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {BANK_y_VDDI_STATUS} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_clk} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RX_ready} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TX_clk_stable} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TX_clk} -port_direction {IN}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {Pattern_chk_rst_n} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {Pattern_gen_rst_n} -port_direction {OUT}
+
+
+
+# Add Reset_sync_rx_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_sync_rx} -instance_name {Reset_sync_rx_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:SS_BUSY} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:FF_US_RESTORE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:FPGA_POR_N} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {Reset_sync_rx_0:PLL_POWERDOWN_B}
+
+
+
+# Add Reset_sync_tx_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_sync_tx} -instance_name {Reset_sync_tx_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:SS_BUSY} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:FF_US_RESTORE} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:FPGA_POR_N} -value {VCC}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {Reset_sync_tx_0:PLL_POWERDOWN_B}
+
+
+
+# Add scalar net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BANK_x_VDDI_STATUS" "Reset_sync_rx_0:BANK_x_VDDI_STATUS" "Reset_sync_tx_0:BANK_x_VDDI_STATUS" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"BANK_y_VDDI_STATUS" "Reset_sync_rx_0:BANK_y_VDDI_STATUS" "Reset_sync_tx_0:BANK_y_VDDI_STATUS" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "Reset_sync_rx_0:EXT_RST_N" "Reset_sync_tx_0:EXT_RST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"INIT_DONE" "Reset_sync_rx_0:INIT_DONE" "Reset_sync_tx_0:INIT_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Pattern_chk_rst_n" "Reset_sync_rx_0:FABRIC_RESET_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Pattern_gen_rst_n" "Reset_sync_tx_0:FABRIC_RESET_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"RX_clk" "Reset_sync_rx_0:CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"RX_ready" "Reset_sync_rx_0:PLL_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_sync_tx_0:CLK" "TX_clk" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_sync_tx_0:PLL_LOCK" "TX_clk_stable" }
+
+
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign Reset_Block
+generate_component -component_name ${sd_name}
+
+puts "^^^^^^^^^^^^^^^^^ Create Transceivers Reset Block Complete ^^^^^^^^^^^^^^^^^^^"
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_rx.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_rx.tcl
new file mode 100644
index 0000000..b2fad00
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_rx.tcl
@@ -0,0 +1,6 @@
+# Exporting Component Description of Reset_sync_rx to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component Reset_sync_rx
+create_and_configure_core -core_vlnv Actel:DirectCore:CORERESET_PF:2.3.100 -component_name {Reset_sync_rx} -params { }
+# Exporting Component Description of Reset_sync_rx to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_tx.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_tx.tcl
new file mode 100644
index 0000000..18005a5
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/Reset_sync_tx.tcl
@@ -0,0 +1,6 @@
+# Exporting Component Description of Reset_sync_tx to TCL
+# Family: PolarFire
+# Part Number: MPF300TS-1FCG1152I
+# Create and Configure the core component Reset_sync_tx
+create_and_configure_core -core_vlnv Actel:DirectCore:CORERESET_PF:2.3.100 -component_name {Reset_sync_tx} -params { }
+# Exporting Component Description of Reset_sync_tx to TCL done
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl
new file mode 100644
index 0000000..31bb785
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/XCVR_LOOPBACK/XCVR_LOOPBACK.tcl
@@ -0,0 +1,151 @@
+# Creating SmartDesign XCVR_LOOPBACK
+set sd_name {XCVR_LOOPBACK}
+create_smartdesign -sd_name ${sd_name}
+
+# Disable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 0
+
+# Create top level Scalar Ports
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_BIT_CLK_0} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_PLL_LOCK_0} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0_TX_PLL_REF_CLK_0} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {DEVICE_INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {EXT_RST_N} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_RXD_N} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_RXD_P} -port_direction {IN} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {RCOSC_160MHZ_GL} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_INIT_DONE} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_REF_CLK_LOCK} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {XCVR_REF_CLK} -port_direction {IN}
+
+sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_TXD_N} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {LANE0_TXD_P} -port_direction {OUT} -port_is_pad {1}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_0_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_1_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_2_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {TEST_MODE_3_LED} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {error_o} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {lock_o} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {rx_val_o} -port_direction {OUT}
+
+
+
+# Create top level Bus interface Ports
+sd_create_bif_port -sd_name ${sd_name} -port_name {CLKS_FROM_TXPLL_0} -port_bif_vlnv {Actel:busdef.clock:PF_TXPLL_XCVR_CLK:1.0} -port_bif_role {slave} -port_bif_mapping {\
+"LOCK:CLKS_FROM_TXPLL_0_TX_PLL_LOCK_0" \
+"BIT_CLK:CLKS_FROM_TXPLL_0_TX_BIT_CLK_0" \
+"REF_CLK_TO_LANE:CLKS_FROM_TXPLL_0_TX_PLL_REF_CLK_0" } 
+
+# Add AND2_0 instance
+sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
+
+
+
+# Add pattern_chk_0 instance
+sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {PATTERN_CHK} -instance_name {pattern_chk_0}
+# Exporting Parameters of instance pattern_chk_0
+sd_configure_core_instance -sd_name ${sd_name} -instance_name {pattern_chk_0} -params {\
+"g_DATA_WID:32" \
+"STATE_0:0" \
+"STATE_1:1" \
+"STATE_2:2" \
+"STATE_3:3" \
+"STATE_4:4" \
+"STATE_5:5" }\
+-validate_rules 0
+sd_save_core_instance_config -sd_name ${sd_name} -instance_name {pattern_chk_0}
+sd_update_instance -sd_name ${sd_name} -instance_name {pattern_chk_0}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[0:0]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[1:1]}
+sd_create_pin_slices -sd_name ${sd_name} -pin_name {pattern_chk_0:s_count} -pin_slices {[2:2]}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:RESET_EN} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:generate_err} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {pattern_chk_0:LANE_ARST_N}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:start_i} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_chk_0:clear_i} -value {GND}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {pattern_chk_0:error_count_o}
+
+
+
+# Add pattern_gen_0 instance
+sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {PATTERN_GEN} -instance_name {pattern_gen_0}
+# Exporting Parameters of instance pattern_gen_0
+sd_configure_core_instance -sd_name ${sd_name} -instance_name {pattern_gen_0} -params {\
+"g_DATA_WID:32" \
+"STATE_0:0" \
+"STATE_1:1" \
+"STATE_2:2" \
+"STATE_3:3" \
+"STATE_4:4" \
+"STATE_5:5" }\
+-validate_rules 0
+sd_save_core_instance_config -sd_name ${sd_name} -instance_name {pattern_gen_0}
+sd_update_instance -sd_name ${sd_name} -instance_name {pattern_gen_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {pattern_gen_0:generate_err_i} -value {GND}
+
+
+
+# Add PF_XCVR_0_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {PF_XCVR_0} -instance_name {PF_XCVR_0_0}
+sd_mark_pins_unused -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_RX_IDLE}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_LOS} -value {GND}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {PF_XCVR_0_0:LANE0_TX_DISPFNC} -value {GND}
+
+
+
+# Add Reset_Block_0 instance
+sd_instantiate_component -sd_name ${sd_name} -component_name {Reset_Block} -instance_name {Reset_Block_0}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_Block_0:BANK_x_VDDI_STATUS} -value {VCC}
+sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {Reset_Block_0:BANK_y_VDDI_STATUS} -value {VCC}
+
+
+
+# Add startup_0 instance
+sd_instantiate_hdl_core -sd_name ${sd_name} -hdl_core_name {STARTUP} -instance_name {startup_0}
+
+
+
+# Add scalar net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:A" "PF_XCVR_0_0:LANE0_TX_CLK_STABLE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:B" "XCVR_REF_CLK_LOCK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "Reset_Block_0:TX_clk_stable" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"DEVICE_INIT_DONE" "Reset_Block_0:INIT_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"EXT_RST_N" "Reset_Block_0:EXT_RST_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_RXD_N" "PF_XCVR_0_0:LANE0_RXD_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_RXD_P" "PF_XCVR_0_0:LANE0_RXD_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_TXD_N" "PF_XCVR_0_0:LANE0_TXD_N" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"LANE0_TXD_P" "PF_XCVR_0_0:LANE0_TXD_P" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:CTRL_ARST_N" "PF_XCVR_0_0:LANE0_PCS_ARST_N" "PF_XCVR_0_0:LANE0_PMA_ARST_N" "XCVR_INIT_DONE" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:CTRL_CLK" "RCOSC_160MHZ_GL" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_CDR_REF_CLK_FAB" "XCVR_REF_CLK" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_CLK_R" "Reset_Block_0:RX_clk" "pattern_chk_0:clk_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_READY" "Reset_Block_0:RX_ready" "pattern_chk_0:RX_READY" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_VAL" "pattern_chk_0:rx_val_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_TX_CLK_R" "Reset_Block_0:TX_clk" "pattern_gen_0:clk_i" "startup_0:tx_clk_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_Block_0:Pattern_chk_rst_n" "TEST_MODE_3_LED" "pattern_chk_0:ARST_N" "pattern_chk_0:reset_n_i" "startup_0:pattern_chk_n_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"Reset_Block_0:Pattern_gen_rst_n" "startup_0:pattern_gen_n_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_0_LED" "pattern_chk_0:s_count[0:0]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_1_LED" "pattern_chk_0:s_count[1:1]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"TEST_MODE_2_LED" "pattern_chk_0:s_count[2:2]" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"error_o" "pattern_chk_0:error_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"lock_o" "pattern_chk_0:lock_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"pattern_chk_0:rx_val_o" "rx_val_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"pattern_gen_0:reset_n_i" "startup_0:start_gen_o" }
+
+# Add bus net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_8B10B_RX_K" "pattern_chk_0:Rx_K_Char_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_8B10B_TX_K" "pattern_gen_0:Tx_K_Char_o" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_CODE_VIOLATION" "pattern_chk_0:LCV_ERR" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_DATA" "pattern_chk_0:data_in_i" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_RX_DISPARITY_ERROR" "pattern_chk_0:DISP_ERR" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PF_XCVR_0_0:LANE0_TX_DATA" "pattern_gen_0:data_out_o" }
+
+# Add bus interface net connections
+sd_connect_pins -sd_name ${sd_name} -pin_names {"CLKS_FROM_TXPLL_0" "PF_XCVR_0_0:CLKS_FROM_TXPLL_0" }
+
+# Re-enable auto promotion of pins of type 'pad'
+auto_promote_pad_pins -promote_all 1
+# Save the smartDesign
+save_smartdesign -sd_name ${sd_name}
+# Generate SmartDesign XCVR_LOOPBACK
+generate_component -component_name ${sd_name}
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..dc6babf
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1,148 @@
+set_io -port_name XCVR_TX1_N    \
+    -pin_name H21 \
+    -DIRECTION OUTPUT
+
+set_io -port_name XCVR_TX1_P    \
+    -pin_name H22 \
+    -DIRECTION OUTPUT
+
+set_io -port_name XCVR_TX2_N    \
+    -pin_name P21 \
+    -DIRECTION OUTPUT
+
+set_io -port_name XCVR_TX2_P    \
+    -pin_name P22 \
+    -DIRECTION OUTPUT
+
+set_io -port_name XCVR_TX3_N    \
+    -pin_name T21 \
+    -DIRECTION OUTPUT
+
+set_io -port_name XCVR_TX3_P    \
+    -pin_name T22 \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name XCVR_RX1_N    \
+    -pin_name K21 \
+    -DIRECTION INPUT
+
+set_io -port_name XCVR_RX1_P \
+    -pin_name K22 \
+    -DIRECTION INPUT
+
+set_io -port_name XCVR_RX2_N    \
+    -pin_name M21 \
+    -DIRECTION INPUT
+
+set_io -port_name XCVR_RX2_P \
+    -pin_name M22 \
+    -DIRECTION INPUT
+
+set_io -port_name XCVR_RX3_N    \
+    -pin_name R19 \
+    -DIRECTION INPUT
+
+set_io -port_name XCVR_RX3_P    \
+    -pin_name R20 \
+    -DIRECTION INPUT
+
+    
+#set_io -port_name XCVR_0A_REFCLK_P  \
+#    -pin_name L19                \
+#    -DIRECTION INPUT
+#    
+#set_io -port_name XCVR_0A_REFCLK_N  \
+#    -pin_name L20                \
+#    -DIRECTION INPUT
+
+
+set_io -port_name XCVR_0B_REFCLK_P  \
+    -pin_name N19                \
+    -DIRECTION INPUT
+    
+set_io -port_name XCVR_0B_REFCLK_N  \
+    -pin_name N20                \
+    -DIRECTION INPUT
+
+
+set_io -port_name XCVR_0C_REFCLK_P  \
+    -pin_name J19                \
+    -DIRECTION INPUT
+    
+set_io -port_name XCVR_0C_REFCLK_N  \
+    -pin_name J20                \
+    -DIRECTION INPUT
+
+
+
+set_io -port_name B0_HSIO70N  \
+    -pin_name AB20          \
+    -fixed true             \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name B0_HSIO70P  \
+    -pin_name AB19          \
+    -fixed true             \
+    -DIRECTION INPUT
+
+
+set_io -port_name B0_HSIO71N  \
+    -pin_name AA20           \
+    -fixed true             \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name B0_HSIO71P  \
+    -pin_name AB21           \
+    -fixed true             \
+    -DIRECTION INPUT
+
+
+set_io -port_name B0_HSIO73N_C2P_CLKN  \
+    -pin_name U17           \
+    -fixed true             \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name B0_HSIO73P_C2P_CLKP  \
+    -pin_name T17           \
+    -fixed true             \
+    -DIRECTION INPUT
+
+
+set_io -port_name B0_HSIO81N  \
+    -pin_name AA17          \
+    -fixed true             \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name B0_HSIO81P  \
+    -pin_name AB17          \
+    -fixed true             \
+    -DIRECTION INPUT
+
+
+set_io -port_name B0_HSIO82N  \
+    -pin_name Y16           \
+    -fixed true             \
+    -DIRECTION INOUT
+
+
+set_io -port_name B0_HSIO82P  \
+    -pin_name AA16          \
+    -fixed true             \
+    -DIRECTION INPUT
+
+
+set_io -port_name B0_HSIO83N  \
+    -pin_name W17           \
+    -fixed true             \
+    -DIRECTION OUTPUT
+
+
+set_io -port_name B0_HSIO83P  \
+    -pin_name W16          \
+    -fixed true             \
+    -DIRECTION INPUT
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..06e341a
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1,8 @@
+
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_C0_0/PF_XCVR_REF_CLK_C0_0/I_IO -fixed true -x 1014 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_0/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1009 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_TX_PLL_0_0/PF_TX_PLL_0_0/txpll_isnt_0 -fixed true -x 1009 -y 77
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_2/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_XCVR_REF_CLK_0_0/PF_XCVR_REF_CLK_0_0/I_IO -fixed true -x 1015 -y 74
+set_location -inst_name HIGH_SPEED_INTERFACE_0/PF_TX_PLL_XCVR1_0/PF_TX_PLL_XCVR1_0/txpll_isnt_0 -fixed true -x 1008 -y 77
+set_location -inst_name HIGH_SPEED_INTERFACE_0/XCVR_LOOPBACK_1/PF_XCVR_0_0/I_XCVR/LANE0 -fixed true -x 1008 -y 47
-- 
GitLab


From b1a286e90d6025fc17c732ffe89f45e911d585d6 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 18:52:42 +0100
Subject: [PATCH 13/19] SYZYGY: Add floor placement constraints for all build
 options.

---
 .../constraints/fp/HIGH_SPEED_CONNECTOR.pdc                      | 1 +
 .../constraints/fp/HIGH_SPEED_CONNECTOR.pdc                      | 1 +
 .../DEFAULT/constraints/fp/HIGH_SPEED_CONNECTOR.pdc              | 1 +
 .../IO_BOARD_VALIDATION/constraints/fp/HIGH_SPEED_CONNECTOR.pdc  | 1 +
 .../IO_STUB/constraints/fp/HIGH_SPEED_CONNECTOR.pdc              | 1 +
 .../NONE/constraints/fp/HIGH_SPEED_CONNECTOR.pdc                 | 1 +
 6 files changed, 6 insertions(+)
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_OPAL_KELLY/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO_2_LANES/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/IO_BOARD_VALIDATION/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/IO_STUB/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/NONE/constraints/fp/HIGH_SPEED_CONNECTOR.pdc

diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_OPAL_KELLY/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_OPAL_KELLY/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_OPAL_KELLY/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO_2_LANES/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO_2_LANES/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO_2_LANES/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/DEFAULT/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/IO_BOARD_VALIDATION/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/IO_BOARD_VALIDATION/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/IO_BOARD_VALIDATION/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/IO_STUB/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/IO_STUB/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/IO_STUB/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/NONE/constraints/fp/HIGH_SPEED_CONNECTOR.pdc b/script_support/components/HIGH_SPEED_CONNECTOR/NONE/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
new file mode 100644
index 0000000..329be74
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/NONE/constraints/fp/HIGH_SPEED_CONNECTOR.pdc
@@ -0,0 +1 @@
+# No floor placement required for this build option.
-- 
GitLab


From 77fe29fe946d42e9f6761dc33f781a5d6ca452cc Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Tue, 27 Jun 2023 12:00:02 +0100
Subject: [PATCH 14/19] PCIe: Add device tree overlay

---
 .../components/M2/DEFAULT/device-tree-overlay/pcie.dtso  | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 script_support/components/M2/DEFAULT/device-tree-overlay/pcie.dtso

diff --git a/script_support/components/M2/DEFAULT/device-tree-overlay/pcie.dtso b/script_support/components/M2/DEFAULT/device-tree-overlay/pcie.dtso
new file mode 100644
index 0000000..0c8fa68
--- /dev/null
+++ b/script_support/components/M2/DEFAULT/device-tree-overlay/pcie.dtso
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/dts-v1/;
+/plugin/;
+
+&pcie {
+	status = "okay";
+};
-- 
GitLab


From 2d4d5a454888015706839d819edf9a8f39a5e0c1 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 18:13:20 +0100
Subject: [PATCH 15/19] Device tree: Add test devive tree for cape and SYZYGY.

---
 .../CAPE/GPIOS/device-tree-overlay/cape-gpios.dtso     | 10 ++++++++++
 .../device-tree-overlay/syzygy-test-gpios.dtso         |  9 +++++++++
 .../device-tree-overlay/syzygy-test-gpios.dtso         |  9 +++++++++
 3 files changed, 28 insertions(+)
 create mode 100644 script_support/components/CAPE/GPIOS/device-tree-overlay/cape-gpios.dtso
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso
 create mode 100644 script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso

diff --git a/script_support/components/CAPE/GPIOS/device-tree-overlay/cape-gpios.dtso b/script_support/components/CAPE/GPIOS/device-tree-overlay/cape-gpios.dtso
new file mode 100644
index 0000000..dc69c5c
--- /dev/null
+++ b/script_support/components/CAPE/GPIOS/device-tree-overlay/cape-gpios.dtso
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/dts-v1/;
+/plugin/;
+
+
+&cape_gpios_p9 {
+	status = "okay";
+};
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso
new file mode 100644
index 0000000..84b44f8
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_TESTS_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/dts-v1/;
+/plugin/;
+
+&hsi_gpios {
+	status = "okay";
+};
diff --git a/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso
new file mode 100644
index 0000000..84b44f8
--- /dev/null
+++ b/script_support/components/HIGH_SPEED_CONNECTOR/BOARD_VALIDATION_SEEED_STUDIO/device-tree-overlay/syzygy-test-gpios.dtso
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/dts-v1/;
+/plugin/;
+
+&hsi_gpios {
+	status = "okay";
+};
-- 
GitLab


From c8c9130e41a8dfa59875d397d531ce27782fa675 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 23 Jul 2023 22:13:18 +0100
Subject: [PATCH 16/19] Programming: Enable auto-update.

---
 BUILD_BVF_GATEWARE.tcl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/BUILD_BVF_GATEWARE.tcl b/BUILD_BVF_GATEWARE.tcl
index 7f41fd0..f78007a 100644
--- a/BUILD_BVF_GATEWARE.tcl
+++ b/BUILD_BVF_GATEWARE.tcl
@@ -265,7 +265,7 @@ if !{[info exists ONLY_CREATE_DESIGN]} {
         run_tool -name {GENERATEPROGRAMMINGDATA}
         configure_envm -cfg_file {script_support/components/MSS/ENVM.cfg}
         source ./script_support/export_spi_prog_file.tcl
-#       configure_spiflash -cfg_file {./script_support/spiflash.cfg} 
+       configure_spiflash -cfg_file {./script_support/spiflash.cfg} 
         run_tool -name {GENERATEPROGRAMMINGFILE} 
 #       run_tool -name {GENERATE_SPI_FLASH_IMAGE} 
         source ./script_support/export_flashproexpress.tcl
-- 
GitLab


From 6cecbf8de4f8ce72419e27797347eae7a01e29a9 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Sun, 6 Aug 2023 18:28:27 +0100
Subject: [PATCH 17/19] Add download of MIPI CSI Rx Decoder IP block.

---
 BUILD_BVF_GATEWARE.tcl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/BUILD_BVF_GATEWARE.tcl b/BUILD_BVF_GATEWARE.tcl
index f78007a..e2dbbbf 100644
--- a/BUILD_BVF_GATEWARE.tcl
+++ b/BUILD_BVF_GATEWARE.tcl
@@ -170,7 +170,6 @@ download_core -vlnv {Actel:SgCore:PF_PCIE:*} -location {www.microchip-ip.com/rep
 download_core -vlnv {Actel:SgCore:PF_TX_PLL:*} -location {www.microchip-ip.com/repositories/SgCore}
 download_core -vlnv {Actel:SgCore:PF_XCVR_REF_CLK:*} -location {www.microchip-ip.com/repositories/SgCore}
 download_core -vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -location {www.microchip-ip.com/repositories/DirectCore}
-#download_core -vlnv {Actel:DirectCore:COREAXI4DMACONTROLLER:2.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
 download_core -vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -location {www.microchip-ip.com/repositories/DirectCore}
 download_core -vlnv {Actel:SystemBuilder:PF_SRAM_AHBL_AXI:1.2.108} -location {www.microchip-ip.com/repositories/SgCore}
 download_core -vlnv {Actel:Simulation:CLK_GEN:1.0.1} -location {www.microchip-ip.com/repositories/SgCore}
@@ -181,6 +180,7 @@ download_core -vlnv {Actel:DirectCore:CoreUARTapb:5.7.100} -location {www.microc
 download_core -vlnv {Actel:SystemBuilder:PF_IOD_GENERIC_RX:*} -location {www.microchip-ip.com/repositories/SgCore}
 download_core -vlnv {Actel:SgCore:PF_IO:*} -location {www.microchip-ip.com/repositories/SgCore}
 download_core -vlnv {Actel:SystemBuilder:PF_XCVR_ERM:*} -location {www.microchip-ip.com/repositories/SgCore}
+download_core -vlnv {Microchip:SolutionCore:mipicsi2rxdecoderPF:4.7.0} -location {www.microchip-ip.com/repositories/DirectCore} 
 
 #
 # // Generate base design
-- 
GitLab


From 155b42d81af5eed26137883db6380051db03936a Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Fri, 11 Aug 2023 17:56:24 +0100
Subject: [PATCH 18/19] Doc: Update Readme links and script arguments.

---
 IHC_SUBSYSTEM_block_diagram.svg |   4 -
 Readme.md                       | 216 ++++++--------------------------
 block_diagram.svg               |   3 -
 3 files changed, 35 insertions(+), 188 deletions(-)
 delete mode 100644 IHC_SUBSYSTEM_block_diagram.svg
 delete mode 100644 block_diagram.svg

diff --git a/IHC_SUBSYSTEM_block_diagram.svg b/IHC_SUBSYSTEM_block_diagram.svg
deleted file mode 100644
index 617a1a4..0000000
--- a/IHC_SUBSYSTEM_block_diagram.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Do not edit this file with editors other than diagrams.net -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1947px" height="1451px" viewBox="-0.5 -0.5 1947 1451" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2021-10-22T11:39:40.919Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/15.4.0 Chrome/91.0.4472.164 Electron/13.5.0 Safari/537.36&quot; etag=&quot;kTS40SdD4Be1CIF_7t9N&quot; version=&quot;15.4.0&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;-lVU6hSQ6pfmJltsPebP&quot; name=&quot;Page-1&quot;&gt;7V1bc9s4sv41qTrnISrciMuj7XiS1E5mcuJM7cyTSrFlWzuy5ZGU2/76Q0qEJAIkQIoECF6cqtgiAYJqdDe6P3Q3XuGrpx9v17OXxw+ru/nyFQJ3P17hN68QgpTh+Fdy5ef+Cudgf+FhvbhLGx0v3Cz+O08vymZfF3fzTabhdrVabhcv2Yu3q+fn+e02c222Xq++Z5vdr5bZUV9mD3Ptws3tbKlf/ffibvuYfgvEjtffzRcPj3JkSMX+ztNMNk6/yeZxdrf6fnIJX7/CV+vVarv/6+nH1XyZEE/SZd/vl4K7hxdbz5+3ZTps7gXa/vPbh3/+Xn77k6Df7/+aktfpU77Nll/TL/wK0WX8vMu7xbfkpbc/U0rQf74mb3q5nf/Yvp4tFw/Pr/BF3GI5v98e78Z/PaS/d0/ZvMye1Wtf5IX3766mN39c3vx18/n6g7wbf4Evao/4Wt6D4su7t8xeLfvi692sFb75l3W54fR24xUXV5rhx7KzOo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaONo42jjaO1p3RUGYUtF59fb6bJ0FTIL79/XGxnd+8zG6Tu9/Xs5f42uP2aRl/gvGf94vl8mq1XK13ffE1Tf4dnnoanCUjrebr+P1PLqXBWm/nq6f5dv0zbiLvyhC478e4M8hBevHxNOiMROnVWRrt9nB42jEgLP4jjQmrEB+GGNEINL97mN+kH1fr7ePqYfU8W14fr15mSXhs8+tq9ZIS7j/z7fZnGu43+7pdZck6/7HY/nny91/JoyYsSj+++ZE+evfhZ/rhfvW8PZkLIQAQIr6+2a5Xf89P7oDdT8Jhs83j7jWhaco2q6/r27mJSGlc4mz9MN+agu1ASsyEgkYWWM+Xs+3iWzYGMW9yd10v1uvZz5MGL6vF83Zz8uSPyYUjZ2EZg5nGZDISZSMHLe05Bgpj7d/gyGaHr1KH82g4nIfMnBdzzPrnn6cf9t0i+fHYbfepOxwLw2RYWI1h5We3DKuF0l58vJxefLp8//n6U71VponVBCskBDmrC8pZXKirpUXkhB6r8v58d5HEcMefbpezzWZxm6VLloh27VBIx4b5W2dIhfhITKLsM/Yim3YzsLY2j/qj9lKtPaopPpdmSZbR8dPTbLOdr3N19q+zL/NlMl/zzeK/sy+7WyA7lak99+Y2npr4KfgyYe3F7Wx5kd54Wtzd7SYxowL3mlJG5ufLion70rSB9J0OMfRlBKs0S9SSEoi7swxWX85qrGCs5BKW2jbORRziSGQkEwpFcxbIZdXFEAKKsgMh82oICQE1OwgP6yfEPBxOb5rRiyxEKJDFRtx9+jhfL2L6JorxTe/khmaZDSHhSW4IsIiBstZW7hBfMXeggJk6OBI0KpklAEGz+PQHuXkNJgAgRXgAb8rB+uWXU0FtQdwYciJu9YWE2XgegXodotTwL+wQCWMHV0IS0GrUFPB14PL6DO18WaBQmXXiy5wSNgaGRuvI3iEiXvCzV6qbdvXu4rffrn+dXkdw+vn36R8RmeorgW9gggs4ESRL0Dzkm+VgE6qF3Rzs3Tg4kfFa7YpE6gEwEXsL8aALQEws44oZf2hu/XIEAGoyQoFiOanSXhYf4SLfOWpabUQYZ8eh1PheVF0mq7bP+mxudAYuLgewz7/P2Y1LFp/Xm916lmzGQfTyI/61Yzqg7tSl4I68/WV2+/fDTkxe3+4XqV1e/sOX/0GEJ61Q/DUAIuL4dwT+V9/qu/h4+bRZzr7NwckWX7ZgQD1QarfDqENSX1bb7eqpDgqF6sNQ6V1ZyaGmHGbdkdeIZx+wur/fzJ2gihhprHcxvXn/5rru3O3LPIQ9ec3M3QGZdT9bsRGfOy++rOPYF8xayJAyT4gNRvAcxKbZZVkuPgGhOAr6qS3gzZnrWBnIw8IISTso/IEHJwBm2ZDgs4DDBiH6cHgPqAiiumdZYDxW5j0sN2OUgYo369QODHpgVh61qZwTl4VllDPlvBzIp4Lj0Ibv1efxq6v2lLMII7oCIsXXQNyCyKkdmPABW/NgdkLhWeyMGg0H2jHugJhUXfcxsOhepKBulTtw5AGmk/Nghul0a9s/TIcmioWH2kbpMNFop2uIHqB0VhmVTOTa0oowmYCTnyzUhlg0EQpgUBa2Y0yx6tWI5sZgOwVqtmD33BwJYW2PfED9OMqRgw7BdrBrsJ1komBgu6yX8VpaSh5gO6qxXuiwXXOT1xRsB33NFiQid15CDCY8xT4AyVrSUcRaBj/s9nXLcVb17WsrtqGEZVTvAHyAIVFAwU41Yp0osXD8mQh3g7BH5zmeWxiYKJvU1TsgHxwvWDgc31zKXnKvlpMEoT88WvWVCYjOTvhQA6EgwHiCsg9ztblCADa/HFL8ncodIIA+gqFAQKvAKBN7VkG4jkxMeCEQASEUE3pyW3ndpqRFTesiyBLurXaIRdkHPFAqEhBrAtI+xIilqdAexMg12umKxCXEWEhXD1hfZi4O/nH1iDzFzGJuoD2uJl+o5+FY2mNL4HrR93Aru3mBqB2C9lDnoL1U4EOD9tyDQ9Iw6xKU19hkNQXlYV+zBaOA8lNqQHks9jgCh/JIywFPle1SNQ2RcItTpnbAkQXYoBKzzu/gCsoLCL2uAeXxiI4s7xjLi2zBHmqKe+UOmGH3LI9AQFq+Tqou4G53bA53PPA8dBRuUZ/pLR5P/OKsXgeICLOtDGreUraHIzmRo3ZJTtRoV26zhKpLQ8NbPD0QEVsJB6xmp1ftABH1wPByJsyYnl67sX1Mj8jg/NYwPZm7NERMT4myK5koYc2yJdwNpqe9sMUx4YowVm1PLDu6Rd/brazrIcKdwgBx1zBAqSBCwwBleJ+/PE+iR1iHjgk2N3lNYYLI12xF3TGCsyvmER8k+JDylTqOR0/ST4E02DL0YU+txcBVSQtlx8+yGNII1Gpvi56iatlpD2ttpG+De83zVcBxW8ZYVozOACo11/HqqjZ4WFqCHNWSqsv3Ur4K+VhFyyu2h4xXMjKV9m4Yv92agEkCFcmyLUdGxj07yTIjMgqicmD+YrFwU17JKipyCWhdVJQYCGzxl9QA2IrtI2HeuVJjMpT2jkSlnfT6Fhl+t6poNVcoEWYRbUdUKAlEVJRVxZIewSqmU6jtmSXyVl1VlPaORCWgHdszYXnX8uVDIniYEmHJpWXqKR4V23NYTSKU9m4kgrVemyVrZ1FmSVQ/8c2PWXdJ32SbF9qykuouPrVLabVVeNnK/SSik+g0SF0J9CsdCw84nERZMyjZdfEEEhDLFjJVajNVbW+rJq0vg9XaE1sHyrGpgyMt0Z0Urmawi9KqoYHSN6XXzUA2sXXNYREhNSerYnvEbfgENrV3IxFybR8lok2JCAaGUCTCAiUzdRGq2J7iahKhtHckEa1aku37Vge+b1UieJhrRAQtHK7sxVRtL1A1YE5p70gi2g2W1QAy5qhOYE2paAmX42HicrYAP6YGildsD0FFUVE7uJEViX10YPWoy+5HBCPKCJpFygpFoq2SmRXL8UUMTsTJz9m59orHzNOA7qaRBcoUQUuRmUK3RWlvKz+k7i1Vbc+sSVEqFOEjKUoenRPGZlQtF8cky2mli1McU2R0iLBYoO2seTjMCAdqSXZSI3WqtidW5B2b2ruRFDlpJ7GM799dTZNDunVsoVKcfJlYxcqR8wRm5wxKGtsO7CbOTuwmep3RJNng/af/m168ffvp+u3F598/BUhKPSmJsklOZRGaQ03tHIvGqBnp/NipsG4ScFh3Str6McCRho06Ywe9Ss9lOKHWjRGUczjBlFIQMU4AkLtvSqibA/LmFfLpkLRFwUhbETDtUQq1COjG2ASydgvFxf6cNGT3di0kvCSIFHfN7M+DCT4eGuQk6fp4aHKj1rXcZOjMmclq+Yyoar2NiHrwFKEkVyjwKBbYyNrN8KGp+AwhnpNLOs/a1BLrniMLHrbCIA8ozrBKlQyFH7H7wjA198VKM3CoxwZRSwQ6RNreb8UOnCAPHC90zKJVZc7N528WAYbNH4nlxhZpoT4uxaixmtGcuokG1MXLBpIjFVqs2kF+FbdpgHrZTVleI6mrEfS5XBHLAQq9FtigSKNep3xtOvraJ742dsYmel2L1ooLtEDoPRKGjz9ZKZZbJA4gjoACxyyVQ6u7gOcv9Y7yxnIWZ6As9Gpl7eYW5yy6SoXNeVO3yCt38HFkJmw3Fljfey6dQZOCeyf75dBWFvEMEMT98fNSVLoDYyj2MIPUwthKB0q8VPtsF6GrAGM0eEhJc9zm6jST2oqXWYsIqvxZtQMEPoKNEGinPEq9mPNJklun4Gy2vMW6QNvI9IckimIeVgPsqnaAwJq8p5haZ/XwAOfJ2bbhDSEc0gMnAp+ElWaXSd469qAfSNsp7IGN2MMJ9uAslI3q0TaDwx5YEfbApB3aPPbA2w2vqII9FG1ZcOS2lH0TUAYvaTyE4p+ptgO3pKNBWUbg7A7UxzYC5P1z6BpkT/9Im2p2uELauG3TWD1NpHIHKnz4ezAg/j0zxxg3B7G5OlahtLoO6FgFhd+tu7hqElnVDvEFHwgc7CjAgbJMT/BZgW0+j9vpAdPbsASkFiSr2gHiLE7tCHzQQ+NzwQc90zAs8OFQ2qk18EEO1lXwgY/gwwn44I5N9MyvYYEPYEILAx+4el5Cc2RHGtn3+q17CYzytEJ7+iJwxsQdB1rFqOuO/HRAR5pnE924aC2tsajegFNdlwCtEQMiwlQQnqF6bBBOiOARgwTt/nc1B3o0a6dENVF+YcqqDxaKZXWipMnKio7NswrXTZNhiWtimhzElSnwIaYT4UFeJWrcWXmFA5fXrLA6KxkAZZJVCGhV6d00PRyHWivenZEG1CxEK8s8djbvTVjqbkOsYE+VO3DhY0ctpLp1Z5YBRjZsduT22txujZ9Utheqd0hX/9IpeEoHVwGa7ZSDa3LDrsG1oHYUZmlBCCgKU5EEa1Clkr5cuQMEKQ7vmLMDylqqEXpM3ZZkGXk+YWHbyaJYrWZdtQOE6bdwW89aT5A83ZhDIUUFq1nIIg+h9roZB0VAGqOsd7SrCoKzKoMHXxVElvburL0IQVVvp3oP4acuCA2H6avwvFK6TDC3QbYj0ycXqjo91XsIaskgVkM0hY+4XAS74yb5jMkqzdIBxWSpPG1zX9R6Mmf0wFkpcMWjAZkvI482yqM2dwNpZ4hU7oEjH0dQmdMWUUiRg6qDAkHrHgrXQ2hCiQPzFhtBC2IjBEJ+9lr1RMBu7bWica/1yDXyGDMHfNL1GBo88skJnzg71UEuFoPV6aYAGgg8aXXpciuhvqiDob4sr5yj31BfoePQ3dJ94RxVEoLuY874RD8fKJzgQdu+WFOxvhlaE7jTd7E2RHj3vyvKdzMYX75j8iq7KZDzdWwoZ84g3adHo+yflH36KPTHE9wcsB7LJai3Yoynx6WYz9s1nz2Y6gcXO+qljwuEje8U1NtBDSnm4sxqLTVPpHTJFaAskumoMm3dUySZ7cxwpeRK5faEG9tzGQua397RBito95DxAGSC0gBkgocB7msyYTsdvGKhT7W9oDaZUMP/fMhESGVizhMJawZCB0QCNm8+NCMTlrIXTK0DWrF9zH6244aRsYMrqQgoFKd8dk62QnkfpCKMKFVVKuTx8oVnaqvpNRXb2wosca2kQLX21phZqoYCZTu4EjoRjtAFZZ01EHpRXuhIGCsRVY9ms1TZU9tHqJq1pbR3xOKo89ZWLRZ3Gl1UwSl3U8Sy9rJiiWajDNRrH1VzyrmPOCSIAjK1hisSMhwsNJEQFS2tiu0hqOiUqx0cCYU8uG0UijaFIlSv3Jbfryr+qu1j97faSqF2cCUV3Qn9d+GVhyIVgQRna1JhcYM1p7Zie1v+DEf12kNkK4SvvpHaw9W2iR4q/v7d1fTi4+VUL2LTfhgWgVm+yD3YRtL+NAoLO9toj60GjYSDCfIAY4yHNcaDOQt+hkCPkg8nsitFvBxS2lyxlhHmjO561Pmw6G46pkjubTqgu5SkIapaOKpau6p1lj+AQEBQlqv4Ep/lbGCF6Lswdgq1gyagfLPyx8Ge0YN4qeLUarToeZjUBMAsfwvgujjFyPU7jrQVm9ACQar38LEpjUKKBAknk78CjwaCFuXwqLV4hKZnK/fAzIdmhgFp5rK46K5ykKKcOXGrnEfGz1OcOWxsUbUlemAfhSUPk1FQxAKHVMTCdPxV7LS2XdACwm5mijbiN6PRb7b7zc5yTyHUNxjCSbxvG6I8RDy7ILye9bvXm93LtT+o1PZy7SHsZkGaRlQoHlWoVYVyd6x3eLkus17HWcruXjg5UUpGRrvgKt2+DmUPywexdwtzJCJOaUxkJM/+PESMs0m86si7lDqbhT5Y5opsk1G27csFdSfYusU9CvYx7t2XYOsHbHZesLtW0aWtRdsdkIPCDTxpX7YhoJ6EG4+2k2EaoLdpQP3TsXTUsWV0rEx7cMFVukm+22foIHAWuxc5ew+ekTOsA5Gdl1I2SqnVxRHOTsOGWAdjk9V3ejH9cPN2+vHT9c31b59bWIsdUjfZhk121QGIdZ+IV1aqSHpyFwAMI8YiTCJnxeewboKmtL+4+tf0l0+/f5jW5vfASA+FkfTEF+mlgGW2xOEpzydrVM+IT818L7wRPy8eAe6YfmhEjz0tX0TXbbGBK3qEuS/a63bb1TvUc20TCW4ivrP8AkgKTZqBLquIKkrGGeV1pDbh834q9kgIE82ZJ5rLiusZmuOe6xbzooqBL9rnHV+Me8rvFpqrXpMzmus54lfvyLD5PfJFe31lTWg/SH73pd9lWLpqzVwO1m5PNkUiL3Y71e32lPYHS/KiZ6S3ADTeMAKap+bBoNV85GuJpXlqHgxSzUcqIumM5oVYcJ/VfGRaYX15rUzHgvuPF1AT5bkvyuf5T8PGxSJ30Yws7yzr/qIzRirzyBOH5yFiw0ZnqC8zhulL6lDRGerLjOF5Gr3v6IwZCaa+7Biep9/7is6Y9TtV/VRnNC/YaxouOoM4yqIzzkivL63DBme8bXuIQsr3memJgfQEQE+kL4AJes30Jl+VIOSF8gjmWfJ9ByTNqyzztMoimGfJ9xWQNNOce/Kejm8+LGzGpGu4u5qoOSnkfcZmjFSmfrAZlDxgcNiM2VflvjR6TrJ+f7GZSDADzQUknmiejw/0nd+NtPeEiyGUFwHcX2zGpN8FxZ5oPsQQArP1CIGab+CM+EOKIbARHWeJ7iqLG+VUyhi6zQ6Bs9xJlFNCYqhGOwTME4/jPL+0/1a7WcHsjHofxM9zU/trthuJDhH0RPQ8P3XYdntylocn4udvaPeV4406HnJfOj7PU+2/5W4kPiLME/HzXNX+Wu5molNfRM/zVftuuVvqESDhqqI3yql60l/L3ULmmLc98fgwYyGRkfjE15I6pGBI8yYHxBH3Q/TcKjN9t9xt6oZ5stxzq8z01XK3EJ0AT2pmiFVmoFnbQF/rK9G9pv7nMRnZXq0n5o70hYnCw2V76ov2uuvU/5BIM9v7wmmKKy31me3JJDJtsGbNG2cbrDm1lnqv7XlkJD32ZVkWBmH3me2xkfa+tH2ku1S91/YWtuee9qEi3aEauLYXvoKxc4q8DVvZewvcyynxNnBdLzzls6KowJ8drKoXnupyoKjAnR2upufAk1mfU95w2JqeI1+UH2Aqt1nTc091JVE0wFRuM9MzP/nEKBpk2TFkID3xtcjSAk+2z5reqG4iT/ULEC1wZPus6RGAJtL7cmSLq9n2V9Obmd6XI0sHuDNrYXruKfGSDnFj1rTGUuApxbu4gHOfmR6YSI996ZshbsuaND315U0NsZSwuUgQFZ6KBA2xlDA3JeowX8UN2ABteihM9bOZeryZM9IP0KbnxrpYkS/K6zb9xceY4y9uPl9/mv76+781sicn/mYpvCecPOD2efUct7y8XyyXyiU5E+kZwfpUPC3u7pJhcs9rzp7oXDg15acA8ewRuVSkVD45npml05I9ndnZZOj48clkvHv/9t1wZoOh1mdDN4J0HfR8d7Fer74ndFzONpvFbXYysmS6m20edx+SW0WHQmfn71VSkzP5ie8kCu8mHXu13j6uHlbPs+X18WrxPCRdjbOwni9n28W3eaZXHk3Trh9Xi+Sg7YM6IyI7fVgtdLZZfV3fztNux6nRnxTZnrSdrR/mW+1Ju0k+fKMa8851C2y/zNRcgOyCZmaJzIniJ/Ict7ymyb9cBjDzdo2FrDTH1JNCrltloxQWyQ5jWdlBsWWtPqa0IAqqPayUIMZTMft50uwlabAxvDXH+QMVvpmlQ/zH/h0a1gu6kXqdBLSBBnKBKuuGAzs2rxt4fSPXl27QUdFRNxTqBgnqSOxaiAkl4PBztpqI9OcSXPjcxpQGKjNssQqp0t2VQtGh5T8iMu2jSiH+VIoy4bLJ6v5+M3dkMOo49aiGypooSZxKYyYKZ660Dc4fqLSJonRwpVF0ACHRKKiHGoX2WqPo0WyjRimrUSAQfCIrhdRWKbunQU+ez+lgpVVLTidX6kVHxBL1gnuoXnif1YvQEa5RvZRWLxiJicTP6quX5GmRoqycqZeTwcqrF72TI/UidKgvUS+kf+pFCmDH1Ev8cb1abU+br2cvjx9Wd8kkXP8/&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="87" y="0" width="1800" height="1450" fill="#e6e6e6" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1798px; height: 1px; padding-top: 725px; margin-left: 88px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="text-align: left"><span><b>IHC_SUBSYSTEM</b></span></div><div style="text-align: right"><br /></div><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div><div style="text-align: left"><br /></div></div></div></div></foreignObject><text x="987" y="729" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IHC_SUBSYSTEM...</text></switch></g><path d="M 227 745 L 357.06 745.06 L 357.06 830 L 384.63 830" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 389.88 830 L 382.88 833.5 L 384.63 830 L 382.88 826.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 227 715 L 357.06 715.06 L 357.06 380 L 384.63 380" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 389.88 380 L 382.88 383.5 L 384.63 380 L 382.88 376.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="107" y="700" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 730px; margin-left: 108px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APB_ARBITER</div></div></div></foreignObject><text x="167" y="734" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_ARBITER</text></switch></g><path d="M 7 729.5 L 100.63 729.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 105.88 729.5 L 98.88 733 L 100.63 729.5 L 98.88 726 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 730px; margin-left: 58px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">APB3mmaster</div></div></div></foreignObject><text x="58" y="733" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">APB3mmaster</text></switch></g><path d="M 1038.94 132.5 L 1038.94 125.06 L 1416.94 125.06 L 1416.94 190 L 1580.63 190" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 190 L 1578.88 193.5 L 1580.63 190 L 1578.88 186.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 155 L 1038.94 140 L 1406.94 140 L 1406.94 214 L 1584 214 L 1580.69 214.46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.89 213.74 L 1579.45 218.17 L 1580.69 214.46 L 1578.48 211.24 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 177.5 L 1038.94 170 L 1396.94 170 L 1396.94 522 L 1566.94 522 L 1580.31 521.73" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.56 521.62 L 1578.63 525.26 L 1580.31 521.73 L 1578.49 518.27 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 177.5 L 1038.94 190 L 1386.94 190 L 1386.94 540 L 1580.63 540" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 540 L 1578.88 543.5 L 1580.63 540 L 1578.88 536.5 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><rect x="868.94" y="110" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 155px; margin-left: 870px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_E51_TO_U54_1</div></div></div></foreignObject><text x="954" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_E51_TO_U54_1</text></switch></g><path d="M 510.04 193.24 L 510 166 L 597.06 166 L 597.06 125.06 L 862.63 125" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.88 125 L 860.88 128.5 L 862.63 125 L 860.88 121.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 163px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave0</span></div></div></div></foreignObject><text x="519" y="163" fill="#000000" font-family="Helvetica" font-size="11px">APBmslave0</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 123px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="858" y="123" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 1040.07 235.03 L 1040.12 244.47 L 1580.63 244.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 244.54 L 1578.88 248.04 L 1580.63 244.54 L 1578.88 241.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1037 260 L 1313.06 260 L 1313.06 271.18 L 1582.23 271.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1587.48 271.18 L 1580.48 274.68 L 1582.23 271.18 L 1580.48 267.68 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.39 281.92 L 1196.94 281.88 L 1196.94 793.65 L 1580.63 793.6" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 793.6 L 1578.88 797.1 L 1580.63 793.6 L 1578.88 790.1 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 310 L 1039.88 300 L 1186.94 300 L 1186.94 820 L 1580.63 820" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 820 L 1578.88 823.5 L 1580.63 820 L 1578.88 816.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="220" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 265px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_E51_TO_U54_2</div></div></div></foreignObject><text x="955" y="269" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_E51_TO_U54_2</text></switch></g><path d="M 511 275.98 L 511.06 190 L 816.94 190 L 816.94 240 L 863.53 240" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.78 240 L 861.78 243.5 L 863.53 240 L 861.78 236.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 188px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave1</span></div></div></div></foreignObject><text x="519" y="188" fill="#000000" font-family="Helvetica" font-size="11px">APBmslave1</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 238px; margin-left: 859px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="859" y="238" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 1039.9 367.5 L 1039.88 360 L 1366.94 360 L 1366.94 301.18 L 1581.27 301.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.52 301.18 L 1579.52 304.68 L 1581.27 301.18 L 1579.52 297.68 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 390 L 1039.88 380 L 1376.94 380 L 1376.94 321.06 L 1580.31 321.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.56 321.1 L 1578.56 324.6 L 1580.31 321.1 L 1578.56 317.6 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 405.5 L 1039.88 403.06 L 1216.94 403.06 L 1216.94 1010 L 1580.63 1010" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1010 L 1578.88 1013.5 L 1580.63 1010 L 1578.88 1006.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 423.5 L 1206.94 423.53 L 1206.94 1030 L 1580.63 1030" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1030 L 1578.88 1033.5 L 1580.63 1030 L 1578.88 1026.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="345" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 390px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_E51_TO_U54_3</div></div></div></foreignObject><text x="955" y="394" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_E51_TO_U54_3</text></switch></g><path d="M 511 220 L 806.94 220 L 806.94 370 L 863.63 370" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.88 370 L 861.88 373.5 L 863.63 370 L 861.88 366.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 218px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave2</span></div></div></div></foreignObject><text x="519" y="218" fill="#000000" font-family="Helvetica" font-size="11px">APBmslave2</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 368px; margin-left: 856px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="856" y="368" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 1039.9 482.5 L 1406.94 482.47 L 1406.94 350 L 1581.28 350" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.53 350 L 1579.53 353.5 L 1581.28 350 L 1579.53 346.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 505 L 1039.88 500 L 1416.94 500 L 1416.94 372.94 L 1580.31 372.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.56 372.94 L 1578.56 376.44 L 1580.31 372.94 L 1578.56 369.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 527.5 L 1039.88 520 L 1314 520 L 1314 1247.06 L 1580.34 1247.06" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.59 1247.06 L 1578.59 1250.56 L 1580.34 1247.06 L 1578.59 1243.56 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 527.5 L 1039.88 540 L 1296.94 540 L 1296.94 1266.59 L 1580.63 1266.6" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1266.6 L 1578.88 1270.1 L 1580.63 1266.6 L 1578.88 1263.1 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="460" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 505px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_E51_TO_U54_4</div></div></div></foreignObject><text x="955" y="509" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_E51_TO_U54_4</text></switch></g><path d="M 510 260 L 510 250 L 796.94 250 L 796.94 480 L 862.69 480" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.94 480 L 860.94 483.5 L 862.69 480 L 860.94 476.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 248px; margin-left: 518px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave3</span></div></div></div></foreignObject><text x="518" y="248" fill="#000000" font-family="Helvetica" font-size="11px">APBmslave3</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 478px; margin-left: 856px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="856" y="478" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 511 495 L 511.06 280 L 627.06 280 L 627.06 80 L 1657.06 80 L 1657.08 161.61" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1657.08 166.86 L 1653.58 159.86 L 1657.08 161.61 L 1660.58 159.86 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 380 L 511.06 305.06 L 607.06 305.06 L 607.06 178 L 862.57 178" fill="none" stroke="#cc0000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 178 L 860.82 181.5 L 862.57 178 L 860.82 174.5 Z" fill="#cc0000" stroke="#cc0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 510.28 417.72 L 510.35 330 L 776.94 330 L 776.94 593.06 L 863.51 593.06" fill="none" stroke="#cc0000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 593.06 L 861.76 596.56 L 863.51 593.06 L 861.76 589.56 Z" fill="#cc0000" stroke="#cc0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 511.12 448.54 L 511.06 360 L 766.94 360 L 766.94 703.06 L 862.57 703.06" fill="none" stroke="#cc0000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 703.06 L 860.82 706.56 L 862.57 703.06 L 860.82 699.56 Z" fill="#cc0000" stroke="#cc0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 495 L 511.06 390 L 756.94 390 L 756.94 813.06 L 862.57 813.06" fill="none" stroke="#cc0000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 813.06 L 860.82 816.56 L 862.57 813.06 L 860.82 809.56 Z" fill="#cc0000" stroke="#cc0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 456.56 L 511.06 420 L 637.06 420 L 637.06 70 L 1766.94 70 L 1766.94 470 L 1660.12 470 L 1660.12 490.83" fill="none" stroke="#cc0000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1660.12 496.08 L 1656.62 489.08 L 1660.12 490.83 L 1663.62 489.08 Z" fill="#cc0000" stroke="#cc0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 495 L 511.06 450 L 617.06 450 L 617.06 288 L 863.51 288" fill="none" stroke="#0000cc" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 288 L 861.76 291.5 L 863.51 288 L 861.76 284.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 495 L 511.06 480 L 736.94 480 L 736.94 638 L 863.51 638" fill="none" stroke="#0000cc" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 638 L 861.76 641.5 L 863.51 638 L 861.76 634.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 495 L 511.06 510 L 726.94 510 L 726.94 923.06 L 863.51 923.06" fill="none" stroke="#0000cc" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 923.06 L 861.76 926.56 L 863.51 923.06 L 861.76 919.56 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 511.12 476.6 L 511.06 540 L 716.94 540 L 716.94 1023.06 L 863.51 1023.06" fill="none" stroke="#0000cc" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 1023.06 L 861.76 1026.56 L 863.51 1023.06 L 861.76 1019.56 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 572 L 647.06 572 L 647.06 60 L 1776.94 60 L 1776.94 750 L 1666.94 750 L 1666.98 763.63" fill="none" stroke="#0000cc" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1667 768.88 L 1663.48 761.89 L 1666.98 763.63 L 1670.48 761.87 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 510.88 587 L 510.94 600 L 627.06 600 L 627.06 413.06 L 863.51 413.06" fill="none" stroke="#009900" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 413.06 L 861.76 416.56 L 863.51 413.06 L 861.76 409.56 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><rect x="391" y="150" width="120" height="460" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 380px; margin-left: 392px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">IHC_APB_0</div></div></div></foreignObject><text x="451" y="384" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IHC_APB_0</text></switch></g><rect x="1587" y="167.5" width="160" height="240" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 288px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">E51_IRQ_AGGREGATOR</div></div></div></foreignObject><text x="1667" y="291" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">E51_IRQ_AGGREGATOR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 278px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave4</span></div></div></div></foreignObject><text x="519" y="278" fill="#000000" font-family="Helvetica" font-size="11px">APBmslave4</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 176px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="858" y="176" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 303px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave5</span></div></div></div></foreignObject><text x="519" y="303" fill="#CC0000" font-family="Helvetica" font-size="11px">APBmslave5</text></switch></g><path d="M 1040.75 583.32 L 1406.94 583.29 L 1406.94 560.24 L 1581.75 560.2" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1587 560.2 L 1580 563.7 L 1581.75 560.2 L 1580 556.7 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1040.07 605.37 L 1406.94 605.41 L 1406.94 588.35 L 1581.27 588.4" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.52 588.4 L 1579.52 591.9 L 1581.27 588.4 L 1579.52 584.9 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 615 L 1039.88 630 L 1236.94 630 L 1236.94 842 L 1579.99 842" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.24 842 L 1578.24 845.5 L 1579.99 842 L 1578.24 838.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1040.07 648.3 L 1040.12 650 L 1226.94 650 L 1226.94 865.06 L 1580.63 865" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 865 L 1578.88 868.5 L 1580.63 865 L 1578.88 861.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="570" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 615px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_1_TO_U54_2</div></div></div></foreignObject><text x="955" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_1_TO_U54_2</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 328px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave6</span></div></div></div></foreignObject><text x="519" y="328" fill="#CC0000" font-family="Helvetica" font-size="11px">APBmslave6</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 591px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="858" y="591" fill="#CC0000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 1038.94 702.5 L 1038.94 695.06 L 1376.94 695.06 L 1376.94 620 L 1579.63 620" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1584.88 620 L 1577.88 623.5 L 1579.63 620 L 1577.88 616.5 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.77 716 L 1386.94 716 L 1386.94 643.41 L 1581.43 643.4" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.68 643.4 L 1579.68 646.9 L 1581.43 643.4 L 1579.68 639.9 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 725 L 1038.94 740 L 1286.94 740 L 1286.94 1050 L 1580.63 1050" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1050 L 1578.88 1053.5 L 1580.63 1050 L 1578.88 1046.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 747.5 L 1038.94 760 L 1276.94 760 L 1276.94 1070 L 1586 1070 L 1586 1071.76 L 1581.59 1071.69" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.84 1071.78 L 1579.78 1075.15 L 1581.59 1071.69 L 1579.91 1068.15 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><rect x="868.94" y="680" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 725px; margin-left: 870px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_1_TO_U54_3</div></div></div></foreignObject><text x="954" y="729" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_1_TO_U54_3</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 358px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave7</span></div></div></div></foreignObject><text x="519" y="358" fill="#CC0000" font-family="Helvetica" font-size="11px">APBmslave7</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 700px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="858" y="700" fill="#CC0000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><path d="M 1038.94 812.5 L 1038.94 810 L 1396.94 810 L 1396.94 665.41 L 1580.63 665.4" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 665.4 L 1578.88 668.9 L 1580.63 665.4 L 1578.88 661.9 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 835 L 1038.94 830 L 1416.94 830 L 1416.94 690 L 1579.63 690" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1584.88 690 L 1577.88 693.5 L 1579.63 690 L 1577.88 686.5 Z" fill="#ff0000" stroke="#ff0000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 857.5 L 1038.94 850 L 1266.94 850 L 1266.94 1293.41 L 1580.63 1293.4" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1293.4 L 1578.88 1296.9 L 1580.63 1293.4 L 1578.88 1289.9 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 857.5 L 1038.94 870 L 1256.94 870 L 1256.94 1316.35 L 1580.95 1316.4" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.2 1316.4 L 1579.2 1319.9 L 1580.95 1316.4 L 1579.2 1312.9 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><rect x="868.94" y="790" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 835px; margin-left: 870px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_1_TO_U54_4</div></div></div></foreignObject><text x="954" y="839" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_1_TO_U54_4</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 388px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave8</span></div></div></div></foreignObject><text x="519" y="388" fill="#CC0000" font-family="Helvetica" font-size="11px">APBmslave8</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 810px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="857" y="810" fill="#CC0000" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><rect x="1587" y="500" width="160" height="200" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 600px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">U54_1_IRQ_AGGREGATOR</div></div></div></foreignObject><text x="1667" y="604" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_1_IRQ_AGGREGATOR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 418px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave9</span></div></div></div></foreignObject><text x="519" y="418" fill="#CC0000" font-family="Helvetica" font-size="11px">APBmslave9</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 286px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="858" y="286" fill="#0000CC" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 448px; margin-left: 520px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave10</span></div></div></div></foreignObject><text x="520" y="448" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave10</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 635px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="635" fill="#0000CC" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 478px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave11</span></div></div></div></foreignObject><text x="519" y="478" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave11</text></switch></g><path d="M 1039.9 922.5 L 1039.88 920 L 1356.94 920 L 1356.94 895.06 L 1581.59 895" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.84 895 L 1579.84 898.5 L 1581.59 895 L 1579.84 891.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 945 L 1039.88 940 L 1366.94 940 L 1366.94 914 L 1580.57 914" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.82 914 L 1578.82 917.5 L 1580.57 914 L 1578.82 910.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 967.5 L 1039.88 960 L 1336.94 960 L 1336.94 1099.06 L 1580.63 1099" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1099 L 1578.88 1102.5 L 1580.63 1099 L 1578.88 1095.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 967.5 L 1039.88 980 L 1326.94 980 L 1326.94 1121.06 L 1581.59 1121" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1586.84 1121 L 1579.84 1124.5 L 1581.59 1121 L 1579.84 1117.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="900" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 945px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_2_TO_U54_3</div></div></div></foreignObject><text x="955" y="949" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_2_TO_U54_3</text></switch></g><path d="M 1039.9 1022.5 L 1039.88 1020 L 1356.94 1020 L 1356.94 942 L 1580.15 942" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.4 942 L 1578.4 945.5 L 1580.15 942 L 1578.4 938.5 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 1045 L 1039.88 1040 L 1366.94 1040 L 1366.94 965.06 L 1579.51 965.06" fill="none" stroke="#0000cc" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1584.76 965.06 L 1577.76 968.56 L 1579.51 965.06 L 1577.76 961.56 Z" fill="#0000cc" stroke="#0000cc" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 1067.5 L 1039.88 1060 L 1226.94 1060 L 1226.94 1340 L 1580.63 1340" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1340 L 1578.88 1343.5 L 1580.63 1340 L 1578.88 1336.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 1039.9 1067.5 L 1039.88 1080 L 1216.94 1080 L 1216.94 1358 L 1580.63 1358" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1358 L 1578.88 1361.5 L 1580.63 1358 L 1578.88 1354.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><rect x="869.9" y="1000" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 1045px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_2_TO_U54_4</div></div></div></foreignObject><text x="955" y="1049" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_2_TO_U54_4</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 921px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="858" y="921" fill="#0000CC" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 508px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave12</span></div></div></div></foreignObject><text x="519" y="508" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave12</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 538px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave13</span></div></div></div></foreignObject><text x="519" y="538" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave13</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1021px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="857" y="1021" fill="#0000CC" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><rect x="1587" y="770" width="160" height="200" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 870px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">U54_2_IRQ_AGGREGATOR</div></div></div></foreignObject><text x="1667" y="874" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_2_IRQ_AGGREGATOR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 568px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)">APBmslave14</span></div></div></div></foreignObject><text x="519" y="568" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave14</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 411px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 153, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="858" y="411" fill="#009900" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 598px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font color="#009900">APBmslave15</font></span></div></div></div></foreignObject><text x="519" y="598" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave15</text></switch></g><path d="M 511 755 L 511.06 710 L 697.06 710 L 697.06 748 L 862.57 748" fill="none" stroke="#009900" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 748 L 860.82 751.5 L 862.57 748 L 860.82 744.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 755 L 511.06 740 L 687.06 740 L 687.06 968 L 863.51 968" fill="none" stroke="#009900" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 968 L 861.76 971.5 L 863.51 968 L 861.76 964.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 830 L 511.06 770 L 677.06 770 L 677.06 1123.06 L 862.57 1123.06" fill="none" stroke="#009900" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 1123.06 L 860.82 1126.56 L 862.57 1123.06 L 860.82 1119.56 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 755 L 511.06 800 L 657.06 800 L 657.06 50 L 1786.94 50 L 1786.94 980 L 1666.94 980 L 1666.98 992.63" fill="none" stroke="#009900" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1667 997.88 L 1663.47 990.89 L 1666.98 992.63 L 1670.47 990.87 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 830 L 637.06 830 L 637.06 528 L 863.51 528" fill="none" stroke="#990099" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 528 L 861.76 531.5 L 863.51 528 L 861.76 524.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 830 L 511.06 860 L 647.06 860 L 647.06 858 L 862.57 858" fill="none" stroke="#990099" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 858 L 860.82 861.5 L 862.57 858 L 860.82 854.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 830 L 511.06 890 L 657.06 890 L 657.06 1068 L 863.51 1068" fill="none" stroke="#990099" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 868.76 1068 L 861.76 1071.5 L 863.51 1068 L 861.76 1064.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 830 L 511.06 920 L 647.06 920 L 647.06 1168 L 862.57 1168" fill="none" stroke="#990099" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 867.82 1168 L 860.82 1171.5 L 862.57 1168 L 860.82 1164.5 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 511 905 L 511.06 950 L 667.06 950 L 667.06 40 L 1796.94 40 L 1796.94 1210 L 1666.94 1210 L 1666.98 1223.63" fill="none" stroke="#990099" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1667 1228.88 L 1663.48 1221.89 L 1666.98 1223.63 L 1670.48 1221.87 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><rect x="391" y="680" width="120" height="300" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 830px; margin-left: 392px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">IHC_APB_1</div></div></div></foreignObject><text x="451" y="834" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IHC_APB_1</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 708px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font color="#009900">APBmslave0</font></span></div></div></div></foreignObject><text x="519" y="708" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave0</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 745px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 102, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="745" fill="#006600" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 966px; margin-left: 858px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 102, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="858" y="966" fill="#006600" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 738px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font color="#009900">APBmslave1</font></span></div></div></div></foreignObject><text x="519" y="738" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave1</text></switch></g><path d="M 1038.94 1122.5 L 1038.94 1115.06 L 1286.94 1115.06 L 1286.94 1149.06 L 1580.63 1149" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1149 L 1578.88 1152.5 L 1580.63 1149 L 1578.88 1145.5 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 1145 L 1038.94 1140 L 1276.94 1140 L 1276.94 1180.35 L 1582.23 1180.4" fill="none" stroke="#009900" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1587.48 1180.4 L 1580.48 1183.9 L 1582.23 1180.4 L 1580.48 1176.9 Z" fill="#009900" stroke="#009900" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 1145 L 1038.94 1160 L 1186.94 1160 L 1186.94 1379.06 L 1580.63 1379.06" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.88 1379.06 L 1578.88 1382.56 L 1580.63 1379.06 L 1578.88 1375.56 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><path d="M 1038.94 1167.5 L 1038.94 1180 L 1176.94 1180 L 1176.94 1399.41 L 1580.47 1399.4" fill="none" stroke="#990099" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1585.72 1399.4 L 1578.72 1402.9 L 1580.47 1399.4 L 1578.72 1395.9 Z" fill="#990099" stroke="#990099" stroke-miterlimit="10" pointer-events="all"/><rect x="868.94" y="1100" width="170" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 1145px; margin-left: 870px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHANNEL_U54_3_TO_U54_4</div></div></div></foreignObject><text x="954" y="1149" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CHANNEL_U54_3_TO_U54_4</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 768px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font color="#009900">APBmslave2</font></span></div></div></div></foreignObject><text x="519" y="768" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave2</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1121px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 102, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">A_SIDE</div></div></div></foreignObject><text x="857" y="1121" fill="#006600" font-family="Helvetica" font-size="11px" text-anchor="end">A_SIDE</text></switch></g><rect x="1587" y="999" width="160" height="200" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1099px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">U54_3_IRQ_AGGREGATOR</div></div></div></foreignObject><text x="1667" y="1103" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_3_IRQ_AGGREGATOR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 798px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font color="#009900">APBmslave3</font></span></div></div></div></foreignObject><text x="519" y="798" fill="#0000CC" font-family="Helvetica" font-size="11px">APBmslave3</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 828px; margin-left: 520px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font>APBmslave3</font></span></div></div></div></foreignObject><text x="520" y="828" fill="#990099" font-family="Helvetica" font-size="11px">APBmslave3</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 526px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="526" fill="#990099" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 858px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font>APBmslave4</font></span></div></div></div></foreignObject><text x="519" y="858" fill="#990099" font-family="Helvetica" font-size="11px">APBmslave4</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 856px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="856" fill="#990099" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 888px; margin-left: 520px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font>APBmslave5</font></span></div></div></div></foreignObject><text x="520" y="888" fill="#990099" font-family="Helvetica" font-size="11px">APBmslave5</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1066px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="1066" fill="#990099" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1166px; margin-left: 857px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">B_SIDE</div></div></div></foreignObject><text x="857" y="1166" fill="#990099" font-family="Helvetica" font-size="11px" text-anchor="end">B_SIDE</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 918px; margin-left: 520px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font>APBmslave6</font></span></div></div></div></foreignObject><text x="520" y="918" fill="#990099" font-family="Helvetica" font-size="11px">APBmslave6</text></switch></g><rect x="1587" y="1230" width="160" height="200" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1330px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">U54_4_IRQ_AGGREGATOR</div></div></div></foreignObject><text x="1667" y="1334" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_4_IRQ_AGGREGATOR</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 948px; margin-left: 519px;"><div style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style="font-size: 12px ; text-align: center ; background-color: rgb(248 , 249 , 250)"><font>APBmslave7</font></span></div></div></div></foreignObject><text x="519" y="948" fill="#990099" font-family="Helvetica" font-size="11px">APBmslave7</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 118px; margin-left: 1176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1176" y="118" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 138px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1166" y="138" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 188px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH1_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="188" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH1_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 208px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH1_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="208" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH1_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 236px; margin-left: 1176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1176" y="236" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 238px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1574" y="238" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 258px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1166" y="258" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 268px; margin-left: 1575px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_ACK_IRQ</div></div></div></foreignObject><text x="1575" y="268" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 298px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="298" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 318px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="318" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 348px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="348" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 368px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="368" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 166px; margin-left: 1176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1176" y="166" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 188px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1166" y="188" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 518px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="518" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 538px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="538" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 358px; margin-left: 1181px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1181" y="358" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 378px; margin-left: 1172px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1172" y="378" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 558px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1574" y="558" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 583px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_ACK_IRQ</div></div></div></foreignObject><text x="1574" y="583" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 618px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="618" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 638px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="638" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 658px; margin-left: 1575px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1575" y="658" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 688px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_ACK_IRQ</div></div></div></foreignObject><text x="1574" y="688" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 281px; margin-left: 1176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1176" y="281" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 298px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1166" y="298" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 399px; margin-left: 1180px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1180" y="399" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 420px; margin-left: 1172px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1172" y="420" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 788px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1574" y="788" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 818px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_ACK_IRQ</div></div></div></foreignObject><text x="1574" y="818" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 838px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1572" y="838" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 863px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_ACK_IRQ</div></div></div></foreignObject><text x="1572" y="863" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 888px; margin-left: 1575px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1575" y="888" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 912px; margin-left: 1573px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_ACK_IRQ</div></div></div></foreignObject><text x="1573" y="912" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 938px; margin-left: 1573px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1573" y="938" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 961px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_ACK_IRQ</div></div></div></foreignObject><text x="1572" y="961" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1008px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1574" y="1008" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1028px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_ACK_IRQ</div></div></div></foreignObject><text x="1574" y="1028" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1048px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1572" y="1048" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1068px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_ACK_IRQ</div></div></div></foreignObject><text x="1572" y="1068" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1097px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1574" y="1097" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1119px; margin-left: 1574px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_ACK_IRQ</div></div></div></foreignObject><text x="1574" y="1119" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1147px; margin-left: 1573px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1573" y="1147" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1178px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_ACK_IRQ</div></div></div></foreignObject><text x="1572" y="1178" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1245px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1572" y="1245" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1265px; margin-left: 1572px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH0_ACK_IRQ</div></div></div></foreignObject><text x="1572" y="1265" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH0_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1291px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="1291" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1313px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH2_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="1313" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH2_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1338px; margin-left: 1578px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1578" y="1338" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1356px; margin-left: 1575px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH3_ACK_IRQ</div></div></div></foreignObject><text x="1575" y="1356" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH3_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1377px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_MSG_PRESENT_IRQ</div></div></div></foreignObject><text x="1576" y="1377" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_MSG_PRESENT_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1398px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CH4_ACK_IRQ</div></div></div></foreignObject><text x="1576" y="1398" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">CH4_ACK_IRQ</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1113px; margin-left: 1175px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1175" y="1113" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1138px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1166" y="1138" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1158px; margin-left: 1175px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1175" y="1158" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1178px; margin-left: 1166px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1166" y="1178" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1017px; margin-left: 1171px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1171" y="1017" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1037px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1162" y="1037" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1058px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1170" y="1058" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 1079px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1162" y="1079" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 918px; margin-left: 1171px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1171" y="918" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 938px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1162" y="938" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 958px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1170" y="958" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 978px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1162" y="978" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 807px; margin-left: 1171px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1171" y="807" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 827px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1162" y="827" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 848px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1170" y="848" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 869px; margin-left: 1162px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1162" y="869" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 478px; margin-left: 1179px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1179" y="478" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 498px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1170" y="498" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 518px; margin-left: 1178px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1178" y="518" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 538px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1170" y="538" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 582px; margin-left: 1178px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1178" y="582" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 603px; margin-left: 1169px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1169" y="603" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 628px; margin-left: 1177px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1177" y="628" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 648px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1170" y="648" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 690px; margin-left: 1172px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_MSG_PRESENT</div></div></div></foreignObject><text x="1172" y="690" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 712px; margin-left: 1163px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_A_ACK_FROM_B</div></div></div></foreignObject><text x="1163" y="712" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_A_ACK_FROM_B</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 736px; margin-left: 1171px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_MSG_PRESENT</div></div></div></foreignObject><text x="1171" y="736" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_MSG_PRESENT</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 756px; margin-left: 1164px;"><div style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SIDE_B_ACK_FROM_A</div></div></div></foreignObject><text x="1164" y="756" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="end">SIDE_B_ACK_FROM_A</text></switch></g><rect x="257" y="695" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 705px; margin-left: 258px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APB_MASTER_LOW</div></div></div></foreignObject><text x="295" y="709" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_MASTER_L...</text></switch></g><rect x="257" y="725" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 735px; margin-left: 258px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">APB_MASTER_HIGH</div></div></div></foreignObject><text x="295" y="739" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_MASTER_H...</text></switch></g><path d="M 1467 340 L 1560.63 340" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1565.88 340 L 1558.88 343.5 L 1560.63 340 L 1558.88 336.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 341px; margin-left: 1518px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(153, 0, 153); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Label</div></div></div></foreignObject><text x="1518" y="344" fill="#990099" font-family="Helvetica" font-size="11px" text-anchor="middle">Label</text></switch></g><path d="M 1747 287.21 L 1806.94 287.18 L 1930.63 287.01" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1935.88 287 L 1928.89 290.51 L 1930.63 287.01 L 1928.88 283.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 288px; margin-left: 1843px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">E51 IRQ</div></div></div></foreignObject><text x="1843" y="291" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">E51 IRQ</text></switch></g><path d="M 1746 599.64 L 1806 599.65 L 1929.63 599.44" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1934.88 599.43 L 1927.89 602.94 L 1929.63 599.44 L 1927.88 595.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 600px; margin-left: 1842px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">U54_1 IRQ</div></div></div></foreignObject><text x="1842" y="603" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">U54_1 IRQ</text></switch></g><path d="M 1747 871.21 L 1806.94 871.18 L 1930.63 871.01" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1935.88 871 L 1928.89 874.51 L 1930.63 871.01 L 1928.88 867.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 872px; margin-left: 1843px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">U54_2 IRQ</div></div></div></foreignObject><text x="1843" y="875" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">U54_2 IRQ</text></switch></g><path d="M 1747 1098.38 L 1806.94 1098.35 L 1930.63 1098.18" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1935.88 1098.17 L 1928.89 1101.68 L 1930.63 1098.18 L 1928.88 1094.68 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1099px; margin-left: 1843px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">U54_3 IRQ</div></div></div></foreignObject><text x="1843" y="1102" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">U54_3 IRQ</text></switch></g><path d="M 1747 1329.79 L 1806.94 1329.76 L 1930.63 1329.59" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1935.88 1329.58 L 1928.89 1333.09 L 1930.63 1329.59 L 1928.88 1326.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1330px; margin-left: 1843px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">U54_4 IRQ</div></div></div></foreignObject><text x="1843" y="1334" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">U54_4 IRQ</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
diff --git a/Readme.md b/Readme.md
index 3bc7c68..e8ee46a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,197 +1,51 @@
-# B-V-F
+# BeagleV Fire Gateware
 
 ## Description
 
-This repository can be used to generate a reference design for the B-V-F. This reference design will have the same or extended functionality compared to the pre-programmed FPGA design on the B-V-F.
+This repository is used to generate the BeagleV Fire FPGA design. The scripts in this repository concentrate on generating the FPGA digital logic content and generating bitstreams. The complete gateware for the BeagleV Fire also includes a first stage bootloader (HSS) which configures the entire PolarFire SoC device. It is therefore recommended to use the **BeagleV Fire Bitstream Builder** to generate the complete gateware including the HSS for the BeagleV Fire. The BeagleV Fire Bitstream Builder is availabe [here](https://git.beagleboard.org/beaglev-fire/bitstream-builder)
 
-A Libero SoC Tcl script is provided to generate the reference design using Libero SoC along with device specific I/O constraints.
+**The scripts contained in this repository are only recommended to be used in isolation when modifying the FPGA digital logic.** Otherwise please use the [BeagleV Fire Bitstream Builder](https://git.beagleboard.org/beaglev-fire/bitstream-builder).
 
-This repository supports Libero SoC v2021.3, which is available for download [here](https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#downloads).
+A set of Libero SoC Tcl scripts are provided to generate the FPGA design using Libero SoC along with device specific I/O constraints.
 
-## Using the reference design generation Tcl script
+This repository supports Libero SoC v2022.3, which is available for download [here](https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/libero-software-later-versions#downloads).
 
+## Using the reference design generation Tcl script
+The gateware is built by executing a Libero Tcl script. The default gateware configuration is built using the command below:
 ```
-libero SCRIPT:B_V_F_REFERENCE_DESIGN.tcl "SCRIPT_ARGS: ONLY_CREATE_DESIGN M2_OPTION:NONE"
+libero SCRIPT:BUILD_BVF_GATEWARE.tcl
 ```
 
-Create absolute minimal design:
+Arguments can be passed to the Tcl script to select build options for the design or prevent Libero from running through the entire flow.
 ```
-libero SCRIPT:B_V_F_REFERENCE_DESIGN.tcl "SCRIPT_ARGS: ONLY_CREATE_DESIGN M2_OPTION:NONE CAPE_OPTION:NONE"
+libero SCRIPT:BUILD_BVF_GATEWARE.tcl "SCRIPT_ARGS: ONLY_CREATE_DESIGN M2_OPTION:NONE CAPE_OPTION:NONE"
 ```
 
+### Available arguments:
+
+#### ONLY_CREATE_DESIGN
+Stops the FPGA flow before running synthesis. This is useful to inspect the generated FPGA design before running throught the Synthesis/Place and route/Bitstream FPGA flow.
+
+#### CAPE_OPTION
+Specifes the build option for the digital logic attached to the cape connectors. Valid values are the directory names in ./script_support/components/CAPE. If you wish to create an alternate build option, add a new directory in ./script_support/components/CAPE using one of the existing ones as template. This is a good place to start if you want to play with FPGA digital logic.
+
+#### M2_OPTION
+Specifes the build option for the digital logic attached to the M.2 connector. Options are DEFAULT to enable the wi-fi interface or NONE if you do not need wi-fi and want to use the third transceiver on the SYZYGY connector..
+
+#### HIGH_SPEED_CONN_OPTION
+Specifes the build option for the digital logic attached to the SYZYGY high speed connector. Valid values are the directory names in ./script_support/components/HIGH_SPEED_CONNECTOR. If you wish to create an alternate build option, add a new directory in ./script_support/components/HIGH_SPEED_CONNECTOR using one of the existing ones as template. This is a good place to experiment if you want to use wired communications up to 12.5Gbps.
+
+#### MIPI_CSI_OPTION
+Specifies the build option associated with the camera interface. Valid values are the directory names in ./script_support/components/MIPI_CSI. If you wish to create an alternate build option, add a new directory using one of the existing ones as template.
+
+#### PROJECT_LOCATION
+Specifies where the generated Libero project will be located.
 
+#### TOP_LEVEL_NAME
+Specifies the name of the gateware's top level module. This will also be the name of the FPGA design reported through System Services and displayed at boot time by the Hart Software Services (HSS). This will allow you to identify what is actually programmed on the board.
 
+#### PROG_EXPORT_PATH
+Specifies the location where the programming files will be exported.
 
-#### Standard design generation
-
-To generate the standard reference design which is capable of running the majority of bare metal example applications and run Linux&reg; the following flow can be used:
-
-1. Clone or download the repository
-2. Open Libero v2021.3
-3. Open the execute script dialog (CTRL + U)
-4. Execute the "B_V_F_REFERENCE_DESIGN.tcl" script
-5. Configure the design if required
-6. Run the Libero SoC design flow to program a device
-
-## Headers
-
-### P9
-
-| Header Pin | FPGA Pin | Usage                        |
-|------------|----------|------------------------------|
-|      1     |    n/a   | DGND                         |
-|      2     |    n/a   | DGND                         |
-|      3     |    n/a   | VDD_3V3                      |
-|      4     |    n/a   | VDD_3V3                      |
-|      5     |    n/a   | VDD_5V                       |
-|      6     |    n/a   | VDD_5V                       |
-|      7     |    n/a   | SYS_5V                       |
-|      8     |    n/a   | SYS_5V                       |
-|      9     |    n/a   | Not connected                |
-|     10     |    n/a   | SYSRESETn                    |
-|     11     |     B5   | MMUART_4 Rx                  |
-|     12     |     C5   | MSS GPIO_2[11] (@0x20122000) |
-|     13     |    D19   | MMUART_4 Tx                  |
-|     14     |     C6   | PWM channel 1  (@0x41000000) |
-|     15     |     A5   | MSS GPIO_2[12] (@0x20122000) |
-|     16     |     A6   | PWM channel 2  (@0x41000000) |
-|     17     |     C9   | MSS GPIO_2[13] (@0x20122000) |
-|     18     |    C10   | MSS GPIO_2[14] (@0x20122000) |
-|     19     |    A11   | MSS I2C0 SCL                 |
-|     20     |    A10   | MSS I2C0 SDA                 |
-|     21     |     B8   | MSS GPIO_2[15] (@0x20122000) |
-|     22     |     A8   | MSS GPIO_2[16] (@0x20122000) |
-|     23     |    C12   | MSS GPIO_2[17] (@0x20122000) |
-|     24     |    B12   | MSS GPIO_2[18] (@0x20122000) |
-|     25     |     B7   | MSS GPIO_2[19] (@0x20122000) |
-|     26     |     A7   | MSS GPIO_2[20] (@0x20122000) |
-|     27     |    D11   | MSS GPIO_2[21] (@0x20122000) |
-|     28     |    C11   | MSS GPIO_2[22] (@0x20122000) |
-|     29     |    F17   | MSS GPIO_2[23] (@0x20122000) |
-|     30     |    F16   | MSS GPIO_2[24] (@0x20122000) |
-|     31     |    E18   | MSS GPIO_2[25] (@0x20122000) |
-|     32     |    n/a   | VDD_ADC                      |
-|     33     |    n/a   | ADC channel 4                |
-|     34     |    n/a   | GNDA_ADC                     |
-|     35     |    n/a   | ADC channel 6                |
-|     36     |    n/a   | ADC channel 5                |
-|     37     |    n/a   | ADC channel 2                |
-|     38     |    n/a   | ADC channel 3                |
-|     39     |    n/a   | ADC channel 0                |
-|     40     |    n/a   | ADC channel 1                |
-|     41     |    E15   | MSS GPIO_2[26] (@0x20122000) |
-|     42     |    E14   | PWM channel 0  (@0x41000000) |
-|     43     |    n/a   | GND                          |
-|     44     |    n/a   | GND                          |
-|     45     |    n/a   | GND                          |
-|     46     |    n/a   | GND                          |
-
-### P8
-
-| Header Pin | FPGA Pin | Usage                                   |
-|------------|----------|-----------------------------------------|
-|      1     |    n/a   | DGND                                    |
-|      2     |    n/a   | DGND                                    |
-|      3     |    V22   | Base design FPGA GPIO[0]  (@0x40000000) |
-|      4     |    W22   | Base design FPGA GPIO[1]  (@0x40000000) |
-|      5     |    V19   | Base design FPGA GPIO[2]  (@0x40000000) |
-|      6     |    V20   | Base design FPGA GPIO[3]  (@0x40000000) |
-|      7     |    V15   | Base design FPGA GPIO[4]  (@0x40000000) |
-|      8     |    V14   | Base design FPGA GPIO[5]  (@0x40000000) |
-|      9     |    V21   | Base design FPGA GPIO[6]  (@0x40000000) |
-|     10     |    W21   | Base design FPGA GPIO[7]  (@0x40000000) |
-|     11     |    Y21   | Base design FPGA GPIO[8]  (@0x40000000) |
-|     12     |    Y20   | Base design FPGA GPIO[9]  (@0x40000000) |
-|     13     |    B10   | Base design FPGA GPIO[10] (@0x40000000) |
-|     14     |     B9   | Base design FPGA GPIO[11] (@0x40000000) |
-|     15     |    T12   | MSS GPIO_2[0]  (@0x20122000)            |
-|     16     |    U12   | MSS GPIO_2[1]  (@0x20122000)            |
-|     17     |    W13   | MSS GPIO_2[2]  (@0x20122000)            |
-|     18     |    T16   | MSS GPIO_2[3]  (@0x20122000)            |
-|     19     |    W18   | PWM channel 3  (@0x41000000)            |
-|     20     |    R16   | MSS GPIO_2[4]  (@0x20122000)            |
-|     21     |   AA21   | MSS GPIO_2[5]  (@0x20122000)            |
-|     22     |   AA22   | MSS GPIO_2[6]  (@0x20122000)            |
-|     23     |   AB18   | MSS GPIO_2[7]  (@0x20122000)            |
-|     24     |   AA18   | MSS GPIO_2[8]  (@0x20122000)            |
-|     25     |    V17   | MSS GPIO_2[9]  (@0x20122000)            |
-|     26     |    A12   | MSS GPIO_2[10] (@0x20122000)            |
-|     27     |    A13   | FPGA GPIO[18] (@0x41100000)             |
-|     28     |    B14   | FPGA GPIO[19] (@0x41100000)             |
-|     29     |    B13   | FPGA GPIO[16] (@0x41100000)             |
-|     30     |    D14   | FPGA GPIO[17] (@0x41100000)             |
-|     31     |    D13   | FPGA GPIO[0]  (@0x41100000)             |
-|     32     |    B15   | FPGA GPIO[1]  (@0x41100000)             |
-|     33     |    A15   | FPGA GPIO[2]  (@0x41100000)             |
-|     34     |    C15   | FPGA GPIO[3]  (@0x41100000)             |
-|     35     |    C14   | FPGA GPIO[4]  (@0x41100000)             |
-|     36     |     B4   | FPGA GPIO[5]  (@0x41100000)             |
-|     37     |     C4   | FPGA GPIO[6]  (@0x41100000)             |
-|     38     |    C17   | FPGA GPIO[7]  (@0x41100000)             |
-|     39     |    B17   | FPGA GPIO[8]  (@0x41100000)             |
-|     40     |    B18   | FPGA GPIO[9]  (@0x41100000)             |
-|     41     |    A18   | FPGA GPIO[10] (@0x41100000)             |
-|     42     |     D6   | FPGA GPIO[11] (@0x41100000)             |
-|     43     |     D7   | FPGA GPIO[12] (@0x41100000)             |
-|     44     |     D8   | FPGA GPIO[13] (@0x41100000)             |
-|     45     |     D9   | FPGA GPIO[14] (@0x41100000)             |
-|     46     |    D18   | FPGA GPIO[15] (@0x41100000)             |
-
-### J9: M.2 Interface
-
-| Header Pin | FPGA Pin | Usage                                             |
-|------------|----------|---------------------------------------------------|
-|      1     |   n/a    |      GND                                          |
-|      2     |   n/a    |      3.3V                                         |
-|      3     |   n/a    |      not connected                                |
-|      4     |   n/a    |      3.3V                                         |
-|    5 to 6  |   n/a    |      not connected                                |
-|      7     |   n/a    |      GND                                          |
-|   8 to 17  |   n/a    |      not connected                                |
-|     18     |   n/a    |      GND                                          |
-|     19     |   n/a    |      not connected                                |
-|     20     |   R14    |  M2_UART_WAKEn                                    |
-|     21     |   n/a    |      not connected                                |
-|     22     |   T13    |  M2_UART_RXD - MSS MMUART_1 through FPGA fabric   |
-|  24 to 31  |   n/a    |      not connected                                |
-|     32     |   R12    |  M2_UART_TXD - MSS MMUART_1 through FPGA fabric   |
-|     33     |   n/a    |      GND                                          |
-|     34     |   U14    |  M2_UART_CTS - MSS MMUART_1 through FPGA fabric   |
-|     35     |   F22    |  M2_PET0_P                                        |
-|     36     |   U13    |  M2_UART_RTS - MSS MMUART_1 through FPGA fabric   |
-|     37     |   F21    |  M2_PET0_N                                        |
-|     38     |   n/a    |      not connected                                |
-|     39     |   n/a    |      GND                                          |
-|     40     |   n/a    |      not connected                                |
-|     41     |   G20    |  M2_PER0_P                                        |
-|     42     |   n/a    |      not connected                                |
-|     43     |   G19    |  M2_PER0_N                                        |
-|     44     |   n/a    |      not connected                                |
-|     45     |   n/a    |      GND                                          |
-|     46     |   n/a    |      not connected                                |
-|     47     |   n/a    |  M2_REFCLK_P - 100MHz                             |
-|     48     |   n/a    |      not connected                                |
-|     49     |   n/a    |  M2_REFCLK_N - 100MHz                             |
-|     50     |   n/a    |  M2_32KHZ - connected to 32.687kHz oscillator     |
-|     51     |   n/a    |      GND                                          |
-|     52     |   E18    |  M2_PERST0n                                       |
-|     53     |   W19    |  M2_CLKREQ0n                                      |
-|     54     |   R15    |  W _DISABLE2n - pull-up to 3.3V                   |
-|     55     |   R14    |  M2_PEWAKEn                                       |
-|     56     |   U19    |  W _DISABLE1n - pull-up to 3.3V                   |
-|     57     |   n/a    |      GND                                          |
-|     58     |    B1    |  MSS I2C1 SDA                                     |
-|     59     |   n/a    |      not connected                                |
-|     60     |    C1    |  MSS I2C1 SCL                                     |
-|     61     |   n/a    |      not connected                                |
-|     62     |   U15    |  M2_I2C_ALTn                                      |
-|     63     |   n/a    |      GND                                          |
-|   64 to 68 |   n/a    |      not connected                                |
-|     69     |   n/a    |      GND                                          |
-|   70 to 71 |   n/a    |      not connected                                |
-|     72     |   n/a    |      3.3V                                         |
-|     73     |   n/a    |      not connected                                |
-|     74     |   n/a    |      3.3V                                         |
-|     75     |   n/a    |      GND                                          |
-|     76     |   n/a    |      GND                                          |
-|     77     |   n/a    |      GND                                          |
+#### DESIGN_VERSION
+Used to specfy the FPGA design version which will be included in the programming bitstream. Please note that care must be taken in selecting a version number if you wish to use program the generated gateware from Linux. Version numbers must be different for gateware programming from Linux to be successfull.
diff --git a/block_diagram.svg b/block_diagram.svg
deleted file mode 100644
index 47d1e52..0000000
--- a/block_diagram.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1865px" height="1411px" viewBox="-0.5 -0.5 1865 1411" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2021-12-15T09:31:29.473Z&quot; agent=&quot;5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.1.8 Chrome/87.0.4280.88 Electron/11.1.1 Safari/537.36&quot; etag=&quot;DhFWDx30qeHKln17ePgI&quot; version=&quot;14.1.8&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;yvAtyZ_ZCSqSi9nYqjhV&quot; name=&quot;Page-1&quot;&gt;7V1Zc9pKsP41rrr3AZVm0/KIMY5JvB0gJ05eKAKKTYItX4zt5Pz6K4EGpJlGEqAZKYLUqTpGG2K6++tlejkhrcffH2bD54crf+xNT7A5/n1Czk4wpi5Dwf/CI3+WRzCxrOWR+9lkvDyG1gd6k/+86KAZHX2djL2XxIVz35/OJ8/JgyP/6ckbzRPHhrOZ/5687Ic/TX7r8/Dekw70RsOpfPTLZDx/WB51sL0+fuFN7h/4NyPLXZ55HPKLo1/y8jAc+++xQ6R9Qloz358v/3r83fKm4erxdVned77h7OrFZt7TPM8N15+e/p2yRucTuv180fl5Y/reawM5y8e8Daev0S+O3nb+hy/BzH99GnvhU8wTcvr+MJl7vefhKDz7HlA9OPYwf5wGn1Dwp/xW0Yu+ebO59zt2KHrLD57/6M1nf4JLorMN6kRLxpnGjj6/rymAHCs6+BBffsr5ZhjR/X71+PXSBH9Eq7PNStGCV+plPvN/rZiKFLR22EWJtSMYWDtmImDtCClg7T7cX3/7Pu533y/ufNz+Onycn/3TsJm0VN44ELPooz+bP/j3/tNw2l4fPU0u5vqaS99/jpbwpzef/4kwY/g695MLHKzi7M9ddP/iw9fwg4EZ/3z2O3727E/80603mwS/3ptFBzcS58V/nY28lF8fAcJ8OLv3olu/EvvxqjEez/sPk6/f5iPWm3iN6HnhyqSSeuZNh/PJWxKgIJotbm3OZsM/sQue/cnT/CX25NvwwJqDEKYJBqKWACtZ15P06xuYmvvdwLArcOTyN266HSVfkIlsviRMdJvA6atl34P5nVKY//dkvuB9wzRJ9HnJ/ibjn9fsH35IcH9hYhM+ujhR4oohU5ZINWSJCrLh0HRZEq9HWaLBzP1uYHbihkxZMi3wdm2y5JYqSzE5QhplSIO8sGrIiyVAtUnS5UW4nrhZ7G9Z+91gmWwfeeG3K5CX086H3l3Pa7yej++u/2sOz96uZw1UqryghN6x2U4ikyUx4+HLw+JlU72PXYw0cEWdSgiKYHMh002B8aLAN1qimAN01etJ/KXdW3STIkYp4PBgyFdEVJW/s3L5YbF78p8UyhneTc5sTYKGAJUEX1i4DZeXpqDg2yiVphqhdDfTo2rkxRUx0Xm8jkMpQ8SgKN3scEgB91imcI8a1OYEicH2eadlDjrXnX6n2b/plo7gtrAy1FqtZhzEOc7HMdxSheAIQ6s2kHE9+I1zKK7X8qf+bI31PybTqXBoOJ3cPwUfR8HKhab+abhik9Fw2oxOPE7G4wWKQCRIEqkAKogmBeVBuxgJKKBGsSoSuJUB3EzbdQ+4VIOCsifisiR5kUi3DZ7I1niKzA2MtBEZpTsscSdDcqsI2/cOhIu1mGH3C1eHhXc0C3WZDUQ2G8BtmGpYDY5pC0zO0hnQNc19b0iLPBRmLBBJ7d22Ou0KmAiijUBkL8+mOg0EJq1U865DH1+mwzevxmYCckTOD+xYV7bWbMBaU2YqALvYV73e4LLXbV6VzrvEFVfMlXnXAZariO1YUC1ZFYoKVlsr5Y5VVCMsKDuzZqZjSkTLaLd7mBZnFstu2Rp1ZX+hxqjrsNJR1yXVgZG81m0j3A93k2BCkZ0BJ+CuXEEYgwHLF77QKhpj9qM+rQ71lbnnioKU2e65JLUFuecWEtwKluGdSzdYZoarjRzROd/6Dlywc55K25guObtqDlo31/3uzeVlu/zAqGQ5MsDrQVhnXBSnuT1ytKO+CpgB24xatS8uNa1sGyO+KEVZuP7bLfQjcUJGgqRri5C77Q1WVlYXEtXH9negtAwCQF9Z8O26EsE4MwjgXaFNLTFCyKBEbJ6fpQe75QSOcE+rxm5TA1GRzYFSAq27WlyDC0SQXanaEEHKVbJIySRI91yKzs5Zq8evce1YsKdC8oaq+IUVSatBFQoi7JihmJnUuwdVWU6qKtpH3tY4skVvkRAn1RCRbqBUwzYXkb2YE2xNQ7z94S9eb82O1v+9+vxE42XBUM3gAoSef69PBn/dh//vtgP38bzz4XO32e/cXA/4U7/P+BWd6367e95stcNckuXJ4Ccsv3V5RemmC7dP1+64iw0eWc7KqlRmvRDZevnHHFw2r9sn7DRYmCY5YWeDs26nvprU5mV7K+lCNkQYrX4or/A9nEwp2ao0y7YqLRnQLttnMcGoLzUQJsxI0oNZwM6ITnI46bEZtfnfGUbMrvV4GktWgXCFUIbDiFBHs3xTKdwABC7s9Acpjls46ZXQ9eEMXRsnEmfYzDBJ7F9BfMJ1qi4+SXeL6sMnagoPs/nEEhtF5OcMR3gQ0soZPMstpuo/3HZuBnjAY6J11PJikwFo90WnhrftjVSwD4cKFjbkIgG9lpYcTuV0kG2w2tLBKZ8OMiqFGZid6/7gHF8tHJE6OyEN5FoGEywRFxtADQ3knAduPFNFGHmjLBKQgDYBXQiqO2GQwcswOGFY+eIiB7OSVKm9uMhU4W16yqKJizdBWECQukuJLe6TmiUbWK4c0VpTAx8YNbBGavw6H//618QXn76Mvzkeuvn67fRTo0KbdIGlsa13unPLg9278YCrGAFMSc14cnSnQcqCYWnrkdZRcbHh6M3ab16477jkBS6dl8Pv3vTWf5nMJ34opd/9+dx/DOWed9pMZJ+ZkKTH2E0U+nnIpuGznsN3efx9H3Y4NbypN5rPwuuiP/3Gozd6GD4tDr1MHp+n3uDlfTIfPRSEBsQhYnzbBfZ8GGBWuorgANo+FfHhadwM26+Giz0dvrxMRoJwb5DJpXgXJpNxWUvjwUxZiy01A5CXH9tXJCkRiS0JZe5AFXHlZwkcoVjA5SBJ70ud080oIKqOJKpQ0p8yzY3k9T6q7u1Vt5NTdeva9lgxDOczR2AgxZKdo230UXVDqttCUOxBp/KWQw9/rfLOW3VbmvJmthTZ20N9MweJT1Ms5kDzqN6XGucqQxrcMgGJ1avDy2mfXjcdzgOOJTVihzqTCzsGYkNK1dJ9dMB31OK4dC0OdOr5a9U458MK63FSqB6n2vW4vD3b+yIzTK31ONapx9P0SprIVgVap/79ZDS4H869l9jfoSHx7M2G0UuFDFDM0BoieLNY3guEig2KqEpKc+OPlMqklCXLlFZK5QhFHykVHrCAPURVlAI7N8rGZthacNC9uenf3nT7g0VlVPfzbZ/XRb08D58SlOTVVqOl7gnLsGb334f/E/yK4L/grUzwr/8N/wwX1VzUcP0YPk6mf5a3P/pP/stCFyUuWZd5mVCV10lgD7SSI+9YsBDh0cU4t9UnvjBssTTBkbPw7/DFWLgWLFjPrGvR6lrODzs9Bq8fsyTA6kzzrjNAg6tmrx92POEXLRd9ddHCMAg+Lfk/PIwWH+PmQXh0YQ2EJ9YmQuLwUp7CQ5FEhQeTghSejIyF8GTMXAjPLAyG8Dg3GcKD5uJI7BcupSTPGq5OrZZvLUosFKb1lSZdL7j5Z31i0YqSH18K1+pcmOzFT0VCtiZJ7LZA2FbH72MvIFJ38XFF4vjBJONF1yU4NJCzWMXhUrg2VBzWxg50LLFvKMuXkVeEDQiPEZTTg6vaNG37vi0V7tiLTCK0LMmalbVukb37HVb2bDuxc8vWd6TOfsnuNGaq69ySxg6iGVCdzi2uEJVDxKYGrx7RUf4MLpvswB9Gu2FJbAnQPVcrgstJDSElroYvwXotehCd15ccjOIkNRgGZ3XoVanyJtXal6h75QHDrhDoWvUXK48gsqt3EGAlt4ajFZCOUnN3uVH5NXY8h7W5a9/vjUTMbvUd8Wx2p53C+yfBhhpmhmXG/mHBk0Hi6NW8GxK8ce/GBxXUalYaKOQmhnnu3dkH5nY5u+Xq9rw3wMwMvF/z/PZDs6L4EwaeInFClH+OXpIVAE5EmKJNoDmJ1NGITBjQ26PJKAz8mJ8mISe15fGSh0ksDBi9yojF8PXtpGP//Onf/zv58PGsd/HpY8NKj1sU3zTPNJ1EsMJlOFV/wJknqw3w8WT46D+N+w+Tp+WJ80m4AEtqxpjlBJMfzsgbjSTOCs58d1g4tydFz6jWCogEFkUSWB0n316yDNDEcOP/KBGfa/CWoRk6Zgf0hpkMQO+w6Otm8LlX1ShlKPoxFjnNZJGdy7wdi0AFxS4QhsDIwGwzb+2FBLZswR+RoAwkSHKHi9fcsTUSUIOxOBIw4dHU4DP6NCEBn7YrI8FVs1XVEhJ9UOCaDgQFq6rdRAqaKpPAPpoElQQCSlajgYoGAkoNFDcZ9GICPOUtwIQOrm4bc5WgkOxE5WIHmgkF2QfKMME5GgeVxATLMoi5lltHDTwE3xI/LXyLYnhwNpoMreb1QcKDwAMMGUSGB702AzLdI0BUAiCkOIJrqokjBM/VHUdAwJbg2n2o6g6UxkiCk9N3UBZORBmj0Y84UJKh4LgrJVG0dRA8On5aNyTIiUcRJJyddQ8eEVybQsaBVt8BATPVe2cBgXpfBu3rwXVFiVQAMRDGQiUo0AxPN0DLjSNlxM4oMNzEv7tu7+8yUmnndtUbliUKesXzBNK5uSJVjcH7JEWeiTsEeRMILCGDwMppOBYH5XIKnsSaVa5bfgmuG04Hy/V+4R/vF7CiFvUREjaWV0wQrwoC6pjV4QwwEC9qhRq23bROSBO5tc7gEzQx3J3WVZQytoEmcid5JcZ50VlemclbVl5M3jt5K0lTm+xaPi6bBjZWVzwOswPTxA5HX20rXy0wCJU5a4tnx/MP9W7/Iiar+Mhb866uWoNeVfWBRo/NBT02sCqlCJcNvT+07RtnxF6u70bj5ukcXdkNlI4MFRpCvquu2b4IDl4oLGso+EI1Gmrb5F0qVrJhlsjelW9AdN8bzPTKNya90pY3uDh9FqnrpF6/d8IyTO/0/ZAq1YP+NSKUty2gbhFy0iWCOfvewIdcFZZi701/zucTOvl2edFv25e++3HY+HsKmCvIsOCKWhXlV7wtgm97Ay892cjgpsjgW97gRNNpN0M+Srt+bwH61rfM1wvz6ePbj7dPzi8yfuxeN3ApkK+QqVNnbJfN1a7AQiSjiF++ARdbtwTyBEmfGHs0pNP4D17RivCfhKpWBoRJ09e3vcF0i7UC4OWtkN1aD4bFFeXXjIYkjO57g4mKVbqpZEiOqScV6jtCxIJZxHf+MvYBkIMNXjlVfIQHaDxye7os5QeiP9WIwhVADRoGSAXGduzVOuuo5odchQp1Ak9H3T0AU9MeTQBUYv68LclRcVsrqb81Jl0tf+aFG6Cl45EUDjOxweINCSRJAGPPTFnsGWjEs0KmOgMTzlYTqjAJJASu7qz6PVBITRAxG4UQsph2GJIrqxaJdzPvfvKyaNNZMSxCiGLD3B6MqLOZPvvJgFx8sgYjWWnXCI2ElkfYCksEZUBSlLsIE0NOXfy31xo4loUHraubs3Y4YfmENFmt84qkzBGo9+kq1UcPYXIk7tU6pxReFWC4XCpfVyejVGAwa+eMUnEQjrIMp1QKHBNKtwYZJHSEpNBAAEUJpTAtNRUYcrhB28HNHjBhFQ0TueV/L4IACb5JbSxvKNdYB0OVd1inDiaypXrUwQ2CcwoX5+bq6OBk1Ji6BVV1sJzNhIrSwZwCRx28gw42YR4oSwcTudYyCfk13jiQIJ9QCPKpTnLIezhHyF8lCGRDft4JFiW5XYQV5HZRohnycwzvqiHkz/w5n/bVQI4qJUBI2UogJQrX67Z77f4hKQGoW59eJXCMvUGrkjf2RioeeyNiF+CdlYAYxFOtBA4z9qZJCZQdjeNpgpASuOm12ofU1IOagA5AOnUAlUNxRx3Q4BNasnWAW20dQFFROkAMIinWATRHTPKoA3bVAWVHg/gOEaQDbi8vFxvyB6QFoKJtolUL5JhufoBagObUApydK6sFqPCMnXfhxZdRrQVyhCmPWmDXPQEsw44qLTA4s25a9vkbvXJntt1uzPq/XxtySq6+JFGHbg0kayAzTJMkwYwikgVn4acCsQkIVYNFl3kNVD07//Qvj+8u//Qbj97oYfgUyfjj89QbvLxP5qOHYkS1QRwilJo4HInjGZSAsPJEy+IpJ8due19ofa20BrVNgQKy0ewASlydkSYHTrY20uIYZuEkhjmEFoph2WZTtdphNsQ6CpdXCG5rNgHy65quwUswNBlPTA7thA2zFvssg+vBOb6qsfQi1zIEK9hxbKCNosUMTmYF49Lm9KZ98ePu5nn+3PzW+Xrx1SV3DTm8vWhvefN5OZuaNEm9s9CRKYwDQKaBYp3lZLOUz7ApGmf/uR7hq/f/ZmRsOe9e5/H2I7EbWNZqte9tuJGsWqZOkNiAGGHiJLYkOczfz1B6FM+MK75nIcxJsrUbInA4fKaqEycKkG9x3YE9DgdKby0GcUFCEHm5jyJdkkjbVCb0jiIdPkqzSAO50qFIX119bnb7g0h/01rrb5EIXBFn5q+rFHDAFToKeEkCbuVtR50p38GTbGVDYWBGgmfC/NO77RyORMcQOquDgEqZPtrh1ZFpZ59R0sKjVI6OhjkJtsMDmT4gOzwGy2UK9QEODqiqUDs7j3eUPDyF4xxhNtowDAC3DkmiY6CsR6TBBmQpfU5kq7w2tKBSbz5H9oO0NoL7a9pvblz9+K63xrbY2R2YHGYqbMCU9lNjUnX7Rd6w0d91CSUXZhGfLaUDHIxF8p7Xom3VyH8KYGZaXzhCyBTxiNoZpFHVgQmmjKwmQoYOA2Z1DpYFdBEkhrCMNmV8n79ospx2PvTuel7j9Xx8d/1fc3j2dj1bNXOtgtaw09VGovvyrlmluXQPuFJ5y8L4bnLJXZuRI+JBRpd73gV/9xtwlGZaVNdmkAwrelWAYSszbCQvw8Irmrd/iVqGldjJjHybvPxnsWKHM6UtatLZGTS7p51+u1u6eWaJ4wAtaG8GUPtWEWr/09O/U9bofEK3ny86P29M33uFnMO7zgANrpo9aMFqo/cdxIz4ZHs3SRhK9DmLsN6XQ6IhIy/JMri8+VJf0mAJaNz8+x2q6IHT46JVUmsbSaDaLadCAYOVcxtBnjdBxAehnDuWW8/OkF6Zf5NaIwmnSfdF58PFIYm3xm7oMDXkYHWboUGn+099qSAyPnMQtPsE5XUWE6qGKVGhmVp/DcoS03DsgoAWOwYRnqUKaddfpRZq5aqMz4wODky8LVNu8O5oFu4qDcz7a4TbKlC4mT7hZnqEG+hVEwo3PjDhJja0z6xbvvlbHeV7C0FxC5RvR598O3rkG+gyE8o3OTD5thzDwuXLNz7K97bybePi5NtG2uQ79lVq5VvO5g7lmx6YfLuVkG9eqaNZvlO6dmCa2YRo54p3Pc04YHFriDEwW2wLsQEjtpXrjV+0sTIeMZJ2gxoYYPI8Ec2ch4SZMNi2D4TzmKWJ85i1Jeclb1DEeeXEJDjnNULWE0CPLBPiD4D1XKSJ9VwNeS+snPTeuPa0BUai6DAYyclZ3LA3I/Evyo1hwg1qOM8qJ+6SwDCR9Wx8IKzHM3qUs170RWo5CS6e71z3F92I2KlV7843DczTfbnmMPPW5CFbzFAozC/jruFmquADowrNlzCgkiZy41OBJujAaGKXTxO5JEegSb1LGSSaOKaTt/5QJVk2lIKuyBJYzodFFmrlTWdUSBY7U6vUW9czJiRAuWAClGaiwN1NDkbVi0SxeFy0RJIcuKaXSEJdaLNCN1XgjiEHo+slqtjlC0qW+VVzPS+SxAZS7jSThGdMx0jSuWgNep9Pe197/Xb55epEmLTCYiksWSVRq3EJ+yzbt75lvl6YTx/ffrx9cn6R8WP3uiFjy6JGvfdl0GtfRi0E6w36q1LRdbEpszLKopXNRQNpJNf5XbbPDqM9s0gbF0F9s/l+hBZqAM0Dwo58g7Nmv0kGN90B1BujvhRxFg36UoWFKCpwgcmTvr9+bOpVbHMaIb3HDZUaktqnb9vUS+pU4TqugeQS1uI7fME8JSNw76xZYyGXlt+lEFnjjUJsjTIO2Hq91mWt6SGImYUqRY/0PhhHzFWKuYGwmkpAN/iMDBYD3XzpU0Whruaeu4V3jYN/VN45Q/u3jRPaPJguU9g3LvXHxnC65c+8sD29RNqyu8ch08ZZXh/kmlNHEagSOcbUv6uxjjNdU5hThUzHzCCJqrZxMEXk3b3WTbe9mLZQa9JIERKTD02Jz0XCGkkBjIpfNXqt8SBAiqkoI4HaXsG6hqYSMDWAzkqcGuywqEEskBo6YSqjdq0ou2njAqo2bdxAK8RDAZLSQAYVMhXzmsCu1K/FEV5Psc0LFIl1a6xZXFNcb4tUSePTv9AFUZ8XzESi5azUBGaTEkt6lEE0ixzgpHCrrs6y16ASHbFdqX0vYMzzQVDGdm2BMHaWH6SZMLAjFE68aJmDeodiV5FVHoq17YxQ7GrErB7ayHsVcdrUetsCU0scde1WjDrplXPHSLnOOWIYGTbZO2wujaDEBgdoTRbMhuHq4SBvzMeAIlbrRBGRCKZpcCBMaEl144hgypCjuGvcGMPJPtfJuTkWsXYdBYoCxjGYJT1O3TxQmJvg9OxDkvPVHiTQxLNUQZedyO7tZEGagDC/a02TQO5KJ8onh/XIr/nk86N59oYvzz78dua8338FgzeJdixCTwy6R0sMAWIBwhYfDnKTybJmkhdc6hpoR8uqQYgtwm74PBzPBFOFwCBHYRmATz8v8v4rLd6SLOdijFWcKMwCEahAHMOVfSlbURACpIUe06o0uQrQ0k7d5iDYiDm2Oyf9mFKwiSDDstYPJlptHFnCwoyRDm5J1C47YcS1s3IiwXwRmxiIbGaGvURCtg9rjUyBiCRN/DCCLVGBQvU0qkBJT3inMsqeCtE2R969ya3skSUEVh3LcOyNAKdY0wPDOyMgqrm2x0ygaSbMOdCO7E4oF3yc+f48TsngZz5c+WMvvOL/AQ==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="4" y="0" width="1860" height="1410" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="193" y="50" width="1501" height="1330" fill="#ffffff" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 508 190 L 608 190 L 608 160 L 244 160 L 244 259.4 L 247.63 259.35" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 259.27 L 245.94 262.87 L 247.63 259.35 L 245.83 255.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 508.21 213.56 L 628 213.6 L 628 140 L 234 140 L 234 300.4 L 247.63 300.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 300.26 L 245.91 303.81 L 247.63 300.3 L 245.86 296.81 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 508 232.5 L 648 232.6 L 648 120 L 218 120 L 218 335.4 L 247.63 335.28" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 335.25 L 245.9 338.78 L 247.63 335.28 L 245.87 331.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 508 1025 L 508 820 L 541.63 820" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 546.88 820 L 539.88 823.5 L 541.63 820 L 539.88 816.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="388" y="170" width="120" height="1140" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 740px; margin-left: 389px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS</div></div></div></foreignObject><text x="448" y="744" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS</text></switch></g><path d="M 653 1208.41 L 1210.63 1205.04" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1215.88 1205.01 L 1208.9 1208.55 L 1210.63 1205.04 L 1208.86 1201.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 653 1253.41 L 653 1243.4 L 667 1243.4 L 667 1290 L 874.63 1290" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 879.88 1290 L 872.88 1293.5 L 874.63 1290 L 872.88 1286.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="557" y="1193.41" width="96" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1223px; margin-left: 558px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC0_INITIATOR</div></div></div></foreignObject><text x="605" y="1227" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC0_INITIATOR</text></switch></g><rect x="508" y="1205" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 1215px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC_0</div></div></div></foreignObject><text x="528" y="1219" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC_0</text></switch></g><path d="M 1291 1205 L 1588 1205 L 1588 1350 L 249 1350 L 249 850 L 382.63 850" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.88 850 L 380.88 853.5 L 382.63 850 L 380.88 846.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1291 1175 L 1291 1180 L 1384 1180 L 1384 1134.8 L 1393.63 1134.72" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1398.88 1134.67 L 1391.91 1138.23 L 1393.63 1134.72 L 1391.85 1131.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1217" y="1160" width="74" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 72px; height: 1px; padding-top: 1190px; margin-left: 1218px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PCIE</div></div></div></foreignObject><text x="1254" y="1194" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PCIE</text></switch></g><rect x="671" y="1190.91" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1201px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4mslave0</div></div></div></foreignObject><text x="709" y="1205" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4mslave0</text></switch></g><rect x="881" y="1220" width="86" height="30" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 84px; height: 1px; padding-top: 1235px; margin-left: 882px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_LSRAM</div></div></div></foreignObject><text x="924" y="1239" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_LSRAM</text></switch></g><path d="M 653 1223.41 L 653 1233.4 L 819 1233.4 L 874.63 1234.84" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 879.88 1234.97 L 872.79 1238.29 L 874.63 1234.84 L 872.97 1231.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="671" y="1215.91" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1226px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4mslave1</div></div></div></foreignObject><text x="709" y="1230" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4mslave1</text></switch></g><path d="M 1007 1275 L 1183.01 1275.02" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1188.26 1275.02 L 1181.26 1278.52 L 1183.01 1275.02 L 1181.26 1271.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1007 1305 L 1094 1305 L 1094 1330 L 299 1330 L 299 950 L 382.63 950" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.88 950 L 380.88 953.5 L 382.63 950 L 380.88 946.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="881" y="1260" width="126" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 124px; height: 1px; padding-top: 1290px; margin-left: 882px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DMA_CONTROLLER</div></div></div></foreignObject><text x="944" y="1294" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">DMA_CONTROLLER</text></switch></g><rect x="671" y="1270" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1280px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4mslave2</div></div></div></foreignObject><text x="709" y="1284" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4mslave2</text></switch></g><path d="M 1371 1280 L 1371 1290 L 1454 1290 L 1454 1340 L 289 1340 L 289 920 L 381.63 920" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 386.88 920 L 379.88 923.5 L 381.63 920 L 379.88 916.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1191" y="1250" width="180" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 1280px; margin-left: 1192px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DMA_INITIATOR</div></div></div></foreignObject><text x="1281" y="1284" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">DMA_INITIATOR</text></switch></g><rect x="339" y="900" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 910px; margin-left: 340px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC_1</div></div></div></foreignObject><text x="359" y="914" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC_1</text></switch></g><rect x="508" y="793" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 803px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC_3</div></div></div></foreignObject><text x="528" y="807" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC_3</text></switch></g><path d="M 1164 1067.69 L 1194 1067.8 L 1194 1175 L 1210.63 1175" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1215.88 1175 L 1208.88 1178.5 L 1210.63 1175 L 1208.88 1171.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1044" y="1022.69" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1053px; margin-left: 1045px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 11px">RECONFIGURATION_<br />INTERFACE_0</font></div></div></div></foreignObject><text x="1104" y="1056" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RECONFIGURATION_...</text></switch></g><rect x="1185" y="1047.69" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1058px; margin-left: 1186px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Q0_LANE[0:3]_DRI</div></div></div></foreignObject><text x="1223" y="1061" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Q0_LANE[0:3]...</text></switch></g><rect x="339" y="800" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 810px; margin-left: 340px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC_0</div></div></div></foreignObject><text x="359" y="814" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC_0</text></switch></g><rect x="1719.5" y="291" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 301px; margin-left: 1721px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">LED[0:3]</div></div></div></foreignObject><text x="1755" y="305" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LED[0:3]</text></switch></g><path d="M 274 264.5 L 380.63 264.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 385.88 265 L 378.87 268.46 L 380.63 264.97 L 378.9 261.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 305.5 L 380.63 305.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 385.88 306 L 378.87 309.46 L 380.63 305.97 L 378.9 302.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 340.5 L 379.63 340.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 384.88 341 L 377.87 344.46 L 379.63 340.97 L 377.9 337.46 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="170" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 180px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_26</div></div></div></foreignObject><text x="543" y="184" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_26</text></switch></g><rect x="508" y="192.5" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 203px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_27</div></div></div></foreignObject><text x="543" y="206" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_27</text></switch></g><rect x="508" y="212.5" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 223px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_28</div></div></div></foreignObject><text x="543" y="226" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_28</text></switch></g><rect x="287.44" y="322.75" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 332px; margin-left: 288px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[0]</div></div></div></foreignObject><text x="325" y="335" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="292.88" y="282.5" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 293px; margin-left: 294px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_INT[31]</div></div></div></foreignObject><text x="328" y="296" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_INT[...</text></switch></g><rect x="292.88" y="244" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 254px; margin-left: 294px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_INT[30]</div></div></div></foreignObject><text x="328" y="258" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_INT[...</text></switch></g><rect x="309" y="830" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 840px; margin-left: 310px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT[1]</div></div></div></foreignObject><text x="344" y="844" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT[1]</text></switch></g><rect x="309" y="930" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 940px; margin-left: 310px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT[2]</div></div></div></foreignObject><text x="344" y="944" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT[2]</text></switch></g><path d="M 175.5 344.96 L 214.8 345 L 247.63 345.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 345.73 L 245.82 349.09 L 247.63 345.63 L 245.95 342.1 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="100.5" y="329" width="75" height="19" fill="none" stroke="none" pointer-events="all"/><path d="M 100.5 345 L 115.5 345 M 160.5 345 L 175.5 345 M 121.5 344 L 157.5 329" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="157.5" cy="345" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><ellipse cx="118.5" cy="345" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><path d="M 50.5 345 L 94.13 344.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 99.38 344.96 L 92.38 348.47 L 94.13 344.97 L 92.38 341.47 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="0.5" y="328" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 338px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SW1</div></div></div></foreignObject><text x="41" y="342" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SW1</text></switch></g><path d="M 175.5 307.46 L 214.8 307.6 L 214.8 310.8 L 247.63 310.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 310.75 L 245.89 314.26 L 247.63 310.76 L 245.88 307.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="100.5" y="291.5" width="75" height="19" fill="none" stroke="none" pointer-events="all"/><path d="M 100.5 307.5 L 115.5 307.5 M 160.5 307.5 L 175.5 307.5 M 121.5 306.5 L 157.5 291.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="157.5" cy="307.5" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><ellipse cx="118.5" cy="307.5" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><path d="M 50.5 307.5 L 94.13 307.47" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 99.38 307.46 L 92.38 310.97 L 94.13 307.47 L 92.38 303.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="0.5" y="290.5" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 301px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SW3</div></div></div></foreignObject><text x="41" y="304" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SW3</text></switch></g><path d="M 175.5 267.46 L 214.8 267.6 L 214.8 269.8 L 247.63 269.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 252.88 269.75 L 245.89 273.26 L 247.63 269.76 L 245.88 266.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="100.5" y="251.5" width="75" height="19" fill="none" stroke="none" pointer-events="all"/><path d="M 100.5 267.5 L 115.5 267.5 M 160.5 267.5 L 175.5 267.5 M 121.5 266.5 L 157.5 251.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="157.5" cy="267.5" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><ellipse cx="118.5" cy="267.5" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><path d="M 50.5 267.5 L 94.13 267.47" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 99.38 267.46 L 92.38 270.97 L 94.13 267.47 L 92.38 263.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="0.5" y="250.5" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 261px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SW2</div></div></div></foreignObject><text x="41" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SW2</text></switch></g><path d="M 270 264.5 L 274 264.5 M 254 259.25 L 258.6 259.25 M 254 269.75 L 258.6 269.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 262 254 C 265.49 254.2 268.61 258.29 270 264.5 C 268.61 270.71 265.49 274.8 262 275 L 257 275 C 259.14 268.5 259.14 260.5 257 254 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 270 305.5 L 274 305.5 M 254 300.25 L 258.6 300.25 M 254 310.75 L 258.6 310.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 262 295 C 265.49 295.2 268.61 299.29 270 305.5 C 268.61 311.71 265.49 315.8 262 316 L 257 316 C 259.14 309.5 259.14 301.5 257 295 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 270 340.5 L 274 340.5 M 254 335.25 L 258.6 335.25 M 254 345.75 L 258.6 345.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 262 330 C 265.49 330.2 268.61 334.29 270 340.5 C 268.61 346.71 265.49 350.8 262 351 L 257 351 C 259.14 344.5 259.14 336.5 257 330 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1347" y="1185" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1195px; margin-left: 1348px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PCIE_ROOTPORT_INTERRUPT<span style="color: rgba(0 , 0 , 0 , 0) ; font-family: monospace ; font-size: 0px">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22AXI_1_MASTER%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221040%22%20y%3D%22430%22%20width%3D%2276%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%OOT</span></div></div></div></foreignObject><text x="1385" y="1199" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PCIE_ROOTPOR...</text></switch></g><path d="M 1520 1119.66 L 1520 1140 L 1604 1140 L 1604 1360 L 239 1360 L 239 820 L 382.63 820" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 387.88 820 L 380.88 823.5 L 382.63 820 L 380.88 816.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1400" y="1104.66" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1135px; margin-left: 1401px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PCIE_INITIATOR</div></div></div></foreignObject><text x="1460" y="1138" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PCIE_INITIATOR</text></switch></g><rect x="1520" y="1120" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1130px; margin-left: 1521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4mslave0</div></div></div></foreignObject><text x="1558" y="1134" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4mslave0</text></switch></g><rect x="1026" y="1253.41" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1263px; margin-left: 1027px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4MasterDMA_IF</div></div></div></foreignObject><text x="1064" y="1267" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4MasterDM...</text></switch></g><rect x="1013.5" y="1290" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1300px; margin-left: 1015px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">INTERRUPT[0]</div></div></div></foreignObject><text x="1052" y="1304" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">INTERRUPT[0]</text></switch></g><rect x="1371" y="1273.41" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1283px; margin-left: 1372px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI4mslave0</div></div></div></foreignObject><text x="1409" y="1287" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI4mslave0</text></switch></g><path d="M 508 1225 L 550.64 1223.62" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 555.88 1223.45 L 549 1227.17 L 550.64 1223.62 L 548.77 1220.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="824" y="70" width="148" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 146px; height: 1px; padding-top: 80px; margin-left: 825px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; text-decoration: underline; white-space: normal; word-wrap: normal; ">MPFS_250T FPGA</div></div></div></foreignObject><text x="898" y="84" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" text-decoration="underline">MPFS_250T FPGA</text></switch></g><rect x="824" y="20" width="148" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 146px; height: 1px; padding-top: 30px; margin-left: 825px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; text-decoration: underline; white-space: normal; word-wrap: normal; ">Icicle Kit ES</div></div></div></foreignObject><text x="898" y="34" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" text-decoration="underline">Icicle Kit ES</text></switch></g><path d="M 508 615.29 L 609.45 615.02" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 615 L 612.96 617.07 L 609.45 615.02 L 612.95 612.95 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="593.75" width="90" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 604px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_USB</div></div></div></foreignObject><text x="553" y="608" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_USB</text></switch></g><path d="M 508.56 654.04 L 610.01 653.77" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.01 653.75 L 613.52 655.82 L 610.01 653.77 L 613.51 651.7 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="638.75" width="100" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 644px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_MAC1</div></div></div></foreignObject><text x="558" y="647" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_MAC1</text></switch></g><path d="M 508.56 674.2 L 610.01 673.93" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.01 673.91 L 613.52 675.98 L 610.01 673.93 L 613.51 671.86 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="512" y="658.91" width="90" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 664px; margin-left: 513px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_I2C_1</div></div></div></foreignObject><text x="557" y="668" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_I2C_1</text></switch></g><path d="M 508.56 696.6 L 610.01 696.33" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.01 696.31 L 613.52 698.38 L 610.01 696.33 L 613.51 694.26 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="681.31" width="100" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 686px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_CAN_1</div></div></div></foreignObject><text x="558" y="690" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_CAN_1</text></switch></g><path d="M 508 635.29 L 609.45 635.02" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 635 L 612.96 637.07 L 609.45 635.02 L 612.95 632.95 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="615" width="100" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 625px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_MAC0</div></div></div></foreignObject><text x="558" y="629" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_MAC0</text></switch></g><path d="M 508.56 719.6 L 610.01 719.33" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.01 719.31 L 613.52 721.38 L 610.01 719.33 L 613.51 717.26 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="704.31" width="90" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 709px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_DDR</div></div></div></foreignObject><text x="553" y="713" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_DDR</text></switch></g><rect x="1710" y="244" width="100" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 254px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SDIO_SW_EN_N</div></div></div></foreignObject><text x="1760" y="258" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SDIO_SW_EN_N</text></switch></g><path d="M 1636.5 255 L 1703.63 254.09" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 254.02 L 1701.93 257.61 L 1703.63 254.09 L 1701.84 250.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="255" width="25" height="20" fill="none" stroke="none" pointer-events="all"/><path d="M 1624 261.67 L 1636.5 275 L 1649 261.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1636.5 255 L 1636.5 261.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="282.5" width="96" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 293px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_2_[16:19]</div></div></div></foreignObject><text x="556" y="296" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_2_[16:19]</text></switch></g><path d="M 509 303.5 L 1713.13 301.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1718.38 301 L 1711.39 304.52 L 1713.13 301.01 L 1711.37 297.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 508.56 739.6 L 610.01 739.33" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.01 739.31 L 613.52 741.38 L 610.01 739.33 L 613.51 737.26 Z" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="724.31" width="120" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 729px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #B85450; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_IO_eMMC_SD</div></div></div></foreignObject><text x="568" y="733" fill="#B85450" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_IO_eMMC_SD</text></switch></g><path d="M 904 971.34 L 904 983 L 898 983 L 898 930 L 1004 930 L 1004 658 L 1457.63 658" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1462.88 658 L 1455.88 661.5 L 1457.63 658 L 1455.88 654.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904 925.67 L 904 1013 L 1064 1013 L 1064 896 L 1457.63 896" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1462.88 896 L 1455.88 899.5 L 1457.63 896 L 1455.88 892.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904 925.67 L 904 953 L 898 953 L 898 900 L 984 900 L 984 581 L 1458.63 581" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1463.88 581 L 1456.88 584.5 L 1458.63 581 L 1456.88 577.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904 1040 L 974 1040 L 974 1053 L 1037.63 1053" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1042.88 1053 L 1035.88 1056.5 L 1037.63 1053 L 1035.88 1049.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904 971.34 L 904 990 L 1044 990 L 1044 826 L 1458.63 826" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1463.88 826 L 1456.88 829.5 L 1458.63 826 L 1456.88 822.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904 971.34 L 904 960 L 1024 960 L 1024 741 L 1458.63 740.88" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1463.88 740.88 L 1456.88 744.38 L 1458.63 740.88 L 1456.88 737.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="808" y="880" width="96" height="182.69" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 971px; margin-left: 809px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FIC3_INITIATOR</div></div></div></foreignObject><text x="856" y="975" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FIC3_INITIATOR</text></switch></g><rect x="908.5" y="1017.69" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1028px; margin-left: 910px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave16</div></div></div></foreignObject><text x="947" y="1031" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave16</text></switch></g><path d="M 1584 657.5 L 1653 657.6 L 1715.63 657.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1720.88 657.69 L 1713.88 661.18 L 1715.63 657.68 L 1713.89 654.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1464" y="632.5" width="120" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 658px; margin-left: 1465px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CoreGPIO</div></div></div></foreignObject><text x="1524" y="661" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CoreGPIO</text></switch></g><rect x="906" y="880" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 890px; margin-left: 907px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave1</div></div></div></foreignObject><text x="944" y="894" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave1</text></switch></g><path d="M 1584 896 L 1715.63 895.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1720.88 895.69 L 1713.89 899.21 L 1715.63 895.7 L 1713.87 892.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1464" y="872" width="120" height="48" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 896px; margin-left: 1465px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SDIO_register</div></div></div></foreignObject><text x="1524" y="900" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SDIO_register</text></switch></g><rect x="911" y="994.19" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 1004px; margin-left: 912px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave15</div></div></div></foreignObject><text x="946" y="1008" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave15</text></switch></g><rect x="1710" y="185" width="136" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 134px; height: 1px; padding-top: 195px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_CMODE[3:5]</div></div></div></foreignObject><text x="1778" y="199" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_CMODE[3:5]</text></switch></g><path d="M 1638.5 195 L 1703.63 195" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 195 L 1701.88 198.5 L 1703.63 195 L 1701.88 191.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1626" y="195" width="25" height="20" fill="none" stroke="none" pointer-events="all"/><path d="M 1626 201.67 L 1638.5 215 L 1651 201.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1638.5 195 L 1638.5 201.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1710" y="215" width="126" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 124px; height: 1px; padding-top: 225px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_CMODE7</div></div></div></foreignObject><text x="1773" y="229" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_CMODE7</text></switch></g><path d="M 1636.5 225 L 1703.63 225" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 225 L 1701.88 228.5 L 1703.63 225 L 1701.88 221.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="225" width="25" height="20" fill="none" stroke="none" pointer-events="all"/><path d="M 1624 231.67 L 1636.5 245 L 1649 231.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1636.5 225 L 1636.5 231.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1710" y="75" width="124" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 122px; height: 1px; padding-top: 85px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_CMODE6</div></div></div></foreignObject><text x="1772" y="89" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_CMODE6</text></switch></g><path d="M 1636.5 85 L 1703.63 85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 85 L 1701.88 88.5 L 1703.63 85 L 1701.88 81.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="65" width="25" height="20" fill="none" stroke="none" transform="rotate(-180,1636.5,75)" pointer-events="all"/><path d="M 1624 71.67 L 1636.5 85 L 1649 71.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,75)" pointer-events="all"/><path d="M 1636.5 65 L 1636.5 71.67" fill="none" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,75)" pointer-events="all"/><rect x="1710" y="105" width="124" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 122px; height: 1px; padding-top: 115px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_SRESET</div></div></div></foreignObject><text x="1772" y="119" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_SRESET</text></switch></g><path d="M 1636.5 115 L 1703.63 115" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 115 L 1701.88 118.5 L 1703.63 115 L 1701.88 111.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="95" width="25" height="20" fill="none" stroke="none" transform="rotate(-180,1636.5,105)" pointer-events="all"/><path d="M 1624 101.67 L 1636.5 115 L 1649 101.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,105)" pointer-events="all"/><path d="M 1636.5 95 L 1636.5 101.67" fill="none" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,105)" pointer-events="all"/><rect x="1710" y="135" width="114" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 145px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_OSCEN</div></div></div></foreignObject><text x="1767" y="149" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_OSCEN</text></switch></g><path d="M 1636.5 145 L 1703.63 145" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 145 L 1701.88 148.5 L 1703.63 145 L 1701.88 141.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="125" width="25" height="20" fill="none" stroke="none" transform="rotate(-180,1636.5,135)" pointer-events="all"/><path d="M 1624 131.67 L 1636.5 145 L 1649 131.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,135)" pointer-events="all"/><path d="M 1636.5 125 L 1636.5 131.67" fill="none" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,135)" pointer-events="all"/><rect x="1710" y="161" width="134" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 132px; height: 1px; padding-top: 171px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VSC_8662_PLLMODE</div></div></div></foreignObject><text x="1777" y="175" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VSC_8662_PLLMODE</text></switch></g><path d="M 1636.5 171 L 1703.63 171" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1708.88 171 L 1701.88 174.5 L 1703.63 171 L 1701.88 167.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1624" y="151" width="25" height="20" fill="none" stroke="none" transform="rotate(-180,1636.5,161)" pointer-events="all"/><path d="M 1624 157.67 L 1636.5 171 L 1649 157.67 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,161)" pointer-events="all"/><path d="M 1636.5 151 L 1636.5 157.67" fill="none" stroke="#000000" stroke-miterlimit="10" transform="rotate(-180,1636.5,161)" pointer-events="all"/><path d="M 175.5 641.96 L 381.99 640.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.24 640.83 L 380.26 644.36 L 381.99 640.85 L 380.22 637.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="100.5" y="626" width="75" height="19" fill="none" stroke="none" pointer-events="all"/><path d="M 100.5 642 L 115.5 642 M 160.5 642 L 175.5 642 M 121.5 641 L 157.5 626" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="157.5" cy="642" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><ellipse cx="118.5" cy="642" rx="3" ry="3" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="14" y="625" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 635px; margin-left: 15px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SW4</div></div></div></foreignObject><text x="54" y="639" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SW4</text></switch></g><path d="M 62 642 L 98.78 641.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 104.03 641.85 L 97.04 645.37 L 98.78 641.87 L 97.02 638.37 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="287.44" y="617.5" width="65.12" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 63px; height: 1px; padding-top: 628px; margin-left: 288px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_RESET_N_F2M</div></div></div></foreignObject><text x="320" y="632" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_RESET_N...</text></switch></g><rect x="1587" y="640.16" width="91" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 89px; height: 1px; padding-top: 650px; margin-left: 1588px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPIO_OUT[0:3]</div></div></div></foreignObject><text x="1633" y="654" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPIO_OUT[0:3]</text></switch></g><path d="M 508 556.54 L 609.45 556.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 556.25 L 612.96 558.32 L 609.45 556.27 L 612.95 554.2 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="535" width="86" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 84px; height: 1px; padding-top: 546px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_CAN_0</div></div></div></foreignObject><text x="551" y="549" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_CAN_0</text></switch></g><path d="M 508 471.54 L 609.45 471.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 471.25 L 612.96 473.32 L 609.45 471.27 L 612.95 469.2 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="450" width="126" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 124px; height: 1px; padding-top: 461px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_MMUART_[0:4]</div></div></div></foreignObject><text x="571" y="464" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_MMUART_[0:4]</text></switch></g><path d="M 508 492.79 L 609.45 492.52" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 492.5 L 612.96 494.57 L 609.45 492.52 L 612.95 490.45 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="471.25" width="76" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 482px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_QSPI</div></div></div></foreignObject><text x="546" y="485" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_QSPI</text></switch></g><path d="M 508 514.04 L 609.45 513.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 513.75 L 612.96 515.82 L 609.45 513.77 L 612.95 511.7 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="492.5" width="76" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 503px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_SPI_0</div></div></div></foreignObject><text x="546" y="507" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_SPI_0</text></switch></g><path d="M 508 535.29 L 609.45 535.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 535 L 612.96 537.07 L 609.45 535.02 L 612.95 532.95 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="513.75" width="76" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 524px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_I2C_0</div></div></div></foreignObject><text x="546" y="528" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_I2C_0</text></switch></g><rect x="908" y="910" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 920px; margin-left: 909px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave2</div></div></div></foreignObject><text x="946" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave2</text></switch></g><path d="M 1585 581.25 L 1653.6 581.4 L 1715.63 580.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1720.88 580.7 L 1713.92 584.27 L 1715.63 580.76 L 1713.85 577.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1465" y="556.25" width="120" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 581px; margin-left: 1466px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PWM</div></div></div></foreignObject><text x="1525" y="585" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PWM</text></switch></g><rect x="1588" y="877.25" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 887px; margin-left: 1589px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SDIO_control</div></div></div></foreignObject><text x="1623" y="891" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SDIO_control</text></switch></g><rect x="1585" y="565" width="49" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 47px; height: 1px; padding-top: 575px; margin-left: 1586px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PWM[0]</div></div></div></foreignObject><text x="1610" y="579" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PWM[0]</text></switch></g><path d="M 668 835 L 668 840 L 794 840 L 794 971.4 L 801.63 971.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 806.88 971.35 L 799.9 974.88 L 801.63 971.37 L 799.87 967.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 668 805 L 794 805 L 794 388.4 L 803.63 388.38" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 808.88 388.37 L 801.89 391.89 L 803.63 388.38 L 801.88 384.89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="548" y="790" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 820px; margin-left: 549px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APB_ARBITER</div></div></div></foreignObject><text x="608" y="824" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_ARBITER</text></switch></g><rect x="1300" y="1160" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 1170px; margin-left: 1301px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AXI_1_MASTER</div></div></div></foreignObject><text x="1338" y="1174" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AXI_1_MASTER</text></switch></g><rect x="694" y="821.25" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 831px; margin-left: 695px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APB_MASTER_LOW</div></div></div></foreignObject><text x="732" y="835" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_MASTER_L...</text></switch></g><path d="M 924 334 L 924 331.6 L 1007.63 331.51" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1012.88 331.5 L 1005.89 335.01 L 1007.63 331.51 L 1005.88 328.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="694" y="780" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 790px; margin-left: 695px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APB_MASTER_HIGH</div></div></div></foreignObject><text x="732" y="794" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APB_MASTER_H...</text></switch></g><rect x="924" y="311.5" width="71" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 69px; height: 1px; padding-top: 322px; margin-left: 925px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">E51_IRQ</div></div></div></foreignObject><text x="960" y="326" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">E51_IRQ</text></switch></g><path d="M 924 360.87 L 924 358.4 L 1007.63 358.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1012.88 358.37 L 1005.88 361.87 L 1007.63 358.37 L 1005.88 354.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="924" y="339" width="81" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 350px; margin-left: 925px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">U54_1_IRQ</div></div></div></foreignObject><text x="965" y="353" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_1_IRQ</text></switch></g><path d="M 924 390.87 L 924 388.4 L 1007.63 388.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1012.88 388.37 L 1005.88 391.87 L 1007.63 388.37 L 1005.88 384.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="924" y="367.75" width="81" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 378px; margin-left: 925px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">U54_2_IRQ</div></div></div></foreignObject><text x="965" y="382" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_2_IRQ</text></switch></g><path d="M 924 420.87 L 924 418.4 L 1007.63 418.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1012.88 418.37 L 1005.88 421.87 L 1007.63 418.37 L 1005.88 414.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="924" y="398.62" width="81" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 409px; margin-left: 925px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">U54_3_IRQ</div></div></div></foreignObject><text x="965" y="413" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_3_IRQ</text></switch></g><path d="M 924 450.87 L 924 448.4 L 1007.63 448.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1012.88 448.37 L 1005.88 451.87 L 1007.63 448.37 L 1005.88 444.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="924" y="428.62" width="81" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 439px; margin-left: 925px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">U54_4_IRQ</div></div></div></foreignObject><text x="965" y="443" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">U54_4_IRQ</text></switch></g><path d="M 274 449 L 381.99 449.28" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.24 449.3 L 380.23 452.78 L 381.99 449.28 L 380.25 445.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 486 L 382.95 485.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 388.2 485.78 L 381.21 489.3 L 382.95 485.79 L 381.2 482.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 521 L 380.07 521.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 385.32 521.12 L 378.32 524.61 L 380.07 521.11 L 378.33 517.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 559 L 382.47 558.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 387.72 558.74 L 380.73 562.26 L 382.47 558.75 L 380.71 555.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 274 594 L 379.59 594.08" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 384.84 594.08 L 377.84 597.57 L 379.59 594.08 L 377.84 590.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="282" y="432.5" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 441px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[63]</div></div></div></foreignObject><text x="320" y="445" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="282" y="470" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 479px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[62]</div></div></div></foreignObject><text x="320" y="482" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="282" y="500" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 509px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[61]</div></div></div></foreignObject><text x="320" y="512" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="282" y="538.75" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 548px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[60]</div></div></div></foreignObject><text x="320" y="551" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="282" y="576.25" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 585px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[59]</div></div></div></foreignObject><text x="320" y="589" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="1034" y="321.5" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 330px; margin-left: 1035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[63]</div></div></div></foreignObject><text x="1072" y="334" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="1034" y="349" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 358px; margin-left: 1035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[62]</div></div></div></foreignObject><text x="1072" y="361" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="1034" y="379.62" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 388px; margin-left: 1035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[61]</div></div></div></foreignObject><text x="1072" y="392" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="1034" y="409" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 418px; margin-left: 1035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[60]</div></div></div></foreignObject><text x="1072" y="421" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="1034" y="439" width="76" height="17.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 448px; margin-left: 1035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_INT_F2M[59]</div></div></div></foreignObject><text x="1072" y="451" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_INT_F2M[...</text></switch></g><rect x="810" y="318.37" width="120" height="140" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 388px; margin-left: 811px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IHC_SUBSYSTEM</div></div></div></foreignObject><text x="870" y="392" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IHC_SUBSYSTEM</text></switch></g><rect x="1725" y="886" width="114" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 896px; margin-left: 1726px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SDIO_SW_SEL[0:1]</div></div></div></foreignObject><text x="1782" y="900" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SDIO_SW_SEL[0:1]</text></switch></g><rect x="1725" y="647.5" width="59" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 57px; height: 1px; padding-top: 658px; margin-left: 1726px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">LED[0:3]</div></div></div></foreignObject><text x="1755" y="661" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LED[0:3]</text></switch></g><rect x="1725" y="571.25" width="136" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 134px; height: 1px; padding-top: 581px; margin-left: 1726px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">QSPI_DATA3_OR_PWM</div></div></div></foreignObject><text x="1793" y="585" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">QSPI_DATA3_OR_PWM</text></switch></g><path d="M 1585 719.2 L 1716.01 718.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1723.01 718.32 L 1719.53 720.4 L 1716.01 718.36 L 1719.5 716.28 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1585" y="724.31" width="47" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 45px; height: 1px; padding-top: 734px; margin-left: 1586px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SDA</div></div></div></foreignObject><text x="1609" y="738" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SDA</text></switch></g><rect x="1584" y="691.31" width="47" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 45px; height: 1px; padding-top: 701px; margin-left: 1585px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">SCL</div></div></div></foreignObject><text x="1608" y="705" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SCL</text></switch></g><path d="M 1585 741.6 L 1716.01 740.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1723.01 740.32 L 1719.53 742.41 L 1716.01 740.38 L 1719.49 738.29 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1585 826 L 1716.63 825.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1721.88 825.69 L 1714.89 829.21 L 1716.63 825.7 L 1714.87 822.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1465" y="802" width="120" height="48" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 826px; margin-left: 1466px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CoreUART</div></div></div></foreignObject><text x="1525" y="830" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CoreUART</text></switch></g><rect x="1574.5" y="810" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 820px; margin-left: 1576px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">TX</div></div></div></foreignObject><text x="1610" y="824" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">TX</text></switch></g><rect x="1725" y="816" width="92" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 90px; height: 1px; padding-top: 826px; margin-left: 1726px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">COREUART_TX</div></div></div></foreignObject><text x="1771" y="830" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">COREUART_TX</text></switch></g><rect x="908.5" y="941.69" width="76" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 74px; height: 1px; padding-top: 952px; margin-left: 910px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave4</div></div></div></foreignObject><text x="947" y="955" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave4</text></switch></g><rect x="908.5" y="966.69" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 977px; margin-left: 910px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">APBmslave5</div></div></div></foreignObject><text x="944" y="980" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">APBmslave5</text></switch></g><path d="M 1394 811 L 1458.63 811.4" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1463.88 811.43 L 1456.86 814.89 L 1458.63 811.4 L 1456.9 807.89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1384" y="793" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 803px; margin-left: 1385px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">RX</div></div></div></foreignObject><text x="1419" y="807" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RX</text></switch></g><path d="M 148 767.31 L 227.63 767.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.88 767 L 225.89 770.53 L 227.63 767.02 L 225.87 763.53 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="34" y="757" width="114" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 767px; margin-left: 35px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">COREUART_RX</div></div></div></foreignObject><text x="91" y="771" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">COREUART_RX</text></switch></g><rect x="1281" y="800" width="114" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 810px; margin-left: 1282px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">COREUART_RX</div></div></div></foreignObject><text x="1338" y="814" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">COREUART_RX</text></switch></g><rect x="1731" y="707.31" width="103" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 101px; height: 1px; padding-top: 717px; margin-left: 1732px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">COREI2C_C0_SCL</div></div></div></foreignObject><text x="1783" y="721" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">COREI2C_C0_SCL</text></switch></g><rect x="1730.5" y="727.31" width="103" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 101px; height: 1px; padding-top: 737px; margin-left: 1732px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">COREI2C_C0_SDA</div></div></div></foreignObject><text x="1782" y="741" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">COREI2C_C0_SDA</text></switch></g><path d="M 508 452.02 L 609.45 451.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 616.45 451.73 L 612.96 453.8 L 609.45 451.75 L 612.95 449.68 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="508" y="430.48" width="116" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 114px; height: 1px; padding-top: 441px; margin-left: 509px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_GPIO2_[0:15]</div></div></div></foreignObject><text x="566" y="445" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_GPIO2_[0:15]</text></switch></g><path d="M 1600.56 366.79 L 1702.01 366.52" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1709.01 366.5 L 1705.52 368.57 L 1702.01 366.52 L 1705.51 364.45 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1480" y="358.37" width="116" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 114px; height: 1px; padding-top: 369px; margin-left: 1481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MSS_GPIO2_[0:15]</div></div></div></foreignObject><text x="1538" y="373" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MSS_GPIO2_[0:15]</text></switch></g><rect x="1710" y="358.37" width="116" height="21.25" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 114px; height: 1px; padding-top: 369px; margin-left: 1711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">RPi_GPIO[x]</div></div></div></foreignObject><text x="1768" y="373" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPi_GPIO[x]</text></switch></g><path d="M 146.44 679.22 L 381.63 679.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 386.88 679.11 L 379.88 682.61 L 381.63 679.11 L 379.88 675.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="72.44" y="668.91" width="74" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 72px; height: 1px; padding-top: 679px; margin-left: 73px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MBUS_INT</div></div></div></foreignObject><text x="109" y="683" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MBUS_INT</text></switch></g><path d="M 1581 761.66 L 1645.63 762.06" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1650.88 762.09 L 1643.86 765.55 L 1645.63 762.06 L 1643.9 758.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1465" y="704.31" width="120" height="73.13" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 741px; margin-left: 1466px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CoreI2C</div></div></div></foreignObject><text x="1525" y="744" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CoreI2C</text></switch></g><rect x="1652" y="757" width="40" height="10" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 762px; margin-left: 1653px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">INT</div></div></div></foreignObject><text x="1672" y="766" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">INT</text></switch></g><path d="M 317 716.87 L 381.63 717.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 386.88 717.3 L 379.86 720.76 L 381.63 717.27 L 379.9 713.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="229" y="704.31" width="80" height="23.13" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 716px; margin-left: 230px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CoreI2C_INT</div></div></div></foreignObject><text x="269" y="719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">CoreI2C_INT</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
-- 
GitLab


From 46f133a0ab38eb2357640b0dc433bea228992428 Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Fri, 11 Aug 2023 18:00:58 +0100
Subject: [PATCH 19/19] Changed the silicon signature.

---
 BUILD_BVF_GATEWARE.tcl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/BUILD_BVF_GATEWARE.tcl b/BUILD_BVF_GATEWARE.tcl
index e2dbbbf..aa00037 100644
--- a/BUILD_BVF_GATEWARE.tcl
+++ b/BUILD_BVF_GATEWARE.tcl
@@ -115,7 +115,7 @@ if {[info exists DESIGN_VERSION]} {
 if {[info exists SILICON_SIGNATURE]} {
     set gateware_silicon_signature "$SILICON_SIGNATURE"
 } else {
-    set gateware_silicon_signature "deadc001"
+    set gateware_silicon_signature "bea913b0"
 }
 
 source ./script_support/additional_configurations/functions.tcl
-- 
GitLab