In many cases, SelectMAP configuration is driven by a user application residing on a microprocessor, CPLD, or in some cases another FPGA. In these applications, it is important to understand how the data ordering in the configuration data file corresponds to the data ordering expected by the FPGA.
In SelectMAP x8 mode, configuration data is
loaded at one byte per CCLK, with the MSB of each byte presented to the
D00 pin. This convention (D00 = MSB, D07
= LSB) differs from many other devices. This convention can be a source of confusion when
designing custom configuration solutions. The following table shows how to load the
hexadecimal value 0xABCD into the SelectMAP data bus.
| CCLK Cycle | Hex Equivalent | D00 | D01 | D02 | D03 | D04 | D05 | D06 | D07 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0xAB | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 2 | 0xCD | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
|
|||||||||
Some applications can accommodate the non-conventional data ordering without difficulty. For other applications, it can be more convenient for the source configuration data file to be bit swapped, meaning that the bits in each byte of the data stream are reversed. For these applications, the AMD tools can generate bit-swapped files.
The following table shows the bit ordering for the SelectMAP x8, x16, and x32 data bus widths.
| SelectMAP Data Bus Width | Data Pins | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | |
| x32 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| x16 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||||||||||||||||
| x8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||||||||||||||||||||||||