From 453c977d93688ef074a2669576f0b7ffdaa6b774 Mon Sep 17 00:00:00 2001
From: "Wesley W. Terpstra" <w.terpstra@gsi.de>
Date: Mon, 5 Mar 2012 15:03:19 +0100
Subject: [PATCH] Print the bus mapping in compile logs. Eliminate warning
 about constant zero. Use the aliases generic array.

---
 modules/wishbone/wb_crossbar/xwb_crossbar.vhd | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/modules/wishbone/wb_crossbar/xwb_crossbar.vhd b/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
index 266fc2f7..b434834b 100644
--- a/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
+++ b/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
@@ -77,19 +77,25 @@ architecture rtl of xwb_crossbar is
   function f_ranges_ok
     return boolean
   is
-    variable zero : t_wishbone_address := (others => '0');
+    constant zero : t_wishbone_address := (others => '0');
   begin
     for i in 0 to g_num_slaves-2 loop
       for j in i+1 to g_num_slaves-1 loop
-        assert not (((g_mask(i) and g_mask(j)) and (g_address(i) xor g_address(j))) = zero)
+        assert not (((c_mask(i) and c_mask(j)) and (c_address(i) xor c_address(j))) = zero)
         report "Address ranges must be distinct (slaves " & 
-	       Integer'image(i) & "[" & Integer'image(to_integer(unsigned(g_address(i)))) & "/" &
-	                                Integer'image(to_integer(unsigned(g_mask(i)))) & "] & " & 
-	       Integer'image(j) & "[" & Integer'image(to_integer(unsigned(g_address(j)))) & "/" &
-	                                Integer'image(to_integer(unsigned(g_mask(j)))) & "])"
+	       Integer'image(i) & "[" & Integer'image(to_integer(unsigned(c_address(i)))) & "/" &
+	                                Integer'image(to_integer(unsigned(c_mask(i)))) & "] & " & 
+	       Integer'image(j) & "[" & Integer'image(to_integer(unsigned(c_address(j)))) & "/" &
+	                                Integer'image(to_integer(unsigned(c_mask(j)))) & "])"
         severity Failure;
       end loop;
     end loop;
+    for i in 0 to g_num_slaves-1 loop
+      report "Mapping slave #" & 
+             Integer'image(i) & "[" & Integer'image(to_integer(unsigned(c_address(i)))) & "/" &
+                                      Integer'image(to_integer(unsigned(c_mask(i)))) & "]"
+      severity Note;
+    end loop;
     return true;
   end f_ranges_ok;
   constant c_ok : boolean := f_ranges_ok;
-- 
GitLab