Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

A modulo arithmetic (61) for generating the addresses for accessing the memory cells of a memory in a DSP (digital signal processor) includes three inputs: an input address (30), an increment (31) and a modulo value (33). The next address (36) is generated based on these inputs as follows. An adder (22) generates a first address (32) by adding the input address (30) and the increment (31) and a second address (34) is generated by subtracting the modulo (33) from the first address (32) by means of the subtractor (23). The comparator (45) checks whether the second address is lower than or equal to zero and if so, the multiplexer (24) outputs the first address at its output (36). If the second address is higher than zero, the multiplexer (24) is controlled such that it outputs the second address (34). A further comparator (63) compares the input address (30) and the modulo (33). If the input address (30) is different from the modulo (33), the multiplexer (64) generates the next output...

InventorMarc Matthey
Original AssigneeEmma Mixed Signal C.V.
Primary Examiner: Hiep T Nguyen
Attorney: Birch, Stewart, Kolasch & Birch, LLP
Current U.S. Classification711/219

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4800524Dec 2, 1987Jan 24, 1989Analog Devices, Inc.Modulo address generator
US4809156May 13, 1987Feb 28, 1989TRW Inc.Address generator circuit
US5381360Sep 27, 1993Jan 10, 1995Hitachi America, Ltd.Modulo arithmetic addressing circuit
US5659700Feb 14, 1995Aug 19, 1997Winbond Electronis CorporationApparatus and method for generating a modulo address
US5918252Nov 25, 1996Jun 29, 1999Winbond Electronics CorporationApparatus and method for generating a modulo address
US6047364Aug 27, 1997Apr 4, 2000Lucent Technologies Inc.True modulo addressing generator
US6049858Aug 27, 1997Apr 11, 2000Lucent Technologies Inc.Modulo address generator with precomputed comparison and correction terms
US6052768Aug 29, 1997Apr 18, 2000Samsung Electronics, Co., Ltd.Circuit and method for modulo address generation with reduced circuit area
US6397318Apr 2, 1998May 28, 2002Cirrus Logic, Inc.Address generator for a circular buffer
US6647484Sep 19, 2000Nov 11, 20033 DSP CorporationTranspose address mode in general purpose DSP processor
US6760830Dec 29, 2000Jul 6, 2004Intel Corporation
Analog Devices Inc.
Modulo addressing

Claims

1. Method for generating an output address for addressing a memory cell of a digital memory including

generating a first address by adding an increment to an input address,

generating a second address by subtracting a modulo from said first address and generating a third address by selecting said first or said second address in dependency of said second address, characterised in that the method includes selecting said first address as said output address if said second address is lower than or equal to zero and selecting said second address as said output address if said second address is higher than zero,

wherein generating said output address includes selecting said third address if said input address is different from said modulo and selecting a constant fourth address if said input address is equal to said modulo.

2. Method according to claim 1, including generating a series of output addresses by executing said method at least twice and using in each case the output address of a nth execution of the method as the input address of a (n+1)th execution of the method and using said series of output addresses for sequentially addressing elements of a matrix in a direction of its columns where said matrix is stored in said digital memory row by row.

3. Device for generating an output address for addressing a memory cell of a digital memory including

an adder adapted to generate a first address by adding an increment to an input,

a subtractor adapted to generate a second address by subtracting a modulo from said first address,

a first multiplexer adapted to generate a third address by selecting said first or said second address in dependency of said second address, characterised in that said first multiplexer is adapted to select said first address as the output address if said second address is lower than or equal to zero and select said second address as the output address if said second address is higher than zero, and

a second multiplexer adapted to generate said output address by selecting said third address or a constant fourth address in dependency of said input address and said modulo.

4. Device as claimed in claim 3, wherein

a) said adder includes a first input for inputting said input address and a second input for inputting said increment,

b) an output of said adder is connected to a first input of said subtractor,

c) said subtractor includes a second input for inputting said modulo,

