Signal processing apparatus with stages in a signal path operating as LFSR of alternable type and method for processing signals6097889Abstract According to the present invention, an LFSR (300) has a propagation path (30) of serially coupled stages (65) and gates (80-3, 80-4), a feedforward path (10) of gates (80-1) and a feedback path (20) of gates (80-2). Depending on control signals (P, B, M), the gates (80-1, 80-2, 80-3, 80-4) are either active gates and operate as xor-gates or passive gates and operate as transfer gates. Feedforward and feedback signals are derived from input and output signals and can be supplied to any stage (65), so that characteristic polynomials of the input-output function are variable. The LFSR can fully or partly operate as a TYPE 1 or TYPE 2 LFSR which enables the execution of different algorithms on one hardware base. Claims We claim: Description FIELD OF THE INVENTION
TABLE 1
______________________________________
Operation of gate 80
1 2 3 4 5
control signals
data signals
M P F S Y
______________________________________
1 "1" "1" "0" "0" "0"
2 "1" "1" "0" "1" "1"
3 "1" "1" "1" "0" "1"
4 "1" "1" "1" "1" "0"
5 0 any "1" any "1"
6 "0" "0"
7 any 0 "1" any "1"
8 "0" "0"
______________________________________
In cell 40 (FIG. 4), control signal M1 at connection 433 is supplied to inputs 83-1 and 83-2 and M2 at connection 434 is supplied to inputs 83-3 and 83-4. Control signal PF.sub.i at connection 431 is supplied to inputs 84-1 and 84-3. Control signal PB.sub.i at connection 432 is supplied to inputs 84-2 and 84-4. In the propagation path, delay stage 65 receives A.sub.i at connection 30-i and provides A.sub.i * after a delay to connection 30*-i. Signal A.sub.i * is also expressed as A.sub.i /z, with the term "1/z" indicating a delay as known in connection with z-transformations. Gate 80-3 receives A.sub.i * at input 81-3 and R.sub.i+ at input 82-3 and provides A.sub.i **=f (M2, PF.sub.i, R.sub.i+, A.sub.i * ) at output 86-3 to connection 30**-i. Gate 80-4 receives A.sub.i ** at input 81-4 and L.sub.i at input 82-4 and provides A.sub.i+1 =f (M2, PB.sub.i, L.sub.i, A.sub.i **) at output 86-4 to connection 30-(i+1). In the feedforward path, gate 80-1 receives R.sub.i at input 81-1 from connection 10-i and A.sub.i * at input 82-1 and provides data signal R.sub.i+1 =f (M1, PF.sub.i, A.sub.i *, R.sub.i) at output 86-1 to connection 10-(i+1) according to equation (1). In the feedback path, gate 80-2 receives L.sub.i at input 81-2 from connection 20-i and A.sub.i * at input 82-2 and provides L.sub.i-1 =f (M1, PB.sub.i, A.sub.i *, L.sub.i) at output 86-2 to connection 20-(i-1) according to equation (1). First it is assumed that cell 40 receives M1="1" and M2="0". Thereby, gates 80-3 and 80-4 pass data signals without changing them so that A.sub.i+1 =A.sub.i *=A.sub.i **=A.sub.i (equation (5)). R.sub.i+1 and L.sub.i have no influence. For explanation, the connections going to inputs 82-3 and 82-4 can therefore be considered as being non-existing. For PF.sub.i ="1", gate 80-1 provides R.sub.i+1 =A.sub.i * xor R.sub.i (active gate, equation (4)). For PF.sub.i ="0", gate 80-1 provides R.sub.i+1 =R.sub.i (5). Depending on PB.sub.i, gate 80-2 provides L.sub.i-1 =A.sub.i * xor L.sub.i (4) or provides L.sub.i-1 =L.sub.i. With this configuration, cell 40 is suitable to operate in a TYPE 1 LFSR. Second it is assumed that cell 40 receives M1="0" and M2="1". Thereby, gates 80-1 and 80-2 pass data signals without changing them so that R.sub.i+1 =R.sub.i and L.sub.i-1 =L.sub.i (equation (5)). A.sub.i * has no influence to inputs 82-1 and 82-2 and connections going to that inputs can be neglected. For PF.sub.i ="1", gate 80-3 provides A.sub.i **=R.sub.i+1 xor A.sub.i * (active gate, equation (4)). For PF.sub.i ="0", gate 80-3 passes A.sub.i *:A.sub.i **=A.sub.i * (5). For PB.sub.i ="1", gate 80-4 provides A.sub.i =L.sub.i xor A.sub.i ** (4). For PB.sub.i ="0", gate 80-4 passes A.sub.i **A.sub.i+1 =A.sub.i ** (5). For PF.sub.i =PB.sub.i ="1", A.sub.i ** can be substituted and A.sub.i+1 calculated as A.sub.i+1 =L.sub.i xor (R.sub.i+1 xor A.sub.i *). Considering the linearity of the logical xor-operation, A.sub.i+1 can also be expressed as A.sub.i+1 =A.sub.i * xor (L.sub.i xor R.sub.i+1). In cells 40 as shown in the example of FIG. 4, a signal from the propagation path (i.e., A.sub.i * at connections 30*-i) is supplied to the forward path (connections 10) by a second inputs 82 of gate 80-1. The signal is supplied to the feedback path (connections 20) by second input 82 of gate 80-2. Inside the propagation path (connections 30), signals are transmitted through the first inputs 81-3 and 81-4. Inside the forward and feedback paths (connections 10, 20), signals are transmitted through the first inputs 81-1 and 81-2. For further explanations, control signals PF.sub.i, PB.sub.i, M1 and M2 are substituted according to definition (2) to control signals C.sub.1 =M1 and PF.sub.i for gate 80-1, C.sub.2 =M1 and PB.sub.i for gate 80-2, C.sub.3 =M2 and PF.sub.i for gate 80-3 and C.sub.4 =M2 and PB.sub.i for gate 80-4. Control signals C.sub.1 to C.sub.4 can be supplied to cells 40 instead of M and P.sub.i. The signals at the "i-connections" (input side) and at the "(i+1)/(i-1)-connections" (output side) of cell 40 are given in table 2. Equations (6) to (9) describe the logical relation between the connections of cell 40.
TABLE 2
______________________________________
Operation of cells 40
input side, index i
output side, index i+1 and i-1
signals
at signals at
______________________________________
propagation path
A.sub.i
30-i A.sub.i+1 =A.sub.i /z 30-(i+1)
xor (R.sub.i+1 and C.sub.3)
xor (L.sub.i and C.sub.4)
(6)
(6) for C.sub.1 ="0", C.sub.2 ="0":
A.sub.i+1 =A.sub.i /z
xor (R.sub.i and C.sub.3)
xor (L.sub.i and C.sub.4)
(7)
(6) for C.sub.3 ="0", C.sub.4 ="0":
A.sub.i+1 =A.sub.i /z
(8)
feedforward path
R.sub.i
10-i R.sub.i+1 = (A.sub.i /z and C.sub.1) xor
(9)ub.i
10-(i-1)
feedback path
L.sub.i
20-i L.sub.i-1 = (A.sub.i /z and C.sub.2) xor
(10)b.i
20-(i+1)
______________________________________
Equation (6) describes the signal propagation from at least a first cell 40-1 to a second cell 40-(i+1). Equation (6) can be implemented by, for example, logic arrangement 45 of FIG. 4 having (cf. FIG. 5) at least a first xor-gate (e.g., xor-gate 76 of gate 80-3) and a second xor-gate (e.g., xor-gate 76 of gate 80-4), a first and-gate (e.g., and-gate 75 of gate 80-3) and a second and-gate (e.g., and-gate 75 of gate 80-4). Equation (6) can be rewritten without departing from the scope of the present invention, as for example to: A.sub.i+1 =A.sub.i /z xor ((C.sub.4 and L.sub.i) xor (C.sub.3 and R.sub.i+1)) (11) An implementation example of (11) is illustrated in FIG. 8. Based on the description herein, a person of skill in the art can use Boolean algebra to implement equation (6) by other means and, eventually, with additional logic (e.g., nand, nor, or or-gates, inverters) or other components (such as e.g., multiplexers). The present invention is intended to include such alternatives. In the propagation connection, only two xor-gates (in connections 30-i, 30*-i, 30**-i, 30-(i+1)) are required between stage 65-i of cell 40-i and stage 65i+1 of the next cell 40-(i+1). As in equation (7), which is a simplification of (6) for TYPE-2-MODE operation, the propagation path (signal A.sub.i) can be modified from both the feedback path (e.g., signal L.sub.i) and from the forward path (e.g., signal R.sub.i). For TYPE-1-MODE operation, the propagation path is preferably, not modified (equation (8)). FIG. 6 shows simplified block diagrams of cells 40 configured for operating the LFSR 300 in the TYPE-1-MODE. Cells 40 are distinguished by their configurations #10, #11, #12 and #13. For convenience, connections 10, 20, and 30 (as in FIGS. 3-4) and stage 65 are given. Gates 80 operating according to equation (5) are symbolized as a conductors. Gates 80 operating according to equation (4) are shown by an xor-symbol ("+" in a circle). For example, and not intended to be limiting, table 3 gives possible states (e.g., "1", "0") for PF and PB and configurations for cell 40 which are determined by PF and PB. Also, the operation of gates 80-1 to 80-4 is given by the terms `xor` (equation (4)) and `equal` (equation (5), conductor). Control signal M is assumed to be at, e.g., logical "1".
TABLE 3
______________________________________
Cell-configurations for TYPE-1-MODE
configuration
#10 #11 #12 #13
______________________________________
PF "0" "1" "0" "1"
PB "0" "0" "1" "1"
gate 80-1 equal xor equal xor
gate 80-2 equal equal xor xor
gate 80-3 equal equal equal equal
gate 80-4 equal equal equal equal
______________________________________
In configuration #11, the forward path is modified and the feedback path is not modified. In configurations #12, the feedback path is modified and the forward path is not modified. In configuration #13 both forward and feedback paths are modified. In other words, active gates 80 located in the forward or feedback paths modify them, wherein passive gates 80 pass signals unchanged. FIG. 7 shows simplified block diagrams of cells 40 configured for operating LFSR 300 in the TYPE-2-MODE. Cells 40 are distinguished by their configurations #20, #21, #22 and #23. Gates 80 operating according to equation (5) are symbolized as a conductor and therefore not specially numbered. Gates 80 operating according to equation (4) are shown by an xor-symbol ("+" in a circle). For example, and not intended to be limiting, table 4 gives possible states (e.g., "1", "0") for PF and PB and configurations for cell 40 which are determined by PF and PB. Also, the operation of gates 80-1 to 80-4 is given by the terms `xor` (equation (4)) and `equal` (equation (5)). Control signal M is assumed to be at e.g., logical "0".
TABLE 4
______________________________________
Cell-configurations for TYPE-2-MODE
configuration
#20 #21 #22 #23
______________________________________
PF "0" "1" "0" "1"
PB "0" "0" "1" "1"
gate 80-1 equal equal equal equal
gate 80-2 equal equal equal equal
gate 80-3 equal xor equal xor
gate 80-4 equal equal xor xor
______________________________________
In configuration #21, the propagation path is modified by signals coming from the unmodified forward path. In configuration #22, the propagation path is modified by signals coming from the unmodified feedback path. In configuration #23, the propagation connection is modified from both forward and feedback paths. In other words, when gates 80 located in the propagation paths are active, then signals are modified, wherein passive gates 80 pass signals unchanged. The cell configurations of FIGS. 6-7 are not limited to four configurations in each mode. With a number of four gates 80 each being either active or passive, a number of 16 different configurations is possible. As it will be shown later, the gates in cell 40 can be arranged in a different way, so that more configurations can be added. The function of LFSR 300 is now explained by way of examples. LFSR 300 can behave as prior art TYPE 1 LFSR 100 of FIG. 1. In that case LFSR 300 has three cells 40-1, 40-2, and 40-3 (m=3) corresponding to stages 111, 112, and 113 of FIG. 1. Xor-gate 70 (FIG. 3) corresponds to xor-gate 115 of FIG. 1, and stage 65-n (FIG. 3 for n=4) corresponds to stage 114. Control signals M1 and M2 are at logical "1" and "0", respectively, to set the first mode (TYPE-1-MODE). Control signals PB are PB.sub.3 ="1", and PB.sub.1 =PB.sub.2 ="0". The other control signals PF.sub.1,2,3 are at logical "0". With this control signals, cells 40-1 and 40-2 are configured as cell 40#10. Cell 40-3 has configuration #12. Active gate 80-2 in cell 40-3 corresponds to xor-gate 116 in FIG. 1. The resulting LFSR 300 is therefore structural and functional similar to LFSR 100. Feedback signal T1 (cf. FIG. 1) from a modified feedback connection (cell 40-3) goes through unmodified feedback connections of cells 40-1 and 40-2 to xor-gate 70. Now, LFSR 300 can be switched to TYPE 2 LFSR 200 of FIG. 2. Four cells 40-1, 40-2, 40-3, and 40-4 (n=4) correspond to stages 221, 222, 223, 224 of FIG. 2. Xor-gate 70 (FIG. 3) corresponds to xor-gate 225 of FIG. 2. Control signals M1="0" and M2="1" set second mode TYPE-2-MODE. Control signals are PB.sub.1 ="1" and PB.sub.2,3,4 ="0"and PF.sub.1, 2,3,4 ="0". Cells 40-2, 40-3 and 40-4 have the configuration #20. Cell 40-1 has active gate 80-4 which results in configuration #22. The resulting LFSR 300 is structural and functional similar to LFSR 200. In general, gates 80-k of cells 40-i (i=1 to m) can be classified into a first set (index k=1), a second set (k=2), a third set (k=3 and k=4) of gates. When LSFR 300 operates in TYPE-1-MODE, the first set provides data propagation in the first direction (feeding forward) and the second set provides data propagation in the second direction (feedback). The stages of the third set propagate in the first direction. The stages of the first and second set can be activated simultaneously. This features allows, for example, to process data by polynom multiplication and polynom division at the same time. When LFSR 300 operates in the second mode, the stages of the first and second sets provide data propagation in the first and second directions only through inputs 81, but not through inputs 82. The stages of the third set propagate data in the first direction. LFSR 300 of the present invention can generally be described as a signal processing apparatus which has a first path (e.g., connections 30) for propagating a first path signal A (e.g., A.sub.i, A.sub.i+1) with signals A.sub.k1, A.sub.k2, A.sub.k3 (k1<k2<k3,. e.g., k1=1, k2=2, k3=3) in a first direction, a second path (e.g., connections 10) for propagating a second path signal R.sub.k (e.g., R.sub.i, R.sub.i+1) in the first direction and a third path (e.g., connections 20) for propagating a third path signal L.sub.k (e.g., L.sub.i, L.sub.i-1) in a second, opposite, direction. LFSR 300 at least comprises means (e.g., bus 50) for receiving first control signal C*.sub.1 (e.g., M1 and PF.sub.1), second control signal C*.sub.2 (e.g., M1 and PB.sub.3), third control signal C*.sub.3 (e.g., M2 and PF.sub.2) and fourth control signal C*.sub.4 (e.g., M2 and PB.sub.2). The first path has at least a first stage (e.g., stage 65 of cell 40- 1), a second stage (e.g., stage 65 of cell 40-2), and a third stage (e.g., stage 65 of cell 40-3). The first stage provides signal A.sub.k1 (e.g., A.sub.1 *) to the second stage. The second stage provides signal A.sub.k2 (e.g., A.sub.2 *) to the third stage, and the third stage provides signal A.sub.k3 (e.g., A.sub.3 *). A first logic arrangement (e.g., gates 80-3 and 80-4 of cell 40-2) modifies signal A.sub.k2 to A.sub.k2+1 =A.sub.k2 xor (R and C*.sub.3) xor (L and C*.sub.4) (cf. 7). The second path has at least a second logic arrangement (e.g., gate 80-1 of cell 40-1) which receives signal A.sub.k1 (e.g., an input signal at terminal 11) and modifies R.sub.k1 to R.sub.k1+1 =(A.sub.k1 and C*.sub.1) xor R.sub.k1 (cf. 9). The third path has at least a third logic arrangement (e.g., gate 80-2 of cell 40-3) which receives component A.sub.k3 and modifying L.sub.k to L.sub.k3-1 =(A.sub.k3 and C*.sub.2) xor L.sub.k3 (cf. 10). Depending on C*.sub.1, C*.sub.2 and on C*.sub.3, C*.sub.4, first, second and third stages and first, second, and third logic arrangements operate either in a first mode as a TYPE-1 LFSR and in a second mode as a type TYPE-2 LFSR, wherein in both modes the polynomial characteristics are determined by C*.sub.1, C*.sub.2 and by C*.sub.3, C*.sub.4. A method for signal processing in a serial arrangement of cells k0 =1 to m (e.g., cells 40-1 to 40-40) with at least a first cell k1 (e.g., 40-10), a second cell k2 (e.g., 40-20), and a third cell k3 (e.g., 40-30), with k2.gtoreq.k1+1, k3.gtoreq.k2+1, (e.g., k1=10, k2=20, k3=30) has the following steps: (i) providing a first control signal C*.sub.1 (e.g., C.sub.1 to cell 40-10), a second control signal C*.sub.2 (e.g., C.sub.2 to cell 40-30), a third control signal C*.sub.3 (e.g., C.sub.3 to 40-20) and fourth control signal C*.sub.4 (e.g., C.sub.4 to 40-30); (ii) propagating a first path signal A in a first path (e.g., connections 30) through the cells k1, k2 and k3 in a first direction; (iii) propagating a second path signal R in a second path (e.g., connections 10) through the cells k1 and k2 in the first direction; (iv) propagating a third path signal L in a third path (e.g., connections 20) through the cells k2 and k3 in a second, opposite direction. During propagation of path signals A, R, L
______________________________________
cell k1 receives A.sub.k1
provides A.sub.k1+1
components R.sub.k1
components
R.sub.k1+1
k2 A.sub.k2 A.sub.k2+1
R.sub.k2 R.sub.k2+2
L.sub.k2 L.sub.k2-1
k3 A.sub.k3 L.sub.k3-1
L.sub.k3
______________________________________
When R is propagated, cell k1 modifies R.sub.k1 to R.sub.k1+1 =(A.sub.k1 /z and C*.sub.1) xor R.sub.k1 (equation (9) with i=k1). R.sub.k1 is further propagated to R.sub.k2 (e.g., through cell 40-11 to 40-19). When A is propagated, cell k2 modifies A.sub.k2 to A.sub.k2+1 =A.sub.k2 /z xor (R.sub.k2 +1 and C*.sub.3) xor (L.sub.k2 and C*.sub.4) (equation (6) with i=k2). A.sub.k2+1 is further propagated to A.sub.k3 by e.g., cells 40-21 to 40-29. When L is propagated, cell k3 modifies L.sub.k3 to L.sub.k3-1 =(A.sub.k3 /z and C*.sub.2) xor L.sub.k3 (equation (10). L.sub.k3-1 is further propagated to L.sub.k2 by e.g., cells 40-29 to 40-21. Output signals can selectively derived from any of the cells. Path signals R and L can be propagated substantially simultaneously. For control signals C*.sub.3 =C*.sub.4 ="0", a first sequence of an arrangement defined by cells k2 and k3 operates as a TYPE 2 LFSR. For control signals C*.sub.1 =C*.sub.2 ="0", the first sequence operates as a TYPE 1 LFSR. A first sequence of cells can thereby operate as a TYPE 1 LFSR and a second sequence can thereby operate as a TYPE 2 LFSR. It is possible to change any control signal during the propagation of path A, R and L. Thereby, the polynomial characteristics can be changed, for example, depending on an output signal. For example, (a) during propagating path signals A and R, an input signal sequence present at stage k1 is multiplied by a first characteristic polynomial function to an output signal sequence present at stage k3, and (b) during propagating path signals A and L, an input signal sequence present at stage k1 is divided by a second characteristic polynomial function to an output signal sequence present at stage k3. FIG. 8 shows a logic arrangement 45' (dashed frame) implemented according to equation (10) as it can also be used in cell 40. Analogies of inputs in FIGS. 8 and 4 are: 81-3' to 81-3 (connection 30*-i), 82-4' to 82-4 (connection 20-i), 82-3' to 82-3 (connection 10-i), 84-3 and 83-3 combined to 87', 84-4 and 83-4 combined to 87". Outputs 86-4 and 86-4' are corresponding. Preferably, logic arrangement 45' comprises xor-gate 76', xor-gate76", and-gate 75" and and-gate 75". And-gate 75' with inputs 87' and 82-3' has output 85' coupled to input 87' of xor-gate 76'. And-gate 75" with inputs 87" and 82-4' has output 85" coupled to input 87" of xor-gate 76'. Xor-gate 7 6' has output 89' coupled to input 88' of xor-gate 76". Also, xor-gate 76" has input 81-3' and output 86-4'. And-gate 75' receives R and C.sub.3 and provides (R and C.sub.3). And-gate 75" receives C.sub.4 and L and provides (L and C.sub.4). Xor-gate 76' receives (R and C.sub.3) and (L and C.sub.4) and provides ((R and C.sub.3) xor (L and C.sub.4)). Xor-gate 76" receives A* and ((R and C.sub.3) xor (L and C.sub.4)) and provides A**=A* xor ((C.sub.3 and R) xor (C.sub.4 and L)). A particular feature of the present invention is the it makes it possible to provide a LFSR having, at the same time, at least a first sequence operating in TYPE-1-MODE and a second sequence operating in TYPE-2-MODE. Also, the polynom degree can be programmed. For example, and not intended to be limiting, a LFSR can comprise cells 40-1, 40-2, 40-3 configured as 40#21, 40#22, 40#20 and 40#12, respectively (cf. FIGS. 6-7). In that example, cells 40-1 and 40-2 form the first sequence (TYPE 2) and cell 40-4 forms the second sequence (TYPE 1). Although LFSR 300 of FIG. 3 receives a data signal at an input terminal (e.g., terminals 31, 11), the present invention is not limited to such LFSRs. The apparatus and method of the present invention are also applicable for other applications without input, such as for random sequence generators, known by persons of skill in the art. While the extraction of an output signal has been illustrated at connection 30-n, persons of skill in the art will understand based on the description herein, that an output signal can be obtained at any connection 30-i, 10-i, or 20-i or combination thereof. Processed data can also be obtained from two or more connections 30-i, 10-i or 20-i. Further, persons of skill in the art are able to include inverters or use inverse or other logical states without departing from the scope of the present invention. The LFSR of the present invention can also be used to calculate data by input-output function having more than n polynomials. Polynomial vectors longer than m can be divided into smaller subvectors. The calculation can be stepwise, as for example by: supplying input data, using a first subvector to calculate an intermediate result, storing the intermediate result, supplying the intermediate result and using a second subvector to obtain a final result. LFSR 300 of the present invention is very useful, for example, in a digital signal processor (DSP). Once the polynom vector and the mode signal is obtained from e.g., a core of the DSP, LFSR 300 operates independently, thus saving core resources. Data signals can be fed forward and back simultaneously, what is needed e.g., in the algorithms for the GSM cellular phone standard. A person of skill in the art can simplify LFSR 300 according to the needs of the application to further reduce costs by leaving out idle elements. When some characteristic polynomials are not applicable, than some of the gates can be left out. The invented arrangement can also be used to operate a first cell sequence in the first mode (TYPE 1) and another cell sequence in the second mode (TYPE 2). The present invention has the further advantage by virtue of its programmability of reducing the total amount of logic gates (and therfore chip are) required to implement multiple algorithm.
|
Same subclass Same class Consider this |
||||||||||
