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 0000000000000000000000000000000000000000..2fbb9b9afc7b0221946b293b21d5967d24a5ff28 --- /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 0000000000000000000000000000000000000000..8b563131809c3294e327f9931f49f68183407caa --- /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 0000000000000000000000000000000000000000..c93e25329aac1e968f861a6ed65387799115df7f --- /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 0000000000000000000000000000000000000000..ff4d7d2c8a406d009685305a7c9174211c9fbc5f --- /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 0000000000000000000000000000000000000000..2be1a3960497541d493326a9217fda9a03aa8114 --- /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 0000000000000000000000000000000000000000..c01db2df4a4020d378fc5478c0c2ddb54dff0f4e --- /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 0000000000000000000000000000000000000000..4a984f4b91c21e961242bd2dee6e003273eb446f --- /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 0000000000000000000000000000000000000000..89b198a24bf85fce585ded7ff847fb4081645589 --- /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 0000000000000000000000000000000000000000..83c3c75a666c4390beec675c8253f063271529bb --- /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 0000000000000000000000000000000000000000..98f843d40b533f28b78953f86c9164debc002575 --- /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