By using formulas, we can calculate the aligned address for unaligned address. But if we don't know the formulas, we can calculate the address manually by using simple technique which I have shared here with simple example,
we have, Address = 55'h (Unaligned Address)
Burst Size = 2, i.e 2^2 = 4 Bytes Transfer
Steps to calculate aligned address :
1) divide unaligned address by burst size
55/4 = 13.75 (take integer number i.e "13" and ignore the other part)
2) multiply calculated number i.e "13" with burst size i.e "4"
13 x 4 = 52'h (this is the address for unaligned address 55'h with 4 bytes transfer size)
Note : While transaction, some data loss happen here for unaligned address.
If you are performing unaligned address transactions, then they won't fall on multiples of 0x4 (if 1 word is 32 bits). For example, an AXI master can issue a read transaction with address 0x30 which is aligned to 4 byte boundary, but 0x31 is offset by 1 from the 4 byte boundary and would be an unaligned transfer because the master now has to send two transactions, one to read bytes from 0x31 through 0x33 and another one to read the byte at 0x34.