Bit Reversed Routing Example
An example of using a family route connection topology several ways


Question:

We would like to see an example of using a family route connection topology implemented in several different ways.

 

Answer:

The following graph performs a bit reversal of the indices of the inputs. The input has a decimal value index. That index is then bit reversed, the number of bits to use in the reversal is specified by "n". That value now has a new decimal value. The input with the original decimal value is connected to that output with the decimal value of the bit-reversed index

For example, input [14]in has an index 14 which is binary 10010. This bit pattern is reversed to 01001 which equals decimal 9. Input [14]in is then connected to output [9]out.

The graph can be found in: appnotes/bit_reverse/reverse

 

Figure 1. The top level graph for the bit reversal demonstration.

The route topology created is seen as: route1.html

First, we show how bit-reversed routing can be built using C syntax equations.

Note that the range variable R is defined in the parent graph and is not defined in this hierarchical box.

 

Figure 2. For the graph shown in Figure 1, this is internal to "bit_rev". The value for "R" is taken from "L" in the higher level.

 

 

 

Bit Reverse Flow

 

starting bit position

abcde

'a' moves to position 0

----a

'b' moves to position 1

---ba

'c' moves to position 2

--cba

'd' moves to position 3

-dcba

'e' moves to position 4

edcba

 

 

The constant 'x' is the results of performing the logical OR of the constansts: rev, mask and sh_left.

rev OR mask OR sh_left

rev | mask | sh_left

 

 

rev = move the most significant bit to its correct position.

mask = move bits that are in the correct order straight down.

sh_left = shift unordered bits to the left.

 

All the above can be accomplished more easily using the reverse function.

 

 The route topology created is seen as: route2.html

 

 


Application Note last updated 3/24/98