Address generating circuit

Abstract: An address generating circuit (13) generates a reading address for reading a buffer memory (16) so that so-called P and Q codes for a CD-ROM which have parameters i and j can be decoded. The reading address is obtainable based on a formula RDA = H + 2L + p, where H is a starting address of one block not includ­ ing synchronous signal or pattern, L is a symbolic location of a symbol, and p is a sign for designating that the symbol is included in an LSB byte plane or an MSB byte plane. A first full adder (25) operates the symbolic location L based on the parameters i and j with various constants being given from a constant gen­ erator (23) so as to give the symbolic location L to a second full adder (21). The starting address H is given from a writing address pointer (12a). The second full adder makes an operation for adding H, 2L and p to out­ put the reading address to an address bus. In addition, the symbolic location L is latched in a symbol off-set address (26) and, if necessary, fed-back to the first full adder through multiplexers (24, 27) when the next symbolic location is to be operated.

Description: The present invention relates to a hardware-designed logical circuit for generating an address to detect or correct data error. In, for example, a CD-ROM system or CD-I system, parity symbols for error correcting (redundant data) which are named as P parity and Q parity are added to digital data. By constructing error correcting codes composed of distributed data, it is possible to distribute errors which tend to be uneven so as to effectively give play an ability for error correction. In decoding P and Q codes composed of such data and parity symbols, it is required to generate addresses in a complex manner. EP-A-191 410 discloses an addressing generation circuit which generates reading addresses for addressing a memory in which a plurality of error correcting code words composed of data and parity symbols for detecting or correcting error in the data are sequentially stored and read out. The known addressing circuit comprises two sections, a first section consisting of a ROM and a counter for generating the address data within a block, and a second section consisting of another ROM and a second counter for generating an offset whenever the block changes. This allows generating a limited number of addresses being generated in a predetermined sequence according to a given mathematical equation. However, the use of ROMs in LSI circuits is not acceptable for reasons outlined below. EP-A-136 882 discloses a data processing circuit for a digital audio system which is similar to that of EP-A-191 410 and also comprises a first circuit for generating a symbolic address and a second circuit for generating an absolute address by adding a reference address and said symbolic address. EP-A-202 571 discloses generating a sequence of addresses by hardware-designed calculating means without using ROMs by using multipliers, counters, flip-flops, and similar units making the circuitry rather complex. Alternatively, it is considerable to generate the address in software fashion by utilizing a microcomputer. However, in this approach, there is a problem due to a processing speed of the microcomputer in the case where the processing speed of the microcomputer is slow. In addition, a table look-up system is known, in which the address necessary for decoding the code which is stored in the memory is stored in a ROM in advance and the address for decoding is obtained by utilizing the ROM. Such a table look-up system has a simple structure and a high processing speed. However, since it is required to use the ROM, it is difficult to build in an LSI as a decoding circuit of the CD-ROM system, for example. Furthermore, in the case where the error correcting code is formed by adding the P parity of 86 bytes and the Q parity of 52 bytes to the data of 1032 bytes as shown in pages 73-80 of "Electronics" December, 1985, the address of the output data from the ROM for generating the address for decoding the P code and the address of the output data from the ROM for generating the address for decoding the Q code become 11 bits, respectively, and therefore, it is necessary to use at least two ROMs having a standard specification (see Fig. 17). It is the object of the present invention to provide an address generating circuit formed as a hardware, without using ROMs and having a high processing speed. This object is solved by a circuit comprising the features of the claim. In principle, an address generating circuit in accordance with the present invention is constructed by a logical circuit which operates in accordance with an arrangement of respective code words, and the address generating circuit generates addresses with respect to a memory in which the data are sequentially stored to decode the error correcting code which is composed of the data and the parity symbols. As described in the following section of the preferred embodiment, an address for decoding an error correcting code can be generated by the logical circuit in accordance with present invention. In general, it takes much time to calculate the address in the system in which the address is calculated by the microcomputer in accordance with a software. By contrast, in accordance with the present invention, it is possible to calculate the address by means of a hardware, and therefore the processing speed becomes very high. Accordingly, in accordance with the present invention, a real-time correction can be made in an error correcting code decoder of the CD-ROM or CD-I player. Such a real-time correction is a function capable of outputting the data which has been processed for error correction from the error correction decoder at the same transferring rate as the data is transferred from the CD signal processing portion (Fig. 12). More specifically, in the system in which the microcomputer calculates the address, since the processing speed is not fast, it is unavoidable to stagnate the data transfer once the error correction is started. In addition, in the error correction by the microcomputer in accordance with the software, it is necessary to construct the software all over again if the kind of the microcomputer is changed in the case where the software is developed by the assembler or machine language. This means that it is necessary to develop the software for each kind of the microcomputer. By contrast, in the case where such an address generation is implemented by the hardware as in accordance with the present invention, the above described disadvantage can be eliminated. Furthermore, in the case where the address generation is implemented by the table look-up system utilizing the ROM, it is necessary to use the ROM having a capacity of 11-bit input and 11-bit output. If a ROM having such a capacity is constructed by a general-purpose ROM, at least two ROMS are required in such a circuitry. In addition, in the case where blocks are continuously written into a buffer RAM as shown in Fig. 13, a full adder and etc. are required other than the ROM. Therefore, a physical amount of the hardware becomes large in such a system. Therefore, even if the circuitry including the ROM and the full adder and etc. can be made as an IC, the area of such a chip becomes relatively large. Furthermore, the processing speed of the ROM is generally slow in comparison with the logical circuit in accordance with the present invention. For these reasons, the present invention is more effective than the prior art even if the circuitry will be constructed by the IC. Therefore, in accordance with the present invention, the processing speed becomes more fast than the prior art system, and the circuitry scale becomes small so that it is easy to construct as the IC. In addition, the present invention is effective especially in the case where the error correction should be processed in real time. The above described objects and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Figs. 1-16 are illustrative views showing one embodiment of the present invention, wherein Fig. 1 is a view showing an address generating circuit; Figs. 2 and 3 are views showing a circuit portion concerning with address generation for a P code; Figs. 4 - 9 are views showing a circuit portion concerning with address generation for a Q code; Fig. 10 is a timing chart of address generation for the P code; Fig. 11 is a timing chart of address generation for the Q code; Fig. 12 is a block diagram schematically showing a CD-ROM system to which the present invention is applicable; Fig. 13 is a view showing a buffer RAM; Figs. 14 and 15 are views showing an arrangement of code words; and Fig. 16 is a view showing a decoding process for the code words. Fig. 17 is an illustrative view showing a conventional address generation system utilizing a ROM. DETAIL DESCRIPTION OF THE PREFERRED EMBODIMENT Fig. 12 is a block diagram schematically showing a CD-ROM reproduction system. A signal reproduced from a CD-ROM disk D is, first, subjected to a signal process in a CD signal processing portion 1 based on a format of a compact disk. Thereafter, the signal is transferred to a signal processing portion 10 in which a signal process is made based on a format of a CD-ROM. The signal processing portion 10 includes a synchronous signal detecting/descrambling circuit 11, a RAM writing circuit 12, an address generating circuit 13 for generating an address for error correction code, an error correction data processing circuit 14, a data transferring portion 15 for transferring the data to a host computer, and a buffer RAM 16. In the synchronous signal detecting/descrambling circuit 11, the synchronous signal is detected for each an assembly of the data based on the format of the CD-ROM, which is named as a block or sector, and a bit scramble made in recording is restored (descrambled). The data including the P and Q parity symbols is sequentially written into the buffer RAM 16 by the writing circuit 12. Thereafter, such data is read from the buffer RAM 16 in the order that the P code and the Q code can be decoded in accordance with the address generation circuit 13, whereby error correction is made in the error correction data processing circuit 14. After such a process, the data is transferred via the data transferring portion 15 to the host computer in which the process is made in accordance with the data. The point of the present invention exists in the above described address generation circuit 13 a configuration of which is shown in Fig. 1. In order to aid to understand the present invention, first, a brief description is made on the data format of the CD-ROM. A configuration of one block (2352 bytes) in the CD-ROM system is comprised of a synchronous signal of 12 bytes, a header of 4 bytes, a user data of 2048 bytes, an error detecting symbols (EDC) of 4 bytes which is added to the synchronous signal, the header and the user data, respectively, a space of 8 bytes, P parity symbols (ECC) of 172 bytes, and Q parity symbols (ECC) of 104 bytes. The P parity symbols and the Q parity symbols are added to a total of 2064 bytes including the user data (2048 bytes), the error detecting symbols (4 bytes) and the space (8 bytes). The RAM writing circuit 12 includes a writing address pointer (WRPT) 12a as shown in Fig. 1, and the data of one block is sequentially written into the buffer RAM 16 in accordance with the writing address "WRA" being outputted from the pointer 12a. Such a situation is shown in Fig. 13. The data of one block is written into the buffer RAM 16 in the order that the data is arrived, that is, in the sequence from an LSB byte to an MSB byte starting the synchronous signal. Now, it is assumed that an upper order address of a starting address of a N-th block is "n", in this case, the data of the N-th block (2352 bytes) is written in an area where the upper order address is "n" through "n+2350". The data written into the buffer RAM 16 is sectioned in the lower order bytes and the upper order bytes which respectively form the LSB byte plane and the MSB byte plane. In the buffer RAM 16 the upper order address of which is "n" through "n+10", the synchronous signal of 12 bytes is written, and the header, the user data, ..., the P parity symbols, and Q parity symbols which constitute the P code and the Q code are sequentially written into the buffer RAM 16 having the upper order address of more than "n+12" . Now, a description will be made on configurations of the P code and the Q code. The P code and the Q code are respectively constructed with respect to the LSB byte plane and the MSB byte plane except for the synchronous signal. The respective byte planes include the P code which includes the data of 1032 bytes (2064/2) and the P parity symbols of 86 bytes (172/2) being added to the data, and the Q code which includes the data of 1032 bytes and the Q parity symbols of 52 bytes (104/2) being added to the data, the data being constructed by the header, the user data, the EDC and the space. Such a configuration is shown in Fig. 14. The data of 1032 bytes constructing the respective planes is arranged in a manner as shown in Fig. 14. More specifically, the data of 1032 bytes is arranged in 24 lines by 43 columns, and two P parity symbols are added to the respective columns, that is, 24 data, whereby one P code word is formed. Accordingly, 86 P parity symbols are added to 43 columns in total. Thus, as shown in Fig. 14, one P code word is formed for each column. In Fig. 14, the numeral of four digits shows a symbolic location (L) in the plane, that is, the position in the arrangement of Fig. 14. The symbolic location (L) of the j-th symbol of the i-th P code word becomes as follows: L = I + 43j where, i = 0, 1, ---, 42, and j = 0, 1, ---, 25. For example, the symbolic location (L) of the 23rd symbol of the 1st P code word is obtainable in accordance with the formula (1) as follows: L = 1 + 43 x 23 = 990 On the other hand, 42 data including the P parity symbol are obliquely gathered in Fig. 14, and the Q code word is constructed by the gathered 42 data and two Q parity symbols being added to the gathered data. Meanwhile, if reached the 25th column, it is jumped to the first (0-th) column again. The state where the Q code word having such a configuration are re-arranged is shown in Fig. 15. In Fig. 15, the numeral of four digits indicates the symbolic location (L) in the plane in the arrangement as shown in Fig. 14. Then, the symbolic location (L) of the j-th symbol of the i-th Q code word can be evaluated as follows: L = (43i + 44j)mod 1118 where, i = 0, 1, ---, 25, and j= 0, 1, ---, 42. L = 1118 + i + 26(j - 43) where, i = 0, 1, ---, 25, and j = 43 and 44. Meanwhile, the above described formula (2) indicates the surplus of (43i + 44j)/1118. For example, the symbolic location (L) of the 2nd symbol of the 1st Q code word is obtainable in accordance with the formula (2) as follows: L = (43 x 1 + 44 x 2)mod 1118 = 131 The symbolic location (L) of the 42nd symbol of the 0-th Q code word is obtainable in accordance with the formula (2) as follows: L = (43 x 0 + 44 x 42)mod 1118 = 730 The symbolic location (L) of the 44th symbol of the 25-th Q code word is obtainable in accordance with formula (3) as follows: L = 1118 + 25 + 26(44 - 43) = 1169 A relationship between the respective symbolic locations (L) of the above described P or Q code word and the address A (see Fig. 3) in accordance of which the data is written into the buffer RAM 16 can be represented as follows: A = H + 2L + p where, H is a starting address of the data of one block not including the synchronous signal ("n + 12" in the example of Fig. 13), and p indicates the LSB byte plane as "0" and the MSB byte plane as "1". For example, the data of the symbolic location L = 0001 as shown in Fig. 14 is stored in the address A (see Fig. 13) in accordance with the formula (4), if p = 0, as follows: A = (n + 12) + 2 x 1 + 0 = n + 14 Then, when the P and Q codes having the above described configuration are decoded, the symbols constructing the respective codes are read from the buffer RAM 16 by addressing the buffer RAM 16 in accordance with the above described formula (4), and decoded. In the present invention, addressing corresponding to the respective codes can be made by means of the logical circuit as shown in Fig. 1. The process for error correcting with respect to the LSB byte plane and the MSB byte plane, that is, the process for decoding the P and Q codes will be made as shown in Fig. 16. In Fig. 16, the loops will be executed in the order from the inside to the outside. In this example, the Q code is decoded after decoding of the P code, however such a process may be reversed. In addition, since the process for error correcting to the lower order (LSB) byte plane and the process for error correcting to the upper order (MSB) byte plane can be executed independently from each other, any one of the processes may be executed prior to the other one. The specific decoding method of the P code and the Q code is not the substance of the present invention. The substance of the present invention resides in the point that the buffer RAM 16 is addressed in accordance with the order as shown in Fig. 16 so that the respective code words being written in the buffer RAM 16 can be sequentially read. In the following, with reference to Fig. 1, a description will be made on the circuit 13 for generating such an address. The previously described "H" which is the starting address of the block to be decoded not including the synchronous signal is outputted from a reading address pointer (RDPT) 20. The address "H" is obtainable from the writing address pointer 12a. More specifically, the address "H" of the block of one block before is read for each one block from the pointer 12a, and the block of one block before is decoded. In addition, the writing address "WRA" of the buffer RAM 16 or the reading address "RDA" for reading the buffer RAM 16 being outputted from the full adder (FA2) 21 is selectively outputted to the address bus in accordance with the timing signal. The signal "p" being inputted to the full adder 21 is a LSB/MSB plane selecting signal, and the same will be "0" or "1". The signal "L" showing the symbolic location of the code word is also inputted to the full adder 21, whereby the aforementioned address signal "H + 2L + p" (see the formula (4)) is outputted from the full adder 21. Next, a description will be sequentially made on the production of the signal "L" in decoding the respective code words. In addition, in the following, P(i, j, p) means the j-th symbol of the i-th P code word in the P plane. Q(i, j, p) is indicated in the same way. (1) Decoding the P code A code word counter (CWC) 22 counts and holds "i" out of the parameters of the P code P(i, j, p). A constant generator (CONST GEN) 23 generates various constants in synchronous with various timing signals. Such a circuit may be implemented by a PLA (programmable logic array). (1-1) In the case of P(i, 0, p) (see Fig. 2) The constant generator (CONST GEN) 23 outputs "0", and "i" is outputted from the multiplexer (MUX1) 24, whereby "i" is outputted from the full adder (FA1) 25. Therefore, L = i is outputted from FA1 25 so that the address RDA = H + 2L + p = H + 2i + p can be outputted from the full adder (FA2) 21. "i" is latched in a symbol off-set address (SOA) 26 for generating the address thereafter. (1-2) In the case of P(i, j, p), j ≠ 0 (see Fig. 3) The operation of this case is executed continuously after the operation of the case (1-1). In order to generate the address for P(i, j, p), the value of "L" which is held in the SOA 26 in generating the symbol of one symbol before is utilized. On the assumption that "L" is "L j " when P(i, j, p) and "L" is "L j-1 " when the symbol P(i, j-1, p) of one symbol before, the constant generator (CONST GEN) 23 generates the constant "43" to the FA1 25 in response to the in putted timing signal so that L j = L j-1 + 43 is obtainable. By calculating the recurrence formula, L j = i + 43j is obtainable, and therefore the address "RDA" becomes H + 2L + p = H + 2(i + 43j) + p. In Fig. 3, "L j-1 " of one symbol before is returned to the multiplexer (MUX1) 1 via the multiplexer (MUX2) 27 from the SOA 26 and inputted to the FA1 25. Fig. 10 is a view showing the timing for generating the address for the above described P code. For example, "L" of P(0, 25, 0) is 0 + 43 x 25 = 1075, and therefore "RDA" becomes H + 2(i + 1075) + p = H + 2150. Thus, the address "RDA" is generated by the logical circuit as shown in Fig. 1 so that each of the i-th (i = 0, 1, ---, 42) P code word is sequentially read from the buffer RAM 16 from the first symbol to the 25th symbol. (2) Decoding the Q code (2-1) In the case of Q(0, 0, p) (see Fig. 4) The code word counter (CWC) 22 is "0" and the value is loaded in a symbol counter (BYC) 28. The symbol counter (BYC) 28 operates as a 26-nary counter in cooperation with "25" detector (WRAP DET) 29, and generates a wrap signal (WRAP). More specifically, as is understood from the producing method for the Q code word as shown in Fig. 14, the position of the 25-th symbol of the 0-th Q code word is in the bottom line in the arrangement shown in Fig. 14, and the 26-th symbol will be jumped to the uppermost line in the same arrangement. The wrap signal is a signal indicating the timing for such a jump, and will be described later in detail. The constant generator (CONST GEN) 23 and the multiplexer (MUX1) 24 output "0", thereby the output of the full adder (FA1) 25, that is, the symbolic location "L" becomes "0". Therefore, the address "RDA" becomes H + 2L + p = H + 2 x 0 + p = H + p. In addition, L = 0 is taken into the symbol offset address (SOA) 26 and a word heading symbol pointer (WHP) 30. The value is utilized in the Q code Q(i, j, p)(i ≠ 0, j ≠ 0) thereafter. (2-2) In the case of Q(i, 0, p)(i ≠ 0) (see Fig. 5) The address for the first symbol of the Q symbol in which i is not "0" is different from that of the Q code word Q(0, 0, p) in which i is "0", and is generated in the following manner. The code word counter (CWC) 22 counts "i", and the value "i" is loaded into the symbol counter (BYC) 28. The constant generator (CONST GEN) 23 generates "43", and the symbolic location "L i, 0 " is generated by utilizing the symbolic location "L i-1, 0 " of one symbol before. More specifically, the symbolic location "L i-1, 0 " is generated in generating the address for the 0-th symbol Q(i-1, 0, p) of one symbol before, and the symbolic location "L i-1, 0 " is held in the word heading symbol pointer (WHP) 30. The value "L i-1, 0 " is inputted to the full adder (FA1) 25 through the multiplexers (MUX2 and MUX1) 27 and 24. Therefore, Li, 0 = L i-1, 0 + 43 is outputted from the full adder (FA1) 25. As shown in the case of (2-1), since L 0, 0 = 0, L i, 0 = 43i is obtainable by calculating the recurrence formula. Therefore, the address "RDA" which is outputted from the full adder (FA2) 21 becomes RDA = H + 2L + p = H + 2 x 43i + p = H + 86i + p. The value of the newly calculated L i, 0 is held the word heading symbol pointer (WHP) 30 and utilized in evaluating "L i+1, 0 " of the next code word Q (i+1, 0, p). It is shown in the 0-th column (the leftmost column) of Fig. 15 that the symbolic location "L i, 0 " of the 0-th symbol of Q(i, 0, p) becomes 43i. (2-3) In the case of Q(i, j, p)(i ≠ 0, j ≠ 0, J≦42) but except for the next symbol when the BYC counts "25" (see Fig. 6) The operation of this case will be executed continuously after the above described operation of the case (2-1) or the case (2-2). The symbol counter (BYC) 28 is incremented one by one from the initial value which is the value i set for Q(i, 0, p) in accordance with that j is increased one by one, and the value thereof becomes "i+j" when the j-th symbol, that is, Q(i, j, p). If the value "i + j" exceeds "25", that is, when the uppermost line is designated after reaching the lowermost line in Fig. 14, the value of the BYC 28 is "0" when Q(i, j +1, p) since the BYC 28 is formed as the 26-nary counter. This will be described in the next paragraph (2-4). Therefore, the value of the BYC 28 becomes (i+j)mod 26 (≠ 0). In this operation mode, the constant generator (CONST GEN) 23 generates "44", and the symbolic location "L i, j " is generated by utilizing the symbolic location "L i, j-1 " of one symbol before. More specifically, the symbolic location L i, j-1 is generated in generating the address for the symbol Q(i, j-1, p) of one symbol before, and held in the symbol offset address (SOA) 26. The value is inputted to the full adder (FA1) 25 through the multiplexer as (MUX2 and MUX 1) 27 and 24. Therefore, L i, j = L i, j-1 + 44 is outputted from the FA1 25. As apparent from the description for the case (2-2), L i,0 = 43i, and therefore, L i, j = 43i + 44j is obtainable. However, due to the symbol jump described later in the case of (2-4), the symbolic location is obtained as L i, j = (43i + 44j)mod 1118. Accordingly, the address "RDA" to be calculated becomes RDA = H + 2L + p = H + 2[(43i + 44j)mod 1118] + p. For example, the symbolic location L0, 2 of the 2nd symbol of the 0-th Q code word is obtainable as follows: L 0, 2 = (43 x 0 + 44 x 2) = 88 and, the symbolic location L 1, 1 of the first symbol of the 1st Q code word is obtainable as follows: L 1, 1 = (43 x 1 + 44 x 1) = 87 (see Fig. 14) (2-4) In the case of Q(i, j, p)(i ≠ 0, j ≠ 0, j ≦ 42, and the next symbol after the BYC counts 25 (see Fig. 7) The operation for the next symbol Q(i, j, p) when the BYC 28 counts "25" is different from that of the afore-mentioned case (2-3) and in this case, the address is generated in the following manner. When the BYC 28 counts "25", the wrap signal (WRAP) is generated by the "25" detector 29, and the BYC 28 becomes "0" at the timing of the next symbol rather than "26" (synchronous clear). In the case where the wrap signal (WRAP) is generated, in order to the symbolic location of the Q code word, "1074" should be subtracted from the symbolic location of one symbol before rather than that "44" is added to the symbolic location of one symbol before as described in the previous case (2-3). For example, in Fig. 14, the 0-th Q code word starts at the symbolic location (0000) of 0-th line and the 0-th column and goes to (0044), (0088), --- so as to go down for each one line, and reaches the lowermost line, that is, the 25-th line at the 25-th symbol (BYC = 25), and thereafter returns to the 0-th line at the next 26-th symbol, whereby the symbolic location L is obtainable as L = 43 x 0 + 44 x (26 - 1) - 1074 = 0026 at that time, in the next, becomes the symbolic location of (0070 = 0026 + 44) of the 1st line and the 27-th column, further goes down again one by one for each line, whereby the symbolic location will be changed as (0114 = 0070 + 44), ---. Thus, in Fig. 14, when the symbol is jumped from the 25-th line to the 0-th line, the above described wrap signal is generated. In this time, the constant generator (CONST GEN) 23 generates "-1074" rather than "44". Accordingly, the symbolic location L i, j becomes L i, j = L i, j-1 - 1074. Since -1074 = 44 - 1118, resultingly, the symbolic location L i, j = 43i + 44(j-1) - 1074 = 43i + 44j - 1118 = (43i + 44j)mod 1118. Therefore, the address "RDA" which is outputted from the full adder (FA2) 21 becomes RDA = H + 2L + p = H + 2[(43i + 44j)mod 1118] + p. (2-5) In the case of Q(i, 43, p)(see Fig. 8) As is easily understood from Fig. 14 or Fig. 15, the symbolic location in this case becomes L i, 43 = i + 1118. The logical circuit of this case is shown in Fig. 8. (2-6) In the case of Q(i, 44, p)(see Fig. 9) As is easily understood from Fig. 14 or Fig. 15, the symbolic location in this case becomes L i, 44 = i + 1144. The logical circuit of this case is shown in Fig. 9. The timing when the address for the above described Q code word is generated is shown in Fig. 11.

Claims: A logical circuit (13) which generates reading addresses (RDA) for addressing a memory in which a plurality of data symbols and parity symbols for detecting or correcting errors in the data are sequentially stored, different kinds of code words (P, Q) each consisting of predetermined ones of said data and parity symbols are sequentially read from said memory, the symbols being read in the order corresponding to the order for decoding, said code words being constructed by the data symbols in a predetermined arrangement and by parity symbols which are added to the data symbols based on said predetermined arrangement, the circuit comprising a first operation circuit (23, 24, 25) for generating a symbolic location (L) of each symbol of each code word in said predetermined arrangement based on the order number j of the symbol in said code word and the order number i of said code word, a second operation circuit (21) for generating an address of each symbol with respect to said memory based on at least said symbolic location (L) being outputted from said first operation circuit and a starting address (H), characterized by the first operation circuit including an adder circuit (25), a constant generation circuit (23) for controllably generating predetermined constants and feed-back loops (26, 30, 27, 24) which enables to use the symbolic locations being presently outputted for operating a symbolic location of the next symbol; and the feed-back loops and the constant generation circuit being controlled dependent on the kind of code words being formed and the current incrementation of i or j.

Inventors: TOMISAWA SHIN ICHIRO, TOMISAWA, SHIN'ICHIRO
Applicants: SANYO ELECTRIC CO, SANYO ELECTRIC CO., LTD.
Application year: 1988
Main classification: G11B20
IPC codes: G11B27, H03M13, G11B20