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="<mxfile host="Electron" modified="2021-10-22T11:39:40.919Z" agent="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" etag="kTS40SdD4Be1CIF_7t9N" version="15.4.0" type="device"><diagram id="-lVU6hSQ6pfmJltsPebP" name="Page-1">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/</diagram></mxfile>"><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® 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="<mxfile host="Electron" modified="2021-12-15T09:31:29.473Z" agent="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" etag="DhFWDx30qeHKln17ePgI" version="14.1.8" type="device"><diagram id="yvAtyZ_ZCSqSi9nYqjhV" name="Page-1">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==</diagram></mxfile>"><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