Address control circuit for data memory employed in signal delay circuit

Abstract: An address control circuit for a data memory includes a first register for temporarily storing address information applied thereto and for supplying the stored address information to the data memory, a second register for temporarily storing write address information, a third register for temporarily storing offset address information, a write address control circuit coupled to the first and second registers for supplying to the first register address information relative to the write address information and for updating the content of the second register in a data write operation, and a read address control circuit coupled to the first to third registers for producing read address information corresponding to a difference between the content of the second register and the offset address information and for supplying the read address information to the first register in a data read operation.

Description: BACKGROUND OF THE INVENTION The present invention relates to a signal delay circuit utilizing a data memory and, more particularly, to an address control circuit employed in such a signal delay circuit for generating a data write address and a data read address to the data memory. In recent audio systems, "Acoustic Environment Reproduction" is coming up as one of main themes for audio application. Acoustic Environment Reproduction is a process to make a pseudo acoustic effect for realizing a concert hall's acoustic effect, for example. In order to realize the concert hall's acoustic effect, the reproduction of reverberation sound is required. For this purpose, a signal delay circuit utilizing a data memory is used. More specifically, an audio signal to be reproduced is converted into and outputted as digital data in a sampling cycle from a compact disk player, for example. The respective digital data are then temporarily written into the data memory by supplying respective data write addresses to the memory. Certain digital data, which has already been written into the data memory, is read out therefrom after a preselected time period by supplying the corresponding data read address to the memory. The read-out digital data is then subjected to a desired processing such as a digital filter processing. The reverberation sound data is thereby reproduced. That preselected time period corresponds to a delay time of the reverberation sound. If a plurality of reverberation sound data are necessary at one time, the corresponding digital data, which have already been written into the data memory at different sampling timings, are read out therefrom within one sampling cycle. Thus, as addresses to be supplied to the data memory in each sampling cycle, there are required a data write address for current audio digital data and at least one read data address for reverberation sound data. Each of the data write and read addresses is, in general, calculated and then supplied to the data memory by a program consisting of a string of instructions. On the other hand, in order to realize the acoustic environment reproduction, other processes such as a noise reduction, a tone control, a loudness compensation, a stereo image enhancement, etc., are also required in each sampling cycle. These processes are performed by a great number of appropriate digital filtering operations which are in turn controlled by a program. This means that the number of program steps for controlling the filtering operations is reduced due to the program for calculating and generating the data write and read addresses. For this reason, the realization of the acoustic environment reproduction results in incompletion. US-A-4731835 discloses a reverberation tone generating apparatus in which a Digital memory device is used as a delay element. Amplitude data obtained by sampling an input musical tone at a predetermined period are sequentially stored in the Digital memory device. It discloses an address control circuit comprising means for supplying address information to the data memory, a storage means for temporarily storing write address information, control means for applying address information relative to said write address information stored in said storage means to said data memory in response to a data write operation, another storage means for temporarily storing said address information, and said control means produces read address information corresponding to a difference between the content of said storage means and said offset address information stored in said other storage means and for applying said read address information to said data memory in response to a data read operation. A similar arrangement is also disclosed in US-A-4105864. SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide an address control circuit for a signal delay circuit utilizing a data memory. Another object of the present invention is to provide an address control circuit for generating both of data write and read addresses without requiring a number of instructions. Still another object of the present invention is to provide an improved data delay circuit employed in a reverberation sound reproduction apparatus. An address control circuit according to the present invention is disclosed in claim 1. Claims 2 and 3 disclose particular embodiments of the invention. Thus, the renewal of the write address information and the calculation of the read address information are performed without software program. Moreover, the read address information, i.e. a data delay time, can be controlled arbitrarily by changing the offset address information to be stored in the third latch circuit. It is convenient to provide a plurality of third latch circuits each storing offset address information different from each other. A plurality of read address information can be thereby generated in one sampling cycle. BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, advantages and features of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings, in which: Fig. 1 is a circuit diagram representative of an embodiment of the present invention; Fig. 2 is a data map of a data memory shown in Fig. 1; Fig. 3 is a timing chart representative of an address generating operation according to the circuit shown in Fig. 1; Fig. 4 is a circuit diagram representative of another embodiment of the present invention; and Fig. 5 is a timing chart representative of an address generating operation according to the circuit shown in Fig. 4. DETAILED DESCRIPTION OF THE EMBODIMENTS Referring to Fig. 1, an address control circuit according to an embodiment of the present invention includes four latch circuits 1, 2, 6 and 7, an inverter circuit 3, a mask circuit 4, an adder 5, a multiplexer (MPX) 8, a delay circuit 9, three AND gates 10 to 12, an OR gate 14 and an inverter 13. Each of the latch circuits is of a 16-bit construction. The latch circuit 1 temporarily stores write address information and the latch circuit 2 temporarily stores as offset address information a difference between write and read addresses corresponding to a delay time of reverberation sound data. The multiplexer 8 selects the address supplied from an internal bus 101 and supplies it to the latch circuit 1 when the output of the delay circuit 9 assumes the low level. On the other hand, in case of the output of the delay circuit 9 taking the high level, the multiplexer 8 selects the output of the latch circuit supplied from a 16-bit bus 108 and supplies it to the latch circuit 1. The offset latch circuit 2 is presettable with the offset address information supplied from the internal bus 101 in response to the high level output of the AND gate 12. The output of the latch circuit 2 is transferred via a 16-bit bus 102 to the inverted circuit 3, so that the inverted offset address information appears on a bus 103 and then is supplied to the mask circuit 4. The mask operation of the mask circuit 4 is controlled by a read/write control signal R/W designating a data read or data write operation. When the signal R/W takes the high level to designate the data write operation, the mask circuit 4 mask the information on the bus 103 and produces 16-bit information of all "0". In case where the signal R/W takes the low level to designate the data read operation, the mask circuit 4 transfers the information on the bus 103 onto a bus 104 as it is. The adder 5 performs an addition operation on two address data from the latch circuit 1 and the mask circuit 4 and further increments that addition resultant by one. That is, the adder 5 updates the write address information from the latch circuit 1 by one in the data write operation and outputs a read address information which is the write address information minus the offset address information. The incrementing operation of the adder 5 can be performed by a carry signal to the least significant bit of the adder 5. The output from the adder 5 is supplied to both of the latch circuits 6 and 7. The latch circuit 6 latches the address information applied thereto in response to a start signal STR and supplies the latched address information to a data memory 30 via a memory address but 117. The latch circuit 7 latches the address information applied thereto in response to the high level output from the AND gate 10. The start signal STR initiates the data write and read operations and the pulse width thereof is designed to be 100 nsec in this embodiment. The signals STR and R/W are supplied to the AND gate 10 whose output is in turn supplied to the latch circuit 7 and the delay circuit 9. The delay circuit 9 can be constituted of a plurality of inverters connected in series and delays the high level output of the AND gate by a time period of 200 nsec. The signal R/W is further applied to one input node of the AND gate 11 and via the inverter 13 to one input node of the AND gate 12. The other input nodes of the AND gates 11 and 12 are supplied with a preset signal PST. The outputs of the AND gate 11 and the delay circuit 9 are supplied to the OR gate 14 whose output is in turn supplied to the latch circuit 1. The signals STR and R/W are further supplied to a read/write timing generator 20 which in turn supplies the data memory 30 with read/write timing signals 21 such as an address latch signal, and a data read/write designation signal. The preset signal PST is used for presetting write address information into the latch circuit 1 and offset address information into the latch circuit 2. More specifically, when the signal PST is changed to the high level during the high level period of the signal R/W, the AND gate 11 produces the high level which is in turn supplied to the latch circuit 1 via the OR gate 14. At this time, the signal STR assumes the low level, i.e. the output of the delay circuit 9 takes the low level, so that the multiplexer 8 selects and couples the internal bus 101 to the latch circuit 1. As a result, the data on the bus 101 is latched in the circuit 1 as write address information. On the other hand, in the case where the signal PST is changed to the high level during the low level period of the signal R/W, the AND gate 12 produces the high level. Accordingly, the latch circuit 2 latches the data on the bus 101 as offset address information. Digital audio data to be written into the data memory 30, which is supplied from the internal bus 101, is temporarily stored in a write data register 22 and then transferred via a memory data bus 110 to the data memory 30. The data read out of the memory 30 is temporarily stored in a read data register 23 and then transferred to the internal bus 101. The data memory 30 is of 16-bit x 64K-word construction. Next, an operation will be described in the case where the address control circuit shown in Fig. 1 is employed in a reverberation sound reproduction apparatus whose music source is a compact disk player, with reference to Figs. 1 to 3. In the compact disk player, the digital audio data recorded on a compact disk are read out therefrom as 16-bit data in a sampling cycle f sc of 22.7 µsec per one of left and right channels. Therefore, the respective digital audio data are temporarily written into the data memory 30 in the sampling cycle f sc . In the present description, it is assumed that four data, which have already written into the data memory 30, are read out therefrom in one sampling cycle f sc to produce four reverberation sound data having delay times of about 50 msec, 20 msec, 10 msec and 5 msec, respectively. Therefore, the address control circuit shown in Fig. 1 is required to produce four read address information in one sampling cycle f sc . Since the sampling cycle f sc is 22.7 µsec, four offset address information, corresponding to 50 msec, 20 msec, 10 msec and 5 msec representing differences from the current write address information, are "0898H", "0371H", "01B8H" and "00C8H", respectively. The mark of "H" denotes a hexadecimal notation. When the digital audio data in the current sampling cycle is temporarily stored in the write data register 22 via the internal bus 101, a sequence controller (not shown) generates first the start pulse signal STR with holding the read/write signal R/W at the high level, as shown in Fig. 3. At this time, the write address information in the previous sampling cycle, "8098H" for example, has already been stored in the latch circuit 1. Since the signal R/W is at the high level, the output of the mask circuit 4 is all "0", so that the adder 5 outputs the renewed write address information, "8099H". In response to the start signal STR, the latch circuit 6 latches and supplies the renewed write address information of "8099H" to the data memory 30. The timing generator 20 responds to the signals STR and R/W and supplies data write control timing signals 21 to the data memory 30. As a result, the digital audio data stored in the register 22 is transferred to the data memory 30 and then written into the address location "8099H" thereof, as shown in Fig. 2. In response to the signal STR, the AND gate 10 produces the high level, so that the renewed write address information "8099H" is also latched in the latch circuit 7. Since the pulse width of the signal STR is designed to be 100 nsec and the delay time of the delay circuit 9 is designed to be 200 sec, the output AIN from the delay circuit is changed to the high level after the signal STR is returned to the low level. In response to the high level output AIN, the multiplexer 8 selects the output of the latch circuit 7 and the latch circuit 1 latches the renewed write address information "8099H". The content of the latch circuit 6 is not changed at this time. The address control circuit is thereafter brought into a data read operation mode by the signal R/W being changed to the low level. At this time, the offset latch circuit 2 has been preset with the offset address information of "0898H". In response to the low level of the signal R/W, the inverter 3 and the mask circuit 4 supplies the adder 5 with the inverted data of the offset address information "0898H". The adder 5 thus performs the operation of ("8099H"-"0898H") and supplies the resultant data, "7801H", to the latch circuit 6. In this state, the start pulse signal STR is produced again, so that the latch circuit 6 latches and supplies the data "7801H" to the data memory 30 as read address information. The timing generater 20 responds to the signal STR and the low level signal R/W and supplies read data control timing signals 21 to the data memory. The address location "7801H" of the data memory 30 shown in Fig. 2 is accessed and the data is read out therefrom and then transferred to the read data register 23. The data in the register 23 is thereafter transferred onto the internal bus 101. Thus, the digital audio data, which have been written about 50 msec (= 22.7 µsec x "0898H") ago in the memory 30, is read out therefrom in the current sampling cycle. Since the signal R/W is at the low level, the contents of the latch circuits 1 and 7 do not change. In order to preset the second offset address information "0371H" in the latch circuit 2, the preset signal PST is applied with transferring the second offset information onto the bus 101. Therefore, the latch circuit 2 latches the second offset address information "0371H" and the adder 5 outputs the resultant data, "7D28H", of ("8099H"-"0371H"). The start signal STR is produced again, so that the latch circuit 6 supplies the data memory 30 with the second read address information "7D28H". The data stored in the address location "7D28H" is thereby read out therefrom and then transferred onto the bus 101 via the memory data bus 110 and the register 23. Thus, the digital audio data, which has been written about 20 msec (= 22.7 µsec x "0371") ago in the memory 30, is also read out therefrom in the current sampling cycle. By repeating the above offset address information presetting operation and the production of the start signal STR, the digital audio data, which have been written 10 msec and 5 msec ago into the memory 30, are also read out therefrom in the current sampling cycle, respectively. These four read-out digital audio data are thereafter subjected to appropriate digital filtering procedures to produce four reverberation sound data. When the current sampling cycle is completed, the above operations are executed again in a next sampling cycle. Referring to Fig. 4, there is shown another embodiment of the present invention, wherein the same constituents as those shown in Fig. 1 are denoted by the same reference numerals to omit further description thereof. In this embodiment, the offset latch circuit 2 shown in Fig. 1 is replaced by a register file 200 including eight registers 201 to 208 (only two registers 201 and 208 being shown in the drawing), in order to the offset address information presetting operations in each sampling cycle. One of the registers 201 to 208 is selected by register selection data RSEL of 3-bit supplied from a bus 210. Therefore, eight kinds of offset address information are presettable to the file 200 in an initial state. Operation will be described below with reference to Figs. 4 and 5. In the present description, since the left channel and right channel digital audio data are outputted from the compact disk player in the sampling cycle f sc , these two channel data are temporarily written into the successive address locations of the data memory 30 in one sampling cycle. Further, it is assumed that three digital data, which have been written into the memory 30, are read out therefrom in one sampling cycle to produce three reverberation sound data with respect to each of the left and right channels. It is further assumed that three reverberation sound of the left channel have delay times of about 50 msec, 20 msec and 5 msec and those of the left channel have delay times of about 30 msec, 15 msec and 10 msec, respectively. Therefore, the offset registers 201, 202 and 203 are preset with the offset information of "1135H", "06E3H" and "01B9H" and the offset registers 204, 205 and 206 are preset with the offset information of "0A52H", "0528H" and "0370H", respectively. When the left channel digital data in a certain sampling cycle is stored in the register 22 via the bus 101, the start signal STR is generated with holding the signal R/W at the high level. At this time, the latch circuit 1 stores the write address information in the previous sampling cycle, "8097H" for example. Therefore, the renewed write address information "8098H" is supplied to the data memory 30 via the latch circuit 6, so that the left channel digital data is written into the address location "8098H" of the memory 30. The content of the latched circuit 1 is thereafter renewed to "8098H". The start signal STR is produced again with holding the signal R/W at the low level. As a result, the right channel data in this sampling cycle is written into the address location "8099H" of the data memory 30 via the register 22 and bus 110. The content of the latch circuit is thereafter renewed to "809AH". The address control circuit is turned to a data read operation by the signal R/W changing the low level. At this time, the register selection data RSEL takes "0", so that the register 201 is selected and the inverted data of the offset address "1135H" is supplied to the adder 5. Therefore, the adder 5 outputs read address information "6F64H" (= "8099H" -"l135H"). The start pulse signal STR is then generated, so that the address location "6F64H" of the memory 30 is accessed. Thus, the left channel audio data, which has been written about 50 msec ago into the memory 30, is read out therefrom. The content of the register selection data RSEL is thereafter changed to "1" to select the second offset register 202. The content of the register 202, "01B9H", is thereby read out and the inverted data thereof is supplied to the adder 5. By the generation of the signal STR, second read address information "79B6H" (= "8099H" - "01B9H") is supplied to the memory. As a result, the right channel audio data, which has been written about 30 msec ago into the memory 30, is read out therefrom. The above data read operation is continued. As a result, three reverberation sound data with respect to each of the left and right channels can be reproduced.

