SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The RAT works by translating a 32-bit input address into a 48-bit output address. Any input transaction that starts inside of a programmed region will have its address translated, if the region is enabled. Any disabled region is ignored from the translation lookup.
The input addresses are compared against all the enabled regions in parallel. The region size defines how many of the lowest address bits are included in the region space, starting from a 1B space to a 4GB space. Then the upper bits not part of the region are used for the lookup and comparison, matching those bits of the input addresses against the region base address. The region matches when it is enabled and the compare matches. The first region that matches has the output address set with the region's translated base address upper bits. The lower bits that are part of the region size are copied from the input address to the output address. If there are no region matches then the input address is copied to the output address entirely.
Multiple region definitions must not overlap in their covered address space. The RAT does not check for this, so it is software's responsibility to take care of it. Overlapping regions may have unpredictable results.
Here is an example of a region-based address translation, assuming that region [0] is programmed as follows:
If a transaction comes in with the address 0x1234_5678, then the output transaction will have the address 0x0000_ABCD_5432_1678.