From 96446a0aeda774044bfeeece89e248c3407038c7 Mon Sep 17 00:00:00 2001
From: "orphee.antoniad" <orphee.antoniadis@hesge.ch>
Date: Mon, 6 Sep 2021 16:03:28 +0200
Subject: [PATCH] Update on scalp MIPI block design. Still not getting data
 from camera.

---
 .../2020.2/src/constrs/scalp_mipi.xdc         | 20 +++---
 .../src/ipi_tcl/scalp_mipi_zynqps_ipi.tcl     | 63 ++++++++++++++++---
 2 files changed, 69 insertions(+), 14 deletions(-)

diff --git a/designs/vivado/scalp_mipi/2020.2/src/constrs/scalp_mipi.xdc b/designs/vivado/scalp_mipi/2020.2/src/constrs/scalp_mipi.xdc
index a070fb7..7fe937d 100644
--- a/designs/vivado/scalp_mipi/2020.2/src/constrs/scalp_mipi.xdc
+++ b/designs/vivado/scalp_mipi/2020.2/src/constrs/scalp_mipi.xdc
@@ -192,7 +192,7 @@ set_property IOSTANDARD LVCMOS25 [get_ports Pll2V5ClkIn1LOSxSI]
 
 
 ##### Camera MIPI connector (Bank 34) #####
-set_property INTERNAL_VREF 0.6 [get_iobanks 34]
+#set_property INTERNAL_VREF 0.6 [get_iobanks 34]
 # Camera GPIO_BTA -> LVDS2V5Bottom6PxSIO
 set_property PACKAGE_PIN P6 [get_ports CamGpioBta]
 set_property IOSTANDARD LVCMOS25 [get_ports CamGpioBta]
@@ -209,34 +209,38 @@ set_property IOSTANDARD LVCMOS25 [get_ports CamI2cScl]
 set_property PULLTYPE PULLUP [get_ports CamI2cScl]
 # Camera LP_CLK_P -> LVDS2V5Bottom4PxSIO
 set_property PACKAGE_PIN R3 [get_ports CamLpClkP]
-set_property IOSTANDARD HSUL_12 [get_ports CamLpClkP]
+set_property IOSTANDARD LVCMOS25 [get_ports CamLpClkP]
 # Camera LP_CLK_N -> LVDS2V5Bottom4NxSIO
 set_property PACKAGE_PIN R2 [get_ports CamLpClkN]
-set_property IOSTANDARD HSUL_12 [get_ports CamLpClkN]
+set_property IOSTANDARD LVCMOS25 [get_ports CamLpClkN]
 # Camera LP_LANE1_P -> LVDS2V5Bottom3PxSIO
 set_property PACKAGE_PIN P3 [get_ports {CamLpDataP[1]}]
-set_property IOSTANDARD HSUL_12 [get_ports {CamLpDataP[1]}]
+set_property IOSTANDARD LVCMOS25 [get_ports {CamLpDataP[1]}]
 # Camera LP_LANE1_N -> LVDS2V5Bottom3NxSIO
 set_property PACKAGE_PIN P2 [get_ports {CamLpDataN[1]}]
-set_property IOSTANDARD HSUL_12 [get_ports {CamLpDataN[1]}]
+set_property IOSTANDARD LVCMOS25 [get_ports {CamLpDataN[1]}]
 # Camera HS_LANE1_P -> LVDS2V5Bottom2PxSIO
 set_property PACKAGE_PIN N1 [get_ports {CamHsDataP[1]}]
 set_property IOSTANDARD LVDS_25 [get_ports {CamHsDataP[1]}]
+set_property DIFF_TERM true [get_ports {CamHsDataP[1]}]
 # Camera HS_LANE1_N -> LVDS2V5Bottom2NxSIO
 set_property PACKAGE_PIN P1 [get_ports {CamHsDataN[1]}]
 set_property IOSTANDARD LVDS_25 [get_ports {CamHsDataN[1]}]
+set_property DIFF_TERM true [get_ports {CamHsDataN[1]}]
 # Camera LP_LANE0_P -> LVDS2V5Bottom1PxSIO
 set_property PACKAGE_PIN N4 [get_ports {CamLpDataP[0]}]