Claims: An address control circuit for a data memory (30), comprising: first register means (6) coupled to said data memory (30), second register means (1) for temporarily storing write address information, third register means (2, 200) for temporarily storing offset address information; an adder circuit (5) having a first input node coupled to said second register means (1) to receive said write address information, a second input node and an output node coupled to said first register means (6), said adder circuit (5) performing an adding operation on information supplied to said first and second input nodes thereof, and control means (3, 4) coupled between said third register means (2, 200) and said second input node of said adder circuit (5) for supplying constant information to said second input node of said adder circuit (5) in a data write operation irrespective of said offset address information and for supplying control information relative to said offset address information from said third register means (2, 200) to said second input node of said adder circuit (5) in a data read operation,wherein said adder circuit (5) adds one to the adding resultant of the information supplied to said first and second input nodes in both of said data write operation and said data read operation, said address control circuit further comprises storing means (7) coupled between said output node of said adder circuit (5) and said latch circuit as said second register means (1) for storing output address information from said adder (5) into said latch circuit in said data write operation. The circuit as claimed in claim 1, characterized in that said constant information is zero and said control information corresponds to inverted information of said offset address information from said second register means (2, 200). The circuit as claimed in claim 1 or 2, characterized in that said second register means (200) includes a plurality of registers (201-208) each temporarily storing offset address information and means responsive to selection data for selecting one of said registers (201-208) to supply the offset address information stored in the selected register (201-208) to said control means (3, 4).

Inventors: KIUCHI TOYOO, KIUCHI, TOYOO, KIUCHI, TOYOO C/O NEC CORPORATION
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1989
Main classification: G06F5
IPC codes: G06F7, G10K15, G06F12