@@ -7,6 +7,8 @@ package require math
7
7
8
8
# # Global variables for interconnect interface indexing
9
9
#
10
+ set sys_cpu_interconnect_instance 0
11
+ set sys_cpu_interconnect_cascade 0
10
12
set sys_hpc0_interconnect_index -1
11
13
set sys_hpc1_interconnect_index -1
12
14
set sys_hp0_interconnect_index -1
@@ -962,15 +964,38 @@ proc ad_mem_hpx_interconnect {p_sel p_clk p_name} {
962
964
proc ad_hpmx_interconnect {p_sel p_address p_name {p_intf_name {}}} {
963
965
964
966
global sys_zynq
967
+ global sys_cpu_interconnect_instance
968
+ global sys_cpu_interconnect_cascade
965
969
global use_smartconnect
966
970
967
- set interconnect_name [format " axi_%s_interconnect" [string tolower $p_sel ]]
971
+ set interconnect_name_intermediate [format " axi_%s_interconnect" [string tolower $p_sel ]]
968
972
969
- if {[catch {
970
- set interconnect_index [get_property CONFIG.NUM_MI [get_bd_cells $interconnect_name ]]
971
- } err]} {
972
- set interconnect_index 0
973
+ if {$sys_cpu_interconnect_cascade == 1} {
974
+ set interconnect_name ${interconnect_name_intermediate} _${sys_cpu_interconnect_instance}
975
+
976
+ if {[catch {
977
+ set interconnect_index [get_property CONFIG.NUM_MI [get_bd_cells $interconnect_name ]]
978
+ } err]} {
979
+ set interconnect_index 0
980
+ }
981
+
982
+ if {$interconnect_index == 15} {
983
+ set_property CONFIG.NUM_MI [expr $interconnect_index + 1] [get_bd_cells $interconnect_name ]
984
+ set interconnect_index 0
985
+
986
+ set sys_cpu_interconnect_instance [expr $sys_cpu_interconnect_instance + 1]
987
+ set interconnect_name ${interconnect_name_intermediate} _${sys_cpu_interconnect_instance}
988
+ }
989
+ } else {
990
+ set interconnect_name $interconnect_name_intermediate
991
+
992
+ if {[catch {
993
+ set interconnect_index [get_property CONFIG.NUM_MI [get_bd_cells $interconnect_name ]]
994
+ } err]} {
995
+ set interconnect_index 0
996
+ }
973
997
}
998
+
974
999
set i_str [format " M%02d" $interconnect_index ]
975
1000
976
1001
if {$i_str eq " M00" } {
@@ -990,28 +1015,34 @@ proc ad_hpmx_interconnect {p_sel p_address p_name {p_intf_name {}}} {
990
1015
ad_connect sys_cpu_resetn $interconnect_name /S00_ARESETN
991
1016
}
992
1017
993
- if {$sys_zynq == 3} {
994
- ad_connect sys_cpu_clk sys_cips/m_axi_fpd_aclk
995
- ad_connect $interconnect_name /S00_AXI sys_cips/M_AXI_FPD
996
- } elseif {($p_sel eq " HPM0_FPD" ) && ($sys_zynq == 2)} {
997
- ad_connect sys_cpu_clk sys_ps8/maxihpm0_fpd_aclk
998
- ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM0_FPD
999
- } elseif {($p_sel eq " HPM1_FPD" ) && ($sys_zynq == 2)} {
1000
- ad_connect sys_cpu_clk sys_ps8/maxihpm1_fpd_aclk
1001
- ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM1_FPD
1002
- } elseif {($p_sel eq " HPM0_LPD" ) && ($sys_zynq == 2)} {
1003
- ad_connect sys_cpu_clk sys_ps8/maxihpm0_lpd_aclk
1004
- ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM0_LPD
1005
- } elseif {($p_sel eq " GP0" ) && ($sys_zynq == 1)} {
1006
- ad_connect sys_cpu_clk sys_ps7/M_AXI_GP0_ACLK
1007
- ad_connect $interconnect_name /S00_AXI sys_ps7/M_AXI_GP0
1008
- } elseif {($p_sel eq " GP1" ) && ($sys_zynq == 1)} {
1009
- ad_connect sys_cpu_clk sys_ps7/M_AXI_GP1_ACLK
1010
- ad_connect $interconnect_name /S00_AXI sys_ps7/M_AXI_GP1
1011
- } elseif {$sys_zynq == 0} {
1012
- ad_connect $interconnect_name /S00_AXI sys_mb/M_AXI_DP
1013
- } elseif {$sys_zynq == -1} {
1014
- ad_connect $interconnect_name /S00_AXI mng_axi_vip/M_AXI
1018
+ if {$sys_cpu_interconnect_instance == 0} {
1019
+ if {$sys_zynq == 3} {
1020
+ ad_connect sys_cpu_clk sys_cips/m_axi_fpd_aclk
1021
+ ad_connect $interconnect_name /S00_AXI sys_cips/M_AXI_FPD
1022
+ } elseif {($p_sel eq " HPM0_FPD" ) && ($sys_zynq == 2)} {
1023
+ ad_connect sys_cpu_clk sys_ps8/maxihpm0_fpd_aclk
1024
+ ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM0_FPD
1025
+ } elseif {($p_sel eq " HPM1_FPD" ) && ($sys_zynq == 2)} {
1026
+ ad_connect sys_cpu_clk sys_ps8/maxihpm1_fpd_aclk
1027
+ ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM1_FPD
1028
+ } elseif {($p_sel eq " HPM0_LPD" ) && ($sys_zynq == 2)} {
1029
+ ad_connect sys_cpu_clk sys_ps8/maxihpm0_lpd_aclk
1030
+ ad_connect $interconnect_name /S00_AXI sys_ps8/M_AXI_HPM0_LPD
1031
+ } elseif {($p_sel eq " GP0" ) && ($sys_zynq == 1)} {
1032
+ ad_connect sys_cpu_clk sys_ps7/M_AXI_GP0_ACLK
1033
+ ad_connect $interconnect_name /S00_AXI sys_ps7/M_AXI_GP0
1034
+ } elseif {($p_sel eq " GP1" ) && ($sys_zynq == 1)} {
1035
+ ad_connect sys_cpu_clk sys_ps7/M_AXI_GP1_ACLK
1036
+ ad_connect $interconnect_name /S00_AXI sys_ps7/M_AXI_GP1
1037
+ } elseif {$sys_zynq == 0} {
1038
+ ad_connect $interconnect_name /S00_AXI sys_mb/M_AXI_DP
1039
+ } elseif {$sys_zynq == -1} {
1040
+ ad_connect $interconnect_name /S00_AXI mng_axi_vip/M_AXI
1041
+ }
1042
+ } else {
1043
+ set temp_sys_cpu_interconnect_instance [expr $sys_cpu_interconnect_instance - 1]
1044
+ set temp_name ${interconnect_name_intermediate} _${temp_sys_cpu_interconnect_instance}
1045
+ ad_connect $interconnect_name /S00_AXI $temp_name /M15_AXI
1015
1046
}
1016
1047
}
1017
1048
0 commit comments