-set_property IOSTANDARD HSUL_12 [get_ports {CamLpDataP[0]}]
+set_property IOSTANDARD LVCMOS25 [get_ports {CamLpDataP[0]}]
 # Camera LP_LANE0_N -> LVDS2V5Bottom1NxSIO
 set_property PACKAGE_PIN N3 [get_ports {CamLpDataN[0]}]
-set_property IOSTANDARD HSUL_12 [get_ports {CamLpDataN[0]}]
+set_property IOSTANDARD LVCMOS25 [get_ports {CamLpDataN[0]}]
 # Camera HS_LANE0_P -> LVDS2V5Bottom0PxSIO
 set_property PACKAGE_PIN M2 [get_ports {CamHsDataP[0]}]
 set_property IOSTANDARD LVDS_25 [get_ports {CamHsDataP[0]}]
+set_property DIFF_TERM true [get_ports {CamHsDataP[0]}]
 # Camera HS_LANE0_N -> LVDS2V5Bottom0NxSIO
 set_property PACKAGE_PIN M1 [get_ports {CamHsDataN[0]}]
 set_property IOSTANDARD LVDS_25 [get_ports {CamHsDataN[0]}]
+set_property DIFF_TERM true [get_ports {CamHsDataN[0]}]
 
 ##### RGB LEDs (banks 34 and 13) #####
 # LED1_2V5_R_o (bank 34)
@@ -291,9 +295,11 @@ set_property IOSTANDARD LVCMOS25 [get_ports SelfRstxRNO]
 # Camera HS_CLK_P -> Clk2V5BottomPxCI
 set_property PACKAGE_PIN U2 [get_ports CamHsClkP]
 set_property IOSTANDARD LVDS_25 [get_ports CamHsClkP]
+set_property DIFF_TERM true [get_ports CamHsClkP]
 # Camera HS_CLK_N -> Clk2V5BottomNxCI
 set_property PACKAGE_PIN U1 [get_ports CamHsClkN]
 set_property IOSTANDARD LVDS_25 [get_ports CamHsClkN]
+set_property DIFF_TERM true [get_ports CamHsClkN]
 
 # Bank 13
 #set_property PACKAGE_PIN "AA14" [get_ports "Clk2V5SouthPxCI"]
