From 46a80366de78563fb304d844c1edae91ebd6ffa9 Mon Sep 17 00:00:00 2001 From: Wanda Date: Wed, 4 Dec 2024 19:40:54 +0000 Subject: [PATCH] vivado_dump: handle missing tiles --- prjcombine_rawdump/src/bin/rd2html.rs | 232 +++++++++++++++++++++++++- prjcombine_vivado_dump/src/rawdump.rs | 14 +- 2 files changed, 241 insertions(+), 5 deletions(-) diff --git a/prjcombine_rawdump/src/bin/rd2html.rs b/prjcombine_rawdump/src/bin/rd2html.rs index 3805e402..76c96848 100644 --- a/prjcombine_rawdump/src/bin/rd2html.rs +++ b/prjcombine_rawdump/src/bin/rd2html.rs @@ -2577,8 +2577,10 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("INT", SINGLE, &["int"]), TileInfo("REBUF_INT_T_CORE", SINGLE, &[]), TileInfo("REBUF_INT_B_CORE", SINGLE, &[]), - TileInfo("RCLK_INT_R_FT", SINGLE, &["clk-row"]), TileInfo("RCLK_INT_L_FT", SINGLE, &["clk-row"]), + TileInfo("RCLK_INT_R_FT", SINGLE, &["clk-row"]), + TileInfo("RCLK_INT_L_VR_FT", SINGLE, &["clk-row"]), + TileInfo("RCLK_INT_R_VR_FT", SINGLE, &["clk-row"]), TileInfo("RBRK_INT_TILE", SINGLE, &["clk-brk"]), TileInfo("TERM_T_INT_TILE", SINGLE, &["tterm"]), TileInfo("TERM_B_INT_TILE", SINGLE, &["bterm"]), @@ -2597,6 +2599,8 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_INTF_B_CORE_MY", SINGLE, &[]), TileInfo("RCLK_INTF_L_CORE", SINGLE, &["clk-last-buf"]), TileInfo("RCLK_INTF_R_CORE", SINGLE, &["clk-last-buf"]), + TileInfo("RCLK_INTF_L_VR_CORE", SINGLE, &["clk-last-buf"]), + TileInfo("RCLK_INTF_R_VR_CORE", SINGLE, &["clk-last-buf"]), TileInfo("RBRK_INTF_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_INTF_CORE_MY", SINGLE, &["clk-brk"]), TileInfo("TERM_T_INTF_CORE", SINGLE, &[]), @@ -2646,6 +2650,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("INTF_PSS_BL_TILE", SINGLE, &["int-if"]), TileInfo("INTF_PSS_TL_TILE", SINGLE, &["int-if"]), TileInfo("RCLK_INTF_OPT_CORE", SINGLE, &["clk-last-buf"]), + TileInfo("RCLK_INTF_OPT_VR_CORE", SINGLE, &["clk-last-buf"]), TileInfo("RBRK_INTF_CFRM_CORE", SINGLE, &["clk-brk"]), TileInfo("REBUF_INTF_PSS_OPTDLY_T_CORE", SINGLE, &[]), TileInfo("REBUF_INTF_PSS_OPTDLY_B_CORE", SINGLE, &[]), @@ -2658,6 +2663,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("CFRM_CPM_TILE", (0, 0, 118, 0), &["cfg"]), TileInfo("CFRM_CPM5_TILE", (0, 0, 118, 0), &["cfg"]), TileInfo("CFRM_PMC_TILE", (0, 0, 118, 0), &["cfg"]), + TileInfo("CFRM_PMC_VR_TILE", (0, 0, 118, 0), &["cfg"]), TileInfo("CFRM_HFSR_TILE", (0, 0, 59, 0), &["cfg"]), TileInfo("CFRM_HFSR_CPM5_TILE", (0, 0, 59, 0), &["cfg"]), TileInfo("TERM_T_CFRM_CORE", SINGLE, &[]), @@ -2671,7 +2677,17 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_INTF_GT_OPTDLY_T_CORE_MY", SINGLE, &[]), TileInfo("REBUF_INTF_GT_OPTDLY_B_CORE_MY", SINGLE, &[]), TileInfo("RCLK_INTF_TERM_LEFT_CORE", (1, 0, 0, 0), &["clk-last-buf"]), + TileInfo( + "RCLK_INTF_TERM_LEFT_VR_CORE", + (1, 0, 0, 0), + &["clk-last-buf"], + ), TileInfo("RCLK_INTF_TERM_RIGHT_CORE", (1, 0, 0, 0), &["clk-last-buf"]), + TileInfo( + "RCLK_INTF_TERM_RIGHT_VR_CORE", + (1, 0, 0, 0), + &["clk-last-buf"], + ), TileInfo( "RCLK_INTF_TERM2_RIGHT_CORE", (1, 0, 0, 0), @@ -2685,6 +2701,8 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("TERM_B_INTF_GT_CORE", SINGLE, &[]), TileInfo("CLE_W_CORE", SINGLE, &["clbm"]), TileInfo("CLE_E_CORE", SINGLE, &["clbm"]), + TileInfo("CLE_W_VR_CORE", SINGLE, &["clbm"]), + TileInfo("CLE_E_VR_CORE", SINGLE, &["clbm"]), TileInfo("CLE_BC_CORE", SINGLE, &["clb"]), TileInfo("CLE_BC_CORE_MX", SINGLE, &["clb"]), TileInfo("SLL", SINGLE, &["int-buf"]), @@ -2703,6 +2721,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_CLE_LAG_BLI_T_CORE", (2, 0, 0, 0), &[]), TileInfo("RCLK_CLE_CORE", (2, 0, 0, 0), &["clk-last-buf"]), TileInfo("RCLK_CLE_LAG_CORE", (2, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_CLE_VR_CORE", (2, 0, 0, 0), &["clk-last-buf"]), TileInfo("RBRK_CLE_CORE", (2, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_CLE_LAG_CORE", (2, 0, 0, 0), &["clk-brk"]), TileInfo("TERM_T_BLI_CLE_TILE", (2, 0, 0, 0), &[]), @@ -2714,8 +2733,12 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("TERM_P_CLE_LAG_CORE", (2, 0, 0, 0), &[]), TileInfo("TERM_B_BLI_CLE_TILE", (2, 0, 0, 0), &[]), TileInfo("TERM_B_BLI_CLE_LAG_TILE", (2, 0, 0, 0), &[]), + TileInfo("DSP_LOCF_T_TILE", (1, 0, 1, 0), &["dsp"]), + TileInfo("DSP_LOCF_B_TILE", (1, 0, 1, 0), &["dsp"]), TileInfo("DSP_ROCF_T_TILE", (1, 0, 1, 0), &["dsp"]), TileInfo("DSP_ROCF_B_TILE", (1, 0, 1, 0), &["dsp"]), + TileInfo("BLI_DSP_LOCF_TL_TILE", (0, 0, 3, 0), &["int-buf"]), + TileInfo("BLI_DSP_LOCF_TR_TILE", (0, 0, 3, 0), &["int-buf"]), TileInfo("BLI_DSP_ROCF_TL_TILE", (0, 0, 3, 0), &["int-buf"]), TileInfo("BLI_DSP_ROCF_TR_TILE", (0, 0, 3, 0), &["int-buf"]), TileInfo("BLI_DSP_ROCF_BL_TILE", (0, 0, 3, 0), &["int-buf"]), @@ -2725,11 +2748,15 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_DSP_BLI_T_CORE", (1, 0, 0, 0), &[]), TileInfo("REBUF_DSP_BLI_B_CORE", (1, 0, 0, 0), &[]), TileInfo("RCLK_DSP_CORE", (3, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_DSP_VR_CORE", (3, 0, 0, 0), &["clk-last-buf"]), TileInfo("RBRK_DSP_CORE", (1, 0, 0, 0), &["clk-brk"]), TileInfo("TERM_B_DSP_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_T_DSP_CORE", (1, 0, 0, 0), &[]), + TileInfo("TERM_P_DSP_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_T_BLI_DSP_TILE", (1, 0, 0, 0), &[]), TileInfo("TERM_B_BLI_DSP_TILE", (1, 0, 0, 0), &[]), + TileInfo("BRAM_LOCF_TL_TILE", (0, 0, 3, 0), &["bram"]), + TileInfo("BRAM_LOCF_BL_TILE", (0, 0, 3, 0), &["bram"]), TileInfo("BRAM_LOCF_TR_TILE", (0, 0, 3, 0), &["bram"]), TileInfo("BRAM_LOCF_BR_TILE", (0, 0, 3, 0), &["bram"]), TileInfo("BRAM_ROCF_TL_TILE", (0, 0, 3, 0), &["bram"]), @@ -2750,9 +2777,17 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_BRAM_BLI_B_CORE", SINGLE, &[]), TileInfo("REBUF_BRAM_BLI_B_CORE_MY", SINGLE, &[]), TileInfo("RCLK_BRAM_CORE", (1, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_BRAM_VR_CORE", (1, 0, 0, 0), &["clk-last-buf"]), TileInfo("RCLK_BRAM_CLKBUF_CORE", (1, 0, 0, 0), &["clk-spine-buf"]), + TileInfo("RCLK_BRAM_CLKBUF_VR_CORE", (1, 0, 0, 0), &["clk-spine-buf"]), TileInfo("RCLK_BRAM_CLKBUF_NOPD_CORE", (1, 0, 0, 0), &["clk-row-buf"]), + TileInfo( + "RCLK_BRAM_CLKBUF_NOPD_VR_CORE", + (1, 0, 0, 0), + &["clk-row-buf"], + ), TileInfo("RCLK_BRAM_CORE_MY", (1, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_BRAM_VR_CORE_MY", (1, 0, 0, 0), &["clk-last-buf"]), TileInfo("RBRK_BRAM_TILE", SINGLE, &["clk-brk"]), TileInfo("RBRK_BRAM_TILE_MY", SINGLE, &["clk-brk"]), TileInfo("TERM_T_BLI_BRAM_TILE", SINGLE, &[]), @@ -2764,6 +2799,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("TERM_P_BRAM_CORE", SINGLE, &[]), TileInfo("TERM_T_BRAM_CORE_MY", SINGLE, &[]), TileInfo("TERM_B_BRAM_CORE_MY", SINGLE, &[]), + TileInfo("TERM_P_BRAM_CORE_MY", SINGLE, &[]), TileInfo("URAM_LOCF_TL_TILE", (0, 0, 3, 0), &["uram"]), TileInfo("URAM_LOCF_BL_TILE", (0, 0, 3, 0), &["uram"]), TileInfo("URAM_ROCF_TL_TILE", (0, 0, 3, 0), &["uram"]), @@ -2778,6 +2814,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("REBUF_URAM_BLI_T_CORE_MY", SINGLE, &[]), TileInfo("REBUF_URAM_BLI_B_CORE_MY", SINGLE, &[]), TileInfo("RCLK_URAM_CORE_MY", (1, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_URAM_VR_CORE_MY", (1, 0, 0, 0), &["clk-last-buf"]), TileInfo("RBRK_URAM_TILE_MY", SINGLE, &["clk-brk"]), TileInfo("TERM_T_BLI_URAM_TILE", SINGLE, &[]), TileInfo("TERM_B_BLI_URAM_TILE", SINGLE, &[]), @@ -2794,6 +2831,14 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("RBRK_VNOC_LEV3_AAO_CORE", (1, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_VNOC_LEV3_BBO_CORE", (1, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_VNOC_LEV3_CCO_CORE", (1, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_VNOC4CH_AAA_CORE", (4, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_VNOC4CH_BBA_CORE", (4, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_VNOC4CH_CCA_CORE", (4, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_VNOC4CH_DECAP_CORE", (4, 0, 8, 0), &[]), + TileInfo("MISC_AMS_VNOC_4CH_CORE", (1, 0, 9, 0), &[]), + TileInfo("MISC_CLK_VNOC_4CH_CORE", (1, 0, 9, 0), &[]), + TileInfo("MISC_CLK_REBUF_VERT_4CH_CORE", (1, 0, 9, 0), &[]), + TileInfo("MISC_CLK_VERT_TO_HSR_4CH_CORE", (1, 0, 8, 0), &[]), TileInfo("TERM_T_VNOC_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_B_VNOC_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_T_VNOC_SSIT_CORE", (1, 0, 0, 0), &[]), @@ -2808,13 +2853,19 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("TERM_B_VNOC2_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_T_VNOC2_FIRST_CORE", (1, 0, 0, 0), &[]), TileInfo("TERM_B_VNOC2_FIRST_CORE", (1, 0, 0, 0), &[]), + TileInfo("TERM_T_VNOC4CH_CORE", (4, 0, 0, 0), &[]), + TileInfo("TERM_B_VNOC4CH_CORE", (4, 0, 0, 0), &[]), TileInfo("CPIPE_TOP_TILE", (0, 0, 58, 0), &[]), TileInfo("CPIPE_BOT_TILE", (0, 0, 58, 0), &[]), + TileInfo("CPIPE_LOCF_TOP_TILE", (0, 0, 58, 0), &[]), + TileInfo("CPIPE_LOCF_BOT_TILE", (0, 0, 58, 0), &[]), TileInfo("CPIPE_TERM_RIGHT_TOP_TILE", (0, 0, 58, 0), &[]), TileInfo("CPIPE_TERM_RIGHT_BOT_TILE", (0, 0, 58, 0), &[]), TileInfo("CPIPE_TERM_LEFT_TOP_TILE", (0, 0, 58, 0), &[]), TileInfo("CPIPE_TERM_LEFT_BOT_TILE", (0, 0, 58, 0), &[]), TileInfo("RCLK_CPIPE_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CPIPE_VR_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CPIPE_LEFT_VR_CORE", SINGLE, &["clk-row"]), TileInfo("RBRK_CPIPE_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_CPIPE_CORE_MY", SINGLE, &["clk-brk"]), TileInfo("TERM_T_CPIPE_L_CORE", SINGLE, &[]), @@ -2827,9 +2878,13 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("CBRK_LOCF_TOP_TILE", (0, 0, 58, 0), &["vbrk"]), TileInfo("CBRK_LOCF_BOT_TILE", (0, 0, 58, 0), &["vbrk"]), TileInfo("RCLK_CBRK_L_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CBRK_L_VR_CORE", SINGLE, &["clk-row"]), TileInfo("RCLK_CBRK_R_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CBRK_R_VR_CORE", SINGLE, &["clk-row"]), TileInfo("RCLK_CBRK_HB_R_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CBRK_HB_R_VR_CORE", SINGLE, &["clk-row"]), TileInfo("RCLK_CBRK_HB_L_CORE", SINGLE, &["clk-row"]), + TileInfo("RCLK_CBRK_HB_L_VR_CORE", SINGLE, &["clk-row"]), TileInfo("RBRK_CBRK_CORE", SINGLE, &["clk-brk"]), TileInfo("TERM_T_CBRK_CORE", SINGLE, &[]), TileInfo("TERM_B_CBRK_CORE", SINGLE, &[]), @@ -2839,6 +2894,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("HDIO_TILE", (0, 0, 58, 0), &["io"]), TileInfo("HDIO_BOT_TILE", (0, 0, 58, 0), &["io"]), TileInfo("RCLK_HDIO_CORE", (2, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_HDIO_VR_CORE", (2, 0, 0, 0), &["clk-last-buf"]), TileInfo("TERM_T_HDIO_L_CORE", SINGLE, &[]), TileInfo("TERM_T_HDIO_R_CORE", SINGLE, &[]), TileInfo("TERM_P_HDIO_CORE", SINGLE, &[]), @@ -2850,24 +2906,33 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("MRMAC_TOP_TILE", (0, 0, 58, 0), &["hardip"]), TileInfo("MRMAC_BOT_TILE", (0, 0, 58, 0), &["hardip"]), TileInfo("CPM_EXT_TILE", (0, 0, 58, 0), &["hardip"]), + TileInfo("DFE_CFC_BOT_TILE", (0, 0, 58, 0), &["hardip"]), + TileInfo("DFE_CFC_TOP_TILE", (0, 0, 58, 0), &["hardip"]), + TileInfo("SDFECA_TOP_TILE", (0, 0, 58, 0), &["hardip"]), TileInfo("DCMAC_TILE", (0, 0, 118, 0), &["hardip"]), TileInfo("HSC_TILE", (0, 0, 118, 0), &["hardip"]), TileInfo("ILKN_TILE", (0, 0, 118, 0), &["hardip"]), TileInfo("RCLK_HB_CORE", (2, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_HB_VR_CORE", (2, 0, 0, 0), &["clk-last-buf"]), TileInfo("RCLK_HB_FULL_L_CORE", SINGLE, &["clk-last-buf"]), TileInfo("RCLK_HB_FULL_R_CORE", SINGLE, &["clk-last-buf"]), TileInfo("RCLK_HB_HDIO_CORE", (2, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_HB_HDIO_VR_CORE", (2, 0, 0, 0), &["clk-last-buf"]), + TileInfo("RCLK_SDFEC_CORE", (2, 0, 0, 0), &["clk-last-buf"]), TileInfo("RBRK_CPM_EXT_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_CPM_HDIO_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_HB_HFSR_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_HB2_HFSR_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_HB_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_HDIO_CORE", SINGLE, &["clk-brk"]), + TileInfo("RBRK_HDIO_HDIO_CORE", SINGLE, &["clk-brk"]), TileInfo("RBRK_HDIO_BOT_CORE", SINGLE, &["clk-brk"]), TileInfo("TERM_P_HB_CORE", SINGLE, &[]), TileInfo("TERM_P_HB2_CORE", SINGLE, &[]), TileInfo("TERM_P_HB3_CORE", SINGLE, &[]), + TileInfo("TERM_P_HB4_CORE", SINGLE, &[]), TileInfo("TERM_B_HB_CORE", SINGLE, &[]), + TileInfo("TERM_B_HB_AND_CORE", SINGLE, &[]), TileInfo("TERM_T_HB_L_CORE", SINGLE, &[]), TileInfo("TERM_T_HB_R_CORE", SINGLE, &[]), // left GT @@ -2881,6 +2946,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("RBRK_GTYP_CORE_MY", (0, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_GTYP_CPM5_CORE", (0, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_GTYP_CPM5_BOT_CORE_MY", (0, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_GTYP_MMI_CORE", (0, 0, 0, 0), &["clk-brk"]), TileInfo("TERM_T_GTYP_L_CORE", (0, 0, 0, 0), &[]), TileInfo("TERM_T_GTYP_CPM5NX_COMBINED_CORE", (0, 0, 0, 0), &[]), TileInfo("TERM_P_GTYP_CORE", (0, 0, 0, 0), &[]), @@ -2917,13 +2983,32 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("GTM_REFCLK_TOP_TILE", (2, 0, 0, 0), &["gtclk"]), TileInfo("GTM_REFCLK_BOT_TILE", (2, 0, 0, 0), &["gtclk"]), TileInfo("GTYP_REFCLK_BOT_TILE", (2, 0, 0, 0), &["gtclk"]), + TileInfo("RFADC_BOT_CORE", (2, 0, 58, 0), &["hsadc"]), + TileInfo("RFADC_TOP_CORE", (2, 0, 58, 0), &["hsadc"]), + TileInfo("RFDAC_BOT_CORE", (2, 0, 58, 0), &["hsdac"]), + TileInfo("RFDAC_TOP_CORE", (2, 0, 58, 0), &["hsdac"]), + TileInfo("RBRK_DAC_DAC_CORE", (2, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_ADC_DAC_CORE", (2, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_ADC_ADC_CORE", (2, 0, 0, 0), &["clk-brk"]), + TileInfo("MISC_DAC_ADC_DECAP_CORE", (2, 0, 0, 0), &[]), + TileInfo("TERM_B_DAC_ADC_CORE", (2, 0, 0, 0), &[]), + TileInfo("TERM_T_DAC_ADC_CORE", (2, 0, 0, 0), &[]), TileInfo("VDU_CORE_MY", (2, 0, 58, 0), &["hardip"]), TileInfo("RBRK_VDU_CORE", (2, 0, 0, 0), &["clk-brk"]), TileInfo("MISC_VDU_DECAP_CORE", (2, 0, 0, 0), &[]), TileInfo("RBRK_GTYP_VDU_CORE", (2, 0, 0, 0), &["clk-brk"]), TileInfo("TERM_B_VDU_CORE", (2, 0, 0, 0), &[]), + TileInfo("VDU_CORE_MY", (2, 0, 58, 0), &["hardip"]), TileInfo("BFR_TILE_B_BOT_CORE", (2, 0, 58, 0), &["hardip"]), TileInfo("BFR_TILE_B_TOP_CORE", (2, 0, 58, 0), &["hardip"]), + TileInfo("ISP2_CORE", (2, 0, 57, 0), &["hardip"]), + TileInfo("VCU2_TILE", (2, 0, 118, 0), &["hardip"]), + TileInfo("MISC_ISP_DECAP_CORE", (2, 0, 0, 0), &[]), + TileInfo("MISC_ISP_DECAP2_CORE", (2, 0, 0, 0), &[]), + TileInfo("MISC_GTYP_ISP_CORE", (2, 0, 0, 0), &[]), + TileInfo("RBRK_VCU_ISP_CORE", (2, 0, 0, 0), &["clk-brk"]), + TileInfo("RBRK_ISP_VCU_CORE", (2, 0, 0, 0), &["clk-brk"]), + TileInfo("TERM_B_ISP_CORE", (2, 0, 0, 0), &[]), TileInfo("MISC_BFRB_DECAP_CORE", (2, 0, 0, 0), &[]), TileInfo("TERM_B_BFRB_CORE", (2, 0, 0, 0), &[]), TileInfo("RBRK_BFRB_GTM_CORE", (2, 0, 0, 0), &["clk-brk"]), @@ -2949,6 +3034,7 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("TERM_P_GTCLK_CORE2", (2, 0, 0, 0), &[]), TileInfo("TERM_P_GTCLK_CORE3", (2, 0, 0, 0), &[]), TileInfo("TERM_P_GTCLK_CPM5_CORE", (2, 0, 0, 0), &[]), + TileInfo("TERM_P_GTCLK_MMI_CORE", (2, 0, 0, 0), &[]), TileInfo("TERM_T_GTCLK_L_CORE", (2, 0, 0, 0), &[]), TileInfo("TERM_T_GTCLK_L_CORE2", (2, 0, 0, 0), &[]), TileInfo("TERM_T_GTCLK_L_XPIO_CORE", (2, 0, 0, 0), &[]), @@ -2960,7 +3046,9 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("FSR_GTM_QUAD_GT_TILE_MY", (0, 0, 59, 0), &[]), TileInfo("FSR_XRAM_GTYP_OCTAL_GT_TILE_MY", (0, 0, 118, 0), &[]), TileInfo("FSR_OCTAL_REMAP_TILE_MY", (0, 0, 118, 0), &[]), + TileInfo("FSR_OCTAL_VR_REMAP_TILE_MY", (0, 0, 118, 0), &[]), TileInfo("FSR_QUAD_REMAP_TILE_MY", (0, 0, 59, 0), &[]), + TileInfo("FSR_QUAD_VR_REMAP_TILE_MY", (0, 0, 59, 0), &[]), // right GT clocking TileInfo("RBRK_GTCLK_CORE", (2, 0, 0, 0), &["clk-brk"]), TileInfo("RBRK_GTCLK_AAA_CORE", (2, 0, 0, 0), &["clk-brk"]), @@ -2982,11 +3070,18 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("FSR_GTM_OCTAL_GT_TILE", (0, 0, 118, 0), &[]), TileInfo("FSR_VDU_OCTAL_GT_TILE", (0, 0, 118, 0), &[]), TileInfo("FSR_BFRB_DUAL_GT_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_ISP_GTYP_OCTAL_GT_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_VCU_GT_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_ISP_DUAL_GT_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_OCTAL_DAC_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_OCTAL_ADC_TILE", (0, 0, 118, 0), &[]), TileInfo("FSR_QUAD_GT_TILE", (0, 0, 59, 0), &[]), TileInfo("FSR_GTM_QUAD_GT_TILE", (0, 0, 59, 0), &[]), TileInfo("FSR_GTYP_QUAD_GT_TILE", (0, 0, 59, 0), &[]), TileInfo("FSR_OCTAL_REMAP_TILE", (0, 0, 118, 0), &[]), + TileInfo("FSR_OCTAL_VR_REMAP_TILE", (0, 0, 118, 0), &[]), TileInfo("FSR_QUAD_REMAP_TILE", (0, 0, 59, 0), &[]), + TileInfo("FSR_QUAD_VR_REMAP_TILE", (0, 0, 59, 0), &[]), TileInfo("FSR_QUAD_NIC_TILE", (0, 0, 59, 0), &[]), TileInfo("FSR_HNICPIPE_OCTAL_GT_TILE", (0, 0, 118, 0), &[]), TileInfo("FSR_NIC_OCTAL_GT1_TILE", (0, 0, 118, 0), &[]), @@ -3028,6 +3123,11 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("AIE_ML_SHIM_NOC_TILE", (10, 0, 10, 0), &["hardip"]), TileInfo("AIE_ML_TILE", (10, 0, 10, 0), &["hardip"]), TileInfo("AIE_ML_MEM_TILE", (10, 0, 10, 0), &["hardip"]), + // AI-ML2 grid + TileInfo("AIE2P_S_INTF_A_CORE", (10, 0, 10, 0), &["hardip"]), + TileInfo("AIE2P_S_INTF_C_CORE", (10, 0, 10, 0), &["hardip"]), + TileInfo("AIE2P_S_TILE", (10, 0, 10, 0), &["hardip"]), + TileInfo("AIE2P_S_MEM_TILE", (10, 0, 10, 0), &["hardip"]), // GT right TileInfo("CLK_GT_TILE", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("CLK_GT_AAA_TILE", (0, 0, 9, 0), &["clk-global-buf"]), @@ -3059,6 +3159,9 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-global-buf"], ), + TileInfo("CLKE2_GT_ULVT_CCA_TILE", (0, 0, 9, 0), &["clk-global-buf"]), + TileInfo("CLKE2_GT_ULVT_AAA_TILE", (0, 0, 9, 0), &["clk-global-buf"]), + TileInfo("CLKE2_GT_ULVT_BBA_TILE", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("AMS_SAT_GT_TOP_TILE", (0, 0, 18, 0), &["sysmon"]), TileInfo("AMS_SAT_GT_BOT_TILE", (0, 0, 18, 0), &["sysmon"]), TileInfo("NPI_VNPI_TOP_TILE", (0, 0, 5, 0), &["noc"]), @@ -3072,6 +3175,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_CBA_TILE", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_CBO_TILE", (0, 0, 9, 0), @@ -3082,6 +3190,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_BAA_TILE", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_BAO_TILE", (0, 0, 9, 0), @@ -3092,6 +3205,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_ACA_TILE", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_ACO_TILE", (0, 0, 9, 0), @@ -3102,6 +3220,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_COA_TILE", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_COO_TILE", (0, 0, 9, 0), @@ -3173,6 +3296,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 8, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_VERT_TO_HSR_GT_ULVT_OCA_TILE", + (0, 0, 8, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_VERT_TO_HSR_GT_OCO_TILE", (0, 0, 8, 0), @@ -3193,6 +3321,21 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("CLKE2_GT_AAO_TILE_MY", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("CLKE2_GT_BBO_TILE_MY", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("CLKE2_GT_CCO_TILE_MY", (0, 0, 9, 0), &["clk-global-buf"]), + TileInfo( + "CLKE2_GT_ULVT_AAA_TILE_MY", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_GT_ULVT_BBA_TILE_MY", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_GT_ULVT_CCA_TILE_MY", + (0, 0, 9, 0), + &["clk-global-buf"], + ), TileInfo("AMS_SAT_GT_TOP_TILE_MY", (0, 0, 18, 0), &["sysmon"]), TileInfo("AMS_SAT_GT_BOT_TILE_MY", (0, 0, 18, 0), &["sysmon"]), TileInfo("NPI_VNPI_TOP_TILE_MY", (0, 0, 5, 0), &["noc"]), @@ -3208,6 +3351,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_BAA_TILE_MY", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_BAO_TILE_MY", (0, 0, 9, 0), @@ -3218,6 +3366,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_ACA_TILE_MY", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_ACO_TILE_MY", (0, 0, 9, 0), @@ -3238,6 +3391,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (0, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_GT_ULVT_COA_TILE_MY", + (0, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_GT_CBO_TILE_MY", (0, 0, 9, 0), @@ -3338,6 +3496,31 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("CLKE2_VNOC_CCO_TILE", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("CLKE2_VNOC_BBO_TILE", (0, 0, 9, 0), &["clk-global-buf"]), TileInfo("CLKE2_VNOC_AAO_TILE", (0, 0, 9, 0), &["clk-global-buf"]), + TileInfo( + "CLKE2_VNOC_ULVT_AAA_TILE", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_VNOC_ULVT_BBA_TILE", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_VNOC_ULVT_PSS_BBA_TILE", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_VNOC_ULVT_CCA_TILE", + (0, 0, 9, 0), + &["clk-global-buf"], + ), + TileInfo( + "CLKE2_VNOC_ULVT_PSS_CCA_TILE", + (0, 0, 9, 0), + &["clk-global-buf"], + ), TileInfo( "CLKE2_VNOC_EDGE_AAO_TILE", (0, 0, 9, 0), @@ -3367,6 +3550,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (1, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_ULVT_VNOC_TOP_COA_TILE", + (1, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_VNOC_TOP_BOO_TILE", (1, 0, 9, 0), @@ -3383,6 +3571,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (1, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_ULVT_VNOC_ACA_TILE", + (1, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_VNOC_ACO_TILE", (1, 0, 9, 0), @@ -3393,6 +3586,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (1, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_ULVT_VNOC_BAA_TILE", + (1, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_VNOC_BAO_TILE", (1, 0, 9, 0), @@ -3403,6 +3601,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (1, 0, 9, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_REBUF_VERT_ULVT_VNOC_CBA_TILE", + (1, 0, 9, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_REBUF_VERT_VNOC_CBO_TILE", (1, 0, 9, 0), @@ -3474,6 +3677,11 @@ const VERSAL_TILES: &[TileInfo] = &[ (1, 0, 8, 0), &["clk-spine-buf"], ), + TileInfo( + "CLK_VERT_TO_HSR_ULVT_VNOC_OCA_TILE", + (1, 0, 8, 0), + &["clk-spine-buf"], + ), TileInfo( "CLK_VERT_TO_HSR_VNOC_OCO_TILE", (1, 0, 8, 0), @@ -3528,6 +3736,11 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("CLKE2_REBUF_HSR_EDGE_CORE", SINGLE, &["clk-spine-buf"]), // AI bot row TileInfo("CLK_REBUF_HSR_ME_TNOC_CORE_MX", SINGLE, &["clk-spine-buf"]), + TileInfo( + "CLK_REBUF_HSR_ME_TNOC_ULVT_CORE_MX", + SINGLE, + &["clk-spine-buf"], + ), TileInfo("HSM_AMS_SAT_ME_MX", SINGLE, &["sysmon"]), TileInfo("NOC_TNOC_ME_CORE_MX", SINGLE, &["noc"]), TileInfo("NOC_TNOC_S2_CORE_MX", SINGLE, &["noc"]), @@ -3587,17 +3800,24 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("DDRMC5_DMC_CORE_MY", SINGLE, &["hardip"]), TileInfo("DDRMC5C_DMC_CORE", SINGLE, &["hardip"]), TileInfo("DDRMC5C_DMC_CORE_MY", SINGLE, &["hardip"]), + TileInfo("DDRMC5E_DMC_CORE", SINGLE, &["hardip"]), + TileInfo("DDRMC5E_DMC_CORE_MY", SINGLE, &["hardip"]), // NOC2 TileInfo("NOC2_NPS5555_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_NPS5555_TOP_MY", SINGLE, &["hardip"]), TileInfo("NOC2_NPS7575_TOP", SINGLE, &["hardip"]), + TileInfo("NOC2_NPS6X_TOP", SINGLE, &["hardip"]), + TileInfo("NOC2_NPS6X_TOP_MX", SINGLE, &["hardip"]), TileInfo("NOC2_NMU128_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_NMU128_TOP_MY", SINGLE, &["hardip"]), + TileInfo("NOC2_NMU128_TOP_MX", SINGLE, &["hardip"]), TileInfo("NOC2_NSU128_TOP", SINGLE, &["hardip"]), + TileInfo("NOC2_NSU128_TOP_MX", SINGLE, &["hardip"]), TileInfo("NOC2_NSU256_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_NMU256_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_SCAN_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_SCAN_TOP_MY", SINGLE, &["hardip"]), + TileInfo("NOC2_SCAN_TOP_MX", SINGLE, &["hardip"]), TileInfo("NOC2_XBR4X2_TOP", SINGLE, &["hardip"]), TileInfo("NOC2_XBR4X2_TOP_MY", SINGLE, &["hardip"]), TileInfo("NOC2_XBR2X4_TOP", SINGLE, &["hardip"]), @@ -3608,15 +3828,23 @@ const VERSAL_TILES: &[TileInfo] = &[ TileInfo("NOC2_NMU512_BLI_TILE", SINGLE, &["hardip"]), TileInfo("NOC2_NMU512_BLI_TILE_MY", SINGLE, &["hardip"]), TileInfo("NOC2_NCRB_TILE", SINGLE, &["hardip"]), + TileInfo("NOC2_NCRB_TILE_MX", SINGLE, &["hardip"]), TileInfo("NOC2_NSU512_VNOC_TILE", (0, 0, 3, 0), &["hardip"]), TileInfo("NOC2_NMU512_VNOC_TILE", (0, 0, 3, 0), &["hardip"]), + TileInfo("NOC2_NSU512_VNOC4_TILE", (0, 0, 3, 0), &["hardip"]), + TileInfo("NOC2_NMU512_VNOC4_TILE", (0, 0, 3, 0), &["hardip"]), TileInfo("PSXL_CORE", (0, 0, 298, 0), &["hardip"]), TileInfo("CPM_G5N2X_TILE", (0, 0, 239, 0), &["hardip"]), TileInfo("CFRM_CPIPE_TERM_PSXL_CORE", (0, 0, 299, 0), &[]), - TileInfo("CFRM_CPIPE_TERM_CPM5NX_CORE", (0, 0, 239, 0), &[]), + TileInfo("CFRM_CPIPE_TERM_PSXC_CORE", (0, 0, 239, 0), &[]), + TileInfo("CFRM_CPIPE_TERM_MMI_CORE", (0, 0, 119, 0), &[]), + TileInfo("CFRM_CPIPE_TERM_CPM5NX_CORE", (0, 0, 240, 0), &[]), TileInfo("MISC_PSXL_DECAP_CORE", (0, 0, 0, 0), &[]), + TileInfo("PSXC_TILE", (0, 0, 239, 0), &["hardip"]), + TileInfo("MMI_TILE", (0, 0, 119, 0), &["hardip"]), // junk TileInfo("NULL", SINGLE, &[]), + TileInfo("__EMPTY__", SINGLE, &["crippled"]), TileInfo("INVALID_0_0", SINGLE, &["crippled"]), TileInfo("INVALID_1_1", SINGLE, &["crippled"]), TileInfo("INVALID_1_4", (0, 0, 3, 0), &["crippled"]), diff --git a/prjcombine_vivado_dump/src/rawdump.rs b/prjcombine_vivado_dump/src/rawdump.rs index df47f51e..c65d4ca9 100644 --- a/prjcombine_vivado_dump/src/rawdump.rs +++ b/prjcombine_vivado_dump/src/rawdump.rs @@ -90,7 +90,6 @@ struct TileData { fn list_tiles(tc: &Toolchain, part: &VivadoPart) -> TileData { let mut tts = HashMap::new(); - let mut tile_cnt = 0; let mut width: u16 = 0; let mut height: u16 = 0; let mut speed_models = HashMap::new(); @@ -128,7 +127,6 @@ fn list_tiles(tc: &Toolchain, part: &VivadoPart) -> TileData { } let gx: u16 = sl[1].parse().unwrap(); let gy: u16 = sl[2].parse().unwrap(); - tile_cnt += 1; if !tts.contains_key(sl[3]) { tts.insert(sl[3].to_string(), (gx, gy)); } @@ -159,7 +157,6 @@ fn list_tiles(tc: &Toolchain, part: &VivadoPart) -> TileData { if !got_end { panic!("missing END in tiles"); } - assert_eq!((width as usize) * (height as usize), tile_cnt); } TileData { tts, @@ -1511,6 +1508,17 @@ pub fn get_rawdump(tc: &Toolchain, parts: &[VivadoPart]) -> Result