Abstract:
Apparatus is disclosed for reversing the bit order of a selected portion of a digital word. A first shifter is provided to shift the position of the unselected portion of the digital word to a set of terminals. The digital word, in bit reversed order, is coupled to an adjacent set of terminals. The two sets of terminals are fed to a second shifter which couples to the output thereof the digital word with the selected portion thereof in bit-reversed order. Such apparatus is adapted for use in addressing an FFT processor adapted to operate with different batch sizes to retrieve calculated frequency components in ascending order of frequency.

Description:
The invention herein described was made in the course of, or under a contract or subcontract thereunder, with the Department of Defense. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention relates generally to digital circuitry and more particularly to digital circuitry adapted to reverse the order of a selected portion of a digital word. 
     As is known in the art, it is sometimes necessary to reverse the order of the bits of a digital word. For example, in many Fast Fourier Transformer (FFT) processors it is required that memory addresses in such processors be bit-reversed at various steps in the processing, for example in retrieving the computed frequency components in ascending order of frequency. In applications where the entire address is to be bit-reversed one technique used is to couple the address in bit-reversed order and non-bit reversed order to a selector and selectively coupling either the bit-reversed address or the non-bit reversed address to the output of the selector. Such technique is described in U.S. Pat. No. 3,673,399 issued June 27, 1972. 
     In many FFT applications the address generator produces a fixed length digital word. However, the FFT processors are adapted to perform FFT processing for a variety of data or batch sizes, say a four-point FFT, an eight-point FFT and a sixteen-point FFT. One such processor is described in U.S. Pat. No. 3,875,391, inventors G. N. Shapiro and H. S. Sobel, issued Apr. 1, 1975 and assigned to the same assignee as the present invention. With such type processors, if it is desired to obtain the computed frequency components in ascending order of frequency, it would be desirable if a different number of bits of the address were reversed depending on the batch size of the FFT. For example, if the address is a six bit digital word a 5  a 4  a 3  a 2  a 1  a 0  (where a 0  is the least significant bit and a 5  is the most significant bit) in one batch size it may be desired to reverse only the three least significant bits to form an address a 5  a 4  a 0  a 1  a 2  while for another batch size it may be desired to bit-reverse the five least significant bits to form the address a 5  a 0  a 1  a 2  a 3  a 4 . It is evident then that using the multiplexer technique described above requires coupling to such multiplexer all possible bit-reversed address combinations required for all possible batch sizes which are to be processed, thereby requiring extensive hardware in generating proper addresses. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention apparatus is provided for reversing the bit order of a selected portion of an m bit digital word. Such apparatus includes: (a) means for producing the m bit digital word in bit-reversed order at a first set of terminals; (b) means coupled to the m bit digital word in non-bit reversed order for coupling the unselected portion of the m bit digital word in non-bit reversed order to a second set of terminals; and (c), means for coupling the portion of the first set of terminals producing the selected portion of the m bit digital word in bit-reversed order and the second set of terminals to a set of m output terminals to produce an output digital word, such output digital word being the m bit digital word with the selected portion thereof in bit-reversed order and the unselected portion in non-bit reversed order. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be more fully understood from the following more detailed description taken together in conjunction with the accompanying drawings in which: 
     FIG. 1 is a block diagram of bit-reversing apparatus according to the invention; 
     FIGS. 2 and 3 are block diagrams useful in understanding the operation of the bit-reversing apparatus shown in FIG. 1; 
     FIG. 4 is a block diagram of an alternative embodiment of a bit-reversing apparatus; 
     FIG. 5 is a block diagram useful in understanding the bit-reversing apparatus shown in FIG. 4; and 
     FIG. 6 is a block diagram of an FFT processor including the bit-reversing apparatus shown in FIG. 1. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring now to FIG. 1, bit-reversing apparatus 10 is shown adapted to bit reverse a selected portion of the n least significant bits of an m bit digital word, here a six bit digital word a 5  a 4  a 3  a 2  a 1  a 0 , where a 5  is the most significant bit and a 0  is the least significant bit. Such apparatus 10 includes a conventional register 12 for storing the six bit digital word. Thus, the six bits appear at output terminals 18 5  -18 0  of such register 12, respectively, as indicated. A first shifter 14 is included. Such shifter has m input terminals, here terminals 20 5  -20 0 , coupled respectively to output terminals 18 5  -18 0 , as shown. Output terminals 22 5  -22 0  of such shifter 14 are provided, as shown. Shifter 14 is of any conventional design and produces a second m bit digital word b 5  b 4  b 3  b 2  b 1  b 0  at output terminals 22 5  -22 0 , respectively, (where b 5  is the most significant bit appearing at output terminal 22 5 ) and b 0  is the least significant bit (appearing at output 22 0 ). The second m bit digital word has as its (m-n) (here (6-n)) least significant bits the (m-n) most significant bits of the digital word stored in the register 12. That is, the first shifter 14, in response to a control signal representative of the number of bits n to be bit reversed and fed to such shifter 14 via line 16, produces a second digital word having as a portion thereof the unselected portion of the digital word stored in the register shifted n bit positions, here to the right. An example of a typical shifter is a Fairchild F100158 described in ECL Data Book published by Fairchild Camera &amp; Instrument Corp., 1977, pgs. 10-48-10-53. The following truth table describes the operation of the shifter 14: 
     
         ______________________________________n        b.sub.5 b.sub.4 b.sub.3                          b.sub.2                                24 b.sub.1                                      b.sub.0______________________________________0        a.sub.5 a.sub.4 a.sub.3                          a.sub.2                                a.sub.1                                      a.sub.0(1).sub.10    0       a.sub.5 a.sub.4                          a.sub.3                                a.sub.2                                      a.sub.1(2).sub.10    0       0       a.sub.5                          a.sub.4                                a.sub.3                                      a.sub.2(3).sub.10    0       0       0     a.sub.5                                a.sub.4                                      a.sub.3(4).sub.10    0       0       0     0     a.sub.5                                      a.sub.4(5).sub.10    0       0       0     0     0     a.sub.5(6).sub.10    0       0       0     0     0     0______________________________________ 
    
     Referring also to FIG. 2 and considering as an example the case where n=(3) 10 , in response to a control signal representative of n=(3) 10  input terminal 20 5  becomes connected to output terminal 22 2  ; input terminal 20 4  becomes connected to output terminal 22 1  ; and input terminal 20 3  becomes connected to output terminal 22 6  as indicated by the dotted lines in FIG. 2. Hence, the second digital word b 5  b 4  b 3  b 2  b 1  b 0  is, in this example, 0 0 0 a 5  a 4  a 3 . Referring now also to FIG. 3, a second example is shown here where n=(5) 10 . In response to a control signal on line 16 representative of (5) 10  input terminal 20 5  becomes connected to output terminal 22 0  as indicated by the dotted line, and, hence, the second digital word b 5  b 4  b 3  b 2  b 1   b 0  is, in this second example, 0 0 0 0 0 b 5 . 
     Referring again to FIG. 1, a second shift register 28 is included, such shifter 28 having input terminals 30 1  -30 0 , as shown. The input terminals 30 11  -30 6  are connected to output terminals 22 5  -22 0 , respectively, as shown. As noted, the second digital word b 5  . . . b 0  is connected in non-bit reversed order to input terminals 30 11  -30 6 , respectively. Input terminals 30 5  -30 0  are connected to output terminals 18 0  -18 5 , respectively. It is noted, therefore, that the digital word stored in register 12, i.e., a 5  . . . a 0 , is coupled to input terminals 30 5  -30 0 , respectively, in bit-reversed order, ie., a 0  . . . a 5 . The second shifter 28 has output terminals 32 5  -32 0  and produces an output digital word c 5  . . . c 0 , such bits appearing on terminals 32 5  -32 0 , respectively, as indicated, where c 5  is the most significant bit and c 0  is the least significant bit. Here, however, the bits fed to input terminals 30 11  -30 0 , respectively, are shifted to the left n places in response to a control signal representative of n fed to shifter 28 via line 40. The following truth table describes the operation of the second shifter 28: 
     
         ______________________________________n        C.sub.5 C.sub.4 C.sub.3                          C.sub.2                                C.sub.1                                      C.sub.0______________________________________0        b.sub.5 b.sub.4 b.sub.3                          b.sub.2                                b.sub.1                                      b.sub.0(1).sub.10    b.sub.4 b.sub.3 b.sub.2                          b.sub.1                                b.sub.0                                      a.sub.0(2).sub.10    b.sub.3 b.sub.2 b.sub.1                          b.sub.0                                a.sub.0                                      a.sub.1(3).sub.10    b.sub.2 b.sub.1 b.sub.0                          a.sub.0                                a.sub.1                                      a.sub.2(4).sub.10    b.sub.1 b.sub.0 a.sub.0                          a.sub.1                                a.sub.2                                      a.sub.3(5).sub.10    b.sub.0 a.sub.0 a.sub.1                          a.sub.2                                a.sub.3                                      a.sub.4(6).sub.10    a.sub.0 a.sub.1 a.sub.2                          a.sub.3                                a.sub.4                                      a.sub.5______________________________________ 
    
     Referring now also to FIG. 2 and considering again the example where n=(3) 10  in response to a control signal on line 40 representative of (3) 10 , input terminal 30 8  becomes connected to output terminal 32 5  ; input terminal 30 7  becomes connected to output terminal 32 4  ; input terminal 30 6  becomes connected to output terminal 32 3  ; input terminal 30 5  becomes connected to output terminal 32 2  ; input terminal 30 4  becomes connected to output terminal 32 1  ; and input terminal 30 3  becomes connected to output terminal 32 0 , as indicated by the dotted lines. Hence, the digital word appearing at output terminals 32 5  -32 0  is a 5  a 4  a 3  a 0  a 1  a 2 , that is the digital word stored in register 12 with the three least significant bits in reverse order. 
     Referring now also to FIG. 3 and again considering the example where n=(5) 10  input terminals 30 6  -30 1  become connected to output terminals 32 5  -32 0 , respectively, to produce at such output terminals the digital word a 5  a 0  a 1  a 2  a 3  a 4 , that is, the digital word stored in register 12 here with the five least significant bits in bit reverse order. 
     In summary then, the second shifter 28 is coupled to the digital word stored in register 12 in bit-reversed order and to the second digital word produced at the output of the first shifter 14. The second shifter, in response to a control signal on line 40 representative of the number of bits n to be reversed, produces an output digital word having the previously shifted (m-n) here (6-n) most significant bits of the digital word stored in register 12 and the n least significant bits of such stored digital word in bit-reversed order shifted, here to the left, n bit positions. 
     Referring now to FIG. 4, apparatus 10&#39; is shown adapted to bit-reverse a selected portion of the n most significant bits of an m bit digital word, here a six bit digital word a 5  a 4  a 3  a 2  a 1  a 0 , where a 5  is the most significant bit and a 0  is the least significant bit. Here shifter 14&#39; is of conventional design and is similar to shifter 14 (FIG. 1) except that the digital word fed to input terminals 20 5  &#39;-20 0  &#39; thereof, here a 5  -a 0 , respectively, is shifted to the left n places in response to the control signal representative of n fed to such shifter 14&#39; via line 16&#39;. The shifter 14&#39; produces a digital word b 5  &#39;-b 0  &#39; at output terminals 22 5  -22 0 , respectively, where b 5  &#39; is the most significant bit and b 0  &#39; is the least significant bit. Thus, referring briefly to FIG. 5, for example, where n=(3) 10 , in response to the control signal (3) 10  on line 16, input terminals 20 2  &#39;-22 0  &#39; become connected to output terminals 22 5  &#39;-22 3  &#39; as indicated by the dotted lines so that the second digital word b 5  &#39; . . . b 0  &#39;, produced at terminals 22 5  &#39;-22 0  &#39;, respectively, is here a 2  a 1  a 0  0 0 0 . 
     Referring again to FIG. 4, a second selector 28&#39; is provided, input terminals 30 11  &#39;-30 6  &#39; being connected to the digital word stored in register 12 in bit-reversed order (i.e., a 0  -a 5 ) and terminals 30 5  &#39;-30 0  &#39; are connected to the second digital word in non-bit reversed order (i.e., b 5  &#39;-b 0  &#39;). Here shift 28&#39; shifts the data fed thereto to the left n bit positions in response to a control signal on line 40&#39;. That is, referring briefly also to FIG. 5 and considering again the example where n=(3) 10 , input terminals 30 8  &#39;-30 3  &#39; become connected to output terminals 32 5  &#39;-32 0  &#39; to produce at the output terminal a 3  a 4  a 5  a 2  a 1  a 0 , respectively, that is, the digital word stored in register 12 with the three most significant bits in bit-reverse order. 
     Referring now to FIG. 6 an FFT processor 50 is shown. Here N digital words are fed via the data bus through multiplexer 52 to a memory unit 54 at addresses supplied to the address terminal of such memory unit 54. Once such N digital words are stored they are fed through selector 56 to an arithmetic unit 58 for processing. The processed data recycles between the arithmetic unit 58 and the memory unit 54 in a well known manner, as described in the above-referenced U.S. Pat. No. 3,875,391, until the desired FFT process is complete. As is known, in order to retrieve the N computed frequency components in ascending order of frequency from the memory unit 54 the non-bit reversed addresses are, as during the computation process, generated by the controller and address generator 62. While during the computation process the addresses supplied by the address generator 62 were not bit-reversed (i.e. n=0), here it is desired to bit-reverse n=(log 2  N) bits of the addresses produced by the address generator 62. 
     The addresses produced by the address generator 62 are thus fed to the input of the &#34;bit-reverser&#34; or bit-reversing apparatus 10 as shown. The controller 60 produces control signals n=log 2  N on lines 16, 40. Hence the address supplied to the address terminals of the memory unit 54 are the addresses produced by the address generator 62 with the n least significant bits &#34;bit-reversed&#34;. During readout the frequency components are thus retrieved in ascending order of frequency and pass through the selector 56 to the DATA OUT bus, as shown. 
     Having described preferred embodiments of this invention, it is now evident that other embodiments incorporating the concepts may be used. It is felt, therefore, that this invention should not be restricted to the disclosed embodiments, but rather should be limited only by the spirit and scope of the appended claims.