d) an output of said subtractor is connected to a first input of said first multiplexer,
e) the output of said adder is connected to a second input of said first multiplexer,
f) said output of said subtractor is connected to an input of a first comparator and
g ) an output of said first comparator is connected to a control input of said first multiplexer.

5. Device as claimed in claim 4, further including a second comparator for deciding whether said input address is equal to or different from said modulo, wherein said second multiplexer is adapted to select said third address as the output address if said input address is different from said modulo and said second multiplexer is adapted to select said constant fourth address as the output address if said input address is equal to said modulo where selecting said constant fourth address includes selecting a value of zero as the output address.

6. Device as claimed in claim 5 wherein

a) said second comparator includes a first input for inputting said modulo and a second input for inputting said input address,

b) an output of said second comparator is connected to a control input of said second multiplexer,

c) an output of said first multiplexer is connected to a first input of said second multiplexer,

d) said constant fourth address is connected to a second input of said second multiplexer,
e) and said second multiplexer includes an output for outputting said output address.

7. Device as claimed in claim 6, wherein said device is adapted to generate said output address by

selecting said first address as the output address if a value of a first given set of values is inputted at a further input of the device and if said second address is lower than zero,

selecting said second address as the output address if a value of said first given set of values is inputted at the further input and if said second address is higher than or equal to zero,

selecting said first address as the output address if a value of a second given set of values is inputted at the further input and if said second address is lower than or equal to zero,

selecting said second address as the output address if a value of said second given set of values is inputted at the further input and if said second address is higher than zero,
where said first given set of values particularly includes the value of zero and where said second given set of values particularly includes the value of one.

8. Device as claimed in claim 7, wherein

a) said output of said subtractor is further connected to an input of a third comparator,

b) an output of said third comparator is connected to a first input of a first AND gate,

c) said further input of the device is connected to a second input of the first AND gate,

d) the output of the first comparator is connected to a first input of a NOR gate,
e) an output of said first AND gate is connected to a second input of the NOR gate and
f) an output of the NOR gate is connected to said control input of the first multiplexer.

9. Device as claimed in claim 8, wherein said device is adapted to generate said output address by

a) selecting said first address as the output address if a value of a second given set of values is inputted at the further input and if said second address is lower than or equal to zero and if said input address is different from said modulo,

b) selecting said second address as the output address if a value of said second given set of values is inputted at the further input and if said second address is higher than zero and if said input address is different from said modulo,

c) selecting a constant fourth address as the output address if a value of said second given set of values is inputted at the further input and if said input address is equal to said modulo

and wherein
d) said further input of the device is further connected to a first input of a second AND gate,
e) an output of said second comparator is connected to a second input of the second AND gate and
f) an output of the second AND gate is connected to the control input of the second multiplexer.

10. Device as claimed in claim 3, wherein said device is adapted to generate said output address by

a) selecting said first address as the output address if a value of a first given set of values is inputted at a further input of the device and if said second address is lower than zero,

b) selecting said second address as the output address if a value of said first given set of values is inputted at the further input and if said second address is higher than or equal to zero,

c) selecting said first address as the output address if a value of a second given set of values is inputted at the further input and if said second address is lower than or equal to zero,

d) selecting said second address as the output address if a value of said second given set of values is inputted at the further input and if said second address is higher than zero,
e) where said first given set of values particularly includes the value of zero and where said second given set of values particularly includes the value of one.

11. Device as claimed in claim 10, wherein said device is adapted to generate said output address by

a) selecting said first address as the output address if a value of a second given set of values is inputted at the further input and if said second address is lower than or equal to zero and if said input address is different from said modulo,

b) selecting said second address as the output address if a value of said second given set of values is inputted at the further input and if said second address is higher than zero and if said input address is different from said modulo,

c) selecting a constant fourth address as the output address if a value of said second given set of values is inputted at the further input and if said input address is equal to said modulo.

12. Integrated circuit, particularly an integrated circuit of a digital signal processor (DSP), including a device as claimed in claim 3.

13. Listening devices, particularly a hearing aid, including an integrated circuit as claimed in claim 12.