Can anyone translate following for me. I found this as a default value into one of the slice blocks in system generator for xilinx FPGA. This block actually decode the address from the bus
a) C_HIGH-C_BASE seems to be the length of the adress range
b) applying log2 gives us the floating point value representing the "number of bits" needed to decode the addresses within the block.
c) the number calculated might have decimals, so we apply 32-ceil, giving as (I suppose!) an integer of 32 bits that is equal to the value above, or the lesser one greater than the number above.
Finally, we get the number of bits needed to decode the addresses with the address range.
For instance:
C_BASE= 0x0010000 C_HIGH= 0x00101C0
C_HIGH-C_BASE= 0x1C0
log2(...)=8.807355
32-ceil(...)=9
Lower 9 bits of the address bus are needed to decode internal address range, higher 23 bits must be identified for equality to select the block:
address is in block: (address&0xFFFFFE00)==0x0010000 address within block: address&0x1FF
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.