Abstract:
A reconfigurable chip using reconfigurable functional units is modified to better implement linear feedback shift registers. The reconfigurable functional unit has its input multiplexer unit modified so that it can select a combined value. The combined values include some of the bits from the output of the reconfigurable functional unit as well as carry bit from another reconfigurable functional unit. This can significantly reduce the space required to implement linear feedback shift registers which are useful in many digital communication systems.

Description:
RELATED APPLICATION  
       [0001]    This application claims priority of the provisional application filed May 2, 2001, Serial No.  60 / 288 , 291 . 
     
    
     
       BACKGROUND OF THE INVENTION  
         [0002]    Linear Feedback Shift Registers have many uses in digital communications systems. One use is the generation of a long sequence of pseudo-random numbers. FIG. 1 illustrates an example of a linear feedback shift register (LFSR). The LFSR uses a number of shift register elements to store state information. Some of the inputs are determined by exclusive ORing the output of the previous shift register with an output bit of the LFSR.  
           [0003]    It is desired to find an improved way of implementing linear feedback shift registers in reconfigurable logic.  
         SUMMARY OF THE PRESENT INVENTION  
         [0004]    A modified reconfigurable functional unit on a reconfigurable chip is designed to better implement the linear feedback shift registers. A modified input multiplexer unit in the reconfigurable functional unit allows the selection of a combined value. The combined value includes a shifted version of some of the bits from an output of the reconfigurable functional unit, and at least one bit from the another reconfigurable functional unit.  
           [0005]    In a preferred embodiment, at least one bit from the another reconfigurable functional unit is a carry bit. The another reconfigurable functional unit is configured to add an input value to itself and produce the carry bit, the carry bit thus being the most significant bit of the input value.  
           [0006]    In one embodiment, the first reconfigurable functional unit is configured to add an input value to itself so that a carry bit contains the most significant bit of the input value. The second reconfigurable functional unit has a modified input multiplexer unit configured to select a combined value, the combined value including all but one bit of the output of the second configurable functional unit and the carry over bit from the reconfigurable functional unit. If the most significant bit of the output of the second reconfigurable functional unit is in a predetermined state (for example, state “1”), the second reconfigurable functional unit is configured to provide a mask value from the register and the second reconfigurable functional unit is configured to Exclusive-OR the combined value to the mask value to provide the new output value. In a preferred embodiment, if the most significant of the output of the second reconfigurable functional unit is not in the predetermined state, the combined value is used as the new output value.  
           [0007]    The modified input multiplexer unit allows a linear feedback shift register to be implemented in a relatively small number of reconfigurable functional units. The modification to the input multiplexer unit is not substantial and, thus, this modification can increase the efficiency of the entire reconfigurable chip for the many communications oriented implementations that require linear feedback shift registers. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]    [0008]FIG. 1 is a diagram of a prior art linear feedback shift register.  
         [0009]    [0009]FIG. 2 is a diagram of a reconfigurable functional unit of one embodiment of the present invention.  
         [0010]    [0010]FIG. 3 is a diagram of two reconfigurable functional units interconnected to implement a linear feedback shift register.  
         [0011]    [0011]FIG. 4 is a diagram of the second reconfigurable functional unit implementing the linear feedback shift register.  
         [0012]    [0012]FIG. 5A is a diagram of a modified input multiplexer unit for use in the reconfigurable functional unit of the present invention.  
         [0013]    [0013]FIG. 6 is a diagram of one embodiment of logic that can be used in a modified input multiplexer unit of the present invention.  
         [0014]    [0014]FIG. 7 is a diagram of an alternate embodiment of a modified input multplexer unit of the present invention.  
         [0015]    [0015]FIGS. 8A and 8B are simplified illustrations of an implementation of a linear feedback shift register.  
         [0016]    [0016]FIG. 9 is an illustration of a simplified implementation of a linear feedback shift register of FIGS. 8A and 8B. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0017]    Reconfigurable chips are typically implemented using reconfigurable functional units, such as data path units, interconnected by reconfigurable interconnect elements. In one embodiment, the reconfigurable functional unit can be connected with a local state memory to store data on the chip. The reconfigurable functional units and the interconnect are configured by configuration memory that stores the configurations of the system.  
         [0018]    An example of a reconfigurable functional unit is shown in FIG. 2. The reconfigurable functional unit includes two input multiplexers  22  and  24 . Connected to the input multiplexers are registers  26  and  28 . The reconfigurable functional unit includes an arithmetic logic unit  30 , which can be configured to implement a number of different functions. Inputs to the arithmetic logic unit  30  can be the direct inputs from the input multiplexers  22  and  24 ; the values in a register, such as registers  32  and  34 ; shifted values from shift register  36 ; or values from logic  38 . The configuration memory used to set up the configuration of the multiplexers, shift register logic, and arithmetic logic unit are not shown.  
         [0019]    It is desirable to implement a configuration such as a linear feedback shift register in as few reconfigurable functional units as possible, so as to minimize the resources used by that portion of the design.  
         [0020]    FIGS.  3 - 7  illustrate a modification to the reconfigurable functional unit to make it better able to implement the linear feedback shift register.  
         [0021]    [0021]FIG. 3 shows two reconfigurable functional units  50  and  52 . In order to implement the linear feedback shift register, as described below, one of the input multiplexer units is modified such that it can produce a combined value. The reconfigurable functional unit  50  is implemented so that it adds input value to itself. In this manner, the carry bit of the input contains the most significant bit of the input. The sum value is a left-shifted one bit. As will be described below, the carry bit from the reconfigurable functional unit  50  is used by the modified input multiplexer unit in the reconfigurable functional unit  52  to produce the combined value. The combined value includes some of the bits of the reconfigurable functional unit  52 , as well as the carry bit from the reconfigurable functional unit  50 .  
         [0022]    [0022]FIG. 4 illustrates the operation of the reconfigurable functional unit  52 ′. The elements of the reconfigurable functional unit that are not used in this implementation are not shown. Looking at FIG. 4, the input mux A  54  is modified so that a combined value can be selected. The combined value uses the output from the data pack unit  52 ′ except for the most significant bit. The combined value also includes the carry bit which is provided from the reconfigurable functional unit  50 , shown in FIG. 3. This modification to the input multiplexer unit  54  makes it possible to implement the linear feedback shift register into reconfigurable functional units without using a lot of space to make the modifications to the reconfigurable functional unit. Examples of modifications to the multiplexer unit are shown below with respect to FIGS. 5, 6 and  7 .  
         [0023]    The combined value is sent to the Arithmetic Logic Unit (ALU)  60 , which implements an exclusive OR. The output of the data path unit  52 ′ also is sent through mux  62  to be shifted right thirty-one places (for a thirty-two-bit word) in the shift unit  64 . This causes the input value of the most significant bit to fill the entire word. This value is ANDed together with the contents of Register B  66  which contains the mask value. If the most significant bit of the output of the reconfigurable functional  52 ′ is a predetermined value, in this case a “2,” the output of the AND  68  will be the mask value from register B  66 . Otherwise, the output of AND  68  will all zeros. The output of the AND  68  is Exclusive ORed with the combined value in the ALU  60 .  
         [0024]    [0024]FIG. 9 below illustrates how the reconfigurable functional units  50  and  52  implement the linear feedback shift register with respect to a simplified example.  
         [0025]    [0025]FIG. 5 illustrates one example of a modified multiplexer unit. Logic  74  produces the combined value. The combined value including the carry bit from the first reconfigurable functional unit, as well as some of the bits of the output of the second reconfigurable functional unit.  
         [0026]    [0026]FIG. 6 is a diagram illustrating logic in which two sets of pass gates are shown. The horizontal pass gates cause the output of the circuit to be the reconfigurable functional blocks output. The diagonal pass gates cause the least significant bit to be the carry bit from the first reconfigurable functional unit and the other bits to be the shifted version of all but the most significant bit of the output of the second reconfigurable functional unit.  
         [0027]    [0027]FIG. 7 is another diagram of an alternate modified input multiplexer unit. This simplified diagram shows a four-bit example of the multiplexing between the combined value and the output of the second reconfigurable functional unit. Note that the multiplexer unit of FIG. 7 is comprised of wiring  80  and a conventional multiplexer unit  82 . Other implementations of a modified input multiplexer unit can be provided to select a combined value.  
         [0028]    [0028]FIGS. 8A and 8B illustrate an example of the operation of a linear feedback shift register. In FIG. 8A, the contents of the linear feedback shift register state is 1110. When a bit  1  is loaded into the linear feedback shift register, the content of the register  90 ′ becomes 1. The content of register  81 ′ becomes 1, (the exclusive ORing of the output of registers  90  and  84  is a 1). The content of register  86 ′ is a 1. The content of register  84 ′ is 0, (the exclusive ORing of the outputs of registers  86  and  84  is a 0).  
         [0029]    [0029]FIG. 9 illustrates how the linear feedback shift register is implemented using reconfigurable functional units of the present invention. The simplified example of FIG. 9 is a four-bit example that follows the example of FIGS. 8A and 8B. In the preferred embodiment, larger-sized LFSR are implemented. In the example of FIG. 9, the reconfigurable functional unit  90  is configured such that the output of the reconfigurable functional unit  90  is sent through the input multiplexers  92  and  94 , then added together in the ALU unit  96 . The input value 1010 is the same as the input stream to the linear feedback shift registers of FIGS. 8A and 8B. The carry bit of the addition of the input value to itself is the most significant bit of the input value. In this example, the carry bit is 1. The three most significant bits of the sum contains the next three data elements to be input to the linear feedback shift register. Note that the carry bit sends a single bit of input data to the remainder of the linear feedback shift register implementation. The modified input multiplexer unit  97  takes the output of the reconfigurable functional unit  91  and the carry bit from the reconfigurable functional unit  90  to produce a combined value. In this embodiment, the bottom three bits of the output of reconfigurable functional unit  91 , that is  110 , are used along with the carry bit from the reconfigurable functional unit  90 , to produce the combined value, 1101. The output of the reconfigurable functional unit  91  is also shifted three places right in the shift register  93 . The shift register  93  implements sign extension, so that the value of the most significant bit fills the entire output of the shift register  93 . Note that if the most significant bit of the output of the reconfigurable functional unit  91  is a 1, then the output is 1111. If the most significant bit is a 0, the output is 0000. This value is ANDed together with the mask, in the AND unit  95 . The mask stored in the register  98  effectively implements the feedback taps of the linear feedback shift register. Note that a variety of different linear shift registers can be implemented using different mask values in the register  98 . The feedback taps of the LFSR of FIGS. 8A and 8B is implemented with the mask value “1010.” The output of the AND  95  and the combined value are Exclusive-ORed together in the ALU  99 . This produces the new output value 0111. Note that this is the same state as that stored in the registers of the LSFR of FIG. 8B.  
         [0030]    The modified multiplexer unit  97  used in the present invention eases the implementation of the linear feedback shift register, and allows it to be implemented using just two reconfigurable functional units.  
         [0031]    In a preferred embodiment of the present invention, the system operates on a 32-bit rather than the four-bit example shown here. Any size LFSR can be implemented using embodiments of the system of the present invention.  
         [0032]    The reconfigurable functional unit  89  is able to produce inputs to the reconfigurable functional unit  91  along the carry bit line until a number of steps equal to the size of the word, at which point new data needs to be loaded into the reconfigurable functional unit  89 . The modified input multiplexer  97  implements a shift plus the introduction of a new bit of data from the reconfigurable functional unit to produce the combined value.  
         [0033]    It will be appreciated by those of ordinary skill in the art that the invention can be implemented in other specific forms without departing from the spirit or character thereof. The presently disclosed embodiments are therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is illustrated by the appended claims rather than the foregoing description, and all changes that come within the meaning and range of equivalents thereof are intended to be embraced herein.