Embedded Design Handbook

ID 683689
Date 8/28/2023
Public
Document Table of Contents

3.4.4.2. ARM BE-32 Bus Byte Ordering

Some ARM cores use a bus byte ordering commonly referred to as big endian 32 (BE-32). BE-32 processor cores use a descending bit ordering when the masters are connected to the interconnect. For example, an ARM BE-32 processor core labels the data bits 31 down to 0. Such a processor core considers bits 31 down to 24 as byte offset 0. This layout differs from the Avalon® -MM specification, which defines byte 0 as data bits 7 down to 0.

A BE-32 processor core accesses memory using the bus mapping shown below.

Table 4.  ARM BE-32 Write Data Mapping
Access Size (Bits) Offset (Bytes) Value Byte Enable (Bits 3:0) Write Data (Bits 31:24) Write Data (Bits 23:16) Write Data (Bits 15:8) Write Data (Bits 7:0)
8 0 0x0A 1000 0x0A
8 1 0x0A 0100 0x0A
8 2 0x0A 0010 0x0A
8 3 0x0A 0001 0x0A
16 0 0x0A0B 1100 0x0A 0x0B
16 2 0x0A0B 0011 0x0A 0x0B
32 0 0x0A0B0C0D 1111 0x0A 0x0B 0x0C 0x0D

The write access behavior of the BE-32 processor shown in the table above differs greatly from the Nios® II processor behavior shown in Table 3. The only consistent access is the full 32-bit write access. In all the other cases, each processor accesses different byte lanes of the interconnect.

To connect a processor with BE-32 bus byte ordering to the interconnect, rename each byte lane as the figure below shows.

Figure 19. ARM BE-32 Byte-Renaming Wrapper
Note: As in the case of the PowerPC wrapper logic, the ARM BE-32 wrapper does not consume any FPGA logic resources or degrade the fMAX of the interface.