Unverified Commit 833384fe authored by Johannes Wirth's avatar Johannes Wirth Committed by GitHub
Browse files

Merge pull request #315 from esa-tu-darmstadt/feature/au280-hbm-addressmap

Several HBM related fixes
parents b3a9cb2f 402896c0
Pipeline #2527 passed with stages
in 152 minutes and 56 seconds
......@@ -33,8 +33,14 @@ namespace eval platform {
proc get_ignored_segments { } {
set hbmInterfaces [hbm::get_hbm_interfaces]
set ignored [list]
for {set i 0} {$i < [llength $hbmInterfaces]} {incr i} {
for {set j 0} {$j < [llength $hbmInterfaces]} {incr j} {
set numInterfaces [llength $hbmInterfaces]
if {[expr $numInterfaces % 2] == 1} {
set max_mem_index [expr $numInterfaces + 1]
} else {
set max_mem_index $numInterfaces
}
for {set i 0} {$i < $numInterfaces} {incr i} {
for {set j 0} {$j < $max_mem_index} {incr j} {
set axi_index [format %02s $i]
set mem_index [format %02s $j]
lappend ignored "/hbm/hbm_0/SAXI_${axi_index}/HBM_MEM${mem_index}"
......
......@@ -268,18 +268,25 @@ namespace eval hbm {
} else {
connect_bd_intf_net $pin [get_bd_intf_pins $converter/S00_AXI]
}
set address_offset [tapasco::ip::create_axioffset_hbm offset_${i}]
set offset [format "0x0000000%02x0000000" $i]
set_property -dict [list CONFIG.offset $offset CONFIG.offset_bits {5}] $address_offset
connect_bd_intf_net [get_bd_intf_pins $converter/M00_AXI] [get_bd_intf_pins $address_offset/S_AXI]
connect_bd_net [get_bd_pins $hbm/AXI_${hbm_index}_ACLK] [get_bd_pins $address_offset/CLK]
connect_bd_net [get_bd_pins $hbm/AXI_${hbm_index}_ARESET_N] [get_bd_pins $address_offset/RST_N]
if {[platform::is_regslice_enabled "hbm_hbm" false] || [platform::is_regslice_enabled [format "hbm_hbm%s" $hbm_index] false]} {
# insert register slice between interconnect and HBM
set regslice_post [tapasco::ip::create_axi_reg_slice regslice_post_${i}]
set_property -dict [list CONFIG.REG_AW {15} CONFIG.REG_AR {15} CONFIG.REG_W {15} CONFIG.REG_R {15} CONFIG.REG_B {15} CONFIG.USE_AUTOPIPELINING {1}] $regslice_post
connect_bd_intf_net [get_bd_intf_pins $converter/M00_AXI] [get_bd_intf_pins $regslice_post/S_AXI]
connect_bd_intf_net [get_bd_intf_pins $address_offset/M_AXI] [get_bd_intf_pins $regslice_post/S_AXI]
connect_bd_intf_net [get_bd_intf_pins $regslice_post/M_AXI] [get_bd_intf_pins $hbm/SAXI_${hbm_index}]
connect_bd_net [get_bd_pins $hbm/AXI_${hbm_index}_ACLK] [get_bd_pins $regslice_post/aclk]
connect_bd_net [get_bd_pins $hbm/AXI_${hbm_index}_ARESET_N] [get_bd_pins $regslice_post/aresetn]
} else {
connect_bd_intf_net [get_bd_intf_pins $converter/M00_AXI] [get_bd_intf_pins $hbm/SAXI_${hbm_index}]
connect_bd_intf_net [get_bd_intf_pins $address_offset/M_AXI] [get_bd_intf_pins $hbm/SAXI_${hbm_index}]
}
}
......@@ -320,8 +327,7 @@ namespace eval hbm {
if {[tapasco::is_feature_enabled "HBM"]} {
set hbmInterfaces [get_hbm_interfaces]
for {set i 0} {$i < [llength $hbmInterfaces]} {incr i} {
set base [expr {0x10000000 * $i}]
set args [lappend args M_AXI_HBM_${i} [list $base 0 -1 ""]]
set args [lappend args M_AXI_HBM_${i} [list 0 0 -1 ""]]
}
}
......
......@@ -78,8 +78,8 @@ namespace eval svm {
proc addressmap {{args {}}} {
if {[tapasco::is_feature_enabled "SVM"]} {
set args [lappend args "M_MMU" [list 0x50000 0x10000 0 "PLATFORM_COMPONENT_MMU"]]
return $args
}
return $args
}
}
......
......@@ -258,8 +258,7 @@ namespace eval hbm {
set hbm_index [format %02s $i]
# create smartconnect for clock domain conversion, protocol conversion (AXI4->AXI3) and data width conversion
set converter [tapasco::ip::create_smartconnect smartconnect_${i}]onnect:1.0 smartconnect_${i}]
set_property -dict [list CONFIG.NUM_SI {1} CONFIG.NUM_CLKS {2} CONFIG.HAS_ARESETN {0}] $converter
set converter [tapasco::ip::create_axi_sc smartconnect_${i} 1 1 2]
# create connections between PE and smartconnect, and smartconnect and HBM
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment