Commit 9c2a6c16 authored by Mathias Kreider's avatar Mathias Kreider

sdb crossbar: #1401 fixed. Now properly handling sdb meta records

parent ebaf955e
......@@ -75,6 +75,7 @@ architecture rtl of xwb_sdb_crossbar is
typ := c_layout(i)(7 downto 0);
sdb_component := f_sdb_extract_component(c_layout(i)(447 downto 8));
if (typ(7) = '0') then --only do address checks on non-meta record types (typ >= 0x80)
-- Range must be valid
assert unsigned(sdb_component.addr_first) <= unsigned(sdb_component.addr_last)
report "Wishbone slave device #" & Integer'image(i) & " (" & f_trim(sdb_component.product.name) & ") sdb_component.addr_first (" & f_bits2string(sdb_component.addr_first) & ") must precede sdb_component.addr_last address (" & f_bits2string(sdb_component.addr_last) & ")."
......@@ -103,6 +104,8 @@ architecture rtl of xwb_sdb_crossbar is
report "Wishbone slave device #" & Integer'image(i) & " (" & f_trim(sdb_component.product.name) & ") sdb_component.addr_first (" & f_bits2string(sdb_component.addr_first) & ") is not aligned. This is not supported by the crossbar."
severity Failure;
end if;
-- Record the address for posterity
case typ is
when x"01" | x"02" =>
......@@ -141,7 +144,7 @@ architecture rtl of xwb_sdb_crossbar is
-- There must be exactly the right number of slave SDB records
assert bus_index = g_num_slaves
report "Too few device and bridge records found in g_layout"
report "Too few device and bridge records found in g_layout. Did you accidentally include meta records in the supplied number of slaves?"
severity Failure;
-- It is OK to have no master records (backwards compat)
......
Markdown is supported
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