A programmable data arithmetic array includes a set of data buses and a matrix of data arithmetic units including fixed function units and programmable function units connected to the set of data buses. Bidirectional interconnect is positioned between the set of data buses and the matrix of data arithmetic units.
|
1. A datapath arithmetic array, comprising:
a plurality of data buses; a plurality of fixed function bit slice blocks coupled to said plurality of data buses and grouped into at least one fixed function datapath structure; a plurality of re-programmable function bit slice blocks coupled to said plurality of data buses and grouped into at least one re-programmable function datapath structure; and at least one control line in each datapath structure that is coupled to all bit slice blocks within the datapath structure.
2. The programmable datapath arithmetic array of
3. The programmable datapath arithmetic array of
4. The datapath arithmetic array of
5. The datapath arithmetic array of
6. The datapath arithmetic array of
a plurality of control lines coupled to each bit slice block in a datapath structure, wherein each of said plurality of control lines is not capable of being decoupled from any bit slice block within said datapath structure to which it is coupled.
7. The datapath arithmetic array of
8. The datapath arithmetic array of
at least one fixed function bit slice block is coupled to a first quantity of operand lines and a second quantity of control lines; and said fixed function bit slice block implements less than 2**N functions, where N is a sum of said first quantity of operand lines and said second quantity of control lines.
9. The datapath arithmetic array of
at least one re-programmable function bit slice block is coupled to a first quantity of operand lines and a second quantity of control lines; and said re-programmable bit slice block implements 2**N functions, where N is a sum of said first quantity of operand lines and said second quantity of control lines.
|
This application claims priority to the provisional application bearing serial No. 60/133,134 filed on May 7, 1999.
This invention relates generally to logic circuits that are used to perform computationally intensive tasks. More particularly, this invention relates to a hybrid logic circuit that is useful for computationally intensive tasks, such as wireless communications.
Programmable logic devices are widely used in the electronics industry. Conventional programmable logic devices typically comprise a general-purpose logic array and general-purpose interconnect. The typical logic array in general-purpose Field Programmable Gate Arrays (FPGAs) is designed to accommodate some random/control logic functionality and some structured/datapath logic functionality. Using FPGAs can be very inefficient when the programmed logic function comprises many datapath functions. Inefficient device utilization and performance degradation result when general-purpose random/control logic and routing resources are used for structured datapath functions. The more general-purpose the device architecture, the greater the inefficiency and performance degradation incurred by structured datapath functions.
In view of the foregoing, it would be highly desirable to provide a programmable architecture that improved the performance of structured datapath functions and improved device utilization efficiency.
A programmable datapath arithmetic array includes resources that are data buses connected to a matrix of data arithmetic units including fixed function units and programmable function units. In an exemplary embodiment, the programmable datapath arithmetic array includes only fixed function units. In another exemplary embodiment, the programmable datapath arithmetic array includes only programmable function units. Bidirectional interconnect is positioned between the data buses and the matrix of data arithmetic units to facilitate dynamic reconfiguration and operability of the programmable datapath arithmetic array.
Unlike field programmable gate arrays (FPGAs), the programmable datapath arithmetic array includes two organized logic resources, namely, datapath slices and datapath structures. In an exemplary embodiment, the programmable datapath arithmetic array comprises an array of datapath slices. For example, when the programmable datapath arithmetic array is a 1×N array, N represents the number of datapath slices. A datapath slice comprises an array of datapath structures. In an exemplary embodiment, if a datapath slice is a 1×M array, M represents the number of datapath structures. A datapath structure comprises an array of bit-slice blocks. In an exemplary embodiment, if a datapath structure is a 1×L array, L represents the number of bit-slice blocks. Bit-slice blocks comprise building blocks of the programmable datapath arithmetic array. A bit-slice block comprises a bit-specific portion and a common-control portion. In an exemplary embodiment, the programmable datapath arithmetic array comprises two types of datapath structures, namely fixed and re-programmable datapath structures. Fixed datapath structures implement a limited set of functions whereas re-programmable datapath structures implement a relatively larger set of functions.
The programmable datapath arithmetic array includes dedicated routing resources. Further, in a preferred embodiment, the programmable datapath arithmetic array comprises coarse-grained logic. In an exemplary embodiment, the programmable datapath arithmetic array is designed to facilitate and accelerate datapath functions. Examples of datapath functions are counters, incrementers, decrementers, shifters, scalers, adders, subtractors, accumulators, and decumulators. In an exemplary embodiment, datapath functions exhibit a uniformity of structure across all bits.
As shown in
The fixed function units 312 may have programmable interconnect to control width and depth attributes. Fixed function units 312 may perform identical or similar functions. Further, fixed function units 312, although fixed in function, may be programmable in width and/or depth. The fixed function unit programmable extensibility may be performed either within a fixed function unit 312 or by concatenating fixed function units 312. The invention provides fixed function units 312 and re-programmable function units 314 on a single device. A common datapath is used for both the fixed function units and the programmable function units.
The common control sub-block 310 of a bit-slice block 306 includes components common to all common control sub-blocks 310 in other bit-slice blocks 306 of the datapath structure 304. Further, components of all common control sub-blocks in a datapath structure are driven by common control inputs. In the case of a re-programmable datapath structure 304, the control inputs for the common control sub-blocks 310 are determined by the function programmed into the datapath structure 304.
Datapath structures 304 composed of fixed functionality are referred to as fixed function units 312 (FIG. 3B), or FFIUs. As illustrated in
In contrast, in a RFU, any control signal may be made dominant, thus, permitting a wider range of functions.
Although only bit-slice blocks having arithmetic objects (i.e., carry-sum function generators) are shown in
The architecture of the invention outperforms generic, reprogrammable logic because the fixed function units 312 provide a dedicated high-speed resource similar to ASIC logic. The invention outperforms fixed function ASIC logic, because the reprogrammable function units 314 provide dynamic and flexible resources similar to field programmable gate arrays.
Various embodiments of the programmable datapath arithmetic array of this invention are advantageous over existing systems because logic resources are explicit, logic resources can be fixed and/or reconfigurable, and routing resources are bit-width extensible (by n-bit multiples). Further, the programmable datapath arithmetic array of this invention allows higher performance datapath functions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the invention. In other instances, well known circuits and devices are shown in block diagram form in order to avoid unnecessary distraction from the underlying invention. Thus, the foregoing descriptions of specific embodiments of the present invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, obviously many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Patent | Priority | Assignee | Title |
10007636, | Oct 26 2000 | Cypress Semiconductor Corporation | Microcontroller programmable system on a chip |
10020810, | Oct 26 2000 | MONTEREY RESEARCH, LLC | PSoC architecture |
10097185, | Apr 17 2007 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
10248604, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Microcontroller programmable system on a chip |
10261932, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Microcontroller programmable system on a chip |
10466980, | Oct 24 2001 | MUFG UNION BANK, N A | Techniques for generating microcontroller configuration information |
10516397, | Apr 17 2007 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
10698662, | Nov 15 2001 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
10725954, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Microcontroller programmable system on a chip |
10826499, | Apr 17 2007 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
6911840, | Jun 06 2003 | XILINX, Inc. | Integrated circuit with overclocked dedicated logic circuitry |
7068071, | Jun 06 2003 | XILINX, Inc. | Integrated circuit with overclocked dedicated logic circuitry |
7737724, | Apr 17 2007 | MUFG UNION BANK, N A | Universal digital block interconnection and channel routing |
7761845, | Sep 09 2002 | MUFG UNION BANK, N A | Method for parameterizing a user module |
7765095, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Conditional branching in an in-circuit emulation system |
7770113, | Nov 19 2001 | MUFG UNION BANK, N A | System and method for dynamically generating a configuration datasheet |
7774190, | Nov 19 2001 | MONTEREY RESEARCH, LLC | Sleep and stall in an in-circuit emulation system |
7825688, | Mar 16 2004 | MONTEREY RESEARCH, LLC | Programmable microcontroller architecture(mixed analog/digital) |
7844437, | Nov 19 2001 | MUFG UNION BANK, N A | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
7893724, | Mar 22 2005 | RPX Corporation | Method and circuit for rapid alignment of signals |
8026739, | Apr 17 2007 | MUFG UNION BANK, N A | System level interconnect with programmable switching |
8040266, | Apr 17 2007 | MUFG UNION BANK, N A | Programmable sigma-delta analog-to-digital converter |
8049569, | Sep 05 2007 | MONTEREY RESEARCH, LLC | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
8067948, | Mar 27 2006 | MUFG UNION BANK, N A | Input/output multiplexer bus |
8069405, | Nov 19 2001 | MONTEREY RESEARCH, LLC | User interface for efficiently browsing an electronic document using data-driven tabs |
8069428, | Oct 24 2001 | MUFG UNION BANK, N A | Techniques for generating microcontroller configuration information |
8078894, | Apr 25 2007 | MUFG UNION BANK, N A | Power management architecture, method and configuration system |
8078970, | Nov 09 2001 | MONTEREY RESEARCH, LLC | Graphical user interface with user-selectable list-box |
8085067, | Dec 21 2005 | MONTEREY RESEARCH, LLC | Differential-to-single ended signal converter circuit and method |
8085100, | Feb 03 2006 | MONTEREY RESEARCH, LLC | Poly-phase frequency synthesis oscillator |
8089461, | Jun 23 2005 | MONTEREY RESEARCH, LLC | Touch wake for electronic devices |
8092083, | Apr 17 2007 | MUFG UNION BANK, N A | Temperature sensor with digital bandgap |
8103496, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Breakpoint control in an in-circuit emulation system |
8103497, | Mar 28 2002 | MONTEREY RESEARCH, LLC | External interface for event architecture |
8120408, | May 05 2005 | MONTEREY RESEARCH, LLC | Voltage controlled oscillator delay cell and method |
8130025, | Apr 17 2007 | MONTEREY RESEARCH, LLC | Numerical band gap |
8149048, | Oct 26 2000 | MUFG UNION BANK, N A | Apparatus and method for programmable power management in a programmable analog circuit block |
8176296, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Programmable microcontroller architecture |
8358150, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Programmable microcontroller architecture(mixed analog/digital) |
8370791, | Nov 19 2001 | MUFG UNION BANK, N A | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
8402313, | May 01 2002 | MONTEREY RESEARCH, LLC | Reconfigurable testing system and method |
8438522, | Sep 24 2008 | IOWA STATE UNIVERSITY RESEARCH FOUNDATION, INC | Logic element architecture for generic logic chains in programmable devices |
8462576, | Apr 17 2007 | MONTEREY RESEARCH, LLC | State-monitoring memory element |
8476928, | Apr 17 2007 | MUFG UNION BANK, N A | System level interconnect with programmable switching |
8499270, | Apr 25 2007 | MUFG UNION BANK, N A | Configuration of programmable IC design elements |
8516025, | Apr 17 2007 | MUFG UNION BANK, N A | Clock driven dynamic datapath chaining |
8533677, | Nov 19 2001 | MUFG UNION BANK, N A | Graphical user interface for dynamically reconfiguring a programmable device |
8555032, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Microcontroller programmable system on a chip with programmable interconnect |
8566761, | Nov 21 2011 | GLOBALFOUNDRIES Inc | Network flow based datapath bit slicing |
8661394, | Sep 24 2008 | IOWA STATE UNIVERSITY RESEARCH FOUNDATION, INC | Depth-optimal mapping of logic chains in reconfigurable fabrics |
8717042, | Mar 27 2006 | MUFG UNION BANK, N A | Input/output multiplexer bus |
8736303, | Oct 26 2000 | MONTEREY RESEARCH, LLC | PSOC architecture |
8793635, | Oct 24 2001 | MUFG UNION BANK, N A | Techniques for generating microcontroller configuration information |
8909960, | Apr 25 2007 | MUFG UNION BANK, N A | Power management architecture, method and configuration system |
9018979, | Apr 17 2007 | MUFG UNION BANK, N A | Universal digital block interconnection and channel routing |
9325320, | Apr 17 2007 | MUFG UNION BANK, N A | System level interconnect with programmable switching |
9448964, | May 04 2009 | MUFG UNION BANK, N A | Autonomous control in a programmable system |
9553588, | Apr 17 2007 | MUFG UNION BANK, N A | System level interconnect with programmable switching |
9564902, | Apr 17 2007 | MUFG UNION BANK, N A | Dynamically configurable and re-configurable data path |
9720805, | Apr 25 2007 | MUFG UNION BANK, N A | System and method for controlling a target device |
9766650, | Oct 26 2000 | MONTEREY RESEARCH, LLC | Microcontroller programmable system on a chip with programmable interconnect |
9843327, | Oct 26 2000 | MONTEREY RESEARCH, LLC | PSOC architecture |
9954528, | Oct 26 2000 | Cypress Semiconductor Corporation | PSoC architecture |
Patent | Priority | Assignee | Title |
4580215, | Mar 08 1983 | ALCATEL N V , A CORP OF THE NETHERLANDS | Associative array with five arithmetic paths |
4935734, | Sep 11 1985 | Freescale Semiconductor, Inc | Semi-conductor integrated circuits/systems |
5231588, | Nov 27 1989 | Lattice Semiconductor Corporation | Programmable gate array with logic cells having symmetrical input/output structures |
5329470, | Dec 02 1988 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
5398198, | Jul 30 1990 | Texas Instruments Incorporated | Single integrated circuit having both a memory array and an arithmetic and logic unit (ALU) |
5796623, | Oct 05 1988 | Quickturn Design Systems, Inc. | Apparatus and method for performing computations with electrically reconfigurable logic devices |
5943242, | Nov 17 1995 | Pact XPP Technologies AG | Dynamically reconfigurable data processing system |
5946219, | Oct 30 1996 | Atmel Corporation | Method and system for configuring an array of logic devices |
WO9821725, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 05 2000 | Morphics Technology, Inc. | (assignment on the face of the patent) | / | |||
Aug 11 2000 | WASSON, STEVEN L | Morphics Technology, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011136 | /0088 | |
Apr 13 2001 | Morphics Technology, Inc | GATX VENTURES, INC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 011712 | /0806 | |
Apr 13 2001 | Morphics Technology, Inc | VENTURE LENDING & LEASING III, INC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 011712 | /0806 | |
Apr 13 2001 | Morphics Technology, Inc | Silicon Valley Bank | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 011712 | /0806 | |
Sep 30 2002 | Silicon Valley Bank | Morphics Technology, Inc | TERMINATION OF SECURITY INTEREST | 013333 | /0624 | |
Sep 30 2002 | GATZ VENTURES, INC | Morphics Technology, Inc | TERMINATION OF SECURITY INTEREST | 013333 | /0624 | |
Sep 30 2002 | VENTURE LENDING & LEASING III, INC | Morphics Technology, Inc | TERMINATION OF SECURITY INTEREST | 013333 | /0624 | |
Apr 01 2003 | M DISSOLUTION CORPORATION FORMERLY KNOWN AS MORPHICS TECHNOLOGY, INC | Infineon Technologies AG | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014146 | /0100 | |
Aug 23 2010 | Silicon Valley Bank | Morphics Technology, Inc | RELEASE | 024906 | /0332 | |
Aug 23 2010 | GATX VENTURES, INC | Morphics Technology, Inc | RELEASE | 024906 | /0332 | |
Aug 23 2010 | VENTURE LENDING & LEASING III, INC | Morphics Technology, Inc | RELEASE | 024906 | /0332 |
Date | Maintenance Fee Events |
Jun 09 2004 | ASPN: Payor Number Assigned. |
Mar 02 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 03 2006 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Mar 04 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Mar 06 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 10 2005 | 4 years fee payment window open |
Mar 10 2006 | 6 months grace period start (w surcharge) |
Sep 10 2006 | patent expiry (for year 4) |
Sep 10 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 10 2009 | 8 years fee payment window open |
Mar 10 2010 | 6 months grace period start (w surcharge) |
Sep 10 2010 | patent expiry (for year 8) |
Sep 10 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 10 2013 | 12 years fee payment window open |
Mar 10 2014 | 6 months grace period start (w surcharge) |
Sep 10 2014 | patent expiry (for year 12) |
Sep 10 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |