USRE37048E1 - Field programmable digital signal processing array integrated circuit - Google Patents

Field programmable digital signal processing array integrated circuit Download PDF

Info

Publication number
USRE37048E1
USRE37048E1 US08/946,928 US94692897A USRE37048E US RE37048 E1 USRE37048 E1 US RE37048E1 US 94692897 A US94692897 A US 94692897A US RE37048 E USRE37048 E US RE37048E
Authority
US
United States
Prior art keywords
alu
input
circuit
bus
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/946,928
Inventor
John L. McCollum
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsemi SoC Corp
Original Assignee
Actel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Actel Corp filed Critical Actel Corp
Priority to US08/946,928 priority Critical patent/USRE37048E1/en
Application granted granted Critical
Publication of USRE37048E1 publication Critical patent/USRE37048E1/en
Assigned to MORGAN STANLEY & CO. INCORPORATED reassignment MORGAN STANLEY & CO. INCORPORATED PATENT SECURITY AGREEMENT Assignors: ACTEL CORPORATION, MICROSEMI CORPORATION, WHITE ELECTRONIC DESIGNS CORP.
Anticipated expiration legal-status Critical
Assigned to MICROSEMI SOC CORP., A CALIFORNIA CORPORATION, MICROSEMI SEMICONDUCTOR (U.S.) INC., A DELAWARE CORPORATION, MICROSEMI COMMUNICATIONS, INC. (F/K/A VITESSE SEMICONDUCTOR CORPORATION), A DELAWARE CORPORATION, MICROSEMI CORPORATION, MICROSEMI FREQUENCY AND TIME CORPORATION, A DELAWARE CORPORATION, MICROSEMI CORP.-MEMORY AND STORAGE SOLUTIONS (F/K/A WHITE ELECTRONIC DESIGNS CORPORATION), AN INDIANA CORPORATION, MICROSEMI CORP.-ANALOG MIXED SIGNAL GROUP, A DELAWARE CORPORATION reassignment MICROSEMI SOC CORP., A CALIFORNIA CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: BANK OF AMERICA, N.A.
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06JHYBRID COMPUTING ARRANGEMENTS
    • G06J1/00Hybrid computing arrangements

Definitions

  • the present invention relates to integrated circuits and, more specifically, to user-programmable integrated circuits. More particularly, the present invention relates to user-programmable mixed analog and digital integrated circuits.
  • General purpose linear integrated circuits have limited themselves to specific functions such as operational amplifiers, phase locked loops, comparators, A/D converters, video amplifiers, transistor arrays, etc. These circuits form the building blocks of analog systems. Integrating these circuits into higher functions is difficult due to the need to employ external components (i.e., resistors, capacitors, inductors, etc.) to determine their exact function. Thus once integrated, these circuits become specialized. In order to be practicable for design, manufacture, and sale, such a specialized part must have a large usage base.
  • One illustrative example of such a circuit is an audio amplifier which may be used in stereo systems or television sets. Without a large usage base, the design and manufacture of such a circuit is not economical.
  • Another common problem in electronics is that various parts of a complex signal need to be kept in phase while utilizing different circuit paths. This For example, this is commonly done in color television sets where the luminance information is routed through a delay line while the chrominance information is processed.
  • DSP digital signal processing
  • a fundamental limitation of these integrated DSP devices is that the device speed is limited by the Von Neuman architecture of the microprocessor where many processor functions are required for each time slice of the analog signal. This limitation has heretofore limited the speed of such devices to frequencies in the audio spectrum. This is of course due to the fact that the customization of the function is achieved by the coding of the instructions in the microprocessor.
  • MIMD multiple instruction multiple data or single instruction multiple data
  • SIMD multiple instruction multiple data or single instruction multiple data
  • Yet another object of the present invention is to provide a user-programmable digital signal processing integrated circuit which allows the user to control phase shifting of signals being processed therein.
  • a field programmable, digital signal processing integrated circuit is formed in a semiconductor die and includes an array of arithmetic logic unit (ALU) circuits.
  • a user programmable interconnect architecture is superimposed on the array of ALU circuits.
  • One or more interface circuits comprising digital-to-analog (D/A) converters or analog-to-digital (A/D) converters are provided on (or off) the integrated circuit to interface to off-chip analog input signals and provide off-chip analog output signals.
  • Other functional circuit blocks such as programmable read only memory (PROM) or Random Access Memory (RAM) circuits may also be disposed on the integrated circuit die.
  • Circuitry is provided to program the interconnections between the interface circuits and the ALU circuits and between individual ones of the ALU circuits, as well as to define the specific functions of the individual ALU circuits.
  • the architecture of the present invention avoids the Von Neuman bottle neck characteristic of prior art systems by eliminating the need for sequential instructions.
  • Each ALU circuit of the present invention may be user customized to act like the mathematical equivalent of an analog circuit element.
  • the individual ALU circuits are interconnected to one another and to A/D and D/A interface circuits by user-programmable interconnect elements.
  • FIG. 1 is a block diagram of the architecture for an illustrative field programmable digital signal processing integrated circuit according to a preferred embodiment of the present invention.
  • FIG. 2 a 2 A is a block diagram of an illustrative ALU circuit suitable for inclusion in the field programmable digital signal processing integrated circuit according to the present invention.
  • FIG. 2 b 2 B is a state diagram which discloses in detail the operation of the control circuit portion of the ALU circuit of FIG. 2 a 2 A.
  • FIG. 3 is a schematic diagram of an architecture for a bus interchange which can perform a single or multibit shift operation.
  • FIG. 4 a 4 A is a schematic diagram of a simple inverting analog amplifier.
  • FIG. 4 b 4 B is an equivalent block diagram of the amplifier of FIG. 4 a 4 A implemented according to the present invention.
  • FIG. 4 c 4 C is an equivalent block diagram of the amplifier of FIG. 4 a 4 A implemented according to the present invention and including a logarithmic feedback element.
  • FIG. 5 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4 b 4 B for a sinusoidal input waveform.
  • FIG. 6 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4 b 4 B for a square input waveform.
  • FIG. 7 a 7 A is a schematic diagram of a variation of the amplifier circuit of FIG. 4 a 4 A.
  • FIG. 7 b 7 B is an equivalent block diagram of the amplifier of FIG. 7 a 7 A implemented according to the present invention in a manner which avoids pipelining distortion in the output.
  • FIG. 8 is a graph showing the input and output voltages of the circuit of FIG. 7 b 7 B for 1 MHz sine wave input.
  • FIG. 9 is a graph showing the input and output voltages of the circuit of FIG. 7 b 7 B for 1 MHz square wave input.
  • FIG. 10 is a block diagram of an illustrative analog shift register configured using the architecture of the present invention.
  • FIGS. 11 a 11 A and 11 b 11 B are examples of a series RLC tuned circuit implemented according to the present invention.
  • FIG. 1 a block diagram is presented of the architecture for an illustrative field programmable digital signal processing integrated circuit according to a preferred embodiment of the present invention.
  • the architecture of the present invention is integrated on a single piece of semiconductor material, and may be fabricated using known semiconductor processing technology, such as CMOS technology, which is presently preferred.
  • the field programmable digital signal processing integrated circuit 10 of the present invention is built around an array of arithmetic logic unit (ALU) circuits shown at reference numerals 12 - 1 through 12 - 9 .
  • ALU arithmetic logic unit
  • arithmetic logic units 12 - 1 through 12 - 9 are shown arranged as a regular array comprising three rows and three columns of ALU circuits.
  • FIG. 1 is illustrative only and not limiting, in that such skilled persons will readily recognize that other numbers of ALU circuits and other layout arrangements may be employed.
  • At least one analog-to-digital (A/D) converter and at least one digital-to-analog (D/A) converter circuit may be optionally disposed on the integrated circuit along with the ALU circuits.
  • A/D circuits 14 - 1 and 14 - 2 and two D/A circuits 16 - 1 and 16 - 2 are shown.
  • A/D converters 14 - 1 and 14 - 2 and D/A converters 16 - 1 and 16 - 2 will probably be located near the periphery of the integrated circuit die upon which the architecture 10 of the present invention is disposed, but those of ordinary skill in the art will understand that placement of these devices is largely a matter of design choice. Such elements may even be located off chip in certain applications.
  • I/O input/output
  • the number of I/O pins provided on any actual embodiment of the architecture of the present invention will be purely a matter of design choice.
  • a group of such I/O pins is depicted as a single I/O block 18 , but those of ordinary skill in the art will recognize that I/O block 18 represents a plurality of I/O pins.
  • PROM devices 20 - 1 and 20 - 2 are shown disposed in the integrated circuit architecture 10 of the present invention.
  • RAM and ROM circuits may be usefully employed in the architecture of the present invention.
  • a user-programmable interconnect architecture is superimposed upon the aforementioned circuit elements.
  • the user-programmable interconnect architecture is used to connect the aforementioned circuit elements to one another and to the I/O pins.
  • User-programmable interconnect architectures include a plurality of interconnect conductors which may be connected to one another, to inputs and outputs of the various circuit elements, and to the I/O pins by user-programmable interconnect elements.
  • These user-programmable interconnect elements may take several forms as is known in the art. Examples of such elements include antifuses, of which there are numerous known examples, such as those disclosed in U.S. Pat. Nos. 4,899,205, and 5,070,384, and 5,181,096, and pass transistors, such as disclosed in the architecture described in U.S. Pat. No. 4,870,302. Those of ordinary skill in the art will recognize that these examples are non-exhaustive and merely illustrate the state of the user-programmable interconnect element art.
  • user-programmable interconnect element as used herein shall be construed to cover all forms of such interconnect elements.
  • the structure, design, and use of such user-programmable interconnect elements is well known in the art and will not be recited herein.
  • FIG. 1 the user-programmable interconnect architecture is shown diagrammatically as horizontal interconnect conductors 22 and vertical interconnect conductors 24 which are distributed throughout and among the circuit elements of FIG. 1 .
  • FIG. 1 is very general in this respect.
  • the lines identified by reference numerals 22 and 24 in the drawing figure are not intended to represent individual interconnect conductors but rather represent groups of conductors. An actual arrangement of interconnect conductors useful for employment in the present invention will be disclosed in subsequent figures and text herein.
  • some of the conductors will be segmented and some conductors may run the entire length or width of the array of circuit elements in the architecture.
  • Individual user programmable interconnect elements will be connected between selected adjacent segments of the interconnect conductors to selectively lengthen them, and other individual user-programmable interconnect elements will be positioned between intersecting horizontal and vertical segments of the interconnect conductors. Nonexhaustive examples of the segmenting of individual interconnect conductors are seen in U.S. Pat. Nos. 4,870,302, 4,758,745, and 5,073,729.
  • the interconnect conductor groups may communicate with the I/O pins, either directly, as shown in FIG. 1 by leftmost and rightmost vertical interconnect conductor groups 24 entering I/O block 18 , or through appropriate input and output buffers as is known in the art.
  • This feature of the present invention allows a number of integrated circuits according to the present invention to be connected together to form larger circuits, which may be clocked together as will be described further herein.
  • FIG. 2 a 2 A the structure and organization of a presently preferred single ALU circuit 12 suitable for use in the architecture of the present invention is depicted in block diagram form.
  • ALU circuit 12 may be configured using standard CMOS building blocks for circuits of this type.
  • CMOS building blocks for circuits of this type.
  • ALU circuit 12 includes an a first 2:1 multiplexer 26 and a second 2:1 multiplexer 28 . Both the first and second multiplexers 26 and 28 are n-bits wide, where n is the width of the data byte used by the ALU circuit 12 .
  • the byte size used in any actual embodiment of the invention could be from 2-64 bits wide and will be dictated by resolution, size, and other design considerations.
  • a typical byte size might be, for example, 8 bits.
  • Practically a data byte would be the width of the A/D and D/A converters used. This would be for instance 8 or 10 bits in the case of Video D/A converters and 18 bits for Audio D/A converters.
  • the voltage in tuned reactive circuits is Q (quality factor) times higher than the input voltage.
  • Q quality factor
  • a Q may be as high as 100, which would require an extra 8 bits to be added to the ALU circuits 12 to accommodate the voltage, resulting in 16 to 18 bits for Video D/A converters.
  • the programmable circuit is optimized for reactive circuits, only the internal nodes of the reactive circuits need be this size.
  • the rest of the ALU circuit 12 data paths could be 8 to 10 bits wide.
  • ALU circuits 12 Another solution to this problem would be to configure all of the ALU circuits 12 to be 8 to 10 bits wide and to program an AGC circuit consisting of a peak detector, a comparator and gain adjust circuit into the circuit to reduce the input signal amplitude to the reactive circuit module, thereby preventing the ALU circuit 12 from overflowing.
  • AGC circuit consisting of a peak detector, a comparator and gain adjust circuit into the circuit to reduce the input signal amplitude to the reactive circuit module, thereby preventing the ALU circuit 12 from overflowing.
  • first 2:1 multiplexer 26 are connected to n-wide input busses 34 and 36
  • data inputs (C and D) of second 2:1 multiplexer 28 are connected to n-wide input busses 32 and 34 .
  • the input busses physically exit the ALU circuit 12 in different directions to maximize the interconnect possibilities.
  • one end of input busses 30 , 32 , 34 , and 36 might exit the ALU block horizontally and one end may exit vertically to permit connection to both horizontal and vertical interconnect conductors in the interconnect matrix of the integrated circuit, thus allowing for greater interconnect possibilities. This is shown diagrammatically in FIG.
  • ALU circuit 12 - 1 in the region of ALU circuit 12 - 1 at reference numerals 30 a, 32 a, and 34 a. While only one ALU circuit 12 - 1 is shown having such an input structure in FIG. 1, in order to avoid cluttering up the drawing, those of ordinary skill in the art will recognize that it is preferable for all ALU circuits to be similarly configured.
  • control inputs 38 and 40 of first and second 2:1 multiplexers 26 and 28 are brought to an interconnect matrix which includes conductor 42 carrying the Vcc potential for the integrated circuit, conductor 44 carrying ground potential, and general interconnect conductors 46 , 48 , and 50 .
  • the small circles in the interconnect matrix at the intersections of control inputs 38 and 40 and conductors 42 , 44 , 46 , 48 , and 50 represent user programmable interconnect elements, such as antifuses or pass transistors.
  • control inputs 38 and 40 of the multiplexers 26 and 28 can be hardwired to Vcc or ground to preselect the data source or can be hardwired to data sources via one of general interconnect conductors 46 , 48 , or 50 to dynamically alter the signal sources during circuit operation.
  • negate circuits 52 and 54 The outputs of first and second 2:1 multiplexers 26 and 28 are directed to negate circuits 52 and 54 .
  • the function of negate circuits 52 and 54 is to selectively invert the data state of the input, and the circuits may be configured from exclusive OR gates as is known in the art.
  • the control inputs 56 and 58 of negate circuits 52 and 54 are brought into the interconnect matrix, thus allowing maximum flexibility of the negate function.
  • the outputs of negate circuits 52 and 54 drive the Latch A latches 60 and 62 .
  • the outputs of Latch A latches 60 and 62 form the input terms for adder 64 .
  • Adder 64 may be a conventional multibit adder circuit.
  • the output of adder 64 drives the input of Latch B latch 66 .
  • the output of Latch B latch 66 is connected to output bus 68 .
  • control circuit 70 The Latch A latches 60 and 62 and Latch B latch 66 are controlled by a control circuit 70 .
  • the purpose of control circuit 70 is to synchronize the operation of the ALU circuit to assure that the operation of the circuit is coordinated with the arrival of the correct data to be processed by the ALU circuit.
  • Control circuit 70 has a clock (CLK) input 72 , an enable (EN) input 74 and an input-ready in (INRIN) input 76 . These inputs are incorporated into an interconnect matrix including two clock lines CLKA line 78 , CLKB line 80 , and three general interconnect conductors 82 , 84 , and 86 .
  • the input lines 72 , 74 and 76 are connectable to any of lines 78 , 80 , 82 , 84 and 86 by the user programmable interconnect elements shown as small circles at the intersections of the lines 78 , 80 , 82 , 84 and 86 and the input lines 72 , 74 and 76 .
  • the connectivity choices shown in FIG. 2 a 2 A are only illustrative, and that the actual choices in an architecture built in accordance with the teachings of the present invention will be dictated largely as a matter of design choice.
  • Control circuit 70 has four outputs. Output A (line 88 ) drives the clocks of the Latch A Latches 60 and 62 , and output B (line 90 ) drives the clock of the Latch B latch 66 .
  • INROUT line 92 is used for asynchronous connection of modules and is an input-read output signal which would be connected to the input-read (INRIN) input of the module connected upstream so that the upstream module will release data on the next clock.
  • DATARDY line 94 is a data ready output used to indicate that data is valid for the next module downstream to read.
  • the ALU circuit 12 of FIG. 2 a 2 A may be configured to perform the customary logical functions performed by ALU circuits.
  • FIG. 2 b 2 B a state diagram is presented, showing in detail the operation of the control circuit 12 portion of the ALU circuit of FIG. 2 a 2 A.
  • synchronous stages will not need to utilize the INRIN and INROUT lines 76 and 92 .
  • Asynchronous stages will use the INRIN and INROUT lines 76 and 92 at the interface.
  • Occasional bytes may be lost, but this should not affect the overall operation of any circuits configured using the architecture of the present invention. Lost bytes may be averaged out by (A+B)/2 of subsequent data bytes until smoothness level is achieved, so long as the number of data samples per cycle are is adequate.
  • the organization of the interconnect architecture of the present invention makes it possible to utilize the interconnect itself to perform mathematical functions such as multiply and divide.
  • This feature of the present invention is advantageous in that such operations may be performed in the same clock cycle as the operations performed by the ALU circuit whose output is driving the interconnect conductors.
  • the speed will be limited by the rate at which the ALU circuits can perform an addition (subtraction) and a multiplication (division).
  • the multiplication and division are the mathematical processes that take the most time. If, however, the application circuit is designed to use circuit elements such as resistors, capacitors, inductors etc. in units of the power of 2, i.e., 2, 4, 8, 16, etc., the multiplication and division may be digitally represented by a shift left or a shift right operation.
  • FIG. 3 shows a plurality of horizontal interconnect conductors 22 - 1 through 22 - 6 intersecting a plurality of vertical interconnect conductors 24 - 1 through 24 - 6 .
  • a transistor 96 - 1 through 96 - 36 is connected between the horizontal and vertical interconnect conductors.
  • the gates of diagonally-situated ones of the transistors are connected together to one of gate lines 98 - 1 through 98 - 11
  • bit shifting technique can be implemented by other user-programmable interconnect devices such as antifuses.
  • intersecting conductive lines may be connected by antifuses and the bit shifting to the left or right may be accomplished by selective programming of the antifuses.
  • a bus interchange like that depicted in FIG. 3 may be placed at the intersection of horizontal and vertical interconnect conductors such as 22 and 24 and may also be employed to connect an input bus or an output bus of an ALU circuit to the horizontal and vertical interconnect busses of the interconnect architecture. It is apparent that the multiplication and division operations implemented by the shift function disclosed herein will take no significant time, and will certainly occur in the same clock cycle used to operate the driving ALU circuit. Hence those of ordinary skill in the art will appreciate that the architecture of the present invention can perform functions with the same approximate speed as high speed analog operational amplifiers.
  • the value of R as any power of 2 may be preprogrammed into the ALU circuit by shifting the output bus one or more bit positions. This function could be achieved in one clock cycle and the digital resistor performs the same function on each clock cycle, i.e. subtract two input numbers and divide by a preprogrammed constant.
  • the architecture of the present invention eliminates the need for program storage.
  • the division operation for calculating capacitances whose values are powers of 2 is automatically performed as a result of a bit shift of one or more places in the opposite direction from that for a multiplication operation. Similar simple functions exist for inductors and transformers and operational amplifiers, comparators, ideal diodes, switches or multiplexers, which are the building blocks of analog electronics.
  • the user-programmed interconnect of the digital ALU circuits would be a one-to-one map of the analog equivalent.
  • the additional integration of digital signals is simple because the digital gates would be made of the same type of transistors for digital circuits.
  • the digital modules may use similar logic as is currently available in Gate arrays, FPGA's FPGAs and PAL's PALs.
  • the interconnection of the analog elements may of course be made in the same manner as used in Gate arrays, FPGA's FPGAs and PAL's PALs.
  • An integrated circuit according to the present invention is easily customizable, suitable for mixing analog and digital functions, and can be extremely fast, capable of working with analog signals in the RF and Video frequency ranges.
  • the limiting frequency will likely be the rate of A/D and D/A conversions at the boundaries of the system. Flash converters currently work in the tens of megahertz.
  • the A/D and D/A converters could either be on chip or off chip depending on the desire of the designed/manufacturer.
  • FIGS. 4 a 4 A and 4 b 4 B a simple design of an inverting unity gain amplifier is shown as an example of the operation of the architecture of the present invention.
  • FIG. 4 a 4 A is a schematic diagram of the analog equivalent circuit including two one ohm resistors, a 40 nF capacitor, and an amplifier having a slew rate of 0.25 V/V IN .
  • FIG. 4 b 4 B is a block diagram of the digital equivalent circuit as implemented in the architecture of the present invention.
  • An analog input voltage is supplied to A/D converter 100 , which presents its output to ALU 102 , programmed to behave as the resistor R 1 in the circuit of FIG. 4 a 4 A.
  • ALU 104 is programmed to behave as capacitor C
  • ALU 106 is programmed to behave as resistor R 2
  • ALU 108 is programmed to behave as the amplifier element.
  • the entire circuit is driven by a 100 MHz clock 110 .
  • ALU 102 resistor 1 R 1
  • FIG. 5 is a graph showing the waveforms of the signal input and signal output waveform of the circuit for a sinusoidal input waveform. It may be seen from FIG. 5 that the output of the amplifier is somewhat “phase shifted” due to the pipelining time for the data through the ALU system which emulates the analog amplifier.
  • FIG. 6 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4 b 4 B for a square input waveform.
  • the damped overshoot characteristic which is typical of analog amplifiers may be seen on the output waveform.
  • re-arranging the architecture of the emulated amplifier circuit can eliminate the distortion exhibited by the circuit of FIG. 4 b 4 B which is apparent in FIGS. 5 and 6.
  • FIGS. 7 a 7 A and 7 b 7 B an alternate configuration can be configured by employing a slower master clock and using the data-valid (INR and OUTR) connections of the ALU circuits.
  • the same reference numerals are used in the circuits of FIGS. 4 b 4 B and 7 b 7 B, but the capacitor C has a value of 60 nF and the amplifier has a gain of 2.
  • FIGS. 8 and 9 are graphs showing the input and output voltages of the circuit of FIG. 7 b 7 B for 1 MHz sine and square wave inputs, respectively.
  • Those of ordinary skill in the art will recognize that, while the phase of the output voltages are lagging the input voltages, the square wave output is completely free of overshoot.
  • Such skilled persons will also recognize that, due to the slower clocking speed (i.e., 33 MHz as opposed to 100 MHz for the circuit of FIG. 4 b 4 B), fewer data points are used to define the output function.
  • the architecture of the present invention may be used to implement an analog shift register as shown in FIG. 10, thus making possible any length delay without phase alteration.
  • three ALU modules 120 , 122 and 124 are shown connected as an analog shift register.
  • the ALU modules are configured to compute the function (V 1 +0)/1, by connecting the B input busses of each to ground and the A input busses of each module to the output bus of the preceding ALU module in the chain.
  • This technique may be used to configure an analog shift register chain of arbitrary length, although only three stages are shown in FIG. 10 .
  • the present invention may also be employed to simulate tuned circuits.
  • the actual value of the circuit element is also a function of the frequency at which the circuit is clocked. If the number that is output is the value of a current, then the time period of the ALU clock signal will represent a current multiplied by time. Therefore the circuit output value is an amount of charge or Q.
  • a capacitor ALU having a digital value 1 clocked at a clock frequency of 100 MHz will be have a value of C/clock frequency, or 10 nanofarads.
  • the actual value of the circuit elements will be set by the clock frequency of the ALU.
  • One technique to avoid this problem in the circuits configured according to the present invention is to make a small FIFO of, for example, three signal bytes. This would require the use of three ALU circuits, unless the ALU circuits are optimized to perform this function.
  • the load signal is determined by the output of one ALU circuit and the dump signal would be determined by the input ALU running at a different frequency. If the FIFO is full, one byte is erased and the next byte loaded. If the FIFO is empty, then the last byte is kept for the next read cycle. This is, of course, only one of many ways to perform this function.
  • Another possible method is to design the ALU circuits with hand shaking such that the waiting module will not perform any function on the next clock cycle if the adjacent module is not ready to send or receive the data.
  • MIMD multiple instruction multiple data or single instruction multiple data
  • SIMD multiple instruction multiple data or single instruction multiple data
  • the MIMD and SIMD machines do not use interconnect to perform operations such as multiplication and division, and instead utilize the processor engines to perform these functions in the traditional manner. Nor do they utilize the concept of varying the processor clock frequency to vary the calculation result, as is employed in the present invention. Nor does any of this prior work disclose or suggest the idea of programming the interconnect to represent an analog function to run in real time. Also the processors in these arrays are very complex and are therefore stuck with subject to the undesirable Von Neuman bottleneck, which is an undesirable characteristic thereof discussed above.
  • the architecture of the present invention by its very nature requires each adder/shifter to perform only the one single function so that there is no data bottleneck. This provides constitutes a significant advantage over the prior art.
  • Another advantage of modeling an analog circuit with an array of adders and shifters with programmable interconnect is that general integer arithmetic can be easily performed by combining adder/shifters. Hence the end user can design his device to multiply or divide a value by any integer when necessary. Since analog circuits typically move a signal along a circuit path with few feedback terms the additional time required for the integer arithmetic may not slow down the circuit as this architecture will basically pipeline the calculation so long as the calculation is not in a high speed feedback term.
  • the architecture of the present invention could be implemented in an FPGA but the modules in these devices are small and designed for logic functions, typically one bit wide. Hence many modules would have to be used to make a 10 bit adder and the interconnect architectures in FPGA devices do not provide a sufficient number of lines to efficiently implement the shift function in the interconnect. Hence the circuit cost per analog function will be high and the speed will be much slower. Additionally, the modules in an FPGA are not designed to accept signals arriving asynchronously with the clock signal.
  • Circuits that utilize feedback that is running at the signal frequency represent the limiting frequency of the performance of this invention. This is caused by a phase shift between the signal and the reaction to that signal which represents at best one clock delay. For these applications the circuit will be more stable if the modules are clocked in series rather than in parallel. This of course causes the maximum operating frequency of the circuit to be limited (divided) by a factor of the number of series clock pulse pulses used. Such a clocking scheme is useful for such applications for the Z transform for the specific circuit to be solved and applied to the module array as opposed to the just placing the circuit elements one to each module.
  • FIGS. 11 a 11 A and 11 b 11 B Two examples of a simple series RLC tuned circuit implemented using the architecture of the present invention are shown in FIGS. 11 a 11 A and 11 b 11 B.
  • FIG. 11 a 11 A the straightforward placement requires four ALU modules 130 , 132 , 134 , and 136 , driven by four sequential clocks CLK 1 , CLK 2 , CLK 3 , and CLK 4 .
  • the circuit is envisioned as an input node impressed with a voltage V in in series with an inductance L in series with a resistance R in series with a capacitance C to ground.
  • ALU module 130 driven by CLK 1 , computes V in ⁇ V 2prev , where V 2prev is the voltage at the node joining the inductance L and resistance R at the last clock cycle.
  • ALU module 132 driven by CLK 2 , computes i prev + ⁇ i, where i prev is the current through the RLC circuit at the previous clock cycle and ⁇ i is the change in current to the current clock cycle. The current is obtained by dividing the output of ALU module 130 by L (as noted in FIG. 11 a 11 A). As taught herein, this may be done by the bit shifting technique disclosed with reference to FIG. 3 and the accompanying disclosure.
  • ALU module 134 driven by CLK 3 , computes V 1 prev +i/C, where V 1 prev V 1prev +iC, where V 1prev is the voltage at the node connecting the resistance R to the capacitance C at the previous clock cycle and i/C is simply the current i (output of ALU module 132 divided by the capacitance C (: as noted in FIG. 11 a 11 A) by the bit shifting technique.
  • ALU module 136 driven by CLK 4 , computes V 1 +iR V 1 +iR , where V 1 V 1 is the voltage at the node connecting the resistance R to the capacitance C at the current clock cycle and iR is simply the current i (output of ALU module 132 multiplied by the resistance R (as noted in FIG. 11 a 11 A) by the bit shifting technique.
  • FIG. 11 b 11 B judicious placement of the Z transform reduces the number of clocks to two and increases the number of ALU modules to five.
  • the implementation of FIG. 11 b 11 B doubles the maximum frequency. In this sense the present invention can be imagined as a parallel programmable Z transform.
  • ALU module 148 driven by CLK 1 , computes V c , the voltage across the capacitance in the present cycle, as V cprev , the voltage across the capacitance C in the previous cycle, minus the quantity I prev /C.
  • IR at one input to ALU module 142 may be obtained by the bit shifting techniques taught herein.
  • I prev /C Of of ALU module 148 and I prev /LC at the input to ALU module 144 may be similarly obtained. While this bit shifting multiply and divide technique does allow use of a minimal number of ALU modules, those of ordinary skill in the art will recognize that the values of the multiplicands and divisors are limited to integers which are powers of 2, i.e., 2 . . . 4 . . . 8 . . . 16 2, 4, 8, 16, etc. Such skilled persons will recognize that divider and multiplier circuits may be configured from multiple ALU modules to provide more flexibility of component value choices at the expense of greater circuit complexity and ALU utilization.
  • a double balanced mixer configured using the architecture of the present invention requires only one module to perform the function IVC 1 +V 2 I/ 2 where ABS ( X ) is the absolute value of X .
  • the module is programmed to add the two numbers and if the most significant bit is negative (signed integer) then perform the two's complement that the module would normally due for a subtract.
  • the divide by two is done on the output to the interconnect.
  • three coupling transformers, two diodes and an amplifier are modeled by one module.
  • Variations in gain for circuits such as AGC circuits can be implemented as powers of two by designing the module interconnect with transistors that can be switched in the circuit, as opposed to hard wired interconnect with antifuses. Another method of varying gain would be to provide a resistor divider programmed into the modules wherein the resistor value is set in SRAM memory in the module that can be changed on the fly.
  • Sine wave oscillators are made with this architecture with only two clocks, one representing the L and one the C. Since these devices are mathematical there is no series resistance and therefore no damping of the oscillation. Hence the oscillator, once started, runs forever. By setting its initial conditions, the phase and amplitude are determined for every cycle until reset. Phase looked loops are therefore simple to implement. An excellent application would be synchronizing a 3.58 MHz oscillator to the color burst signal of a NTSC (TV) signal for decoding the color information. The clock frequency will change the oscillator frequency and the amplitude can be loaded at any time to synchronize with the input signal.
  • NTSC NTSC
  • Another feature of this architecture is that once the signal is digitized a more complex system can be built by merely adding more chips. These would be designed such that all the digital outputs for a signal are adjacent and would match up to the inputs of another chip, allowing communicating pins from chips to be placed side by side. Lead lengths and capacitance loading are therefore minimized, allowing communication of the signal from one chip to the next at the maximum possible frequency.
  • the signal need not be converted back to analog until necessary to return the signal to the real world (i.e. speaker or video monitor). Of course if the information goes to a computer then the signal need never be converted back to analog.
  • the modules may be designed with gated inputs to control the time a signal is loaded as is the case in synchronizing a signal or to steer the input as is the case with multiplexers.
  • this architecture could integrate integer divide and multiply in the modules to perform the calculations thereby eliminating the requirement of using component values of a power of two. Clock frequencies would not therefore need to be fractionally different. This of course would lower the speed and density of the chip but it will still be considerably faster the than conventional DSP chips as there still would be no Von Neuman bottleneck.
  • Some chips could be specialized by designing more specialized modules, optimized for special applications.
  • a module could be optimized for the series RLC circuit example disclosed herein and could speed up the maximum chip operating frequency by about a factor of two.

Abstract

A field programmable, digital signal processing integrated circuit is formed in a semiconductor die and includes an array of arithmetic logic (ALU) circuits. A user programmable interconnect architecture is superimposed on the array of ALU circuits. One or more interface circuits comprising digital-to-analog (D/A) converters or analog-to-digital (A/D) converters are may be provided on the integrated circuit to interface to off-chip analog input signals and provide off-chip analog output signals. Circuitry is provided to program the interconnections between the interface circuits and the ALU circuits and between individual ones of the ALU circuits, as well as to define the specific functions of the individual ALU circuits.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to integrated circuits and, more specifically, to user-programmable integrated circuits. More particularly, the present invention relates to user-programmable mixed analog and digital integrated circuits.
2. The Prior Art
General purpose linear integrated circuits have limited themselves to specific functions such as operational amplifiers, phase locked loops, comparators, A/D converters, video amplifiers, transistor arrays, etc. These circuits form the building blocks of analog systems. Integrating these circuits into higher functions is difficult due to the need to employ external components (i.e., resistors, capacitors, inductors, etc.) to determine their exact function. Thus once integrated, these circuits become specialized. In order to be practicable for design, manufacture, and sale, such a specialized part must have a large usage base. One illustrative example of such a circuit is an audio amplifier which may be used in stereo systems or television sets. Without a large usage base, the design and manufacture of such a circuit is not economical.
During the manufacture of analog circuits a significant cost is the final trimming of each individual circuit. This is required because actual component values vary as well as stray capacitance is introduced due to component placement.
Another common problem in electronics is that various parts of a complex signal need to be kept in phase while utilizing different circuit paths. This For example, this is commonly done in color television sets where the luminance information is routed through a delay line while the chrominance information is processed.
Furthermore, many common analog systems such as television sets, VCR's VCRs and stereo systems are currently employing many digital functions. Hence the integration of these circuits onto a single integrated circuit die requires mixed analog and digital design and a process to manufacture them such integrated circuits. The manufacturing process for such integrated circuits is complex and expensive as the transistors used in analog circuit design are typically radically different from those used in digital design.
One prior-art prior art approach to this problem has been to design circuits which operate employing digital signal processing (DSP) techniques. These devices use Such circuits employ a microprocessor core to simulate the mathematical equivalent of the analog system. One common application for such chips circuits is digital filtering of the digitized analog signals before conversion of such signals back to the analog world .
A fundamental limitation of these integrated DSP devices is that the device speed is limited by the Von Neuman architecture of the microprocessor where many processor functions are required for each time slice of the analog signal. This limitation has heretofore limited the speed of such devices to frequencies in the audio spectrum. This is of course due to the fact that the customization of the function is achieved by the coding of the instructions in the microprocessor.
Another approach to the mixed analog and digital integrated circuit is shown in U.S. Pat. No. 5,107,146 to El-Ayat. This patent discloses a user-programmable architecture including a mixture of analog and digital circuit modules. The digital logic modules are of the type used in prior field programmable gate array (FPGA) devices.
Work has been done in the past in trying to design processor arrays to speed up applications. These This class of machines are is called MIMD or SIMD (multiple instruction multiple data or single instruction multiple data). These concepts utilize a plurality of processor engines to perform logical operations, such as multiplication and division. Each processor engine is a Von Neuman machine and occupies significant die area on an integrated circuit.
It is an object of the present invention to provide a user-programmable digital signal processing integrated circuit which overcomes the limitations of the prior art.
It is another object of the present invention to provide a user-programmable digital signal processing integrated circuit which does not require individual component trimming to maximize performance.
Yet another object of the present invention is to provide a user-programmable digital signal processing integrated circuit which allows the user to control phase shifting of signals being processed therein.
It is a further object of the present invention to provide a user-programmable digital signal processing integrated circuit which may be easily programmed by a user.
BRIEF DESCRIPTION OF THE INVENTION
According to the present invention, a field programmable, digital signal processing integrated circuit is formed in a semiconductor die and includes an array of arithmetic logic unit (ALU) circuits. A user programmable interconnect architecture is superimposed on the array of ALU circuits. One or more interface circuits comprising digital-to-analog (D/A) converters or analog-to-digital (A/D) converters are provided on (or off) the integrated circuit to interface to off-chip analog input signals and provide off-chip analog output signals. Other functional circuit blocks, such as programmable read only memory (PROM) or Random Access Memory (RAM) circuits may also be disposed on the integrated circuit die. Circuitry is provided to program the interconnections between the interface circuits and the ALU circuits and between individual ones of the ALU circuits, as well as to define the specific functions of the individual ALU circuits.
The architecture of the present invention avoids the Von Neuman bottle neck characteristic of prior art systems by eliminating the need for sequential instructions. Each ALU circuit of the present invention may be user customized to act like the mathematical equivalent of an analog circuit element. The individual ALU circuits are interconnected to one another and to A/D and D/A interface circuits by user-programmable interconnect elements.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of the architecture for an illustrative field programmable digital signal processing integrated circuit according to a preferred embodiment of the present invention.
FIG. 2a 2A is a block diagram of an illustrative ALU circuit suitable for inclusion in the field programmable digital signal processing integrated circuit according to the present invention.
FIG. 2b 2B is a state diagram which discloses in detail the operation of the control circuit portion of the ALU circuit of FIG. 2a 2A.
FIG. 3 is a schematic diagram of an architecture for a bus interchange which can perform a single or multibit shift operation.
FIG. 4a 4A is a schematic diagram of a simple inverting analog amplifier.
FIG. 4b 4B is an equivalent block diagram of the amplifier of FIG. 4a 4A implemented according to the present invention.
FIG. 4c 4C is an equivalent block diagram of the amplifier of FIG. 4a 4A implemented according to the present invention and including a logarithmic feedback element.
FIG. 5 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4b 4B for a sinusoidal input waveform.
FIG. 6 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4b 4B for a square input waveform.
FIG. 7a 7A is a schematic diagram of a variation of the amplifier circuit of FIG. 4a 4A.
FIG. 7b 7B is an equivalent block diagram of the amplifier of FIG. 7a 7A implemented according to the present invention in a manner which avoids pipelining distortion in the output.
FIG. 8 is a graph showing the input and output voltages of the circuit of FIG. 7b 7B for 1 MHz sine wave input.
FIG. 9 is a graph showing the input and output voltages of the circuit of FIG. 7b 7B for 1 MHz square wave input.
FIG. 10 is a block diagram of an illustrative analog shift register configured using the architecture of the present invention.
FIGS. 11a 11A and 11b 11B are examples of a series RLC tuned circuit implemented according to the present invention.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
Those of ordinary skill in the art will realize that the following description of the present invention is illustrative only and not in any way limiting, Other embodiments of the invention will readily suggest themselves to such skilled persons.
Referring first to FIG. 1, a block diagram is presented of the architecture for an illustrative field programmable digital signal processing integrated circuit according to a preferred embodiment of the present invention. The architecture of the present invention is integrated on a single piece of semiconductor material, and may be fabricated using known semiconductor processing technology, such as CMOS technology, which is presently preferred.
The field programmable digital signal processing integrated circuit 10 of the present invention is built around an array of arithmetic logic unit (ALU) circuits shown at reference numerals 12-1 through 12-9. For purposes of illustration, arithmetic logic units 12-1 through 12-9 are shown arranged as a regular array comprising three rows and three columns of ALU circuits. Those of ordinary skill in the art will readily observe that the architecture and arrangement of FIG. 1 is illustrative only and not limiting, in that such skilled persons will readily recognize that other numbers of ALU circuits and other layout arrangements may be employed.
At least one analog-to-digital (A/D) converter and at least one digital-to-analog (D/A) converter circuit may be optionally disposed on the integrated circuit along with the ALU circuits. In the illustrative embodiment of FIG. 1, two A/D circuits 14-1 and 14-2 and two D/A circuits 16-1 and 16-2 are shown. In an actual embodiment of the integrated architecture of the present invention, A/D converters 14-1 and 14-2 and D/A converters 16-1 and 16-2 will probably be located near the periphery of the integrated circuit die upon which the architecture 10 of the present invention is disposed, but those of ordinary skill in the art will understand that placement of these devices is largely a matter of design choice. Such elements may even be located off chip in certain applications.
As in any integrated circuit, a plurality of input/output (I/O) pins are provided for supplying power to the integrated circuit and for transporting electrical signals onto and off of the integrated circuit. The number of I/O pins provided on any actual embodiment of the architecture of the present invention will be purely a matter of design choice. A group of such I/O pins is depicted as a single I/O block 18, but those of ordinary skill in the art will recognize that I/O block 18 represents a plurality of I/O pins.
Other functional circuit blocks may be disposed in the integrated circuit along with the other previously-described elements. For example, and as shown in FIG. 1, PROM devices 20-1 and 20-2 are shown disposed in the integrated circuit architecture 10 of the present invention. Those of ordinary skill in the art will realize that other types of circuit elements, such as RAM and ROM circuits, may be usefully employed in the architecture of the present invention.
Finally, a user-programmable interconnect architecture is superimposed upon the aforementioned circuit elements. The user-programmable interconnect architecture is used to connect the aforementioned circuit elements to one another and to the I/O pins.
User-programmable interconnect architectures include a plurality of interconnect conductors which may be connected to one another, to inputs and outputs of the various circuit elements, and to the I/O pins by user-programmable interconnect elements. These user-programmable interconnect elements may take several forms as is known in the art. Examples of such elements include antifuses, of which there are numerous known examples, such as those disclosed in U.S. Pat. Nos. 4,899,205, and 5,070,384, and 5,181,096, and pass transistors, such as disclosed in the architecture described in U.S. Pat. No. 4,870,302. Those of ordinary skill in the art will recognize that these examples are non-exhaustive and merely illustrate the state of the user-programmable interconnect element art. Unless specifically noted otherwise herein, the meaning of the term user-programmable interconnect element as used herein shall be construed to cover all forms of such interconnect elements. The structure, design, and use of such user-programmable interconnect elements is well known in the art and will not be recited herein.
In FIG. 1, the user-programmable interconnect architecture is shown diagrammatically as horizontal interconnect conductors 22 and vertical interconnect conductors 24 which are distributed throughout and among the circuit elements of FIG. 1. Those of ordinary skill in the art will recognize that FIG. 1 is very general in this respect. The lines identified by reference numerals 22 and 24 in the drawing figure are not intended to represent individual interconnect conductors but rather represent groups of conductors. An actual arrangement of interconnect conductors useful for employment in the present invention will be disclosed in subsequent figures and text herein.
In actual embodiments of the architecture of the present invention, some of the conductors will be segmented and some conductors may run the entire length or width of the array of circuit elements in the architecture. Individual user programmable interconnect elements will be connected between selected adjacent segments of the interconnect conductors to selectively lengthen them, and other individual user-programmable interconnect elements will be positioned between intersecting horizontal and vertical segments of the interconnect conductors. Nonexhaustive examples of the segmenting of individual interconnect conductors are seen in U.S. Pat. Nos. 4,870,302, 4,758,745, and 5,073,729.
Those of ordinary skill in the art will understand that care must be taken in the design of the segmentation of the interconnect conductors. Normally, output signals from an ALU circuit will be passed to a nearest neighbor ALU immediately above, below, or to either side. However, some circuits (such as reactive circuits) need to feed the terms back very quickly, making short busses necessary. In addition, a signal must occasionally be fed a long distance as is the case of for an AGC (automatic gain control) signal. Long buses will be needed to be used for these signals. Fortunately these are often slow responding signals and will not limit the circuit speed. Those of ordinary skill in the art will understand that it is preferable that as few user-programmable interconnect elements as possible should be interposed in a single signal path to minimize signal delay.
Although, in a normal circuit configuration defined by a user, most of the interconnect conductors comprising the interconnect architecture are shown on the digital side of the circuit, i.e., between the outputs of A/D converters 14-1 and 14-2 and the inputs of D/A converters 16-1 and 16-2, there are situations where it becomes advantageous to have access to the internal interconnect conductor groups from outside of the integrated circuit. According to one aspect of the present invention, the interconnect conductor groups may communicate with the I/O pins, either directly, as shown in FIG. 1 by leftmost and rightmost vertical interconnect conductor groups 24 entering I/O block 18, or through appropriate input and output buffers as is known in the art. This feature of the present invention allows a number of integrated circuits according to the present invention to be connected together to form larger circuits, which may be clocked together as will be described further herein.
Referring now to FIG. 2a 2A, the structure and organization of a presently preferred single ALU circuit 12 suitable for use in the architecture of the present invention is depicted in block diagram form. ALU circuit 12 may be configured using standard CMOS building blocks for circuits of this type. Those of ordinary skill in the art will recognize that other ALU circuits and variations of the circuit presented in FIG. 2a 2A are useable in the present invention.
According to a presently preferred embodiment of the present invention, ALU circuit 12 includes an a first 2:1 multiplexer 26 and a second 2:1 multiplexer 28. Both the first and second multiplexers 26 and 28 are n-bits wide, where n is the width of the data byte used by the ALU circuit 12. The byte size used in any actual embodiment of the invention could be from 2-64 bits wide and will be dictated by resolution, size, and other design considerations. A typical byte size might be, for example, 8 bits. Practically a data byte would be the width of the A/D and D/A converters used. This would be for instance 8 or 10 bits in the case of Video D/A converters and 18 bits for Audio D/A converters.
For some applications however, variations on this structure may be necessary. For example, the voltage in tuned reactive circuits is Q (quality factor) times higher than the input voltage. Typically a Q may be as high as 100, which would require an extra 8 bits to be added to the ALU circuits 12 to accommodate the voltage, resulting in 16 to 18 bits for Video D/A converters. If the programmable circuit is optimized for reactive circuits, only the internal nodes of the reactive circuits need be this size. The rest of the ALU circuit 12 data paths could be 8 to 10 bits wide. Another solution to this problem would be to configure all of the ALU circuits 12 to be 8 to 10 bits wide and to program an AGC circuit consisting of a peak detector, a comparator and gain adjust circuit into the circuit to reduce the input signal amplitude to the reactive circuit module, thereby preventing the ALU circuit 12 from overflowing. Those of ordinary skill in the art will envision numerous other similar modifications of the basic architecture of the present invention.
Referring again to FIG. 2a 2A, the data inputs (A and B) of first 2:1 multiplexer 26 are connected to n-wide input busses 34 and 36, and the data inputs (C and D) of second 2:1 multiplexer 28 are connected to n-wide input busses 32 and 34. Numerous other configurations are possible, but it is preferred that the input busses physically exit the ALU circuit 12 in different directions to maximize the interconnect possibilities. For example, one end of input busses 30, 32, 34, and 36 might exit the ALU block horizontally and one end may exit vertically to permit connection to both horizontal and vertical interconnect conductors in the interconnect matrix of the integrated circuit, thus allowing for greater interconnect possibilities. This is shown diagrammatically in FIG. 1 in the region of ALU circuit 12-1 at reference numerals 30a, 32a, and 34a. While only one ALU circuit 12-1 is shown having such an input structure in FIG. 1, in order to avoid cluttering up the drawing, those of ordinary skill in the art will recognize that it is preferable for all ALU circuits to be similarly configured.
The control inputs 38 and 40 of first and second 2:1 multiplexers 26 and 28 are brought to an interconnect matrix which includes conductor 42 carrying the Vcc potential for the integrated circuit, conductor 44 carrying ground potential, and general interconnect conductors 46, 48, and 50. The small circles in the interconnect matrix at the intersections of control inputs 38 and 40 and conductors 42, 44, 46, 48, and 50 represent user programmable interconnect elements, such as antifuses or pass transistors. Those of ordinary skill in the art will realize that the arrangement shown allows maximum flexibility in that the control inputs 38 and 40 of the multiplexers 26 and 28 can be hardwired to Vcc or ground to preselect the data source or can be hardwired to data sources via one of general interconnect conductors 46, 48, or 50 to dynamically alter the signal sources during circuit operation.
Those of ordinary skill in the art will recognizer recognize that the multiplexed inputs of the ALU circuit circuits 12 permit greater interconnect flexibility. Such persons will also recognize that, in some applications, these circuit elements will not be necessary.
The outputs of first and second 2:1 multiplexers 26 and 28 are directed to negate circuits 52 and 54. The function of negate circuits 52 and 54 is to selectively invert the data state of the input, and the circuits may be configured from exclusive OR gates as is known in the art. The control inputs 56 and 58 of negate circuits 52 and 54 are brought into the interconnect matrix, thus allowing maximum flexibility of the negate function.
The outputs of negate circuits 52 and 54 drive the Latch A latches 60 and 62. The outputs of Latch A latches 60 and 62 form the input terms for adder 64. Adder 64 may be a conventional multibit adder circuit. The output of adder 64 drives the input of Latch B latch 66. The output of Latch B latch 66 is connected to output bus 68.
The Latch A latches 60 and 62 and Latch B latch 66 are controlled by a control circuit 70. The purpose of control circuit 70 is to synchronize the operation of the ALU circuit to assure that the operation of the circuit is coordinated with the arrival of the correct data to be processed by the ALU circuit. Control circuit 70 has a clock (CLK) input 72, an enable (EN) input 74 and an input-ready in (INRIN) input 76. These inputs are incorporated into an interconnect matrix including two clock lines CLKA line 78, CLKB line 80, and three general interconnect conductors 82, 84, and 86. The input lines 72, 74 and 76 are connectable to any of lines 78, 80, 82, 84 and 86 by the user programmable interconnect elements shown as small circles at the intersections of the lines 78, 80, 82, 84 and 86 and the input lines 72, 74 and 76. Those of ordinary skill in the art will recognize that the connectivity choices shown in FIG. 2a 2A are only illustrative, and that the actual choices in an architecture built in accordance with the teachings of the present invention will be dictated largely as a matter of design choice.
Control circuit 70 has four outputs. Output A (line 88) drives the clocks of the Latch A Latches 60 and 62, and output B (line 90) drives the clock of the Latch B latch 66. INROUT line 92 is used for asynchronous connection of modules and is an input-read output signal which would be connected to the input-read (INRIN) input of the module connected upstream so that the upstream module will release data on the next clock. DATARDY line 94 is a data ready output used to indicate that data is valid for the next module downstream to read.
Those of ordinary skill in the art will recognize that, by using the negate circuits 52 and 54 and the multiplexers 26 and 28, the ALU circuit 12 of FIG. 2a 2A may be configured to perform the customary logical functions performed by ALU circuits.
Referring now to FIG. 2b 2B, a state diagram is presented, showing in detail the operation of the control circuit 12 portion of the ALU circuit of FIG. 2a 2A. Those of ordinary skill in the art will recognize that synchronous stages will not need to utilize the INRIN and INROUT lines 76 and 92. Asynchronous stages, however, will use the INRIN and INROUT lines 76 and 92 at the interface. Occasional bytes may be lost, but this should not affect the overall operation of any circuits configured using the architecture of the present invention. Lost bytes may be averaged out by (A+B)/2 of subsequent data bytes until smoothness level is achieved, so long as the number of data samples per cycle are is adequate.
Those of ordinary skill in the art will recognize that variations of the architecture of the ALU module 12 of the present invention are possible and are intended to fall within the scope of the present invention. For example, internal memory could be provided in the ALU modules 12 for instructing them to perform more than one function and thus increase their flexibility. However, such skilled persons will recognize that, in its limit, such an embodiment will suffer from the Von Neuman bottleneck problem of prior art architectures.
The organization of the interconnect architecture of the present invention makes it possible to utilize the interconnect itself to perform mathematical functions such as multiply and divide. This feature of the present invention is advantageous in that such operations may be performed in the same clock cycle as the operations performed by the ALU circuit whose output is driving the interconnect conductors.
The speed will be limited by the rate at which the ALU circuits can perform an addition (subtraction) and a multiplication (division). The multiplication and division are the mathematical processes that take the most time. If, however, the application circuit is designed to use circuit elements such as resistors, capacitors, inductors etc. in units of the power of 2, i.e., 2, 4, 8, 16, etc., the multiplication and division may be digitally represented by a shift left or a shift right operation.
As previously mentioned, these shifts can be built into the interconnect architecture. An exemplary scheme for performing such an operation is shown in FIG. 3. FIG. 3 shows a plurality of horizontal interconnect conductors 22-1 through 22-6 intersecting a plurality of vertical interconnect conductors 24-1 through 24-6. At each intersection, a transistor 96-1 through 96-36 is connected between the horizontal and vertical interconnect conductors. The gates of diagonally-situated ones of the transistors are connected together to one of gate lines 98-1 through 98-11
Those of ordinary skill in the art will appreciate that transfer of data from conductors 22-1 through 22-6 to corresponding ones of 24-1 to 24-6 will take place when gate line 98-6 is activated. Data can be shifted one bit in a first direction in the transfer if gate line 98-5 is activated, two bits if gate line 98-4 is activated, three bits if gate line 98-3 is activated, and so on. Similar shifting will take place a selected number of bits in the other direction if one of gate lines 98-7 through 98-11 is selected.
Those of ordinary skill in the art will recognize that this bit shifting technique can be implemented by other user-programmable interconnect devices such as antifuses. In such an embodiment, intersecting conductive lines may be connected by antifuses and the bit shifting to the left or right may be accomplished by selective programming of the antifuses.
A bus interchange like that depicted in FIG. 3 may be placed at the intersection of horizontal and vertical interconnect conductors such as 22 and 24 and may also be employed to connect an input bus or an output bus of an ALU circuit to the horizontal and vertical interconnect busses of the interconnect architecture. It is apparent that the multiplication and division operations implemented by the shift function disclosed herein will take no significant time, and will certainly occur in the same clock cycle used to operate the driving ALU circuit. Hence those of ordinary skill in the art will appreciate that the architecture of the present invention can perform functions with the same approximate speed as high speed analog operational amplifiers.
As an example of the use of this technique, an ALU circuit functioning as a digital resistor receives two multibit digital values representing the voltages across its terminals and outputs a multibit digital value representing the current through it by the function I=(VA−VB)/R, where R represents its resistance. The value of R as any power of 2 may be preprogrammed into the ALU circuit by shifting the output bus one or more bit positions. This function could be achieved in one clock cycle and the digital resistor performs the same function on each clock cycle, i.e. subtract two input numbers and divide by a preprogrammed constant. Hence the architecture of the present invention eliminates the need for program storage. Similarly a capacitor would be V=Vo+(I/C), where the inputs are currents and the output is a voltage. The division operation for calculating capacitances whose values are powers of 2 is automatically performed as a result of a bit shift of one or more places in the opposite direction from that for a multiplication operation. Similar simple functions exist for inductors and transformers and operational amplifiers, comparators, ideal diodes, switches or multiplexers, which are the building blocks of analog electronics.
In an integrated circuit of the present invention, the user-programmed interconnect of the digital ALU circuits would be a one-to-one map of the analog equivalent. The additional integration of digital signals is simple because the digital gates would be made of the same type of transistors for digital circuits. The digital modules may use similar logic as is currently available in Gate arrays, FPGA's FPGAs and PAL's PALs. The interconnection of the analog elements may of course be made in the same manner as used in Gate arrays, FPGA's FPGAs and PAL's PALs.
An integrated circuit according to the present invention is easily customizable, suitable for mixing analog and digital functions, and can be extremely fast, capable of working with analog signals in the RF and Video frequency ranges. The limiting frequency will likely be the rate of A/D and D/A conversions at the boundaries of the system. Flash converters currently work in the tens of megahertz. The A/D and D/A converters could either be on chip or off chip depending on the desire of the designed/manufacturer.
Referring now to FIGS. 4a 4A and 4b 4B, a simple design of an inverting unity gain amplifier is shown as an example of the operation of the architecture of the present invention. FIG. 4a 4A is a schematic diagram of the analog equivalent circuit including two one ohm resistors, a 40 nF capacitor, and an amplifier having a slew rate of 0.25 V/VIN. FIG. 4b 4B is a block diagram of the digital equivalent circuit as implemented in the architecture of the present invention. An analog input voltage is supplied to A/D converter 100, which presents its output to ALU 102, programmed to behave as the resistor R1 in the circuit of FIG. 4a 4A. ALU 104 is programmed to behave as capacitor C, ALU 106 is programmed to behave as resistor R2, and ALU 108 is programmed to behave as the amplifier element. The entire circuit is driven by a 100 MHz clock 110. ALU 102 (resistor 1R1) computes the value I1=(VIN−V1)/1 Ω. ALU 104 (capacitor C) computes the value V1=V1prev+(I1+I2)(10 nsec/40 nF), where V1prev is the voltage from the previous clock cycle and 10 nsec is the period of the clock signal. ALU 106 (resistor 2R2) computes the value I2=(VOUT−V1)/1 Ω. Finally, ALU 108 (the amplifier) computes the value VOUT=(VOUTprev+(−0.25)V1).
If one or (if necessary) both of the PROM elements 20-1 or 20-2 are used in place of the feedback loop of the amplifier, special non-linear transforms, such as logarithmic output of the amplifier, can be implemented. The data stored at each address is simply the log of the address value. Such a variation of the amplifier circuit is shown at FIG. 4c 4C. Those of ordinary skill in the art will recognize that the log function generator 114 may be implemented by use of a ROM look-up table.
FIG. 5 is a graph showing the waveforms of the signal input and signal output waveform of the circuit for a sinusoidal input waveform. It may be seen from FIG. 5 that the output of the amplifier is somewhat “phase shifted” due to the pipelining time for the data through the ALU system which emulates the analog amplifier.
FIG. 6 is a graph showing the waveforms of the signal input and signal output waveform of the circuit of FIG. 4b 4B for a square input waveform. The damped overshoot characteristic which is typical of analog amplifiers may be seen on the output waveform.
According to another aspect of the present invention, re-arranging the architecture of the emulated amplifier circuit can eliminate the distortion exhibited by the circuit of FIG. 4b 4B which is apparent in FIGS. 5 and 6. Referring now to FIGS. 7a 7A and 7b 7B, an alternate configuration can be configured by employing a slower master clock and using the data-valid (INR and OUTR) connections of the ALU circuits. For convenience, the same reference numerals are used in the circuits of FIGS. 4b 4B and 7b 7B, but the capacitor C has a value of 60 nF and the amplifier has a gain of 2.
In the circuit of FIG. 7b 7B, the calculations in the R1 and R2 ALU circuits (reference numerals 102 and 106) are performed first. Specifically, R1 ALU calculates II=(VIN−V1)/1 Ω. and R2 ALU calculates I2=(VOUT−V1)/1 Ω. The C ALU (reference numeral 104) calculates V1=V1prev+(I1+I2)(30 nsec/60 nF). This ALU is not clocked until the OUTR outputs of R1 and R2 ALU circuits 102 and 106 are true, indicating that the data at their outputs is valid. The AMP amplifier ALU 108 calculates the value VOUT=VOUTprev−2V1 and is not clocked until the OUTR output of ALU circuit 104 is true.
FIGS. 8 and 9 are graphs showing the input and output voltages of the circuit of FIG. 7b 7B for 1 MHz sine and square wave inputs, respectively. Those of ordinary skill in the art will recognize that, while the phase of the output voltages are lagging the input voltages, the square wave output is completely free of overshoot. Such skilled persons will also recognize that, due to the slower clocking speed (i.e., 33 MHz as opposed to 100 MHz for the circuit of FIG. 4b 4B), fewer data points are used to define the output function.
Another common problem encountered in analog electronics is that various parts of a complex signal must often be kept in phase while utilizing different circuit paths. A typical example of such a situation is in color television where the luminance information is routed through a delay line while the chrominance information is processed.
The architecture of the present invention may be used to implement an analog shift register as shown in FIG. 10, thus making possible any length delay without phase alteration. In the example of FIG. 10, three ALU modules 120, 122 and 124 are shown connected as an analog shift register. The ALU modules are configured to compute the function (V1+0)/1, by connecting the B input busses of each to ground and the A input busses of each module to the output bus of the preceding ALU module in the chain. This technique may be used to configure an analog shift register chain of arbitrary length, although only three stages are shown in FIG. 10.
The present invention may also be employed to simulate tuned circuits. Tuned circuits have to be designed with a specific frequency or continuum of frequencies, not just a factor of a square root of two (f=½πsqrtLC), as would be the case were where L and C are limited to values equal to powers of 2. In digitally emulated tuned circuits according to the present invention, the actual value of the circuit element is also a function of the frequency at which the circuit is clocked. If the number that is output is the value of a current, then the time period of the ALU clock signal will represent a current multiplied by time. Therefore the circuit output value is an amount of charge or Q.
As an example, a capacitor ALU having a digital value 1, clocked at a clock frequency of 100 MHz will be have a value of C/clock frequency, or 10 nanofarads. Hence the actual value of the circuit elements will be set by the clock frequency of the ALU. This feature of the invention provides an added advantage in that the band pass frequency of a tuned circuit configured according to the present invention will change with the clock frequency. Using this feature of the present invention, applications such as frequency synthesizers and spectrum analyzers can be easily implemented.
Those of ordinary skill in the art will recognize that resonant circuits that have fractionally different resonant frequencies from one another will employ different clock frequencies in the same integrated circuit. It is apparent therefore that care must be taken to guarantee that the ALU circuits running at different frequencies will not read input values from neighboring ALU circuits during data transitions and thus read undetermined values.
One technique to avoid this problem in the circuits configured according to the present invention is to make a small FIFO of, for example, three signal bytes. This would require the use of three ALU circuits, unless the ALU circuits are optimized to perform this function. The load signal is determined by the output of one ALU circuit and the dump signal would be determined by the input ALU running at a different frequency. If the FIFO is full, one byte is erased and the next byte loaded. If the FIFO is empty, then the last byte is kept for the next read cycle. This is, of course, only one of many ways to perform this function. Another possible method is to design the ALU circuits with hand shaking such that the waiting module will not perform any function on the next clock cycle if the adjacent module is not ready to send or receive the data.
Work has been done in the past in an attempt to design processor arrays to speed up applications. These This class of machines are is called MIMD or SIMD (multiple instruction multiple data or single instruction multiple data). The MIMD and SIMD machines do not use interconnect to perform operations such as multiplication and division, and instead utilize the processor engines to perform these functions in the traditional manner. Nor do they utilize the concept of varying the processor clock frequency to vary the calculation result, as is employed in the present invention. Nor does any of this prior work disclose or suggest the idea of programming the interconnect to represent an analog function to run in real time. Also the processors in these arrays are very complex and are therefore stuck with subject to the undesirable Von Neuman bottleneck, which is an undesirable characteristic thereof discussed above. The architecture of the present invention by its very nature requires each adder/shifter to perform only the one single function so that there is no data bottleneck. This provides constitutes a significant advantage over the prior art.
Another advantage of modeling an analog circuit with an array of adders and shifters with programmable interconnect is that general integer arithmetic can be easily performed by combining adder/shifters. Hence the end user can design his device to multiply or divide a value by any integer when necessary. Since analog circuits typically move a signal along a circuit path with few feedback terms the additional time required for the integer arithmetic may not slow down the circuit as this architecture will basically pipeline the calculation so long as the calculation is not in a high speed feedback term.
The architecture of the present invention could be implemented in an FPGA but the modules in these devices are small and designed for logic functions, typically one bit wide. Hence many modules would have to be used to make a 10 bit adder and the interconnect architectures in FPGA devices do not provide a sufficient number of lines to efficiently implement the shift function in the interconnect. Hence the circuit cost per analog function will be high and the speed will be much slower. Additionally, the modules in an FPGA are not designed to accept signals arriving asynchronously with the clock signal.
Circuits that utilize feedback that is running at the signal frequency, such as an RLC circuit where the components interact to form a tuned circuit represent the limiting frequency of the performance of this invention. This is caused by a phase shift between the signal and the reaction to that signal which represents at best one clock delay. For these applications the circuit will be more stable if the modules are clocked in series rather than in parallel. This of course causes the maximum operating frequency of the circuit to be limited (divided) by a factor of the number of series clock pulse pulses used. Such a clocking scheme is useful for such applications for the Z transform for the specific circuit to be solved and applied to the module array as opposed to the just placing the circuit elements one to each module.
Two examples of a simple series RLC tuned circuit implemented using the architecture of the present invention are shown in FIGS. 11a 11A and 11b 11B. Turning first to the embodiment of FIG. 11a 11A the straightforward placement requires four ALU modules 130, 132, 134, and 136, driven by four sequential clocks CLK1, CLK2, CLK3, and CLK4. The circuit is envisioned as an input node impressed with a voltage Vin in series with an inductance L in series with a resistance R in series with a capacitance C to ground. ALU module 130, driven by CLK1, computes Vin−V2prev, where V2prev is the voltage at the node joining the inductance L and resistance R at the last clock cycle. ALU module 132, driven by CLK2, computes iprev+Δi, where iprev is the current through the RLC circuit at the previous clock cycle and Δi is the change in current to the current clock cycle. The current is obtained by dividing the output of ALU module 130 by L (as noted in FIG. 11a 11A). As taught herein, this may be done by the bit shifting technique disclosed with reference to FIG. 3 and the accompanying disclosure.
ALU module 134, driven by CLK3, computes V1 prev+i/C, where V1 prevV1prev +iC, where V 1prev is the voltage at the node connecting the resistance R to the capacitance C at the previous clock cycle and i/C is simply the current i (output of ALU module 132 divided by the capacitance C (: as noted in FIG. 11a 11A) by the bit shifting technique. ALU module 136, driven by CLK4, computes V1+iR V1 +iR, where V1V1 is the voltage at the node connecting the resistance R to the capacitance C at the current clock cycle and iR is simply the current i (output of ALU module 132 multiplied by the resistance R (as noted in FIG. 11a 11A) by the bit shifting technique.
As shown in FIG. 11b 11B, judicious placement of the Z transform reduces the number of clocks to two and increases the number of ALU modules to five. The implementation of FIG. 11b 11B doubles the maximum frequency. In this sense the present invention can be imagined as a parallel programmable Z transform.
In the embodiment of FIG. 11b 11B, the input voltage Vin is applied to ALU module 140, driven by CLK2, which computes X=Vin-vcVin-Vc, where Vc is the voltage across capacitance C in the present cycle. ALU module 142, driven by CLK1, computes the function Y=(X−IprevR)/L, where X is the result of the calculation of ALU module 140, Iprev is the current of the previous cycle, and R and L are the resistance and inductance, respectively. ALU module 144, driven by CLK1, computes Z=Iprev−Iprev/LC, where L and C are inductance and capacitance, respectively. ALU module 146, driven by CLK2, computes the function I=Y+Z, where I is the current of the present cycle, and Y and Z are the results of the last calculations made by ALU modules 142 and 144, respectively. ALU module 148, driven by CLK1, computes Vc, the voltage across the capacitance in the present cycle, as Vcprev, the voltage across the capacitance C in the previous cycle, minus the quantity Iprev/C.
Those of ordinary skill in the art will recognize that The the term IR at one input to ALU module 142 may be obtained by the bit shifting techniques taught herein. Similarly, the terms Iprev/C Of of ALU module 148 and Iprev/LC at the input to ALU module 144 may be similarly obtained. While this bit shifting multiply and divide technique does allow use of a minimal number of ALU modules, those of ordinary skill in the art will recognize that the values of the multiplicands and divisors are limited to integers which are powers of 2, i.e., 2 . . . 4 . . . 8 . . . 16 2, 4, 8, 16, etc. Such skilled persons will recognize that divider and multiplier circuits may be configured from multiple ALU modules to provide more flexibility of component value choices at the expense of greater circuit complexity and ALU utilization.
Another nice feature of the present invention is that many circuit elements normally employed in analog circuits can be eliminated since no biasing, impedance matching, or buffering is necessary. A double balanced mixer configured using the architecture of the present invention requires only one module to perform the function IVC1+V2I/2 where ABS(X)is the absolute value of X. The module is programmed to add the two numbers and if the most significant bit is negative (signed integer) then perform the two's complement that the module would normally due for a subtract. The divide by two is done on the output to the interconnect. Hence three coupling transformers, two diodes and an amplifier are modeled by one module.
Variations in gain for circuits such as AGC circuits can be implemented as powers of two by designing the module interconnect with transistors that can be switched in the circuit, as opposed to hard wired interconnect with antifuses. Another method of varying gain would be to provide a resistor divider programmed into the modules wherein the resistor value is set in SRAM memory in the module that can be changed on the fly.
Sine wave oscillators are made with this architecture with only two clocks, one representing the L and one the C. Since these devices are mathematical there is no series resistance and therefore no damping of the oscillation. Hence the oscillator, once started, runs forever. By setting its initial conditions, the phase and amplitude are determined for every cycle until reset. Phase looked loops are therefore simple to implement. An excellent application would be synchronizing a 3.58 MHz oscillator to the color burst signal of a NTSC (TV) signal for decoding the color information. The clock frequency will change the oscillator frequency and the amplitude can be loaded at any time to synchronize with the input signal.
As mentioned earlier this technology can combine analog and digital functions with ease. An example would be the combining of a digital phase locked loop to generate the various clock frequencies required to run the different circuit blocks. This would reduce the need to input these signals from off chip and therefore increase speed and reduce pin count and power consumption,
Another feature of this architecture is that once the signal is digitized a more complex system can be built by merely adding more chips. These would be designed such that all the digital outputs for a signal are adjacent and would match up to the inputs of another chip, allowing communicating pins from chips to be placed side by side. Lead lengths and capacitance loading are therefore minimized, allowing communication of the signal from one chip to the next at the maximum possible frequency. The signal need not be converted back to analog until necessary to return the signal to the real world (i.e. speaker or video monitor). Of course if the information goes to a computer then the signal need never be converted back to analog.
The modules may be designed with gated inputs to control the time a signal is loaded as is the case in synchronizing a signal or to steer the input as is the case with multiplexers.
If desired this architecture could integrate integer divide and multiply in the modules to perform the calculations thereby eliminating the requirement of using component values of a power of two. Clock frequencies would not therefore need to be fractionally different. This of course would lower the speed and density of the chip but it will still be considerably faster the than conventional DSP chips as there still would be no Von Neuman bottleneck.
Some chips could be specialized by designing more specialized modules, optimized for special applications. For example, such a module could be optimized for the series RLC circuit example disclosed herein and could speed up the maximum chip operating frequency by about a factor of two.
From the above description, those of ordinary skill in the art will recognize that a field programmable version of the architecture of the present invention could be used to make prototype circuits, and that mask programmable versions of the present architecture could be used in a production environment. Such mask programmable versions fall within the scope of the present invention.
While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.

Claims (24)

What is claimed is:
1. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
at least one analog to digital converter disposed in said integrated circuit, said at least one analog to digital converter having an analog input and a plurality of digital outputs;
at least one digital to analog converter disposed in said integrated circuit, said at least one digital to analog converter having a plurality of digital inputs and an analog output;
a plurality of ALU (arithmetic logic units) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit;
interconnect means for making programmable connections between the interconnect conductors, said inputs and outputs of said ALU circuits, said digital inputs and outputs of said at least one analog to digital converter, said digital inputs and outputs of said at least one digital to analog converter, and said input/output pads, at least some of said interconnect means being user programmable; , the n output lines of at least one of said ALU circuits intersecting n interconnect conductors to form intersections, said n interconnect conductors connectable to the input lines of other ones of said ALU circuits;
user-programmable interconnect elements disposed at said intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between data on said n output lines of said at least one of said ALU circuits and said n interconnect conductors, whereby multiplication and division operations may be performed on said data by virtue of programmable interconnection.
2. The field programmable, digital signal processing integrated circuit of claim 1, further including:
at least one PROM circuit disposed in said integrated circuit, said PROM including a plurality of address input lines and a plurality of data output lines; and
interconnect means for connecting selected ones of said interconnect conductors to said plurality of address input lines and said plurality of data output lines of said at least one PROM circuit.
3. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
at least one analog to digital converter disposed in said integrated circuit, said at least one analog to digital converter having an analog input and a plurality of digital outputs;
at least one digital to analog converter disposed in said integrated circuit, said at least one digital to analog converter having a plurality of digital inputs and an analog output;
a plurality of ALU circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit;
the n input lines of either of said first and second input bus of at least one of said ALU circuits intersecting n interconnect conductors in sets of ones of said interconnect conductors connectable to an output bus of another one of said ALU circuits to form intersections;
user-programmable interconnect elements disposed at said intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between data on said n interconnect conductors and on said n input lines of either of said first and second input bus of at said at least one of said ALU circuits and , whereby multiplication and division operations may be performed on said data by virtue of interconnection.
4. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
at least one analog to digital converter disposed in said integrated circuit, said at least one analog to digital converter having an analog input and a plurality of digital outputs;
at least one digital to analog converter disposed in said integrated circuit, said at least one digital to analog converter having a plurality of digital inputs and an analog output;
a plurality of ALU circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit;
interconnect means for making programmable connections between the interconnect conductors, said inputs and outputs of said ALU circuits, said digital inputs and outputs of said at least one analog to digital converter, said digital inputs and outputs of said at least one digital to analog converter, and said input/output pads, at least some of said interconnect means comprising user-programmable interconnect elements;
said n input lines of the first input bus of at least one of said ALU circuits intersecting n interconnect conductors in first sets of ones of said interconnect conductors connectable to an output bus of another one of said ALU circuits to form first intersections;
first user-programmable interconnect elements disposed at said first intersections; and
means for programming ones of said first user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between first data on said n interconnect conductors of said first sets of said interconnect conductors and the n input lines of the first input bus of said at least one of said ALU circuits, whereby multiplication and division operations may be performed on said first data by virtue of interconnection.
5. The field programmable, digital signal processing integrated circuit of claim 4, further wherein:
said n input lines of the second input bus of at least one of said ALU circuits intersecting intersect n interconnect conductors in second sets of ones of said interconnect conductors connectable to an output bus of another one of said ALU circuits to form second intersections; and further comprising:
second user-programmable interconnect elements disposed at said second intersections; and
means for programming ones of said second user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between second data on said n interconnect conductors of said second set of said interconnect conductors and the n input lines of the second input bus of said at least one of said ALU circuits, whereby multiplication and division operations may be performed on said second data by virtue of interconnection.
6. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
a plurality of ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
user-programmable interconnect elements at said intersections of one of said second sets of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between data on said output bus of said one of said ALU circuits and said interconnect conductors to perform multiplication and division operations by 2m.
7. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
a plurality of ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
user-programmable interconnect elements at said intersections of one of said second sets of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between data on said first input bus of said one of said ALU circuits and said interconnect conductors to perform multiplication and division operations by 2m.
8. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
a plurality of ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to said ALU circuit on n first input lines, a second input bus for supplying a second n-bit input byte to said ALU circuit on n second input lines, and an output bus for supplying an n-bit output byte from said ALU circuit on n output lines;
means for individually defining the operation to be performed by each of said ALU circuits;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means, wherein one of said first sets of intersections having user-programmable interconnect elements at said intersections;
user-programmable interconnect elements at said intersections of first and second ones of first sets of intersections between said input buses of at least one of said ALU circuits and said interconnect conductors; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places in either of the left and right directions between data on said first input bus of said one of said ALU circuits and said interconnect conductors to perform multiplication and division operations by 2m , and to cause a bit shift of m places in either of the left and right directions between data on said second input bus of said one of said ALU circuits and said interconnect conductors to perform multiplication and division operations by 2m.
9. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
a plurality of ALU (arithmetic logic unit) circuit disposed in the integrated circuit, said at least one ALU circuit having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, a first control output connected to latch control inputs of said first and second latches, and a second control output connected a latch control input of said third latch; and
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means.
10. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
a first multiplexer having a first set of n input lines connected to said first input bus and a second set of n input lines connected to a third input bus, n output lines, and a control input connectable to said interconnect conductors;
a second multiplexer having a first set of n input lines connected to said second input bus and a second set of n input lines connected to a fourth input bus, n output lines, and a control input said interconnect conductors;
a first inverting circuit having n inputs connected to said n outputs from said first multiplexer, n outputs connected to said n input lines of said first latch, and a control input connectable to said interconnect conductors;
a second inverting circuit having n inputs connected to said n outputs from said first multiplexer, n outputs connected to said n input lines of said second latch, and a control input connectable to said interconnect conductors.
11. The field programmable, digital signal processing integrated circuit of claim 10, wherein said control circuit further includes an input-read output and a data ready output.
12. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at first and second ones of said first sets of intersections between said first and second input buses of said at least one of said ALU circuits and said interconnect conductors; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said first input bus of said at least one of said ALU circuits and said interconnect conductors to perform a division operation by 2m , and to cause a bit shift of m places between said second input bus of said at least one of said ALU circuits and said interconnect conductors to perform a division operation by 2m.
13. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at first and second ones of said fourth sets of intersections, said first input bus of said at least one ALU circuit connectable to said second ones of said interconnect conductors in said first one of said fourth set of intersections, and said second input bus of said at least one ALU circuit connectable to said second ones of said interconnect conductors in said second one of said fourth set of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said first ones of said interconnect conductors in said first one of said fourth set of intersections and said first input bus of said at least one of said ALU circuits to perform a division operation by 2m , and to cause a bit shift of m places between said first ones of said interconnect conductors in said second one of said fourth set of intersections and said second input bus of said at least one of said ALU circuits to perform a division operation by 2m.
14. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at said second set of intersections between said output bus of said at least one ALU circuit and said interconnect conductors; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said output bus of said at least one of said ALU circuits and said interconnect conductors to perform a division operation by 2m.
15. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at one of said fourth sets of intersections, said output bus of said at least one ALU circuit connectable to said first ones of said interconnect conductors in said one of said fourth sets of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said output bus of said at least one of said ALU circuits and said second ones of said interconnect conductors in said one of said fourth sets of intersections to perform a division operation by 2m.
16. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at first and second ones of said first sets of intersections between said first and second input buses of said at least one of said ALU circuits and said interconnect conductors; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said first input bus of said at least one of said ALU circuits and said interconnect conductors to perform a multiplication operation by 2m , and to cause a bit shift of m places between said second input bus of said at least one of said ALU circuits and said interconnect conductors to perform a multiplication operation by 2m.
17. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at first and second ones of said fourth sets of intersections, said first input bus of said at least one ALU circuit connectable to said second ones of said interconnect conductors in said first one of said fourth set of intersections, and said second input bus of said at least one ALU circuit connectable to said second ones of said interconnect conductors in said second one of said fourth set of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said first ones of said interconnect conductors in said first one of said fourth set of intersections and said first input bus of said at least one of said ALU circuits to perform a multiplication operation by 2m , and to cause a bit shift of m places between said first ones of said interconnect conductors in said second one of said fourth set of intersections and said second input bus of said at least one of said ALU circuits to perform a multiplication operation by 2m.
18. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at said second set of intersections between said output bus of said at least one ALU circuit and said interconnect conductors; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said output bus of said at least one of said ALU circuits and said interconnect conductors to perform a multiplication operation by 2m.
19. The field programmable, digital signal processing integrated circuit of claim 9, further comprising:
user-programmable interconnect elements at one of said fourth sets of intersections, said output bus of said at least one ALU circuit connectable to said first ones of said interconnect conductors in said one of said fourth sets of intersections; and
means for programming ones of said user-programmable interconnect elements to cause a bit shift of m places between said output bus of said at least one of said ALU circuits and said second ones of said interconnect conductors in said one of said fourth sets of intersections to perform a multiplication operation by 2m.
20. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
first, second, third and fourth ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, a first control output connected to latch control inputs of said first and second latches, and a second control output connected to a latch control input of said third latch;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
said first input bus of said first ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said first ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said first ALU circuit connected to a clock line by said control circuit in said first ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said second input bus of said first ALU circuit to perform a division operation by 2m;
said first input bus of said second ALU circuit programmably connected to said output bus of said first ALU circuit through said plurality of interconnect conductors, said second input bus of said second ALU circuit programmably connected to said output bus of said third ALU circuit through said plurality of interconnect conductors, and said second ALU circuit connected to said clock line by said control circuit in said second ALU circuit;
means for causing a bit shift of j places between said data on said output bus of said first ALU circuit and said first input bus of said second ALU circuit to perform a multiplication operation by 2j;
means for causing a bit shift of k places between said data on said output bus of third ALU circuit and said second input bus of said second ALU circuit to perform a multiplication operation by 2k;
said first input bus of said third ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, said second input bus of said third ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said third ALU circuit connected to said clock line by said control circuit in said third ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first input bus of said third ALU circuit to perform a division operation by 2m;
means for causing a bit shift of h places between said data on said output bus of said fourth ALU circuit and said second input bus of said third ALU circuit to perform a multiplication operation by 2h;
said first and second input buses of said fourth ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said fourth ALU circuit connected to said clock line by said control circuit in said fourth ALU circuit; and
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first input bus of said fourth ALU circuit to perform a division operation by 2m.
21. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
first, second, and third ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, a first control output connected to latch control inputs of said first and second latches, and a second control output connected to a latch control input of said third latch;
a memory device disposed in the integrated circuit, said memory device having a first n-bit address bus, a second n-bit address bus to a second latch having n input lines, and an output bus;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
said first input bus of said first ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said first ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said first ALU circuit connected to a clock line by said control circuit in said first ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said second input bus of said first ALU circuit to perform a division operation by 2m;
said first input bus of said second ALU circuit programmably connected to said output bus of said first ALU circuit through said plurality of interconnect conductors, said second input bus of said second ALU circuit programmably connected to said output bus of said memory device through said plurality of interconnect conductors, and said second ALU circuit connected to said clock line by said control circuit in said second ALU circuit;
means for causing a bit shift of j places between said data on said output bus of said first ALU circuit and said first input bus of said second ALU circuit to perform a multiplication operation by 2j;
said first input bus of said memory device programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, said second input bus of said memory device programmably connected to said output bus of said third ALU circuit through said plurality of interconnect conductors, and said memory device connected to said clock line;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first input bus of said PROM to perform a division operation by 2m;
means for causing a bit shift of h places between said data on said output bus of said third ALU circuit and said second input bus of said PROM to perform a multiplication operation by 2h;
said first and second input buses of said third ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said third ALU circuit connected to said clock line by said control circuit in said third ALU circuit; and
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first and second input busses of said third ALU circuit to perform a division operation by 2m.
22. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
first, second, third and fourth ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, an input ready (INR) output, an output ready (OUTR) output, a first control output connected to latch control inputs of said first and second latches, and a second control output connected to a latch control input of said third latch;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
said first input bus of said first ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said first ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said first ALU circuit connected to a clock line by said control circuit in said first ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said second input bus of said first ALU circuit to perform a division operation by 2m;
said first input bus of said second ALU circuit programmably connected to said output bus of said first ALU circuit through said plurality of interconnect conductors, said second input bus of said second ALU circuit programmably connected to said output bus of said third ALU circuit through said plurality of interconnect conductors, and said second ALU circuit connected to said OUTR outputs of said first and third ALU circuits by said control circuit in said second ALU circuit;
means for causing a bit shift of j places between said data on said output bus of said first ALU circuit and said first input bus of said second ALU circuit to perform a multiplication operation by 2j;
means for causing a bit shift of k places between said data on said output bus of third ALU circuit and said second input bus of said second ALU circuit to perform a multiplication operation by 2k;
said first input bus of said third ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, said second input bus of said third ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said third ALU circuit connected to said clock line by said control circuit in said third ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first input bus of said third ALU circuit to perform a division operation by 2m;
means for causing a bit shift of h places between said data on said output bus of said fourth ALU circuit and said second input bus of said third ALU circuit to perform a multiplication operation by 2h;
said first and second input buses of said fourth ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said fourth ALU circuit connected to said OUTR output of said second ALU circuit by said control circuit in said fourth ALU circuit; and
means for causing a bit shift of m places between said data on said output bus of said second ALU circuit and said first input bus of said fourth ALU circuit to perform a division operation by 2m.
23. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
first, second, third and fourth ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, a first control output connected to latch control inputs of said first and second latches, and a second control output connected to a latch control input of said third latch;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
said first input bus of said first ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said first ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said first ALU circuit connected to a first clock line by said control circuit in said first ALU circuit;
said first input bus of said second ALU circuit programmably connected to said output bus of said first ALU circuit through said plurality of interconnect conductors, said second input bus of said second ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, and said second ALU circuit connected to a second clock line by said control circuit in said second ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said first ALU circuit and said first input bus of said second ALU circuit to perform a division operation by 2m;
said first input bus of said third ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, said second input bus of said third ALU circuit programmably connected to said output bus of said third ALU circuit through said plurality of interconnect conductors, and said third ALU circuit connected to a third clock line by said control circuit in said third ALU circuit;
means for causing a bit shift of j places between said data on said output bus of said second ALU circuit and said first input bus of said third ALU circuit to perform a division operation by 2j;
said first input bus of said fourth ALU circuit programmably connected to said output bus of said second ALU circuit through said plurality of interconnect conductors, said second input bus of said fourth ALU circuit programmably connected to said output bus of said third ALU circuit through said plurality of interconnect conductors, and said fourth ALU circuit connected to a fourth clock line by said control circuit in said fourth ALU circuit; and
means for causing a bit shift of k places between said data on said output bus of said second ALU circuit and said first input bus of said fourth ALU circuit to perform a multiplication operation by 2k.
24. A field programmable, digital signal processing integrated circuit, comprising:
a plurality of input/output pads;
first, second, third, fourth and fifth ALU (arithmetic logic unit) circuits disposed in the integrated circuit, each of said ALU circuits having a first input bus for supplying a first n-bit input byte to a first latch having n input lines, a second input bus for supplying a second n-bit input byte to a second latch having n input lines, an adder having a first set of n inputs connected to n outputs of said first latch and a second set of n inputs connected to n outputs of said second latch, a third latch having n inputs connected to n outputs of said adder and n outputs connected to an output bus, and a control circuit having a clock input, an enable input, an input-ready input, a first control output connected to latch control inputs of said first and second latches, and a second control output connected to a latch control input of said third latch;
a plurality of interconnect conductors in the integrated circuit, said plurality of interconnect conductors forming first sets of intersections with said input busses of said ALU circuits, second sets of intersections with said output busses of said ALU circuits, and third sets of intersections with input/output pads, and first ones of said plurality of interconnect conductors forming fourth sets of intersections with second ones of said plurality of interconnect conductors, at least some of said first, second, third and fourth sets of intersections being programmable by user-programmable interconnect means;
said first input bus of said first ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said first ALU circuit programmably connected to said output bus of said fifth ALU circuit through said plurality of interconnect conductors, and said first ALU circuit connected to a first clock line by said control circuit in said first ALU circuit;
said first input bus of said second ALU circuit programmably connected to said output bus of said first ALU circuit through said plurality of interconnect conductors, said second input bus of said second ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said second ALU circuit connected to a second clock line by said control circuit in said second ALU circuit;
means for causing a bit shift of m places between said data on said output bus of said fourth ALU circuit and said second input bus of said second ALU circuit to perform a multiplication operation by 2m;
said first input bus of said third ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, said second input bus of said third ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said third ALU circuit connected to said second clock line by said control circuit in said third ALU circuit;
means for causing a bit shift of j places between said data on said output bus of said fourth ALU circuit and said first input bus of said third ALU circuit to perform a division operation by 2j;
said first input bus of said fifth ALU circuit programmably connected to said plurality of interconnect conductors, said second input bus of said fifth ALU circuit programmably connected to said output bus of said fourth ALU circuit through said plurality of interconnect conductors, and said fifth ALU circuit connected to said second clock line by said control circuit in said fifth ALU circuit; and
means for causing a bit shift of k places between said data on said output bus of said fourth ALU circuit and said second input bus of said fifth ALU circuit to perform a division operation by 2k.
US08/946,928 1993-08-20 1997-10-08 Field programmable digital signal processing array integrated circuit Expired - Lifetime USRE37048E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/946,928 USRE37048E1 (en) 1993-08-20 1997-10-08 Field programmable digital signal processing array integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/109,727 US5457644A (en) 1993-08-20 1993-08-20 Field programmable digital signal processing array integrated circuit
US08/946,928 USRE37048E1 (en) 1993-08-20 1997-10-08 Field programmable digital signal processing array integrated circuit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08/109,727 Reissue US5457644A (en) 1993-08-20 1993-08-20 Field programmable digital signal processing array integrated circuit

Publications (1)

Publication Number Publication Date
USRE37048E1 true USRE37048E1 (en) 2001-02-06

Family

ID=22329232

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/109,727 Ceased US5457644A (en) 1993-08-20 1993-08-20 Field programmable digital signal processing array integrated circuit
US08/946,928 Expired - Lifetime USRE37048E1 (en) 1993-08-20 1997-10-08 Field programmable digital signal processing array integrated circuit

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US08/109,727 Ceased US5457644A (en) 1993-08-20 1993-08-20 Field programmable digital signal processing array integrated circuit

Country Status (3)

Country Link
US (2) US5457644A (en)
EP (1) EP0639816A3 (en)
JP (1) JPH0786921A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030025839A1 (en) * 2001-07-31 2003-02-06 Shuhua Xiang Address generation for video processing
US20040036500A1 (en) * 2002-08-08 2004-02-26 Bratt Adrian Harvey Semiconductor devices
US20040242261A1 (en) * 2003-05-29 2004-12-02 General Dynamics Decision Systems, Inc. Software-defined radio
US20050094677A1 (en) * 2003-10-30 2005-05-05 Lsi Logic Corporation Optimized interleaver and/or deinterleaver design
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US20050206784A1 (en) * 2001-07-31 2005-09-22 Sha Li Video input processor in multi-format video compression system
US20050213661A1 (en) * 2001-07-31 2005-09-29 Shuhua Xiang Cell array and method of multiresolution motion estimation and compensation
US20050216608A1 (en) * 2001-07-31 2005-09-29 Xu Wang Multiple channel data bus control for video processing
US20050223410A1 (en) * 2001-07-31 2005-10-06 Sha Li Video processing control and scheduling
US20050228970A1 (en) * 2001-07-31 2005-10-13 Shuhua Xiang Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US7035332B2 (en) 2001-07-31 2006-04-25 Wis Technologies, Inc. DCT/IDCT with minimum multiplication
US7085320B2 (en) 2001-07-31 2006-08-01 Wis Technologies, Inc. Multiple format video compression
US20120117357A1 (en) * 2010-11-08 2012-05-10 Electronics And Telecommunications Research Institute Energy tile processor
US8438522B1 (en) 2008-09-24 2013-05-07 Iowa State University Research Foundation, Inc. Logic element architecture for generic logic chains in programmable devices
US8661394B1 (en) 2008-09-24 2014-02-25 Iowa State University Research Foundation, Inc. Depth-optimal mapping of logic chains in reconfigurable fabrics

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272465B1 (en) 1994-11-02 2001-08-07 Legerity, Inc. Monolithic PC audio circuit
US5761099A (en) * 1994-11-04 1998-06-02 Altera Corporation Programmable logic array integrated circuits with enhanced carry routing
JP2738338B2 (en) * 1995-04-24 1998-04-08 日本電気株式会社 Fault tolerant system
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US6144327A (en) 1996-08-15 2000-11-07 Intellectual Property Development Associates Of Connecticut, Inc. Programmably interconnected programmable devices
DE19651075A1 (en) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like
DE19654595A1 (en) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
DE19654593A1 (en) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Reconfiguration procedure for programmable blocks at runtime
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654846A1 (en) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
JP3961028B2 (en) * 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Data flow processor (DFP) automatic dynamic unloading method and modules with 2D or 3D programmable cell structure (FPGA, DPGA, etc.)
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
US5959466A (en) 1997-01-31 1999-09-28 Actel Corporation Field programmable gate array with mask programmed input and output buffers
DE19704044A1 (en) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Address generation with systems having programmable modules
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (en) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Method for self-synchronization of configurable elements of a programmable module
DE19704742A1 (en) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internal bus system for DFPs, as well as modules with two- or multi-dimensional programmable cell structures, for coping with large amounts of data with high networking effort
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
JP3000961B2 (en) * 1997-06-06 2000-01-17 日本電気株式会社 Semiconductor integrated circuit
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE69841256D1 (en) 1997-12-17 2009-12-10 Panasonic Corp Command masking for routing command streams to a processor
DE69827589T2 (en) * 1997-12-17 2005-11-03 Elixent Ltd. Configurable processing assembly and method of using this assembly to build a central processing unit
JP2003526129A (en) 1997-12-17 2003-09-02 エリクセントリミティド Implementation of a multiplier in a programmable array
DE19861088A1 (en) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Repairing integrated circuits by replacing subassemblies with substitutes
DE19807872A1 (en) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Method of managing configuration data in data flow processors
JP3721888B2 (en) * 1998-12-04 2005-11-30 セイコーエプソン株式会社 Portable electronic device and method for controlling portable electronic device
US7003660B2 (en) 2000-06-13 2006-02-21 Pact Xpp Technologies Ag Pipeline configuration unit protocols and communication
US6557092B1 (en) 1999-03-29 2003-04-29 Greg S. Callen Programmable ALU
WO2000062421A1 (en) * 1999-04-14 2000-10-19 Nokia Networks Oy Digital filter and method for performing a multiplication based on a look-up table
US6732126B1 (en) * 1999-05-07 2004-05-04 Intel Corporation High performance datapath unit for behavioral data transmission and reception
WO2000068775A1 (en) * 1999-05-07 2000-11-16 Morphics Technology Inc. Apparatus and method for programmable datapath arithmetic arrays
DE10081643D2 (en) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequence partitioning on cell structures
US6246258B1 (en) * 1999-06-21 2001-06-12 Xilinx, Inc. Realizing analog-to-digital converter on a digital programmable integrated circuit
US7346644B1 (en) 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7119576B1 (en) 2000-09-18 2006-10-10 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US9626325B2 (en) * 2000-10-06 2017-04-18 Pact Xpp Technologies Ag Array processor having a segmented bus system
ATE437476T1 (en) 2000-10-06 2009-08-15 Pact Xpp Technologies Ag CELL ARRANGEMENT WITH SEGMENTED INTERCELL STRUCTURE
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
EP1220108A3 (en) * 2000-10-26 2005-01-12 Cypress Semiconductor Corporation Programmable circuit
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6990555B2 (en) 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6650141B2 (en) * 2001-12-14 2003-11-18 Lattice Semiconductor Corporation High speed interface for a programmable interconnect circuit
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
EP1483682A2 (en) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurable processor
US7506328B2 (en) * 2002-02-11 2009-03-17 Xerox Corporation Method and system for optimizing performance of an apparatus
ATE402446T1 (en) 2002-02-18 2008-08-15 Pact Xpp Technologies Ag BUS SYSTEMS AND RECONFIGURATION PROCEDURES
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
JP3934493B2 (en) * 2002-06-28 2007-06-20 富士通株式会社 Integrated circuit and system development method
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
WO2004053716A2 (en) * 2002-12-12 2004-06-24 Koninklijke Philips Electronics N.V. Dataflow-synchronized embedded field programmable processor array
US7157934B2 (en) * 2003-08-19 2007-01-02 Cornell Research Foundation, Inc. Programmable asynchronous pipeline arrays
JP4700611B2 (en) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Data processing apparatus and data processing method
DE602005014446D1 (en) * 2004-02-12 2009-06-25 Nxp Bv TUNG WITH IO CONNECTIONS
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
JP2009524134A (en) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Hardware definition method
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US7937683B1 (en) 2007-04-30 2011-05-03 Innovations Holdings, L.L.C. Method and apparatus for configurable systems
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9250313B2 (en) * 2013-12-04 2016-02-02 Raytheon Company Electronically reconfigurable bandwidth and channel number analog-to-digital converter circuit for radar systems
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10915324B2 (en) * 2018-08-16 2021-02-09 Tachyum Ltd. System and method for creating and executing an instruction word for simultaneous execution of instruction operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US5107146A (en) * 1991-02-13 1992-04-21 Actel Corporation Mixed mode analog/digital programmable interconnect architecture
US5200751A (en) * 1989-06-26 1993-04-06 Dallas Semiconductor Corp. Digital to analog converter using a programmable logic array
US5231588A (en) * 1989-08-15 1993-07-27 Advanced Micro Devices, Inc. Programmable gate array with logic cells having symmetrical input/output structures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718057A (en) * 1985-08-30 1988-01-05 Advanced Micro Devices, Inc. Streamlined digital signal processor
US4952934A (en) * 1989-01-25 1990-08-28 Sgs-Thomson Microelectronics S.R.L. Field programmable logic and analogic integrated circuit
US5191242A (en) * 1991-05-17 1993-03-02 Advanced Micro Devices, Inc. Programmable logic device incorporating digital-to-analog converter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US5200751A (en) * 1989-06-26 1993-04-06 Dallas Semiconductor Corp. Digital to analog converter using a programmable logic array
US5231588A (en) * 1989-08-15 1993-07-27 Advanced Micro Devices, Inc. Programmable gate array with logic cells having symmetrical input/output structures
US5107146A (en) * 1991-02-13 1992-04-21 Actel Corporation Mixed mode analog/digital programmable interconnect architecture

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US6970509B2 (en) 2001-07-31 2005-11-29 Wis Technologies, Inc. Cell array and method of multiresolution motion estimation and compensation
US7184101B2 (en) 2001-07-31 2007-02-27 Micronas Usa, Inc. Address generation for video processing
US6996702B2 (en) * 2001-07-31 2006-02-07 Wis Technologies, Inc. Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US20050206784A1 (en) * 2001-07-31 2005-09-22 Sha Li Video input processor in multi-format video compression system
US20050213661A1 (en) * 2001-07-31 2005-09-29 Shuhua Xiang Cell array and method of multiresolution motion estimation and compensation
US20050216608A1 (en) * 2001-07-31 2005-09-29 Xu Wang Multiple channel data bus control for video processing
US20050223410A1 (en) * 2001-07-31 2005-10-06 Sha Li Video processing control and scheduling
US6981073B2 (en) 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US20030025839A1 (en) * 2001-07-31 2003-02-06 Shuhua Xiang Address generation for video processing
US7219173B2 (en) 2001-07-31 2007-05-15 Micronas Usa, Inc. System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time
US7142251B2 (en) 2001-07-31 2006-11-28 Micronas Usa, Inc. Video input processor in multi-format video compression system
US20050228970A1 (en) * 2001-07-31 2005-10-13 Shuhua Xiang Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
US7035332B2 (en) 2001-07-31 2006-04-25 Wis Technologies, Inc. DCT/IDCT with minimum multiplication
US7085320B2 (en) 2001-07-31 2006-08-01 Wis Technologies, Inc. Multiple format video compression
US20040036500A1 (en) * 2002-08-08 2004-02-26 Bratt Adrian Harvey Semiconductor devices
US20040242261A1 (en) * 2003-05-29 2004-12-02 General Dynamics Decision Systems, Inc. Software-defined radio
US20050094677A1 (en) * 2003-10-30 2005-05-05 Lsi Logic Corporation Optimized interleaver and/or deinterleaver design
US7502390B2 (en) * 2003-10-30 2009-03-10 Lsi Corporation Optimized interleaver and/or deinterleaver design
US8661394B1 (en) 2008-09-24 2014-02-25 Iowa State University Research Foundation, Inc. Depth-optimal mapping of logic chains in reconfigurable fabrics
US8438522B1 (en) 2008-09-24 2013-05-07 Iowa State University Research Foundation, Inc. Logic element architecture for generic logic chains in programmable devices
US20120117357A1 (en) * 2010-11-08 2012-05-10 Electronics And Telecommunications Research Institute Energy tile processor

Also Published As

Publication number Publication date
JPH0786921A (en) 1995-03-31
US5457644A (en) 1995-10-10
EP0639816A2 (en) 1995-02-22
EP0639816A3 (en) 1995-11-29

Similar Documents

Publication Publication Date Title
USRE37048E1 (en) Field programmable digital signal processing array integrated circuit
US6407576B1 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
Chou et al. FPGA implementation of digital filters
EP0456399A2 (en) Logic module with configurable combinational and sequential blocks
US6218876B1 (en) Phase-locked loop circuitry for programmable logic devices
US5781033A (en) Logic module with configurable combinational and sequential blocks
US4918641A (en) High-performance programmable logic device
US5338983A (en) Application specific exclusive of based logic module architecture for FPGAs
US6272646B1 (en) Programmable logic device having an integrated phase lock loop
US5835998A (en) Logic cell for programmable logic devices
US6747480B1 (en) Programmable logic devices with bidirect ional cascades
US6873182B2 (en) Programmable logic devices having enhanced cascade functions to provide increased flexibility
US6480045B2 (en) Digital frequency multiplier
US9287868B1 (en) Logic cell for programmable logic device
EP1092268B1 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
US7613760B1 (en) Efficient implementation of multi-channel integrators and differentiators in a programmable device
Roncella et al. Application of a systolic macrocell-based VLSI design style to the design of a single-chip high-performance FIR filter
EP0305583A1 (en) Multivalued ALU
LEE et al. A sliced first-quadrant second-order two-dimensional digital filter chip set for modular filter implementation
EP1705797A2 (en) Interconnection and input/output resources for programmable logic integrated circuit devices
Lam et al. Gallium arsenide bit-serial cells for digital filters
JPH03181225A (en) Externally synchronizing programmable device
GB2325072A (en) Programmable logic array

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: MORGAN STANLEY & CO. INCORPORATED, NEW YORK

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:WHITE ELECTRONIC DESIGNS CORP.;ACTEL CORPORATION;MICROSEMI CORPORATION;REEL/FRAME:025783/0613

Effective date: 20110111

AS Assignment

Owner name: MICROSEMI SOC CORP., A CALIFORNIA CORPORATION, CAL

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI CORP.-MEMORY AND STORAGE SOLUTIONS (F/K/

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI CORP.-ANALOG MIXED SIGNAL GROUP, A DELAW

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI SEMICONDUCTOR (U.S.) INC., A DELAWARE CO

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI COMMUNICATIONS, INC. (F/K/A VITESSE SEMI

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115

Owner name: MICROSEMI FREQUENCY AND TIME CORPORATION, A DELAWA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037558/0711

Effective date: 20160115