The invention relates to reconfigurable logic, particularly to apparatus and method for reconfiguring logic using serially-interconnected multiplexers.
Various reconfigurable logic devices, such as field programmable gate arrays (FPGA) are available commercially, from companies such as Xilinx, Actel, and Altera. However, such conventional reconfigurable devices are limited in terms of programmability or functionality for realizing different logic structures.
For example, designers may implement logic in large multiplexers as programmable logic fabric using a tree like structure, as shown conventionally in
Accordingly, an improved approach for reconfigurable logic design is required.
The invention resides in reconfigurable logic using serially-interconnected multiplexers. Preferably, a decoder structure uses serial multiplexer chaining to provide larger multiplexers.
In particular, logic design apparatus and software-automated method provides serial multiplexer chains in a programmable logic fabric, wherein one or more element in the chain either selects the output of that element, or passes output from earlier element of the chain. The select line is a decoder structure or output from a configurable function generator that is configured at power-on to enable correct selection. Using such structure, larger multiplexer, including priority multiplexers, tristate buses, or larger look up tables (LUTs) can be created. These novel structures can implement a MUX of priority, non-priority, and/or tristate multiplexers.
a is a schematic drawing of prior-art tree structure used as a multiplexer.
b is a schematic drawing of 2-input MUX as implemented in one embodiment of the current invention.
a is a functional schematic drawing of a decoder as implemented in one embodiment of the current invention.
b is a schematic drawing of a decoder as implemented in one embodiment of the current invention with configuration bits fixed to a value. It shows an implementation of the current invention equivalent to the NAND structure depicted in
a is a logic equation representing two logical outcomes as defined by setting configuration bit I0 to either of two possible settings in a faster implementation of FPGA serial MUX chain. The path from MUX-in, I0, to MUX-out, MY, is made much faster comparatively by eliminating effectively one or more delay elements in alternative or currently in-circuit approaches.
b shows an implementation of the logic equation in
c is a schematic drawing of the carry select method to create a serial MUX chain with a fast path from I0 to MY. This configuration has 2 levels and highlights the path delay addition through logic elements.
a is a schematic drawing of tristate logic gate to be implemented using serial MUX chaining.
b is an equivalent schematic drawing of the tristate logic gate shown in
a is a schematic drawing of 6-input multiplexer structure to be implemented using serial MUX chaining.
b is an equivalent schematic drawing of the 6-input multiplexer shown in
In general, field programmable gate array (FPGA), and/or other reconfigurable logic may employ or otherwise configure a set of interconnected multiplexers (MUX), via a decoder or functionally equivalent structure preferably with serial chaining thereof to provide larger multiplexers or other desired logic.
As used herein, the term multiplexer, or MUX, is defined as any structure or the digital logic element used to perform multiplexing.
Serially coupled multiplexer chains preferably provide programmable logic fabric or equivalent digital behavior, where one or more element in the chain either selects the output of that element, or selects the output from an earlier element of such configurable chain. In particular, the value fed to a select line of such a logical chain element may be the output of a programmable decoder structure or the output from a configurable function generator that is configured at power-on to generate the desired selection.
Thus by using such scalable programmable logic architecture, larger multiplexer, including priority multiplexers, tristate buses and/or larger look up tables (LUTs) can be configured as desired to build, for example, prototype digital systems or combinatorial logic. Furthermore, these structures can be used to implement priority multiplexers, non-priority multiplexers, tristate multiplexers or other Boolean logic.
Optionally, serial MUX2 chain 211 with modified decoder structures of 213 can be coupled with one or more similar chains to implement even larger multiplexers. In such a case the number of select lines in each chain is commensurate with the number of inputs of that chain. For example, for two chains similar to 211 with eight inputs, it is possible to address the inputs on each chain with six select lines and appropriate configuration bits. Additionally, an n input multiplexer can be constructed using log2(n) select lines.
More particularly regarding decoder logic,
In one embodiment of the current invention, software can be written to translate symbolic or schematic designs into a layout of serially coupled multiplexers. This is useful in the implementation of an electronic design automation system typically used by circuit designers. Many logical elements can be constructed using serially coupled multiplexers, as illustrated in
In addition for illustration,
b is an implementation of a 2-input MUX (MUX2) chain programmable element; wherein the signal at S can be the output of other digital logic, programmable software application or firmware instructions coupled thereto. Hence in an FPGA application, a MUX2 chain may be implemented with other chain logic. In the case of a MUX2 chain element as depicted in
In a MUX chain, typically there are other logic elements. Such elements are present in the I0 to MY path. In the current invention, the path from I0 to MY is designed to be faster by avoiding delay causing logic elements in the carry-chains.
Optionally, extra MUX2 chains may be added to build one or more larger multiplexers. It is contemplated that the largest multiplexer may be limited by the number of select lines. Since configuration bits uniquely program each decoder, combinatorial math determines how many select lines are needed for an n-input multiplexer. In
Additionally, input I1 to the MUX2 chain can be the output of an n-input look-up-table (LUT). This MUX2 chain structure is flexible; it can also be used to implement more specific multiplexer structure such as the tristate structure depicted in
There is another input, the so-called IF signal, as called out in
a shows logic equation representing two logical outcomes as defined by setting configuration bit I0 to either of two possible settings in a faster implementation of FPGA serial MUX chain.
a schematic drawing shows a 6-input multiplexer structure.
Foregoing descriptions of specific embodiments of the invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to explain the principles and the application of the invention, thereby enabling others skilled in the art to utilize the invention in its various embodiments and modifications according to the particular purpose contemplated. The scope of the invention is intended to be defined by the claims appended hereto and their equivalents.
Number | Date | Country | |
---|---|---|---|
Parent | 11040633 | Jan 2005 | US |
Child | 12007705 | US |