diff --git a/soc/vivado/scalp_mipi_zynqps/2020.2/src/ipi_tcl/scalp_mipi_zynqps_ipi.tcl b/soc/vivado/scalp_mipi_zynqps/2020.2/src/ipi_tcl/scalp_mipi_zynqps_ipi.tcl
index 71ae641..5ed5442 100644
--- a/soc/vivado/scalp_mipi_zynqps/2020.2/src/ipi_tcl/scalp_mipi_zynqps_ipi.tcl
+++ b/soc/vivado/scalp_mipi_zynqps/2020.2/src/ipi_tcl/scalp_mipi_zynqps_ipi.tcl
@@ -247,10 +247,10 @@ proc create_root_design { parentCell } {
    CONFIG.M_TID_WIDTH {1} \
    CONFIG.M_TUSER_WIDTH {1} \
    CONFIG.S_HAS_TLAST {1} \
-   CONFIG.S_TDATA_NUM_BYTES {2} \
+   CONFIG.S_TDATA_NUM_BYTES {4} \
    CONFIG.S_TDEST_WIDTH {10} \
    CONFIG.S_TUSER_WIDTH {1} \
-   CONFIG.TDATA_REMAP {32'b00000000000000000000000000000000,tdata[15:0]} \
+   CONFIG.TDATA_REMAP {16'b0000000000000000,tdata[31:0]} \
    CONFIG.TDEST_REMAP {tdest[0:0]} \
    CONFIG.TKEEP_REMAP {6'b111111} \
    CONFIG.TLAST_REMAP {tlast[0]} \
@@ -315,10 +315,12 @@ proc create_root_design { parentCell } {
   set mipi_csi2_rx_subsyst_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mipi_csi2_rx_subsystem:5.1 mipi_csi2_rx_subsyst_0 ]
   set_property -dict [ list \
    CONFIG.CMN_NUM_LANES {2} \
+   CONFIG.CMN_NUM_PIXELS {2} \
    CONFIG.CMN_PXL_FORMAT {YUV422_8bit} \
    CONFIG.CSI_BUF_DEPTH {4096} \
    CONFIG.C_CAL_MODE {FIXED} \
    CONFIG.C_DPHY_LANES {2} \
+   CONFIG.C_EN_TIMEOUT_REGS {false} \
    CONFIG.C_HS_LINE_RATE {336} \
    CONFIG.C_HS_SETTLE_NS {164} \
    CONFIG.C_IDLY_TAP {2} \
@@ -762,10 +764,10 @@ proc create_root_design { parentCell } {
    CONFIG.PCW_UIPARAM_DDR_COL_ADDR_COUNT {10} \
    CONFIG.PCW_UIPARAM_DDR_CWL {6} \
    CONFIG.PCW_UIPARAM_DDR_DEVICE_CAPACITY {2048 MBits} \
-   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 {0} \
-   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1 {0} \
-   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2 {0} \
-   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3 {0} \
+   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 {0.0} \
+   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1 {0.0} \
+   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2 {0.0} \
+   CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3 {0.0} \
    CONFIG.PCW_UIPARAM_DDR_DRAM_WIDTH {16 Bits} \
    CONFIG.PCW_UIPARAM_DDR_ECC {Disabled} \
    CONFIG.PCW_UIPARAM_DDR_FREQ_MHZ {500} \
@@ -810,12 +812,56 @@ proc create_root_design { parentCell } {
   # Create instance: system_ila_0, and set properties
   set system_ila_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:system_ila:1.1 system_ila_0 ]
   set_property -dict [ list \
+   CONFIG.C_BRAM_CNT {51} \
+   CONFIG.C_DATA_DEPTH {4096} \
    CONFIG.C_MON_TYPE {INTERFACE} \
-   CONFIG.C_NUM_MONITOR_SLOTS {1} \
+   CONFIG.C_NUM_MONITOR_SLOTS {2} \
    CONFIG.C_SLOT_0_APC_EN {0} \
    CONFIG.C_SLOT_0_AXI_DATA_SEL {1} \
    CONFIG.C_SLOT_0_AXI_TRIG_SEL {1} \
    CONFIG.C_SLOT_0_INTF_TYPE {xilinx.com:interface:axis_rtl:1.0} \
+   CONFIG.C_SLOT_1_APC_EN {0} \
+   CONFIG.C_SLOT_1_AXI_AR_SEL_DATA {1} \
+   CONFIG.C_SLOT_1_AXI_AR_SEL_TRIG {1} \
+   CONFIG.C_SLOT_1_AXI_AW_SEL_DATA {1} \
+   CONFIG.C_SLOT_1_AXI_AW_SEL_TRIG {1} \
+   CONFIG.C_SLOT_1_AXI_B_SEL_DATA {1} \
+   CONFIG.C_SLOT_1_AXI_B_SEL_TRIG {1} \
+   CONFIG.C_SLOT_1_AXI_DATA_SEL {1} \
+   CONFIG.C_SLOT_1_AXI_R_SEL_DATA {1} \
+   CONFIG.C_SLOT_1_AXI_R_SEL_TRIG {1} \
+   CONFIG.C_SLOT_1_AXI_TRIG_SEL {1} \
+   CONFIG.C_SLOT_1_AXI_W_SEL_DATA {1} \
+   CONFIG.C_SLOT_1_AXI_W_SEL_TRIG {1} \
+   CONFIG.C_SLOT_1_INTF_TYPE {xilinx.com:interface:aximm_rtl:1.0} \
+   CONFIG.C_SLOT_1_TYPE {0} \
+   CONFIG.C_SLOT_2_APC_EN {0} \
+   CONFIG.C_SLOT_2_AXI_AR_SEL_DATA {1} \
+   CONFIG.C_SLOT_2_AXI_AR_SEL_TRIG {1} \
+   CONFIG.C_SLOT_2_AXI_AW_SEL_DATA {1} \
+   CONFIG.C_SLOT_2_AXI_AW_SEL_TRIG {1} \
+   CONFIG.C_SLOT_2_AXI_B_SEL_DATA {1} \
+   CONFIG.C_SLOT_2_AXI_B_SEL_TRIG {1} \
+   CONFIG.C_SLOT_2_AXI_R_SEL_DATA {1} \
+   CONFIG.C_SLOT_2_AXI_R_SEL_TRIG {1} \
+   CONFIG.C_SLOT_2_AXI_W_SEL_DATA {1} \
+   CONFIG.C_SLOT_2_AXI_W_SEL_TRIG {1} \
+   CONFIG.C_SLOT_2_INTF_TYPE {xilinx.com:interface:aximm_rtl:1.0} \
+   CONFIG.C_SLOT_2_TYPE {0} \
+   CONFIG.C_SLOT_3_APC_EN {0} \
+   CONFIG.C_SLOT_3_AXI_AR_SEL_DATA {1} \
+   CONFIG.C_SLOT_3_AXI_AR_SEL_TRIG {1} \
+   CONFIG.C_SLOT_3_AXI_AW_SEL_DATA {1} \
+   CONFIG.C_SLOT_3_AXI_AW_SEL_TRIG {1} \
+   CONFIG.C_SLOT_3_AXI_B_SEL_DATA {1} \
+   CONFIG.C_SLOT_3_AXI_B_SEL_TRIG {1} \
+   CONFIG.C_SLOT_3_AXI_DATA_SEL {1} \
+   CONFIG.C_SLOT_3_AXI_R_SEL_DATA {1} \
+   CONFIG.C_SLOT_3_AXI_R_SEL_TRIG {1} \
+   CONFIG.C_SLOT_3_AXI_TRIG_SEL {1} \
+   CONFIG.C_SLOT_3_AXI_W_SEL_DATA {1} \
+   CONFIG.C_SLOT_3_AXI_W_SEL_TRIG {1} \
+   CONFIG.C_SLOT_3_INTF_TYPE {xilinx.com:interface:axis_rtl:1.0} \
  ] $system_ila_0
 
   # Create instance: util_vector_logic_0, and set properties
@@ -845,6 +891,7 @@ proc create_root_design { parentCell } {
    CONFIG.HAS_YUYV8 {1} \
    CONFIG.HAS_Y_UV8 {1} \
    CONFIG.MAX_COLS {3840} \
+   CONFIG.MAX_DATA_WIDTH {8} \
    CONFIG.MAX_NR_PLANES {2} \
    CONFIG.MAX_ROWS {2160} \
    CONFIG.SAMPLES_PER_CLOCK {2} \
@@ -873,6 +920,8 @@ connect_bd_intf_net -intf_net [get_bd_intf_nets mipi_csi2_rx_subsyst_0_video_out
   connect_bd_intf_net -intf_net ps7_0_axi_periph_M02_AXI [get_bd_intf_pins mipi_csi2_rx_subsyst_0/csirxss_s_axi] [get_bd_intf_pins ps7_0_axi_periph/M02_AXI]
   connect_bd_intf_net -intf_net ps7_0_axi_periph_M03_AXI [get_bd_intf_pins ps7_0_axi_periph/M03_AXI] [get_bd_intf_pins v_frmbuf_wr_0/s_axi_CTRL]
   connect_bd_intf_net -intf_net v_frmbuf_wr_0_m_axi_mm_video [get_bd_intf_pins axi_mem_intercon/S00_AXI] [get_bd_intf_pins v_frmbuf_wr_0/m_axi_mm_video]
+connect_bd_intf_net -intf_net [get_bd_intf_nets v_frmbuf_wr_0_m_axi_mm_video] [get_bd_intf_pins axi_mem_intercon/S00_AXI] [get_bd_intf_pins system_ila_0/SLOT_1_AXI]
+  set_property HDL_ATTRIBUTE.DEBUG {true} [get_bd_intf_nets v_frmbuf_wr_0_m_axi_mm_video]
 
   # Create port connections
   connect_bd_net -net InterruptxSI_0_1 [get_bd_ports InterruptxSI] [get_bd_pins scalp_axi4lite_0/InterruptxSI]
-- 
GitLab