Address generator for EFM decoder employing scrambling counters
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an address generator in the demodulator of an optical disk system and, more particularly, to an address generator of the memory necessary for detecting and correcting an error in the signal which is recovered from a recording medium and which is eight-to-fourteen modulation (EFM) demodulated, for converting an error corrected digital signal into an analog signal. 
     Korean Patent Application No. 93-6740 is incorporated herein by reference for all purposes. 
     2. Discussion of Related Art 
     As shown in FIG. 1, a demodulator for a conventional optical disk system or compact disc player (a CDP) includes a disk motor 12 for rotating a disk 10, a disk servo 14 for controlling the rotation speed of the disk motor 12, a microcomputer 16 for controlling the disk servo and the overall demodulator, a display 18 for displaying information of the microcomputer 16, a switch 20 for operating the microcomputer 16, an optical pick-up 22 for reading information recorded onto the disk 10, a demodulator 24 for EFM demodulating the output signal of the optical pick-up 22, thus restoring the demodulated signal into original data symbols and then supplying the restored signal to the disk servo 14 and the microcomputer 16, a RAM 30 for storing the output signal of the demodulator 24, an error correction coder (ECC) 28 for reading the EFM demodulated signal stored in the RAM 30, performing error detection and correction and again storing the corrected data in RAM 30, a digital-to-analog (D/A) convertor 34 for reading the EFM demodulated signal which is stored in RAM 30, whose error has been corrected, and then converting it into an analog signal, an address generator 32 for generating a recording address of the EFM demodulated signal, a reading address of the EFM demodulated signal for error detection and correction, a recording address for storing the result of the error correction, and a reading address for converting the error-corrected EFM demodulated signal into analog form, and a low-pass filter 36 for eliminating the noise of the output signal of the D/A convertor 34 and outputting the signal as two channels L and R. 
     FIG. 2 is a systematic diagram of the encoder implementing a circular interleave Reed-Solomon code (CIRC) method used in the modulator of a conventional CDP, wherein the modulated data consists of two sets of six samples each, e.g., L and R channels, making twelve samples of an audio signal expressed as sixteen bits forming a sampling unit. Each of the sixteen bits of data is divided into upper and lower eight bits. Each of these eight bits of data is treated as one symbol (or word), e.g., twelve samples form 24 symbols. 
     A cross-over time delay 40 delays the data of the even samplings from the leading symbol of the 24 symbols by two symbols, crosses the 24 symbols and arranges the data symbols so that it is separated by a predetermined interval. The thus-crossed 24 data symbols are supplied to a C2 encoder 42, which forms a first error correction code C2 from the 24 data symbols where C2 denotes a Reed-Solomon code whose redundancy is four (where n equals 28 and k equals 24, and the minimum distance is five). Here, the parity of code C2 is represented by Q. A first check symbol row, i.e., four symbols of Q parity, is located in the middle of the 24 data symbols. 
     An interleaver 44 differentially delays and interleaves 24 symbols with four data symbols of Q parity, each by a different amount, thus creating 28 symbols in total. The differential delay operation is performed starting from the second symbol, i.e., excludes the first symbol, which results in the sequential delay amounts of 1D, 2D, 3D . . . , and 27D. Here, the primary unit D corresponds to a predetermined delay amount of four symbols. 
     A C1 encoder 46 forms a second error correction code C1 from the 28 data symbols differentially delayed by interleaver 44. C1 denotes a Reed-Solomon code whose redundancy is four (where n equals 32 and k equals 28, and whose minimum distance is five). It will be noted that the parity of C1 is represented by P. A second check symbol row, i.e., four symbols of P parity, is arranged next to last symbol among the 28 symbols. 
     A scrambler 48 delays the odd numbered time data symbols among the 28 symbols and four data symbols of P parity by one symbol, and generates all 32 data symbols, to thereby complete an encoding operation. 
     FIG. 3 is a systematic diagram of the corresponding decoder for implementing the CIRC method used in ECC 28 (CIRC) shown in FIG. 1. With respect to the 32 data symbols encoded by the CIRC method encoder shown in FIG. 2, the data symbols are processed in the reverse of the encoding order and, at the same time, the error detected by P and Q parities is corrected to thereby restore the original data symbols. 
     Referring to FIG. 3, 32 data symbols expressed in terms of W, P and Q, i.e., data rows, are recovered from the optical disk and demodulated. Here, the 24 data symbols expressed in terms of W, i.e., data symbol rows, represents audio data, and the data expressed in terms of P and Q, i.e., the first and second check symbol rows, contain parity data for detecting and correcting errors. The 32 data symbols are supplied to a descrambler 50, which delays the even numbered time data symbols from the leading data by one symbol in order to undo the scrambling of the scrambled 32 data symbols. 
     Since the magnitude of the groove formed on an optical disk in a CDP can be expressed as eight bits or less, an 8-bit signal processing unit is used, with the eight bits being treated as one symbol. Thus, the errors due to the groove of the optical disk exist largely as one symbol units. However, if there is a fault between symbols, an error of two symbols may be generated. Therefore, in order to scatter the occurrence of such a successive error, a delay of one symbol unit is performed, which is called scramble processing. At the time of reproduction, in order to undo the scrambling, a descramble processing is performed. It should be noted that the logic states of the four data symbols of Q and P parities are inverted by eight inverters. 
     A C1 decoder 52 detects burst errors in the residual 28 data symbols by way of four data symbols of P parity among the 32 data symbols and corrects some of the random errors at the same time. The error correction generates four syndromes by a parity check matrix, i.e., a Reed-Solomon code, each having the ability to correct only one symbol. If two or more symbol errors are generated, the data block is determined as having an uncorrectable error and the 28 symbols are transmitted to the next stage without being corrected. Here, pointers or flags (of at least one bit) are assigned to every symbol of all the data rows so as to indicate the presence or absence of an error. 
     A deinterleaver 54 differentially delays 28 data symbols transmitted from the C1 decoder 52 and thereby reverses the interleaving operation discussed above. In other words, since the errors generated during the reproduction of an optical disk are mostly due to scratches, dust or dirt, once an error is generated, several adjacent symbols are damaged at the same time. If many symbols are damaged within the same data block, error detection or correction becomes impossible. Therefore, at the time of recording, the symbols within one data block are separated and recorded in different data blocks. Then, at the time of reproduction, the separated symbols are restored to their original data block position, which is called deinter-leaving. 
     A C2 decoder 56 generates four syndromes from the Reed-Solomon code and input 28 symbols of data by using four data symbols of Q parity among the 28 data symbols restored into the original data block position after the interleaving is undone. Here, the 28 symbols are all delayed by the same delay time of 27D. It should be noted that C2 decoder 56 corrects a maximum of four symbol errors. 
     An inverse cross-over time delay 58 crosses over 24 data symbols supplied from the C2 decoder 56 with one another in order to restore them to the original data block position and delays two-symbols of undelayed data symbols by a two-symbol period in order to restore the symbol adjacent data with respect to a time axis, which were previously separated by a two-symbol delay process at the time of encoding, to the original position. Such a delay serves to prevent the output of uncorrectable error data continuously at the time of reproduction. 
     FIG. 4 is a block diagram of a conventional address generator 32 shown in FIG. 1, wherein an EFM counter 60 counts the counter pulse of the EFM data output from the microcomputer 16 and thereby generates a symbol address of the EFM demodulated signal. An EFM ROM 63 is a memory, which is addressed by EFM counter 60, for pre-storing the symbol address of the EFM demodulated signal. An ECC counter 61 counts the counter pulses of the C1 and C2 data and the C1 and C2 flags output from ECC 28 (of FIG. 1), and thereby generates symbol addresses for each of the C1 and C2 data and flags, respectively. ECC ROM1 64, ECC ROM2 65, ECC ROM3 66 and ECC ROM4 67 are memories, which are addressed by the ECC counter 61, for pre-storing each symbol address or flag address for the C1 and C2 data and flags, respectively. A D/A converter (DAC) counter 62 counts the counter pulses of the data output from the microcomputer 16 and thereby generates the symbol address or flag address of the output data. DAC ROM 68, which is a memory addressed by the D/A converter counter 62, pre-stores the symbol address or flag address of the output data. A multiplexer 69 selectively outputs one from among the symbol addresses of EFM ROM 63, ECC ROM1 64, ECC ROM2 65, ECC ROM3 66, ECC ROM4 67 and DAC ROM 68 to an adder 71, which also receives a frame address of one frame unit from base counter 70. Adder 71 adds the symbol address or flag address output from the multiplexer 69 and the frame address output from the base counter 70 and then supplies the result as a final address. RAM 72 stores a signal according to the final address output from the adder 71. 
     However, since the aforementioned conventional address generator calculates the memory address of each data symbol by using a large amount of ROM memory, e.g., by the look-up table method, chip size is increased. Thus, the overall reliability of the chips is reduced and the signal processing speed is also lowered. 
     SUMMARY OF THE INVENTION 
     Therefore, in order to solve the aforementioned problems, the principal object of the present invention is to provide an address generator for generating the address used in addressing a memory storing a demodulated signal by using a scrambling counter and a decoder instead of a ROM and a counter for addressing the ROM. 
     Another object of the present invention is to provide an address generator for generating the address for addressing a memory necessary for error detection and correction of a demodulated signal by using a scrambling counter and a decoder instead of a ROM and a counter for addressing the associated ROM. 
     Still another object of the present invention is to provide an address generator for generating the address for a memory used in converting a digital signal, whose error has already been detected and corrected, into an analog signal using a scrambling counter and a decoder instead of a ROM and a corresponding counter for addressing the ROM. 
     Yet another object of the present invention is to provide an address generator for generating the address for a memory storing demodulated signals, the address for a memory associated with error detection and correction of the demodulated signals, and the address for a memory associated with conversion of a digital signal, whose error has been detected and corrected, into an analog signal using a random counter and a decoder instead of a ROM and corresponding counter for addressing that ROM. 
     These and other objects, features, and advantages according to the present invention are provided by an address generator for generating addresses for addressing a memory necessary for dividing a plurality of data symbols and parity symbols, which belong to the same frame, after demodulation, in a predetermined manner, into respective symbols, and then for storing them within a predetermined area of the memory. The address generator advantageously includes: 
     a first counter for sequentially generating predetermined addresses respectively corresponding to the data symbols and parity symbols which belong to the same frame, while circulating by a predetermined period of one frame; 
     a second counter for generating frame addresses which differentiate the position of the respective symbols belonging to another frame within the memory, when the respective symbols or flags are read from the memory; and 
     an adder for adding the symbol address output from the first counter and the frame address output from the second counter and then providing the resultant sum to the memory. 
     These and other objects, features and advantages according to the present invention are provided by an address generator for generating addresses associated with the addressing of a memory necessary for error detection and correction using two series encoding words C1 and C2 which are stored in the memory, each in a predetermined order and each including a plurality of data symbols and parity symbols. The address generator preferably includes: 
     a first counter for synchronizing in a first predetermined order the symbol addresses respectively corresponding to the data symbols and parity symbols which belong to a first series encoding word C1 with the error detection and correction process of the first series encoding word C1 to thereby sequentially output synchronized symbol addresses; 
     a second counter for synchronizing in a second predetermined order the symbol addresses respectively corresponding to the plurality of data symbols and parity symbols which belong to a second series encoding word C2 with the error detection and correction process of the second series encoding word C2 to thereby sequentially output the synchronized symbol addresses; 
     a third counter for generating third addresses respectively corresponding to flags C1P for indicating whether the errors of respective symbols for the first series encoding word C1 are corrected; 
     a fourth counter for generating fourth addresses respectively corresponding to flags C2P for indicating whether the errors of the respective symbols for the second series encoding word C2 are corrected; 
     selective output means for selectively providing only one among the outputs from the first, second, third and fourth counters; 
     a fifth counter for generating frame addresses for differentiating the positions of the respective symbols or flags which belong to another frame within the memory, when the respective symbols or flags are recorded to or read from the memory; and 
     an adder for adding the addresses output from the selective output means and the frame addresses output from the fifth counter and then providing the resultant sum to the memory. 
     These and other objects, features and advantages according to the present invention are provided by an address generator for generating the addresses for addressing a memory necessary for converting the data symbols of digital signals, whose errors are first corrected and then stored in the memory in a predetermined order, into analog signals. Preferably, the address generator includes: 
     a first counter for sequentially providing the symbol addresses or flag addresses in a predetermined order respectively corresponding to the data symbols or flags with respect to the error correction of the respective data symbols; 
     a second counter for generating the frame addresses which differentiate the positions of the respective symbols or flags which belong to another frame within the memory, when the symbols or flags are read from the memory; and 
     an adder for adding the symbol addresses or flag addresses output from the first counter and the frame addresses output from the second counter and then providing the resultant sum to the memory. 
     These and other objects, features and advantages according to the present invention, are provided by an address generator including: 
     a first counter for sequentially generating predetermined addresses respectively corresponding to a plurality of data symbols and parity symbols which belong to the same frame while circulating in a period of one frame so that the plurality of data symbols and parity symbols which belong to one frame, demodulated within a predetermined area of the memory in a predetermined manner, are divided into the respective symbols and stored; 
     a plurality of second counters for generating addresses for addressing a memory necessary for recording or reading first flags corresponding to each symbol of an encoding word C1 and second flags corresponding to each symbol of an encoding word C2, with respect to the error correction of the data symbols, or generating the symbol addresses of the data symbols or parity symbols which belong to two series encoding words C1 and C2, in order to detect and correct the error, by using the two series encoding words C1 and C2, stored in the memory respectively in a predetermined order; 
     a third counter for sequentially providing in a predetermined order symbol addresses or flag addresses respectively corresponding to the data symbols and second flags corresponding to the respective symbols of the encoding word C2 with respect to the error correction of the respective data symbols, in order to convert the data symbols of digital signals, whose errors are corrected and then stored in the memory, into analog signals; 
     selective output means connected to each output terminal of the first counter, the second counters and the third counter, for selectively providing one out of all addresses respectively output from the first counter, the second counters and the third counter; 
     a fourth counter for generating frame addresses for differentiating positions of the respective symbols and flags which belong to another frame within the memory when the respective symbols or flags are recorded to or read from the memory; and 
     an adder for adding the symbol addresses or flag addresses output from the selective output means and the frame addresses output from the fourth counter and then providing a resultant sum to the memory. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above objects and advantages of the present invention will become more apparent by describing in detail a preferred embodiments thereof with reference to the attached drawings in which like elements are denoted throughout by like or similar numbers and in which: 
     FIG. 1 is a block diagram of the demodulator for a general CDP; 
     FIG. 2 is a systematic diagram of the encoder operating according to a CIRC method used in the modulator for a general CDP; 
     FIG. 3 is a systematic diagram of the decoder operating according to a CIRC method used in the ECC shown in FIG. 1; 
     FIG. 4 is a block diagram of the conventional address generator shown in FIG. 1; 
     FIGS. 5A and 5B show address mappings by the address generator according to the present invention for the exemplary case of a 32K static random access memory (SRAM); 
     FIG. 6 is a block diagram of the address generator according to the present invention which may be used in the CDP shown in FIG. 23; 
     FIG. 7 is a detailed block diagram of the ECC counter shown in FIG. 6; 
     FIG. 8 is a detailed block diagram of the base counter shown in FIG. 6; 
     FIG. 9 is a detailed circuit diagram of the EFM counter shown in FIG. 6; 
     FIGS. 10A and 10B are tables showing the relationship between the input and the output of the EFM counter shown in FIG. 9; 
     FIG. 11 is a detailed circuit diagram of the C1 decoder counter shown in FIG. 7; 
     FIG. 12 is a table showing the relationship between the input and the output of the C1 decoder counter shown in FIG. 11; 
     FIG. 13 is a detailed circuit diagram of the C2 decoder counter shown in FIG. 7; 
     FIG. 14 is a table showing the relationship between the input and the output of the C2 decoder counter shown in FIG. 13; 
     FIG. 15 is a detailed circuit diagram of the C1P decoder counter shown in FIG. 7; 
     FIG. 16 is a table showing the relationship between the input and the output of the C1P decoder counter shown in FIG. 15; 
     FIG. 17 is a detailed circuit diagram of the C2P decoder counter shown in FIG. 7; 
     FIG. 18 is a table showing the relationship between the input and the output of the C2P decoder counter shown in FIG. 17; 
     FIGS. 19A, 19B and 19C are detailed circuit diagrams of the DAC counter shown in FIG. 6; 
     FIGS. 20A and 20B are tables showing the relationship between the input and the output of the DAC counter shown collectively in FIGS. 19A, 19B and 19C; 
     FIG. 21 is a detailed circuit diagram of the reading base counter shown in FIG. 8; 
     FIG. 22 is a detailed circuit diagram of the recording base counter shown in FIG. 8; and 
     FIG. 23 is a high level block diagram of a CDP according to a preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The binary and decimal numbers in FIG. 5A respectively represent input and output states of the addresses corresponding to 32 data symbols outputs from the EFM counter 80, the addresses corresponding to 36 data symbols outputs from the DAC counter 84 as shown in FIG. 6, and the addresses corresponding to the input and output 32 symbols of the C1 decoder counter 100, the addresses corresponding to the input and output 28 symbols of the C2 decoder counter 102, the addresses corresponding to the input and output 28 symbols of the C1P decoder counter 104, and the addresses corresponding to the input and output 12 symbols of the C2P decoder counter 106, as shown in FIG. 7. 
     FIG. 5B shows the actual positions of the respective addresses in a 32K SRAM memory. Preferably, EF31 to EF0 are addresses corresponding to 32 data symbols output from the EFM counter 80, C1-31 to C1-0 are addresses corresponding to 32 data symbols output from the C1 decoder counter 100, C2-27 to C2-0 are addresses corresponding to 28 data symbols output from the C2 decoder counter 102, C1P27 to C1P0 are addresses corresponding to 28 data symbols output from the C1P decoder counter 104, C2P0 to C2P11 are addresses corresponding to 12 data symbols output from the C2P decoder counter 106, and DA0 to DA23 and DF0 to DF22 are addresses corresponding to 36 data symbols output from the DAC counter 84. 
     FIG. 6 is a block diagram of the address generator advantageously employed in the embodiment of the present invention shown in FIG. 23. 
     The address generator shown in FIG. 6 includes an EFM counter 80 to which the counter pulse of the EFM data output from the microcomputer 16&#39; is input, an ECC counter 82 to which the counter pulse of the C1 and C2 data and the C1 and C2 flags output from ECC 28 are input, a DAC counter 84 to which the counter pulse of the output data output from the microcomputer 16&#39; is input, a multiplexer 86 for selectively providing one out of all of the addresses respectively output from the EFM counter 80, ECC counter 82 and DAC counter 84, a base counter 88 for generating a frame address, an adder 90 to which the selected address output by multiplexer 86 and the address output from base counter 88 are input, and a memory 92, i.e., RAM 92, which is addressed according to the address output from the adder 90. It should be noted that EFM counter 80, ECC counter 82 and DAC counter 84 advantageously are scrambling counters. 
     The operation according to the above-described configuration will now be presented. First, the EFM counter 80 outputs predetermined addresses EF31 to EF0 respectively corresponding to a plurality of data symbols and parity symbols belonging to the same frame so that the data symbols and parity symbols demodulated in a predetermined manner and belonging to the same frame are divided into the respective symbols and thereby stored within a predetermined area of RAM 92. In other words, the EFM counter 80 sequentially outputs, in a predetermined order such as that shown in the memory map of FIG. 5B, the addresses generated by counting the EFM data counter pulse output from the microcomputer 16&#39;. 
     The ECC counter 82 generates the symbol addresses, C1-31 to C1-0 and C2-27 to C2-0, of the data symbols or parity symbols belonging to encoding words C1 and C2, for error detection and correction using the encoding words C1 and C2 including the data symbols and parity symbols stored in RAM 92 in a predetermined order. The ECC counter 82 advantageously generates the addresses C1P27 to C1P0 and C2P0 to C2Pll used in addressing a memory for recording or reading flags with respect to the error correction of data symbols. In other words, the ECC counter 82 generates the addresses generated by counting the counter pulses of the data C1 and C2 and flags C1 and C2 output from ECC 28 in a predetermined order, such as that shown in the memory map of FIG. 5B. Preferably, the flags include a first flag corresponding to each symbol of the encoding word C1 and a second flag corresponding to each symbol of the encoding word C2. 
     DAC counter 84 advantageously outputs symbol addresses DA0 to DA23 or flag addresses DF0 to DF22, respectively corresponding to the data symbols or second flags corresponding to associated symbols of the encoding word C2 with respect to the error correction of the respective data symbols, in order to convert the data symbols representing digital signals, whose errors are corrected and stored in RAM 92 in a predetermined order, into analog signals. In other words, the DAC counter 84 sequentially outputs addresses generated by counting the counter pulse of the output data generated by the microcomputer 16&#39; in a predetermined order such as that shown in the memory map of FIG. 5B, 
     Multiplexer 86 is preferably connected with each output terminal of the EFM counter 80, ECC counter 82 and DAC counter 84 and selectively outputs one of the three addresses generated by these devices. 
     Base counter 88 generates the frame address for differentiating positions of the respective symbols or flags belonging to another frame within the RAM 92, when the respective symbols or flags are recorded to or read from RAM 92. 
     The adder 90 adds the symbol address or flag address output from the multiplexer 86 and the frame address output from the base counter 88 and provides the result to the RAM 92 as a final address. RAM 92 stores the signal according to the final address output from the adder 90. 
     FIG. 7 is a detailed block diagram of the ECC counter 82 shown in FIG. 6, which includes a C1 decoder counter 100, a C2 decoder counter 102, a C1P decoder counter 104 and a C2P decoder counter 106 to which the counter pulses of C1 and C2 data and C1 and C2 flags, respectively output from the ECC 28 are input, and a multiplexer 108 for selecting only one out of all of the outputs of the C1 decoder counter 100, the C2 decoder counter 102, the C1P decoder counter 104 and the C2P decoder counter 106 and providing the selected output to adder 90 of FIG. 6. The operation according to the above configuration will next be described. 
     First, the C1 decoder counter 100 synchronizes the symbol addresses C1-31 to C1-0, respectively corresponding to a plurality of data symbols and parity symbols and belonging to the first series encoding word C1 in a predetermined order with the error detection and correction process of the first series encoding word C1, and thereby sequentially outputs them as shown in the memory map of FIG. 5B. 
     The C2 decoder counter 102 synchronizes symbol addresses C2-27 to C2-0, respectively corresponding to data symbols and parity symbols and belonging to the second series encoding word C2 in a predetermined order with the error detection and correction process of the second series encoding word C2, and thereby sequentially outputs them as shown in the memory map of FIG. 5B. 
     The C1P decoder counter 104 generates addresses C1P27 to C1P0 for addressing RAM 92 for the flags C1P for indicating whether the errors of the respective symbols of the first series encoding word C1 are corrected, and outputs them in the sequence shown by the memory map of FIG. 5B. 
     The C2P decoder counter 106 generates addresses C2P0 to C2P11 for addressing RAM 92 for the flags C2P used in indicating whether the errors of the respective symbols of the second series encoding word C2 are corrected, and outputs them in the sequence shown by the memory map of FIG. 5B. 
     The multiplexer 108 selects one among all of the output addresses of the C1 decoder counter 100, the C2 decoder counter 102, the C1P decoder counter 104 and the C2P decoder counter 106, and outputs the selected output to the adder 90. 
     FIG. 8 is a detailed block diagram of the base counter 88 shown in FIG. 6, which includes a reading base counter 110 to which a frame synchronization signal generated by a crystal oscillator (connected as shown in FIG. 23) is input, a recording base counter 112 to which a frame synchronization signal generated by a voltage-controlled oscillator (VCO; included in block 38 of FIG. 23) is input, and a multiplexer 114 for selecting one of the output addresses of the reading base counter 110 and recording base counter 112 and providing the selected output to adder 90 of FIG. 6. The operation of the above configuration will now be described. 
     First, the reading base counter 110 counts the 7.35 KHz clock signals of the two channels L and R, whose frequency is derived from the crystal oscillator, and then generates a frame address for differentiating the positions of the respective symbols belonging to another frame within RAM 92, when the respective symbols or flags are read from that memory device. An exemplary detailed circuit diagram of reading base counter 110 is shown in FIG. 21. 
     The recording base counter 112 counts the frame synchronization signal generated by the VCO and then generates a frame address for differentiating the positions of the respective symbols belonging to another frame within RAM 92, i.e., when the respective symbols or flags are recorded on to that memory. An exemplary detailed circuit diagram of recording base counter 112 is shown in FIG. 22. 
     Multiplexer 114 selects one of the frame addresses output from the reading base counter 110 and recording base counter 112 and outputs the selected address to adder 90 shown in FIG. 6. 
     FIG. 9 is a detailed circuit diagram of the EFM counter 80, which includes an address output unit 120 for generating a symbol address of an EFM demodulated signal, and an enabling signal generator 122 for controlling the address output unit 120. The operation according to the above configuration is as follows. 
     The address output unit 120 includes a plurality of output ports, and the respective output ports output the complements of the present states in response to a toggle enabling signal TEN applied thereto so that the output sums EFMQ0 to EFMQ11 of the respective output ports become symbol addresses of an EFM demodulated signal. 
     It will be appreciated that the enabling signal generator 122 supplies an enabling signal enabled by toggle enabling signal TEN to the address output unit 120 so that the address output unit 120 sequentially outputs predetermined symbol addresses, as shown in the memory map of FIG. 5B, by a logical combination of the output values fed back from the address output unit 120 and the toggle enabling signal TEN, which determines the output of the address output unit 120. 
     FIGS. 10A and 10B show the relationship of the inputs and outputs of the EFM counter 80 shown in FIG. 9. FIG. 10A illustrates the process for generating the output addresses EFMQ corresponding to the respective EFM demodulated signals EF31 to EF0 according to the enabling signal output from the enabling signal generator 122. These are indicated as decimal, hexadecimal and binary numbers. It should be appreciated that the result is the same as the values of the EFM counter portion of the table shown in FIG. 5A. FIG. 10B shows the simulation result for the output addresses of the EFM counter 80 in the exemplary case where the TEN signal and control signals XCK and RB shown in FIG. 10A are applied. It should be appreciated that the result is the same as the values of the table shown in FIG. 10A. 
     FIG. 11 is an exemplary detailed circuit diagram of the C1 decoder counter 100, which includes an address output unit 132 for outputting the symbol addresses of the data symbols or parity symbols belonging to the encoding word C1, and a logic signal generator 130 for controlling the address output unit 132. 
     The operation according to the above-described configuration will now be explained. The address output unit 132 includes a plurality of output ports, which output the values of the present states in response to a direct enable (DEN) signal applied thereto so that the output sums C1Q0 to C1Q11 of the respective output ports become symbol addresses of the data symbols or parity symbols belonging to the encoding word C1. 
     The address output unit 132 sequentially outputs the symbol addresses of the data symbols or parity symbols belonging to the encoding word C1 responsive to the logical combination of a plurality of input signals TAD0 to TAD4 in logic signal generator 130. It should be noted that input signals TAD0 to TAD4 originate in ECC 28 and are supplied to address generator 32&#39; of FIG. 23 to thereby enable address generator 32&#39; to sequentially read out data stored in RAM 30. In short, TAD0 through TAD4 determine the sequence used in reading data from RAM 30. 
     FIG. 12 is a table which is useful in understanding the relationship between the inputs and outputs of the C1 decoder counter 100 shown in FIG. 11. The absolute addresses of the data symbols or parity symbols belonging to the encoding word C1 are output from the address output unit 130. These are indicated as decimal, hexadecimal and binary numbers, with respect to the relative addresses TAD0 to TAD4 input to the logic signal generator 130. It should be appreciated that the result is the same as the values of the table shown in FIG. 5A. 
     FIG. 13 is an exemplary detailed circuit diagram of the C2 decoder counter 102 which advantageously includes an address output unit 142 for providing the symbol addresses of the data symbols or parity symbols belonging to the encoding word C2, and an logic signal generator 140 for controlling the address output unit 142. In the circuit of FIG. 13, the address output unit 142 includes a plurality of output ports, which output the values of the present states in response to the DEN signal applied thereto so that the output sums C2Q0 to C2Q11 of the respective output ports become symbol addresses of the data symbols or parity symbols belonging to the encoding word C2. 
     The logic signal generator 140 supplies logic signals to the address output unit 142, permitting the address output unit 142 to sequentially output the symbol addresses of the data symbols or parity symbols belonging to the encoding word C2, in response to logical combination of the input signals TAD0 to TAD4. It will be appreciated that address output unit 142 is operative in response to an applied DEN signal. 
     FIG. 14 is a table which is useful in understanding the relationship between the inputs and outputs of the C2 decoder counter 102 of FIG. 13. The absolute addresses of the data symbols or parity symbols belonging to the encoding word C2 are output from the address output unit 140, with respect to the relative addresses TAD0 to TAD4 input to the logic signal generator 140. It should be appreciated that the result is the same as the values of the table shown in FIG. 5A. 
     FIG. 15 is an exemplary detailed circuit diagram of the C1P decoder counter 104 of FIG. 7, which preferably includes an address output unit 152 for outputting the symbol addresses of the C1 flag with respect to the error correction of the data symbol C1 and n logic signal generator 150 for controlling the address output unit 152. According to the circuitry of FIG. 15, the address output unit 152 includes a plurality of output ports, which output the values of the present states in response to logic signals and a DEN signal applied thereto so that the output sums C1PQ0 to C1PQ11 of the respective output ports become symbol addresses of the C1 flag with respect to the error correction of data symbol C1. 
     The logic signal generator 150 supplies the logic signals to the address output unit 152 so that the address output unit 152 sequentially outputs the symbol addresses of the C1 flag responsive to the DEN signal with respect to the error correction of the data symbol C1 by logical combination of the input signals TAD0 to TAD4. 
     FIG. 16 is a table which is useful in understanding the relationship between the input and output of the C1P decoder counter 104 of FIG. 15. The absolute addresses of the flag C1 with respect to the error correction of data symbol C1 are output from the address output unit 152, according to the relative addresses TAD0 to TAD4 input to the logic signal generator 150. It will be appreciated that the result is the same as the values of the table shown in FIG. 5A 
     FIG. 17 is an exemplary detailed circuit diagram of the C2P decoder counter 106, which preferably includes an address output unit 162 for outputting the symbol addresses of the C2 flag with respect to the error correction of the data symbol C2 and an logic signal generator 160 for controlling the address output unit 162. The address output unit 162 includes a plurality of output ports, which output the values of the present states in response to the DEN signal applied thereto so that the output sums C2P0 to C2P11 of the respective output ports from symbol addresses of the C2 flag with respect to the error correction of data symbol C2. 
     The logic signal generator 160 supplies the logic signals to the address output unit 162 so that the address output unit 162 sequentially outputs the symbol addresses of the flag C2 with respect to the error correction of the data symbol C2 in response to the logical combination of the input signals TAD0 to TAD4 and the DEN signal. 
     FIG. 18 is a table which is useful in understanding the relationship between the input and output of the C2P decoder counter of FIG. 17. The absolute addresses of the flag C2 with respect to the error correction of data symbol C2 are output from the address output unit 162, according to the relative addresses TAD0 to TAD4 input to the logic signal generator 160. It will be appreciated that the result is the same as the values of the table shown in FIG. 5A. 
     FIGS. 19A, 19B and 19C collectively form an exemplary detailed circuit diagram of the DAC counter 84, which preferably includes an address output unit 172A to 172C for outputting the symbol addresses necessary for converting the data symbols of the digital signals stored in RAM 92 into analog signals and an enabling signal generator 170A to 170C for controlling the address output unit 172A to 172C. The address output unit 172A to 172C includes a plurality of output ports, and the respective output ports output the complements of the present states in response to an enabling signal applied thereto so that the output sum of the respective output ports form symbol addresses necessary for converting the data symbols of digital signals, whose errors are corrected and which are stored in a predetermined order in RAM 92, into analog signals. 
     The enabling signal generator 170A to 170C supplies the enabling signal to the address output unit 172A to 172C so that the address output unit 172A to 172C sequentially outputs predetermined symbol addresses by a logical combination of the output values fed back from the address output unit 172A to 172C and the toggle enabling signal TEN, which determines the output of the address output unit 172A to 172C. 
     FIGS. 20A and 20B are tables which are useful in understanding the relationship between the inputs and outputs of the DAC counter 84 of FIGS. 19A, 19B and 19C. FIG. 20A, shows the output addresses QQ corresponding to the D/A converting signals DA0 to DA23 and the flags DF0 to DF22 with respect to the error correction of data symbols C1 and C2. FIG. 20B shows the simulation result for the DAC counter 84. FIGS. 20A and 20B show that the result is the same as the values of the table shown in FIG. 5A. 
     FIG. 21 is a detailed circuit diagram of the reading base counter 110 of FIG. 8, which is formed by up-counters. The reading base counter 110 includes a plurality of output ports and counts the 7.35 KHz clock signals of two channels L and R, which are derived from the crystal oscillator 38 of FIG. 23. The respective output ports increase by one in response to the frame synchronization signal when the DEN signal is applied thereto so that the output sum of the respective output ports become frame addresses, which differentiate the positions of the respective symbols belonging to another frame within RAM 92, when the respective symbols or flags are read from RAM 92. 
     FIG. 22 is a detailed circuit diagram of the recording base counter 112 of FIG. 8, which is also formed using up-counters, i.e., similar to the reading base counter 110. The recording base counter 112 includes a plurality of output ports and counts the frame synchronization signal generated by the VCO of FIG. 23. The respective output ports increase by one in response to the frame synchronization signal when the DEN signal is applied thereto so that the output sum of the respective output ports become frame addresses, which differentiate the positions of the respective symbols belonging to another frame within RAM 92, when the respective symbols or flags are recorded to RAM 92. Each output port illustrated in FIGS. 9, 11, 13, 15, 17, 19A, 19B and 19C is formed from a plurality of flip-flops. 
     As described above, the address generator according to the present invention generates the addresses necessary for recording EFM demodulated data in a predetermined area of a memory in the demodulator of an optical disk system, reading and recording the data for an error detection and correction of an EFM demodulated signal, and reading the data for converting error-corrected digital signals into analog signals by using a scrambling counter and a decoder, thereby enabling the quick generation of addresses while reducing chip space. 
     Other modifications and variations to the invention will be apparent to those skilled in the art from the foregoing disclosure and teachings. Thus, while only certain embodiments of the invention have been specifically described herein, it will be apparent that numerous modifications may be made thereto without departing from the spirit and scope of the invention.