select width is data_width // data granularity.
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 16 Apr 2022 15:26:33 +0000 (16:26 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 16 Apr 2022 15:26:36 +0000 (16:26 +0100)
(common mistake to make, confused the hell out of me too)

src/soc/bus/wb_async.py

index 6775427fd300d4e2113122ba3c9e5354332458fc..9c7b4e2ced24ed9eaddad11b7fa123e8dc6c7cf2 100644 (file)
@@ -102,7 +102,11 @@ class WBAsyncBridge(Elaboratable):
                             # Parameters
                             p_ADDR_WIDTH=self.address_width,
                             p_DATA_WIDTH=self.data_width,
-                            p_SELECT_WIDTH=self.granularity,
+                            # width of select is the data width
+                            # *divided* by the data granularity.
+                            # data_width=32-bit, data granularity=8-bit,
+                            # select_width ==> 32/8 ==> 4
+                            p_SELECT_WIDTH=self.data_width//self.granularity,
 
                             # Clocks/resets
                             i_wbm_clk=self.wb_mclk,