Hi, I am using AMBA APB for my project. I need the width of data bus to be 64 bits , can I increase from 32 bits(default) to 64 bits(as per my project requirements)? if I am increasing the size what are the constraints will come in?
The APB protocol was intended to be a low complexity bus you could connect simple peripherals to where data bandwidth and latency were not key concerns. So to keep things simple there are very few controls to support complex transfers, and the data bus width was limited to a maximum of 32 bits.
32-bits would be seen as sufficient for most peripheral needs as rarely would you have a peripheral register wider than this number of control or status bits.
Can I ask what functionality you have that requires support for 64-bit data ?
If you did need to support 64-bits of data, this would need to be transferred as two 32-bit transfers, so requiring a DownSizing element in the system bus driving your APB bridge.
From a functional perspective there would be nothing to stop you implementing a 64-bit data bus, BUT your design would not then be APB compliant, and would need to be carefully documented as such. It would not then work with any standard APB components such as bridges and other peripherals as they would all be expecting 32-bit increments on the PADDR bus, as well as the different port widths on PWDATA, PRDATA and PSTRB.
View all questions in SoC Design forum