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] 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