UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 31295

Virtex, Spartan Configuration - Ordering of bits sent out on a Serial configuration relative to the bitstream

Description

When I configure an FPGA in Serial mode using a microprocessor or another FPGA, in what order should the bits be sent out from the source?

Solution

For serial configuration mode (master or slave) the bit ordering is straightforward.

For instance, the sync word you are going to send is 0xAA995566 (or 0xAA99 for some Spartan devices) and it should be sent MSB first.Considering this translates to 1010 1010 1001 1001... in binary here is the bit order:

bit 0 =1, bit 1= 0, bit 2 = 1, bit 3 = 0 and so on.

Or another to look at it, if you were to stand on top of the FPGA looking toward the configuration data source, the sync word should come at the FPGA as:

FPGA <-- 1... 0... 1...0...

You can use any file generated from BitGen or PROMGen containing the bitstream only (HEX, BIN, BIT for instance), but you should ensure you send data in the order given above. Usually the file format chosen for slave serial configuration is a binary file.Note that if the BIN or HEX file is generated from PROMGen, you have an option to enable bit swap or not. More details on that are given in theCommand Line Tools User Guide (UG628). To summarize, the bitstream format you choose will depend on your application and the way you manipulate data with your processor.
AR# 31295
Date Created 07/17/2008
Last Updated 01/28/2013
Status Active
Type General Article