@@ -8,6 +8,7 @@ package require math
8
8
# # Global variables for interconnect interface indexing
9
9
#
10
10
set sys_cpu_interconnect_index 0
11
+ set sys_cpu_interconnect_instance 0
11
12
set sys_hpc0_interconnect_index -1
12
13
set sys_hpc1_interconnect_index -1
13
14
set sys_hp0_interconnect_index -1
@@ -962,8 +963,25 @@ proc ad_cpu_interconnect {p_address p_name {p_intf_name {}}} {
962
963
963
964
global sys_zynq
964
965
global sys_cpu_interconnect_index
966
+ global sys_cpu_interconnect_instance
965
967
global use_smartconnect
966
968
969
+
970
+
971
+ if {$sys_zynq == -1} {
972
+ set axi_cpu_interconnect axi_cpu_interconnect_${sys_cpu_interconnect_instance}
973
+
974
+ if {$sys_cpu_interconnect_index == 15} {
975
+ set_property CONFIG.NUM_MI [expr $sys_cpu_interconnect_index + 1] [get_bd_cells $axi_cpu_interconnect ]
976
+ set sys_cpu_interconnect_index 0
977
+
978
+ set sys_cpu_interconnect_instance [expr $sys_cpu_interconnect_instance + 1]
979
+ set axi_cpu_interconnect axi_cpu_interconnect_${sys_cpu_interconnect_instance}
980
+ }
981
+ } else {
982
+ set axi_cpu_interconnect axi_cpu_interconnect
983
+ }
984
+
967
985
set i_str " M$sys_cpu_interconnect_index "
968
986
if {$sys_cpu_interconnect_index < 10} {
969
987
set i_str " M0$sys_cpu_interconnect_index "
@@ -972,37 +990,43 @@ proc ad_cpu_interconnect {p_address p_name {p_intf_name {}}} {
972
990
if {$sys_cpu_interconnect_index == 0} {
973
991
974
992
if {$use_smartconnect == 1} {
975
- ad_ip_instance smartconnect axi_cpu_interconnect [ list \
993
+ ad_ip_instance smartconnect $ axi_cpu_interconnect [ list \
976
994
NUM_MI 1 \
977
995
NUM_SI 1 \
978
996
]
979
- ad_connect sys_cpu_clk axi_cpu_interconnect/aclk
980
- ad_connect sys_cpu_resetn axi_cpu_interconnect/aresetn
997
+ ad_connect sys_cpu_clk $ axi_cpu_interconnect /aclk
998
+ ad_connect sys_cpu_resetn $ axi_cpu_interconnect /aresetn
981
999
} else {
982
- ad_ip_instance axi_interconnect axi_cpu_interconnect
983
- ad_connect sys_cpu_clk axi_cpu_interconnect/ACLK
984
- ad_connect sys_cpu_clk axi_cpu_interconnect/S00_ACLK
985
- ad_connect sys_cpu_resetn axi_cpu_interconnect/ARESETN
986
- ad_connect sys_cpu_resetn axi_cpu_interconnect/S00_ARESETN
1000
+ ad_ip_instance axi_interconnect $ axi_cpu_interconnect
1001
+ ad_connect sys_cpu_clk $ axi_cpu_interconnect /ACLK
1002
+ ad_connect sys_cpu_clk $ axi_cpu_interconnect /S00_ACLK
1003
+ ad_connect sys_cpu_resetn $ axi_cpu_interconnect /ARESETN
1004
+ ad_connect sys_cpu_resetn $ axi_cpu_interconnect /S00_ARESETN
987
1005
}
988
1006
989
1007
if {$sys_zynq == 3} {
990
1008
ad_connect sys_cpu_clk sys_cips/m_axi_fpd_aclk
991
- ad_connect axi_cpu_interconnect/S00_AXI sys_cips/M_AXI_FPD
1009
+ ad_connect $ axi_cpu_interconnect /S00_AXI sys_cips/M_AXI_FPD
992
1010
}
993
1011
if {$sys_zynq == 2} {
994
1012
ad_connect sys_cpu_clk sys_ps8/maxihpm0_lpd_aclk
995
- ad_connect axi_cpu_interconnect/S00_AXI sys_ps8/M_AXI_HPM0_LPD
1013
+ ad_connect $ axi_cpu_interconnect /S00_AXI sys_ps8/M_AXI_HPM0_LPD
996
1014
}
997
1015
if {$sys_zynq == 1} {
998
1016
ad_connect sys_cpu_clk sys_ps7/M_AXI_GP0_ACLK
999
- ad_connect axi_cpu_interconnect/S00_AXI sys_ps7/M_AXI_GP0
1017
+ ad_connect $ axi_cpu_interconnect /S00_AXI sys_ps7/M_AXI_GP0
1000
1018
}
1001
1019
if {$sys_zynq == 0} {
1002
- ad_connect axi_cpu_interconnect/S00_AXI sys_mb/M_AXI_DP
1020
+ ad_connect $ axi_cpu_interconnect /S00_AXI sys_mb/M_AXI_DP
1003
1021
}
1004
1022
if {$sys_zynq == -1} {
1005
- ad_connect axi_cpu_interconnect/S00_AXI mng_axi_vip/M_AXI
1023
+ if {$sys_cpu_interconnect_instance == 0} {
1024
+ ad_connect $axi_cpu_interconnect /S00_AXI mng_axi_vip/M_AXI
1025
+ } else {
1026
+ set temp_sys_cpu_interconnect_instance [expr $sys_cpu_interconnect_instance - 1]
1027
+ set temp_name axi_cpu_interconnect_${temp_sys_cpu_interconnect_instance}
1028
+ ad_connect $axi_cpu_interconnect /S00_AXI $temp_name /M15_AXI
1029
+ }
1006
1030
}
1007
1031
}
1008
1032
@@ -1105,19 +1129,19 @@ proc ad_cpu_interconnect {p_address p_name {p_intf_name {}}} {
1105
1129
}
1106
1130
}
1107
1131
1108
- set_property CONFIG.NUM_MI $sys_cpu_interconnect_index [get_bd_cells axi_cpu_interconnect]
1132
+ set_property CONFIG.NUM_MI $sys_cpu_interconnect_index [get_bd_cells $ axi_cpu_interconnect ]
1109
1133
1110
1134
if {$use_smartconnect == 0} {
1111
- ad_connect sys_cpu_clk axi_cpu_interconnect/${i_str} _ACLK
1112
- ad_connect sys_cpu_resetn axi_cpu_interconnect/${i_str} _ARESETN
1135
+ ad_connect sys_cpu_clk $ axi_cpu_interconnect /${i_str} _ACLK
1136
+ ad_connect sys_cpu_resetn $ axi_cpu_interconnect /${i_str} _ARESETN
1113
1137
}
1114
1138
if {$p_intf_clock ne " " } {
1115
1139
ad_connect sys_cpu_clk ${p_intf_clock}
1116
1140
}
1117
1141
if {$p_intf_reset ne " " } {
1118
1142
ad_connect sys_cpu_resetn ${p_intf_reset}
1119
1143
}
1120
- ad_connect axi_cpu_interconnect/${i_str} _AXI ${p_intf}
1144
+ ad_connect $ axi_cpu_interconnect /${i_str} _AXI ${p_intf}
1121
1145
1122
1146
set p_seg [get_bd_addr_segs -of [get_bd_addr_spaces -of [get_bd_intf_pins -filter " NAME=~ *${p_intf_name} *" -of $p_hier_cell ]]]
1123
1147
set p_index 0
0 commit comments