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 82f080b8837b04a049fcd56b02a70fced9c6e296..a070fb74d595fc7e11207ebfdc5226a5e23e1134 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 @@ -152,52 +152,91 @@ set_property IOSTANDARD LVCMOS25 [get_ports Pll2V5ClkIn1LOSxSI] #set_property PACKAGE_PIN "N5" [get_ports "LVDS2V5Bottom7NxSIO"] #set_property IOSTANDARD LVCMOS25 [get_ports LVDS2V5Bottom7NxSIO] +##### Fake MIPI pins (Bank 34) ##### +# FAKE LP_CLK_P +#set_property PACKAGE_PIN M8 [get_ports LVDS2V5Top4PxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top4PxSIO] +## FAKE LP_CLK_N +#set_property PACKAGE_PIN M7 [get_ports LVDS2V5Top4NxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top4NxSIO] +## FAKE LP_LANE1_P +#set_property PACKAGE_PIN L6 [get_ports LVDS2V5Top3PxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top3PxSIO] +## FAKE LP_LANE1_N +#set_property PACKAGE_PIN M6 [get_ports LVDS2V5Top3NxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top3NxSIO] +## FAKE HS_LANE1_P +#set_property PACKAGE_PIN J7 [get_ports LVDS2V5Top2PxSIO] +#set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Top2PxSIO] +## FAKE HS_LANE1_N +#set_property PACKAGE_PIN J6 [get_ports LVDS2V5Top2NxSIO] +#set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Top2NxSIO] +## FAKE LP_LANE0_P +#set_property PACKAGE_PIN J5 [get_ports LVDS2V5Top1PxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top1PxSIO] +## FAKE LP_LANE0_N +#set_property PACKAGE_PIN K5 [get_ports LVDS2V5Top1NxSIO] +#set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Top1NxSIO] +## FAKE HS_LANE0_P +#set_property PACKAGE_PIN J2 [get_ports LVDS2V5Top0PxSIO] +#set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Top0PxSIO] +## FAKE HS_LANE0_N +#set_property PACKAGE_PIN J1 [get_ports LVDS2V5Top0NxSIO] +#set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Top0NxSIO] +## FAKE HS_CLK_P +#set_property PACKAGE_PIN K4 [get_ports Clk2V5TopPxCI] +#set_property IOSTANDARD LVDS_25 [get_ports Clk2V5TopPxCI] +## FAKE HS_CLK_N +#set_property PACKAGE_PIN K3 [get_ports Clk2V5TopNxCI] +#set_property IOSTANDARD LVDS_25 [get_ports Clk2V5TopNxCI] + + ##### Camera MIPI connector (Bank 34) ##### set_property INTERNAL_VREF 0.6 [get_iobanks 34] -# Camera GPIO_BTA -set_property PACKAGE_PIN P6 [get_ports LVDS2V5Bottom6PxSIO] -set_property IOSTANDARD LVCMOS25 [get_ports LVDS2V5Bottom6PxSIO] -# Camera PWUP -set_property PACKAGE_PIN P5 [get_ports LVDS2V5Bottom6NxSIO] -set_property IOSTANDARD LVCMOS25 [get_ports LVDS2V5Bottom6NxSIO] -# Camera SDA -set_property PACKAGE_PIN R5 [get_ports LVDS2V5Bottom5PxSIO] -set_property IOSTANDARD LVCMOS25 [get_ports LVDS2V5Bottom5PxSIO] -set_property PULLTYPE PULLUP [get_ports LVDS2V5Bottom5PxSIO] -# Camera SCL -set_property PACKAGE_PIN R4 [get_ports LVDS2V5Bottom5NxSIO] -set_property IOSTANDARD LVCMOS25 [get_ports LVDS2V5Bottom5NxSIO] -set_property PULLTYPE PULLUP [get_ports LVDS2V5Bottom5NxSIO] -# Camera LP_CLK_P -set_property PACKAGE_PIN R3 [get_ports LVDS2V5Bottom4PxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom4PxSIO] -# Camera LP_CLK_N -set_property PACKAGE_PIN R2 [get_ports LVDS2V5Bottom4NxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom4NxSIO] -# Camera LP_LANE1_P -set_property PACKAGE_PIN P3 [get_ports LVDS2V5Bottom3PxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom3PxSIO] -# Camera LP_LANE1_N -set_property PACKAGE_PIN P2 [get_ports LVDS2V5Bottom3NxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom3NxSIO] -# Camera HS_LANE1_P -set_property PACKAGE_PIN N1 [get_ports LVDS2V5Bottom2PxSIO] -set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Bottom2PxSIO] -# Camera HS_LANE1_N -set_property PACKAGE_PIN P1 [get_ports LVDS2V5Bottom2NxSIO] -set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Bottom2NxSIO] -# Camera LP_LANE0_P -set_property PACKAGE_PIN N4 [get_ports LVDS2V5Bottom1PxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom1PxSIO] -# Camera LP_LANE0_N -set_property PACKAGE_PIN N3 [get_ports LVDS2V5Bottom1NxSIO] -set_property IOSTANDARD HSUL_12 [get_ports LVDS2V5Bottom1NxSIO] -# Camera HS_LANE0_P -set_property PACKAGE_PIN M2 [get_ports LVDS2V5Bottom0PxSIO] -set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Bottom0PxSIO] -# Camera HS_LANE0_N -set_property PACKAGE_PIN M1 [get_ports LVDS2V5Bottom0NxSIO] -set_property IOSTANDARD LVDS_25 [get_ports LVDS2V5Bottom0NxSIO] +# Camera GPIO_BTA -> LVDS2V5Bottom6PxSIO +set_property PACKAGE_PIN P6 [get_ports CamGpioBta] +set_property IOSTANDARD LVCMOS25 [get_ports CamGpioBta] +# Camera PWUP -> LVDS2V5Bottom6NxSIO +set_property PACKAGE_PIN P5 [get_ports CamPwup] +set_property IOSTANDARD LVCMOS25 [get_ports CamPwup] +# Camera SDA -> LVDS2V5Bottom5PxSIO +set_property PACKAGE_PIN R5 [get_ports CamI2cSda] +set_property IOSTANDARD LVCMOS25 [get_ports CamI2cSda] +set_property PULLTYPE PULLUP [get_ports CamI2cSda] +# Camera SCL -> LVDS2V5Bottom5NxSIO +set_property PACKAGE_PIN R4 [get_ports CamI2cScl] +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] +# Camera LP_CLK_N -> LVDS2V5Bottom4NxSIO +set_property PACKAGE_PIN R2 [get_ports CamLpClkN] +set_property IOSTANDARD HSUL_12 [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]}] +# Camera LP_LANE1_N -> LVDS2V5Bottom3NxSIO +set_property PACKAGE_PIN P2 [get_ports {CamLpDataN[1]}] +set_property IOSTANDARD HSUL_12 [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]}] +# Camera HS_LANE1_N -> LVDS2V5Bottom2NxSIO +set_property PACKAGE_PIN P1 [get_ports {CamHsDataN[1]}] +set_property IOSTANDARD LVDS_25 [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]}] +# Camera LP_LANE0_N -> LVDS2V5Bottom1NxSIO +set_property PACKAGE_PIN N3 [get_ports {CamLpDataN[0]}] +set_property IOSTANDARD HSUL_12 [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]}] +# Camera HS_LANE0_N -> LVDS2V5Bottom0NxSIO +set_property PACKAGE_PIN M1 [get_ports {CamHsDataN[0]}] +set_property IOSTANDARD LVDS_25 [get_ports {CamHsDataN[0]}] ##### RGB LEDs (banks 34 and 13) ##### # LED1_2V5_R_o (bank 34) @@ -249,12 +288,12 @@ set_property IOSTANDARD LVCMOS25 [get_ports SelfRstxRNO] #set_property PACKAGE_PIN "K3" [get_ports "Clk2V5TopNxCI"] ##### Camera MIPI connector (Bank 34) ##### -# Camera HS_CLK_P -set_property PACKAGE_PIN U2 [get_ports Clk2V5BottomPxCI] -set_property IOSTANDARD LVDS_25 [get_ports Clk2V5BottomPxCI] -# Camera HS_CLK_N -set_property PACKAGE_PIN U1 [get_ports Clk2V5BottomNxCI] -set_property IOSTANDARD LVDS_25 [get_ports Clk2V5BottomNxCI] +# Camera HS_CLK_P -> Clk2V5BottomPxCI +set_property PACKAGE_PIN U2 [get_ports CamHsClkP] +set_property IOSTANDARD LVDS_25 [get_ports CamHsClkP] +# Camera HS_CLK_N -> Clk2V5BottomNxCI +set_property PACKAGE_PIN U1 [get_ports CamHsClkN] +set_property IOSTANDARD LVDS_25 [get_ports CamHsClkN] # Bank 13 #set_property PACKAGE_PIN "AA14" [get_ports "Clk2V5SouthPxCI"] diff --git a/designs/vivado/scalp_mipi/2020.2/src/hdl/scalp_mipi.vhd b/designs/vivado/scalp_mipi/2020.2/src/hdl/scalp_mipi.vhd index 8fc403b192c0dd1aefae80f0ad8226103df27c44..e4c2fb5e853dcb4e02bcb0d88b20f13ea0d0b8b3 100644 --- a/designs/vivado/scalp_mipi/2020.2/src/hdl/scalp_mipi.vhd +++ b/designs/vivado/scalp_mipi/2020.2/src/hdl/scalp_mipi.vhd @@ -173,16 +173,16 @@ entity scalp_mipi is -- LVDS2V5West7NxSIO : inout std_logic; -- LVDS links towards top-bottom connectors -- Top - -- LVDS2V5Top0PxSIO : inout std_logic; - -- LVDS2V5Top0NxSIO : inout std_logic; - -- LVDS2V5Top1PxSIO : inout std_logic; - -- LVDS2V5Top1NxSIO : inout std_logic; - -- LVDS2V5Top2PxSIO : inout std_logic; - -- LVDS2V5Top2NxSIO : inout std_logic; - -- LVDS2V5Top3PxSIO : inout std_logic; - -- LVDS2V5Top3NxSIO : inout std_logic; - -- LVDS2V5Top4PxSIO : inout std_logic; - -- LVDS2V5Top4NxSIO : inout std_logic; +-- LVDS2V5Top0PxSIO : in std_logic; +-- LVDS2V5Top0NxSIO : in std_logic; +-- LVDS2V5Top1PxSIO : in std_logic; +-- LVDS2V5Top1NxSIO : in std_logic; +-- LVDS2V5Top2PxSIO : in std_logic; +-- LVDS2V5Top2NxSIO : in std_logic; +-- LVDS2V5Top3PxSIO : in std_logic; +-- LVDS2V5Top3NxSIO : in std_logic; +-- LVDS2V5Top4PxSIO : in std_logic; +-- LVDS2V5Top4NxSIO : in std_logic; -- LVDS2V5Top5PxSIO : inout std_logic; -- LVDS2V5Top5NxSIO : inout std_logic; -- LVDS2V5Top6PxSIO : inout std_logic; @@ -190,22 +190,21 @@ entity scalp_mipi is -- LVDS2V5Top7PxSIO : inout std_logic; -- LVDS2V5Top7NxSIO : inout std_logic; -- Bottom - LVDS2V5Bottom0PxSIO : in std_logic; -- Camera HS_LANE0_P - LVDS2V5Bottom0NxSIO : in std_logic; -- Camera HS_LANE0_N - LVDS2V5Bottom1PxSIO : in std_logic; -- Camera LP_LANE0_P - LVDS2V5Bottom1NxSIO : in std_logic; -- Camera LP_LANE0_N - LVDS2V5Bottom2PxSIO : in std_logic; -- Camera HS_LANE1_P - LVDS2V5Bottom2NxSIO : in std_logic; -- Camera HS_LANE1_N - LVDS2V5Bottom3PxSIO : in std_logic; -- Camera LP_LANE1_P - LVDS2V5Bottom3NxSIO : in std_logic; -- Camera LP_LANE1_N - LVDS2V5Bottom4PxSIO : in std_logic; -- Camera LP_CLK_P - LVDS2V5Bottom4NxSIO : in std_logic; -- Camera LP_CLK_N - LVDS2V5Bottom5PxSIO : inout std_logic; -- Camera I2C SDA - LVDS2V5Bottom5NxSIO : inout std_logic; -- Camera I2C SCL - LVDS2V5Bottom6PxSIO : inout std_logic; -- Camera GPIO_BTA - LVDS2V5Bottom6NxSIO : inout std_logic; -- Camera PWUP -- LVDS2V5Bottom7PxSIO : inout std_logic; -- LVDS2V5Bottom7NxSIO : inout std_logic; + -- Camera signals + CamHsDataP : in std_logic_vector(1 downto 0); -- Camera HS DATA P + CamHsDataN : in std_logic_vector(1 downto 0); -- Camera HS DATA N + CamLpDataP : in std_logic_vector(1 downto 0); -- Camera LP DATA P + CamLpDataN : in std_logic_vector(1 downto 0); -- Camera LP DATA N + CamLpClkP : in std_logic; -- Camera LP CLK P + CamLpClkN : in std_logic; -- Camera LP CLK N + CamHsClkP : in std_logic; -- Camera HS CLK P + CamHsClkN : in std_logic; -- Camera HS CLK N + CamI2cSda : inout std_logic; -- Camera I2C SDA + CamI2cScl : inout std_logic; -- Camera I2C SCL + CamGpioBta : out std_logic; -- Camera GPIO_BTA + CamPwup : out std_logic; -- Camera PWUP -- RGB LEDs Led12V5RxSO : out std_logic; Led12V5GxSO : out std_logic; @@ -214,7 +213,7 @@ entity scalp_mipi is Led22V5GxSO : out std_logic; Led22V5BxSO : out std_logic; -- Self reset (connected to PS_SRSTB) - SelfRstxRNO : out std_logic; + SelfRstxRNO : out std_logic -- Clocks from PLLs (connected to MRCC pins) -- Local -- PLLClk2V5LocalPxCI : in std_logic; @@ -251,13 +250,11 @@ entity scalp_mipi is -- Clk2V5WestPxCO : out std_logic; -- Clk2V5WestNxCO : out std_logic; -- -- Top - -- Clk2V5TopPxCI : in std_logic; - -- Clk2V5TopNxCI : in std_logic; +-- Clk2V5TopPxCI : in std_logic; +-- Clk2V5TopNxCI : in std_logic; -- Clk2V5TopPxCO : out std_logic; -- Clk2V5TopNxCO : out std_logic; -- -- Bottom - Clk2V5BottomPxCI : in std_logic; -- Camera HS_CLK_P - Clk2V5BottomNxCI : in std_logic -- Camera HS_CLK_N -- Clk2V5BottomPxCO : out std_logic; -- Clk2V5BottomNxCO : out std_logic; -- -- Recovery @@ -293,6 +290,9 @@ architecture arch of scalp_mipi is signal CtrlRegPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); -- RGB Leds signal RgbLedsCtrlPortxD : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); + -- Camera GPIO signals + signal CamPwupxS : std_logic_vector(0 downto 0) := (others => '0'); + signal CamGpioxS : std_logic_vector(0 downto 0) := (others => '0'); -- I2C1 signals signal I2c1SdaIxS : std_logic := '0'; signal I2c1SdaOxS : std_logic := '0'; @@ -300,50 +300,12 @@ architecture arch of scalp_mipi is signal I2c1SclIxS : std_logic := '0'; signal I2c1SclOxS : std_logic := '0'; signal I2c1SclTxS : std_logic := '0'; - -- GPIO0 signals - signal GPIO0IxD : std_logic_vector(31 downto 0) := (others => '0'); - signal GPIO0OxD : std_logic_vector(31 downto 0) := (others => '0'); - signal GPIO0TxD : std_logic_vector(31 downto 0) := (others => '0'); - signal Csi2RstnxS : std_logic := '0'; - signal DmaRstnxS : std_logic := '0'; - -- Camera MIPI signals - signal MipiClockHsNxC : std_logic := '0'; - signal MipiClockHsPxC : std_logic := '0'; - signal MipiClockLpNxC : std_logic := '0'; - signal MipiClockLpPxC : std_logic := '0'; - signal MipiDataHsNxD : std_logic_vector(1 downto 0) := (others => '0'); - signal MipiDataHsPxD : std_logic_vector(1 downto 0) := (others => '0'); - signal MipiDataLpNxD : std_logic_vector(1 downto 0) := (others => '0'); - signal MipiDataLpPxD : std_logic_vector(1 downto 0) := (others => '0'); - -- Attributes -- attribute mark_debug : string; -- attribute keep : string; -- Clocks -- attribute keep of PSSysClkxC : signal is "true"; - - -- GPIO debug probes - --attribute mark_debug of GPIO0IxD : signal is "true"; - --attribute keep of GPIO0IxD : signal is "true"; - --attribute mark_debug of GPIO0OxD : signal is "true"; --- attribute keep of GPIO0OxD : signal is "true"; --- attribute mark_debug of GPIO0TxD : signal is "true"; --- attribute keep of GPIO0TxD : signal is "true"; - - -- I2C1 debug probes --- attribute mark_debug of I2c1SdaIxS : signal is "true"; --- attribute keep of I2c1SdaIxS : signal is "true"; --- attribute mark_debug of I2c1SdaOxS : signal is "true"; --- attribute keep of I2c1SdaOxS : signal is "true"; --- attribute mark_debug of I2c1SdaTxS : signal is "true"; --- attribute keep of I2c1SdaTxS : signal is "true"; --- attribute mark_debug of I2c1SclIxS : signal is "true"; --- attribute keep of I2c1SclIxS : signal is "true"; --- attribute mark_debug of I2c1SclOxS : signal is "true"; --- attribute keep of I2c1SclOxS : signal is "true"; --- attribute mark_debug of I2c1SclTxS : signal is "true"; --- attribute keep of I2c1SclTxS : signal is "true"; begin @@ -394,28 +356,25 @@ begin WrDataxDO => WrDataxD, WrValidxSO => WrValidxS, RgbLedsCtrlPortxDO => RgbLedsCtrlPortxD, - -- Zynq I2C1 interface + -- Camera GPIOs + CamPwup => CamPwupxS, + CamGpio => CamGpioxS, + -- Camera I2C interface I2c1SdaxSI => I2c1SdaIxS, I2c1SdaxSO => I2c1SdaOxS, I2c1SdaxST => I2c1SdaTxS, I2c1SclxSI => I2c1SclIxS, I2c1SclxSO => I2c1SclOxS, I2c1SclxST => I2c1SclTxS, - -- Zynq GPIO0 interface - GPIO0xDI => GPIO0IxD, - GPIO0xDO => GPIO0OxD, - GPIO0xDT => GPIO0TxD, - -- MIPI interface - MipiClockHsN => MipiClockHsNxC, - MipiClockHsP => MipiClockHsPxC, - MipiClockLpN => MipiClockLpNxC, - MipiClockLpP => MipiClockLpPxC, - MipiDataHsN => MipiDataHsNxD, - MipiDataHsP => MipiDataHsPxD, - MipiDataLpN => MipiDataLpNxD, - MipiDataLpP => MipiDataLpPxD, - Csi2Rstn => Csi2RstnxS, - DmaRstn => DmaRstnxS + -- Camera MIPI interface + MipiClockHsN => CamHsClkN, + MipiClockHsP => CamHsClkP, + MipiClockLpN => CamLpClkN, + MipiClockLpP => CamLpClkP, + MipiDataHsN => CamHsDataN, + MipiDataHsP => CamHsDataP, + MipiDataLpN => CamLpDataN, + MipiDataLpP => CamLpDataP ); end block ProcessingSystemxB; @@ -433,47 +392,16 @@ begin Led22V5GxAS : Led22V5GxSO <= RgbLedsCtrlPortxD(4); Led22V5BxAS : Led22V5BxSO <= RgbLedsCtrlPortxD(5); + CamPwupxAS : CamPwup <= CamPwupxS(0); + CamGpioxAS : CamGpioBta <= CamGpioxS(0); + -- Camera I2C SDA tri-state buffer - LVDS2V5Bottom5PxSIO <= I2c1SdaOxS when I2c1SdaTxS='0' else 'Z'; - I2c1SdaIxS <= LVDS2V5Bottom5PxSIO; --- LVDS2V5Bottom5PxSIO <= GPIO0OxD(2) when GPIO0TxD(2)='0' else 'Z'; --- GPIO0IxD(2) <= LVDS2V5Bottom5PxSIO; + CamI2cSda <= I2c1SdaOxS when I2c1SdaTxS='0' else 'Z'; + I2c1SdaIxS <= CamI2cSda; -- Camera I2C SCL tri-state buffer - LVDS2V5Bottom5NxSIO <= I2c1SclOxS when I2c1SclTxS='0' else 'Z'; - I2c1SclIxS <= LVDS2V5Bottom5NxSIO; --- LVDS2V5Bottom5NxSIO <= GPIO0OxD(3) when GPIO0TxD(3)='0' else 'Z'; --- GPIO0IxD(3) <= LVDS2V5Bottom5NxSIO; - - -- DMA nReset tri-state buffer (GPIO0_0) - DmaRstnxS <= GPIO0OxD(0) when GPIO0TxD(0)='0' else 'Z'; - GPIO0IxD(0) <= DmaRstnxS; - - -- CSI2 nReset tri-state buffer (GPIO0_1) - Csi2RstnxS <= GPIO0OxD(1) when GPIO0TxD(1)='0' else 'Z'; - GPIO0IxD(1) <= Csi2RstnxS; - - -- Camera PWUP tri-state buffer (GPIO0_4) - LVDS2V5Bottom6NxSIO <= GPIO0OxD(4) when GPIO0TxD(4)='0' else 'Z'; - GPIO0IxD(4) <= LVDS2V5Bottom6NxSIO; - - -- Camera GPIO tri-state buffer (GPIO0_5) - LVDS2V5Bottom6PxSIO <= GPIO0OxD(5) when GPIO0TxD(5)='0' else 'Z'; - GPIO0IxD(5) <= LVDS2V5Bottom6PxSIO; - - -- MIPI signal assignement - MipiPhyClockHsNxAS : MipiClockHsNxC <= Clk2V5BottomNxCI; - MipiPhyClockHsPxAS : MipiClockHsPxC <= Clk2V5BottomPxCI; - MipiPhyClockLpNxAS : MipiClockLpNxC <= LVDS2V5Bottom4NxSIO; - MipiPhyClockLpPxAS : MipiClockLpPxC <= LVDS2V5Bottom4PxSIO; - MipiPhyDataHsN0xAS : MipiDataHsNxD(0) <= LVDS2V5Bottom0NxSIO; - MipiPhyDataHsP0xAS : MipiDataHsPxD(0) <= LVDS2V5Bottom0PxSIO; - MipiPhyDataLpN0xAS : MipiDataLpNxD(0) <= LVDS2V5Bottom1NxSIO; - MipiPhyDataLpP0xAS : MipiDataLpPxD(0) <= LVDS2V5Bottom1PxSIO; - MipiPhyDataHsN1xAS : MipiDataHsNxD(1) <= LVDS2V5Bottom2NxSIO; - MipiPhyDataHsP1xAS : MipiDataHsPxD(1) <= LVDS2V5Bottom2PxSIO; - MipiPhyDataLpN1xAS : MipiDataLpNxD(1) <= LVDS2V5Bottom3NxSIO; - MipiPhyDataLpP1xAS : MipiDataLpPxD(1) <= LVDS2V5Bottom3PxSIO; + CamI2cScl <= I2c1SclOxS when I2c1SclTxS='0' else 'Z'; + I2c1SclIxS <= CamI2cScl; end block EntityIOxB; diff --git a/soc/hw/scalp_mipi_zynqps/src/hdl/scalp_mipi_zynqps_wrapper.vhd b/soc/hw/scalp_mipi_zynqps/src/hdl/scalp_mipi_zynqps_wrapper.vhd index aec32d0d3650f606ea1a8b097e8e37193e5a2fbc..558e190fd50e9abefc67a43d691a400e2f220612 100644 --- a/soc/hw/scalp_mipi_zynqps/src/hdl/scalp_mipi_zynqps_wrapper.vhd +++ b/soc/hw/scalp_mipi_zynqps/src/hdl/scalp_mipi_zynqps_wrapper.vhd @@ -68,7 +68,10 @@ entity scalp_mipi_zynqps_wrapper is WrDataxDO : out std_logic_vector (31 downto 0); WrValidxSO : out std_logic; RgbLedsCtrlPortxDO : out std_logic_vector (31 downto 0); - -- I2C1 interface + -- Camera GPIOs + CamPwup : out std_logic_vector (0 downto 0); + CamGpio : out std_logic_vector (0 downto 0); + -- Camera I2C interface I2c1SdaxSI : in std_logic; I2c1SdaxSO : out std_logic; I2c1SdaxST : out std_logic; @@ -76,9 +79,9 @@ entity scalp_mipi_zynqps_wrapper is I2c1SclxSO : out std_logic; I2c1SclxST : out std_logic; -- GPIO0 interface - GPIO0xDI : in std_logic_vector (31 downto 0); - GPIO0xDO : out std_logic_vector (31 downto 0); - GPIO0xDT : out std_logic_vector (31 downto 0); +-- GPIO0xDI : in std_logic_vector (31 downto 0); +-- GPIO0xDO : out std_logic_vector (31 downto 0); +-- GPIO0xDT : out std_logic_vector (31 downto 0); -- MIPI interface MipiClockHsN : in std_logic; MipiClockHsP : in std_logic; @@ -87,9 +90,17 @@ entity scalp_mipi_zynqps_wrapper is MipiDataHsN : in std_logic_vector (1 downto 0); MipiDataHsP : in std_logic_vector (1 downto 0); MipiDataLpN : in std_logic_vector (1 downto 0); - MipiDataLpP : in std_logic_vector (1 downto 0); - Csi2Rstn : in std_logic; - DmaRstn : in std_logic + MipiDataLpP : in std_logic_vector (1 downto 0) +-- FakeMipiClockHsN : in std_logic; +-- FakeMipiClockHsP : in std_logic; +-- FakeMipiClockLpN : in std_logic; +-- FakeMipiClockLpP : in std_logic; +-- FakeMipiDataHsN : in std_logic_vector (1 downto 0); +-- FakeMipiDataHsP : in std_logic_vector (1 downto 0); +-- FakeMipiDataLpN : in std_logic_vector (1 downto 0); +-- FakeMipiDataLpP : in std_logic_vector (1 downto 0); +-- Csi2Rstn : in std_logic; +-- DmaRstn : in std_logic ); end scalp_mipi_zynqps_wrapper; @@ -135,15 +146,14 @@ begin WrDataxDO => WrDataxDO, WrValidxSO => WrValidxSO, RgbLedsCtrlPortxDO => RgbLedsCtrlPortxDO, + CamPwup => CamPwup, + CamGpio => CamGpio, I2C1_SDA_I => I2c1SdaxSI, I2C1_SDA_O => I2c1SdaxSO, I2C1_SDA_T => I2c1SdaxST, I2C1_SCL_I => I2c1SclxSI, I2C1_SCL_O => I2c1SclxSO, I2C1_SCL_T => I2c1SclxST, - GPIO_0_TRI_I => GPIO0xDI, - GPIO_0_TRI_O => GPIO0xDO, - GPIO_0_TRI_T => GPIO0xDT, MIPI_clk_hs_n => MipiClockHsN, MIPI_clk_hs_p => MipiClockHsP, MIPI_clk_lp_n => MipiClockLpN, @@ -151,9 +161,17 @@ begin MIPI_data_hs_n => MipiDataHsN, MIPI_data_hs_p => MipiDataHsP, MIPI_data_lp_n => MipiDataLpN, - MIPI_data_lp_p => MipiDataLpP, - Csi2Rstn => Csi2Rstn, - DmaRstn => DmaRstn + MIPI_data_lp_p => MipiDataLpP +-- FAKEMIPI_clk_hs_n => FakeMipiClockHsN, +-- FAKEMIPI_clk_hs_p => FakeMipiClockHsP, +-- FAKEMIPI_clk_lp_n => FakeMipiClockLpN, +-- FAKEMIPI_clk_lp_p => FakeMipiClockLpP, +-- FAKEMIPI_data_hs_n => FakeMipiDataHsN, +-- FAKEMIPI_data_hs_p => FakeMipiDataHsP, +-- FAKEMIPI_data_lp_n => FakeMipiDataLpN, +-- FAKEMIPI_data_lp_p => FakeMipiDataLpP, +-- Csi2Rstn => Csi2Rstn, +-- DmaRstn => DmaRstn ); end arch; 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 c7be7808183a62b08599ec33c9b6d697b78de3f0..71ae641eb2888e06fae7d19426dc5cefef113a55 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 @@ -59,7 +59,7 @@ set run_remote_bd_flow 1 if { $run_remote_bd_flow == 1 } { # Set the reference directory for source file relative paths (by default # the value is script directory path) - set origin_dir . + set origin_dir ./Documents/recherche/scalp/scalp_firmware/designs/vivado/scalp_mipi/2020.2/lin64/.scripts # Use origin directory path location variable, if specified in the tcl shell if { [info exists ::origin_dir_loc] } { @@ -122,9 +122,9 @@ set bCheckIPsPassed 1 set bCheckIPs 1 if { $bCheckIPs == 1 } { set list_check_ips "\ -xilinx.com:ip:axi_data_fifo:2.1\ xilinx.com:ip:axis_subset_converter:1.1\ xilinx.com:ip:clk_wiz:6.0\ +xilinx.com:ip:xlslice:1.0\ xilinx.com:ip:xlconstant:1.1\ xilinx.com:ip:xlconcat:2.1\ xilinx.com:ip:mipi_csi2_rx_subsystem:5.1\ @@ -203,16 +203,14 @@ proc create_root_design { parentCell } { set FIXED_IO [ create_bd_intf_port -mode Master -vlnv xilinx.com:display_processing_system7:fixedio_rtl:1.0 FIXED_IO ] - set GPIO_0 [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:gpio_rtl:1.0 GPIO_0 ] - set I2C1 [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:iic_rtl:1.0 I2C1 ] set MIPI [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:mipi_phy_rtl:1.0 MIPI ] # Create ports - set Csi2Rstn [ create_bd_port -dir I -type rst Csi2Rstn ] - set DmaRstn [ create_bd_port -dir I -type rst DmaRstn ] + set CamGpio [ create_bd_port -dir O -from 0 -to 0 CamGpio ] + set CamPwup [ create_bd_port -dir O -from 0 -to 0 CamPwup ] set FclkClk0xCO [ create_bd_port -dir O -type clk FclkClk0xCO ] set_property -dict [ list \ CONFIG.FREQ_HZ {125000000} \ @@ -231,14 +229,6 @@ proc create_root_design { parentCell } { set WrDataxDO [ create_bd_port -dir O -from 31 -to 0 WrDataxDO ] set WrValidxSO [ create_bd_port -dir O WrValidxSO ] - # Create instance: axi_data_fifo_0, and set properties - set axi_data_fifo_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_data_fifo:2.1 axi_data_fifo_0 ] - set_property -dict [ list \ - CONFIG.DATA_WIDTH {64} \ - CONFIG.READ_FIFO_DELAY {1} \ - CONFIG.READ_FIFO_DEPTH {512} \ - ] $axi_data_fifo_0 - # Create instance: axi_mem_intercon, and set properties set axi_mem_intercon [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_mem_intercon ] set_property -dict [ list \ @@ -252,7 +242,7 @@ proc create_root_design { parentCell } { CONFIG.M_HAS_TLAST {1} \ CONFIG.M_HAS_TREADY {1} \ CONFIG.M_HAS_TSTRB {1} \ - CONFIG.M_TDATA_NUM_BYTES {3} \ + CONFIG.M_TDATA_NUM_BYTES {6} \ CONFIG.M_TDEST_WIDTH {1} \ CONFIG.M_TID_WIDTH {1} \ CONFIG.M_TUSER_WIDTH {1} \ @@ -260,38 +250,55 @@ proc create_root_design { parentCell } { CONFIG.S_TDATA_NUM_BYTES {2} \ CONFIG.S_TDEST_WIDTH {10} \ CONFIG.S_TUSER_WIDTH {1} \ - CONFIG.TDATA_REMAP {8'b00000000,tdata[15:0]} \ + CONFIG.TDATA_REMAP {32'b00000000000000000000000000000000,tdata[15:0]} \ CONFIG.TDEST_REMAP {tdest[0:0]} \ - CONFIG.TKEEP_REMAP {3'b111} \ + CONFIG.TKEEP_REMAP {6'b111111} \ CONFIG.TLAST_REMAP {tlast[0]} \ - CONFIG.TSTRB_REMAP {3'b111} \ + CONFIG.TSTRB_REMAP {6'b111111} \ CONFIG.TUSER_REMAP {tuser[0:0]} \ ] $axis_subset_converter_0 # Create instance: clk_wiz_0, and set properties set clk_wiz_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:6.0 clk_wiz_0 ] set_property -dict [ list \ - CONFIG.CLKOUT1_DRIVES {BUFG} \ CONFIG.CLKOUT1_JITTER {109.241} \ CONFIG.CLKOUT1_PHASE_ERROR {96.948} \ CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {200.000} \ - CONFIG.CLKOUT2_DRIVES {BUFG} \ - CONFIG.CLKOUT3_DRIVES {BUFG} \ - CONFIG.CLKOUT4_DRIVES {BUFG} \ - CONFIG.CLKOUT5_DRIVES {BUFG} \ - CONFIG.CLKOUT6_DRIVES {BUFG} \ - CONFIG.CLKOUT7_DRIVES {BUFG} \ - CONFIG.MMCM_BANDWIDTH {OPTIMIZED} \ - CONFIG.MMCM_CLKFBOUT_MULT_F {8} \ - CONFIG.MMCM_CLKOUT0_DIVIDE_F {5} \ - CONFIG.MMCM_COMPENSATION {BUF_IN} \ - CONFIG.OVERRIDE_MMCM {true} \ - CONFIG.PRIMITIVE {PLL} \ + CONFIG.CLKOUT2_JITTER {198.991} \ + CONFIG.CLKOUT2_PHASE_ERROR {249.865} \ + CONFIG.CLKOUT2_REQUESTED_OUT_FREQ {300} \ + CONFIG.CLKOUT2_USED {false} \ + CONFIG.MMCM_CLKFBOUT_MULT_F {8.000} \ + CONFIG.MMCM_CLKOUT0_DIVIDE_F {5.000} \ + CONFIG.MMCM_CLKOUT1_DIVIDE {1} \ + CONFIG.MMCM_COMPENSATION {ZHOLD} \ + CONFIG.MMCM_DIVCLK_DIVIDE {1} \ + CONFIG.NUM_OUT_CLKS {1} \ + CONFIG.OVERRIDE_MMCM {false} \ CONFIG.RESET_PORT {resetn} \ CONFIG.RESET_TYPE {ACTIVE_LOW} \ CONFIG.USE_LOCKED {false} \ ] $clk_wiz_0 + # Create instance: emio_0, and set properties + set emio_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 emio_0 ] + + # Create instance: emio_4, and set properties + set emio_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 emio_4 ] + set_property -dict [ list \ + CONFIG.DIN_FROM {4} \ + CONFIG.DIN_TO {4} \ + CONFIG.DOUT_WIDTH {1} \ + ] $emio_4 + + # Create instance: emio_5, and set properties + set emio_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 emio_5 ] + set_property -dict [ list \ + CONFIG.DIN_FROM {5} \ + CONFIG.DIN_TO {5} \ + CONFIG.DOUT_WIDTH {1} \ + ] $emio_5 + # Create instance: gnd_constant, and set properties set gnd_constant [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 gnd_constant ] set_property -dict [ list \ @@ -309,9 +316,15 @@ proc create_root_design { parentCell } { set_property -dict [ list \ CONFIG.CMN_NUM_LANES {2} \ CONFIG.CMN_PXL_FORMAT {YUV422_8bit} \ + CONFIG.CSI_BUF_DEPTH {4096} \ + CONFIG.C_CAL_MODE {FIXED} \ CONFIG.C_DPHY_LANES {2} \ - CONFIG.C_EXDES_BOARD {ZCU102} \ - CONFIG.DPY_EN_REG_IF {false} \ + CONFIG.C_HS_LINE_RATE {336} \ + CONFIG.C_HS_SETTLE_NS {164} \ + CONFIG.C_IDLY_TAP {2} \ + CONFIG.C_SHARE_IDLYCTRL {true} \ + CONFIG.DPY_EN_REG_IF {true} \ + CONFIG.DPY_LINE_RATE {336} \ ] $mipi_csi2_rx_subsyst_0 # Create instance: processing_system7_0, and set properties @@ -740,11 +753,19 @@ proc create_root_design { parentCell } { CONFIG.PCW_UIPARAM_ACT_DDR_FREQ_MHZ {500.000000} \ CONFIG.PCW_UIPARAM_DDR_BANK_ADDR_COUNT {3} \ CONFIG.PCW_UIPARAM_DDR_BL {8} \ + CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY0 {0.25} \ + CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY1 {0.25} \ + CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY2 {0.25} \ + CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY3 {0.25} \ CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH {16 Bit} \ CONFIG.PCW_UIPARAM_DDR_CL {7} \ 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_DRAM_WIDTH {16 Bits} \ CONFIG.PCW_UIPARAM_DDR_ECC {Disabled} \ CONFIG.PCW_UIPARAM_DDR_FREQ_MHZ {500} \ @@ -790,15 +811,11 @@ proc create_root_design { parentCell } { 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_MON_TYPE {INTERFACE} \ - CONFIG.C_NUM_MONITOR_SLOTS {3} \ - CONFIG.C_SLOT_0_INTF_TYPE {xilinx.com:interface:gpio_rtl:1.0} \ - CONFIG.C_SLOT_0_TYPE {0} \ - CONFIG.C_SLOT_1_INTF_TYPE {xilinx.com:interface:iic_rtl:1.0} \ - CONFIG.C_SLOT_1_TYPE {0} \ - CONFIG.C_SLOT_2_APC_EN {0} \ - CONFIG.C_SLOT_2_AXI_DATA_SEL {1} \ - CONFIG.C_SLOT_2_AXI_TRIG_SEL {1} \ - CONFIG.C_SLOT_2_INTF_TYPE {xilinx.com:interface:axis_rtl:1.0} \ + CONFIG.C_NUM_MONITOR_SLOTS {1} \ + 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} \ ] $system_ila_0 # Create instance: util_vector_logic_0, and set properties @@ -820,18 +837,17 @@ proc create_root_design { parentCell } { # Create instance: v_frmbuf_wr_0, and set properties set v_frmbuf_wr_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:v_frmbuf_wr:2.2 v_frmbuf_wr_0 ] set_property -dict [ list \ - CONFIG.AXIMM_ADDR_WIDTH {32} \ - CONFIG.AXIMM_DATA_WIDTH {64} \ - CONFIG.C_M_AXI_MM_VIDEO_DATA_WIDTH {64} \ - CONFIG.HAS_BGR8 {1} \ + CONFIG.AXIMM_DATA_WIDTH {128} \ + CONFIG.C_M_AXI_MM_VIDEO_DATA_WIDTH {128} \ + CONFIG.HAS_BGR8 {0} \ CONFIG.HAS_RGB8 {0} \ CONFIG.HAS_UYVY8 {1} \ - CONFIG.HAS_YUYV8 {0} \ - CONFIG.HAS_Y_UV8 {0} \ - CONFIG.MAX_COLS {640} \ - CONFIG.MAX_NR_PLANES {1} \ - CONFIG.MAX_ROWS {480} \ - CONFIG.SAMPLES_PER_CLOCK {1} \ + CONFIG.HAS_YUYV8 {1} \ + CONFIG.HAS_Y_UV8 {1} \ + CONFIG.MAX_COLS {3840} \ + CONFIG.MAX_NR_PLANES {2} \ + CONFIG.MAX_ROWS {2160} \ + CONFIG.SAMPLES_PER_CLOCK {2} \ ] $v_frmbuf_wr_0 # Create instance: vio_0, and set properties @@ -843,30 +859,22 @@ proc create_root_design { parentCell } { # Create interface connections connect_bd_intf_net -intf_net MIPI_1 [get_bd_intf_ports MIPI] [get_bd_intf_pins mipi_csi2_rx_subsyst_0/mipi_phy_if] - connect_bd_intf_net -intf_net axi_data_fifo_0_M_AXI [get_bd_intf_pins axi_data_fifo_0/M_AXI] [get_bd_intf_pins axi_mem_intercon/S00_AXI] connect_bd_intf_net -intf_net axi_mem_intercon_M00_AXI [get_bd_intf_pins axi_mem_intercon/M00_AXI] [get_bd_intf_pins processing_system7_0/S_AXI_HP0] connect_bd_intf_net -intf_net axis_subset_converter_0_M_AXIS [get_bd_intf_pins axis_subset_converter_0/M_AXIS] [get_bd_intf_pins v_frmbuf_wr_0/s_axis_video] connect_bd_intf_net -intf_net mipi_csi2_rx_subsyst_0_video_out [get_bd_intf_pins axis_subset_converter_0/S_AXIS] [get_bd_intf_pins mipi_csi2_rx_subsyst_0/video_out] -connect_bd_intf_net -intf_net [get_bd_intf_nets mipi_csi2_rx_subsyst_0_video_out] [get_bd_intf_pins axis_subset_converter_0/S_AXIS] [get_bd_intf_pins system_ila_0/SLOT_2_AXIS] +connect_bd_intf_net -intf_net [get_bd_intf_nets mipi_csi2_rx_subsyst_0_video_out] [get_bd_intf_pins axis_subset_converter_0/S_AXIS] [get_bd_intf_pins system_ila_0/SLOT_0_AXIS] set_property HDL_ATTRIBUTE.DEBUG {true} [get_bd_intf_nets mipi_csi2_rx_subsyst_0_video_out] connect_bd_intf_net -intf_net processing_system7_0_DDR [get_bd_intf_ports DDR] [get_bd_intf_pins processing_system7_0/DDR] connect_bd_intf_net -intf_net processing_system7_0_FIXED_IO [get_bd_intf_ports FIXED_IO] [get_bd_intf_pins processing_system7_0/FIXED_IO] - connect_bd_intf_net -intf_net processing_system7_0_GPIO_0 [get_bd_intf_ports GPIO_0] [get_bd_intf_pins processing_system7_0/GPIO_0] -connect_bd_intf_net -intf_net [get_bd_intf_nets processing_system7_0_GPIO_0] [get_bd_intf_ports GPIO_0] [get_bd_intf_pins system_ila_0/SLOT_0_GPIO] - set_property HDL_ATTRIBUTE.DEBUG {true} [get_bd_intf_nets processing_system7_0_GPIO_0] connect_bd_intf_net -intf_net processing_system7_0_IIC_1 [get_bd_intf_ports I2C1] [get_bd_intf_pins processing_system7_0/IIC_1] -connect_bd_intf_net -intf_net [get_bd_intf_nets processing_system7_0_IIC_1] [get_bd_intf_ports I2C1] [get_bd_intf_pins system_ila_0/SLOT_1_IIC] - set_property HDL_ATTRIBUTE.DEBUG {true} [get_bd_intf_nets processing_system7_0_IIC_1] connect_bd_intf_net -intf_net processing_system7_0_M_AXI_GP0 [get_bd_intf_pins processing_system7_0/M_AXI_GP0] [get_bd_intf_pins ps7_0_axi_periph/S00_AXI] connect_bd_intf_net -intf_net ps7_0_axi_periph_M00_AXI [get_bd_intf_pins ps7_0_axi_periph/M00_AXI] [get_bd_intf_pins scalp_axi4lite_0/SAXILitexDIO] connect_bd_intf_net -intf_net ps7_0_axi_periph_M01_AXI [get_bd_intf_pins ps7_0_axi_periph/M01_AXI] [get_bd_intf_pins scalp_safe_firmware_0/SAXILitexDIO] 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_data_fifo_0/S_AXI] [get_bd_intf_pins v_frmbuf_wr_0/m_axi_mm_video] + 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] # Create port connections - connect_bd_net -net Csi2Rstn_1 [get_bd_ports Csi2Rstn] [get_bd_pins mipi_csi2_rx_subsyst_0/video_aresetn] - connect_bd_net -net DmaRstn_1 [get_bd_ports DmaRstn] [get_bd_pins axi_data_fifo_0/aresetn] [get_bd_pins axis_subset_converter_0/aresetn] connect_bd_net -net InterruptxSI_0_1 [get_bd_ports InterruptxSI] [get_bd_pins scalp_axi4lite_0/InterruptxSI] connect_bd_net -net RdDataxDI_0_1 [get_bd_ports RdDataxDI] [get_bd_pins scalp_axi4lite_0/RdDataxDI] connect_bd_net -net USB0_VBUS_PWRFAULT_0_1 [get_bd_ports Usb0VBusPwrFaultxSI] [get_bd_pins processing_system7_0/USB0_VBUS_PWRFAULT] @@ -874,12 +882,13 @@ connect_bd_intf_net -intf_net [get_bd_intf_nets processing_system7_0_IIC_1] [get connect_bd_net -net gnd_constant_dout [get_bd_pins gnd_constant/dout] [get_bd_pins processing_system7_0/SPI1_MISO_I] [get_bd_pins processing_system7_0/SPI1_MOSI_I] [get_bd_pins processing_system7_0/SPI1_SCLK_I] [get_bd_pins processing_system7_0/SPI1_SS_I] connect_bd_net -net irq_xlconcat_dout [get_bd_pins irq_xlconcat/dout] [get_bd_pins processing_system7_0/IRQ_F2P] connect_bd_net -net mipi_csi2_rx_subsyst_0_csirxss_csi_irq [get_bd_pins irq_xlconcat/In1] [get_bd_pins mipi_csi2_rx_subsyst_0/csirxss_csi_irq] - connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_ports FclkClk0xCO] [get_bd_pins axi_data_fifo_0/aclk] [get_bd_pins axi_mem_intercon/ACLK] [get_bd_pins axi_mem_intercon/M00_ACLK] [get_bd_pins axi_mem_intercon/S00_ACLK] [get_bd_pins axis_subset_converter_0/aclk] [get_bd_pins clk_wiz_0/clk_in1] [get_bd_pins mipi_csi2_rx_subsyst_0/lite_aclk] [get_bd_pins mipi_csi2_rx_subsyst_0/video_aclk] [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins processing_system7_0/S_AXI_HP0_ACLK] [get_bd_pins ps7_0_axi_periph/ACLK] [get_bd_pins ps7_0_axi_periph/M00_ACLK] [get_bd_pins ps7_0_axi_periph/M01_ACLK] [get_bd_pins ps7_0_axi_periph/M02_ACLK] [get_bd_pins ps7_0_axi_periph/M03_ACLK] [get_bd_pins ps7_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps7_0_125M/slowest_sync_clk] [get_bd_pins scalp_axi4lite_0/SAxiClkxCI] [get_bd_pins scalp_safe_firmware_0/SAxiClkxCI] [get_bd_pins system_ila_0/clk] [get_bd_pins v_frmbuf_wr_0/ap_clk] [get_bd_pins vio_0/clk] + connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_ports FclkClk0xCO] [get_bd_pins axi_mem_intercon/ACLK] [get_bd_pins axi_mem_intercon/M00_ACLK] [get_bd_pins axi_mem_intercon/S00_ACLK] [get_bd_pins axis_subset_converter_0/aclk] [get_bd_pins clk_wiz_0/clk_in1] [get_bd_pins mipi_csi2_rx_subsyst_0/lite_aclk] [get_bd_pins mipi_csi2_rx_subsyst_0/video_aclk] [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins processing_system7_0/S_AXI_HP0_ACLK] [get_bd_pins ps7_0_axi_periph/ACLK] [get_bd_pins ps7_0_axi_periph/M00_ACLK] [get_bd_pins ps7_0_axi_periph/M01_ACLK] [get_bd_pins ps7_0_axi_periph/M02_ACLK] [get_bd_pins ps7_0_axi_periph/M03_ACLK] [get_bd_pins ps7_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps7_0_125M/slowest_sync_clk] [get_bd_pins scalp_axi4lite_0/SAxiClkxCI] [get_bd_pins scalp_safe_firmware_0/SAxiClkxCI] [get_bd_pins system_ila_0/clk] [get_bd_pins v_frmbuf_wr_0/ap_clk] [get_bd_pins vio_0/clk] connect_bd_net -net processing_system7_0_FCLK_RESET0_N [get_bd_pins processing_system7_0/FCLK_RESET0_N] [get_bd_pins rst_ps7_0_125M/ext_reset_in] [get_bd_pins util_vector_logic_1/Op1] + connect_bd_net -net processing_system7_0_GPIO_O [get_bd_pins emio_0/Din] [get_bd_pins emio_4/Din] [get_bd_pins emio_5/Din] [get_bd_pins processing_system7_0/GPIO_O] connect_bd_net -net processing_system7_0_SPI1_MOSI_O [get_bd_ports Spi1MOSIxSO] [get_bd_pins processing_system7_0/SPI1_MOSI_O] connect_bd_net -net processing_system7_0_SPI1_SCLK_O [get_bd_ports Spi1SclkxCO] [get_bd_pins processing_system7_0/SPI1_SCLK_O] connect_bd_net -net processing_system7_0_SPI1_SS_O [get_bd_ports Spi1SSxSO] [get_bd_pins processing_system7_0/SPI1_SS_O] - connect_bd_net -net rst_ps7_0_125M_peripheral_aresetn [get_bd_pins axi_mem_intercon/ARESETN] [get_bd_pins axi_mem_intercon/M00_ARESETN] [get_bd_pins axi_mem_intercon/S00_ARESETN] [get_bd_pins clk_wiz_0/resetn] [get_bd_pins mipi_csi2_rx_subsyst_0/lite_aresetn] [get_bd_pins ps7_0_axi_periph/ARESETN] [get_bd_pins ps7_0_axi_periph/M00_ARESETN] [get_bd_pins ps7_0_axi_periph/M01_ARESETN] [get_bd_pins ps7_0_axi_periph/M02_ARESETN] [get_bd_pins ps7_0_axi_periph/M03_ARESETN] [get_bd_pins ps7_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps7_0_125M/peripheral_aresetn] [get_bd_pins scalp_axi4lite_0/SAxiResetxRANI] [get_bd_pins scalp_safe_firmware_0/SAxiRstxRANI] [get_bd_pins system_ila_0/resetn] [get_bd_pins v_frmbuf_wr_0/ap_rst_n] + connect_bd_net -net rst_ps7_0_125M_peripheral_aresetn [get_bd_pins axi_mem_intercon/ARESETN] [get_bd_pins axi_mem_intercon/M00_ARESETN] [get_bd_pins axi_mem_intercon/S00_ARESETN] [get_bd_pins clk_wiz_0/resetn] [get_bd_pins mipi_csi2_rx_subsyst_0/lite_aresetn] [get_bd_pins mipi_csi2_rx_subsyst_0/video_aresetn] [get_bd_pins ps7_0_axi_periph/ARESETN] [get_bd_pins ps7_0_axi_periph/M00_ARESETN] [get_bd_pins ps7_0_axi_periph/M01_ARESETN] [get_bd_pins ps7_0_axi_periph/M02_ARESETN] [get_bd_pins ps7_0_axi_periph/M03_ARESETN] [get_bd_pins ps7_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps7_0_125M/peripheral_aresetn] [get_bd_pins scalp_axi4lite_0/SAxiResetxRANI] [get_bd_pins scalp_safe_firmware_0/SAxiRstxRANI] [get_bd_pins system_ila_0/resetn] connect_bd_net -net scalp_axi4lite_0_InterruptxSO [get_bd_pins irq_xlconcat/In0] [get_bd_pins scalp_axi4lite_0/InterruptxSO] connect_bd_net -net scalp_axi4lite_0_RdAddrxDO [get_bd_ports RdAddrxDO] [get_bd_pins scalp_axi4lite_0/RdAddrxDO] connect_bd_net -net scalp_axi4lite_0_RdValidxSO [get_bd_ports RdValidxSO] [get_bd_pins scalp_axi4lite_0/RdValidxSO] @@ -891,6 +900,9 @@ connect_bd_intf_net -intf_net [get_bd_intf_nets processing_system7_0_IIC_1] [get connect_bd_net -net util_vector_logic_1_Res [get_bd_pins util_vector_logic_0/Op1] [get_bd_pins util_vector_logic_1/Res] connect_bd_net -net v_frmbuf_wr_0_interrupt [get_bd_pins irq_xlconcat/In2] [get_bd_pins v_frmbuf_wr_0/interrupt] connect_bd_net -net vio_0_probe_out0 [get_bd_pins util_vector_logic_0/Op2] [get_bd_pins vio_0/probe_out0] + connect_bd_net -net xlslice_0_Dout [get_bd_pins axis_subset_converter_0/aresetn] [get_bd_pins emio_0/Dout] [get_bd_pins v_frmbuf_wr_0/ap_rst_n] + connect_bd_net -net xlslice_1_Dout [get_bd_ports CamPwup] [get_bd_pins emio_4/Dout] + connect_bd_net -net xlslice_2_Dout [get_bd_ports CamGpio] [get_bd_pins emio_5/Dout] # Create address segments assign_bd_address -offset 0x43C20000 -range 0x00001000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs mipi_csi2_rx_subsyst_0/csirxss_s_axi/Reg] -force @@ -899,11 +911,6 @@ connect_bd_intf_net -intf_net [get_bd_intf_nets processing_system7_0_IIC_1] [get assign_bd_address -offset 0x43C30000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs v_frmbuf_wr_0/s_axi_CTRL/Reg] -force assign_bd_address -offset 0x00000000 -range 0x10000000 -target_address_space [get_bd_addr_spaces v_frmbuf_wr_0/Data_m_axi_mm_video] [get_bd_addr_segs processing_system7_0/S_AXI_HP0/HP0_DDR_LOWOCM] -force - # Exclude Address Segments - exclude_bd_addr_seg -offset 0x43C20000 -range 0x00001000 -target_address_space [get_bd_addr_spaces v_frmbuf_wr_0/Data_m_axi_mm_video] [get_bd_addr_segs mipi_csi2_rx_subsyst_0/csirxss_s_axi/Reg] - exclude_bd_addr_seg -offset 0x43C00000 -range 0x00010000 -target_address_space [get_bd_addr_spaces v_frmbuf_wr_0/Data_m_axi_mm_video] [get_bd_addr_segs scalp_axi4lite_0/SAXILitexDIO/SAXILiteAddr] - exclude_bd_addr_seg -offset 0x43C10000 -range 0x00010000 -target_address_space [get_bd_addr_spaces v_frmbuf_wr_0/Data_m_axi_mm_video] [get_bd_addr_segs scalp_safe_firmware_0/SAXILitexDIO/SAXILiteAddr] - # Restore current instance current_bd_instance $oldCurInst