![Solflower SFPCI -VME SERIES Скачать руководство пользователя страница 46](http://html.mh-extra.com/html/solflower/sfpci-vme-series/sfpci-vme-series_user-manual-and-installation-manual_1315249046.webp)
Byte Swapping Capability
rev 2.0
SFPCI -VME SERIES User’s Guide and Installation Manual
46
keyboard. Once the end user hits enter key to execute the command, the CPU in the
local machine will process this word and pass it downstream, maybe through a couple of
PCI Bridges, and reaches the Universe PCI-VME Bridge. The Universe PCI-VME
Bridge then processes this word and passes it to VME bus. Because the different endian
between PCI (of an Intel Platform) and VME, this byte will appear on the VME side as
0xBBAA. This can be understood by looking at DS1*, DS0*, A1, and LW* signals on
the VME bus. In this case the values for these signals will be 0, 0, 0,1 respectively.
Since our goal is to write 0xAABB on VME bus, these signals will have to be
manipulated and changed to different values in order to write to the right bytes on VME
bus. This is the Xilinx XC95xx job to regenerate these four signals. Now they become
0, 0, 1, 1(DS1*, DS0*, A1, and LW*). These signals tell the VME memory to write the
swapped bytes. Along with the four signals, bytes are gated through appropriate byte
lanes by the control signals from XC95xx, and passed on to the VME bus. 0xAABB is
then written to the VME memory.
6.3 Byte Swapping Detail
Currently rev F support three modes of byte swapping, namely, byte swapping for bytes,
byte swapping for words, and byte swapping for long words. The following table
describes swapping detail. Each swapping mode will be discussed in this section.
TABLE 15
Byte Swapping table
Byteswap behaviors:
In the table above "VME Address" is the address as seen by the VME Bus analyzer.
"Host Data" is the result of the data being read from the VME into a register in the CPU.
"Read Address (Host)" is the address read from the boards mapped into the host
system's memory. "Width" is the number of bits read into the register.
No Byteswap (Little Endian)
Register Byteswap (Little Endian)
Read Address
(Host)
Width
VME Address
Host Data
VME Address
Host Data
0xXXXXXXX0 32 0xXXXXXXX0 0xDDCCBBAA 0xXXXXXXX0 0xAABBCCDD
0xXXXXXXX0 0xXXXXXXX0
0xBBAA 0xXXXXXXX0 0xAABB
0xXXXXXXX2
16
0xXXXXXXX2
0xDDCC 0xXXXXXXX2 0xCCDD
0xXXXXXXX0 0xXXXXXXX0
0xAA 0xXXXXXXX0
0xAA
0xXXXXXXX1 0xXXXXXXX1
0xBB 0xXXXXXXX1
0xBB
0xXXXXXXX2 0xXXXXXXX2
0xCC 0xXXXXXXX2
0xCC
0xXXXXXXX3
8
0xXXXXXXX3
0xDD 0xXXXXXXX3 0xDD