From 07071eb5c10c59a8b866a70605af65d90172515c Mon Sep 17 00:00:00 2001
From: "Wesley W. Terpstra" <w.terpstra@gsi.de>
Date: Thu, 21 Apr 2016 18:28:46 +0200
Subject: [PATCH] crossbar: silence a warning for crossbars with 1 slave

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

diff --git a/modules/wishbone/wb_crossbar/xwb_crossbar.vhd b/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
index ba9e361f..21feb5d6 100644
--- a/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
+++ b/modules/wishbone/wb_crossbar/xwb_crossbar.vhd
@@ -82,19 +82,21 @@ architecture rtl of xwb_crossbar is
     constant zero : t_wishbone_address := (others => '0');
   begin
     -- all (i,j) with 0 <= i < j < n
-    for i in 0 to g_num_slaves-2 loop
-      for j in i+1 to g_num_slaves-1 loop
-        assert not (((c_mask(i) and c_mask(j)) and (c_address(i) xor c_address(j))) = zero) or
-               ((c_mask(i) or not c_address(i)) = zero) or -- disconnected slave?
-               ((c_mask(j) or not c_address(j)) = zero)    -- disconnected slave?
-        report "Address ranges must be distinct (slaves " & 
-	       Integer'image(i) & "[" & f_bits2string(c_address(i)) & "/" &
-	                                f_bits2string(c_mask(i)) & "] & " & 
-	       Integer'image(j) & "[" & f_bits2string(c_address(j)) & "/" &
-	                                f_bits2string(c_mask(j)) & "])"
-        severity Failure;
+    if g_num_slaves > 1 then
+      for i in 0 to g_num_slaves-2 loop
+        for j in i+1 to g_num_slaves-1 loop
+          assert not (((c_mask(i) and c_mask(j)) and (c_address(i) xor c_address(j))) = zero) or
+                 ((c_mask(i) or not c_address(i)) = zero) or -- disconnected slave?
+                 ((c_mask(j) or not c_address(j)) = zero)    -- disconnected slave?
+          report "Address ranges must be distinct (slaves " & 
+                 Integer'image(i) & "[" & f_bits2string(c_address(i)) & "/" &
+                                          f_bits2string(c_mask(i)) & "] & " & 
+                 Integer'image(j) & "[" & f_bits2string(c_address(j)) & "/" &
+                                          f_bits2string(c_mask(j)) & "])"
+          severity Failure;
+        end loop;
       end loop;
-    end loop;
+    end if;
     for i in 0 to g_num_slaves-1 loop
       report "Mapping slave #" & 
              Integer'image(i) & "[" & f_bits2string(c_address(i)) & "/" &
-- 
GitLab