For a more complete understanding of the embodiments of the present invention, reference is now made to the following description taken in conjunction with the accompanying drawings. Exemplary embodiments are explained in more detail below using the schematic figures of the drawing, in which:
In all figures of the drawings, elements and signals which are the same or have the same function have been provided with the same reference symbols—unless explicitly stated otherwise.
According to one embodiment, a single architecture of a mask programmable logic cell is usable as well as providing programmable, configurable FPGAs of a hard wired LUT-based FPGA and a MUX-based FPGA. According to one embodiment, only a set of single 2:1 multiplexers and 4:1 multiplexers are provided.
At least some embodiments of the present invention further provide a mask programmable logic cell equivalent of two different architectures: On one hand the MUX-based logic cells and on the other hand the LUT-based logic cells. These embodiments allow within the conversion flow for designing a configurable FPGA two different architectures. According to some embodiments, it is possible to use at least two different methodologies and/or architectures to program the mask programmable logic cell according to the present invention.
Some embodiments of the present invention are further directed to a basic cell that provides a fast design and manufacturing. This basic cell features high density comparable to cell based MPGA designs while retaining faster conversion from a FPGA over cell based MPGA.
Select embodiments of the present invention further provide only one generic basic cell within a MPGA-based array with a first and a second strip of transistors of opposite conductivity types to provide all required functionalities within an MPGA array. The basic cell may also be used to implement predefined and complex structures such as logic functions, flip-flops, multiplexers or even more complex circuits. A fast turnaround time may be achieved using an (emulated) MUX-based basic cell with a design or a map previously in another MUX-based FPGA.
Some embodiments of the invention provide a mask programmable logic cell for configuration of at least one either LUT-based or MUX-based configurable cell, comprising: a first set of 2:1 multiplexers each comprising at least two input terminals and at least one select terminal, a second set of 4:1 multiplexers each comprising at least four input terminals and at least two select terminals.
In a further embodiment each of the 4:1 multiplexers of the second set comprises three hierarchically arranged 2:1 multiplexers.
In a further embodiment an amount N of input terminals of the configurable cells is at least 4.
In a further embodiment the first set comprises six 2:1 multiplexers.
In a further embodiment the second set comprises three 4:1 multiplexers.
In a further embodiment the mask programmable logic cell further comprising at least one buffer.
In a further embodiment the mask programmable logic cell further comprising at least one inverter.
In a further embodiment the mask programmable logic cell further comprising one flip-flop.
Some embodiments of the invention provide a LUT-based configurable cell, comprising at least one LUT and configured by at least one mask programmable logic cell, each of the mask programmable logic cells comprising a first set of 2:1 multiplexers each comprising two input terminals and at least one select terminal and a second set of 4:1 multiplexers each comprising four input terminals and at least two select terminals.
In a further embodiment each of the 4:1 multiplexers of the second set comprises three hierarchically arranged 2:1 multiplexers.
In a further embodiment an amount N of input terminals of the configurable cells is at least 4.
In a further embodiment the first set comprises six 2:1 multiplexers and the second set comprises three 4:1 multiplexers.
In a further embodiment the LUT is configured by using one single mask programmable logic cell comprising six 2:1 multiplexers and three 4:1 multiplexers, wherein the 2:1 multiplexers and 4:1 multiplexers are arranged within a hierarchical multiplexer tree comprising four hierarchical levels.
In a further embodiment the LUT-based configurable cell further comprising a set of memory cells, wherein each of the memory cells is designed to store one input variable and to be connected with one input terminal of one of the 2:1 multiplexer within the lowest hierarchical level of the multiplexer tree.
In a further embodiment the LUT-based configurable cell further comprising a flip-flop arranged between an output of the LUT and a first output terminal of the LUT-based configurable cell.
In a further embodiment the output of the LUT is further connected to a second output terminal of the LUT-based configurable cell.
Some embodiments of the invention provide a MUX-based configurable cell arrangement, comprising at least one combinational MUX-based configurable cell implemented from resources of a mask programmable logic cell wherein the resources comprise a first set of 2:1 multiplexers each comprising two input terminals and at least one select terminal and a second set of 4:1 multiplexers each comprising four input terminals and at least two select terminals.
In a further embodiment each of the 4:1 multiplexers of the second set comprises three hierarchically arranged 2:1 multiplexers.
In a further embodiment the combinational MUX-based configurable cell comprises one 4:1 multiplexer, one logic OR-element and one logic AND-element.
Further embodiments of the invention provide a MUX-based configurable cell arrangement, comprising at least one sequential MUX-based configurable cell implemented from resources of a mask programmable logic cell wherein the resources comprise, a first set of 2:1 multiplexers each comprising two input terminals and at least one select terminal and a second set of 4:1 multiplexers each comprising four input terminals and at least two select terminals.
In a further embodiment each of the 4:1 multiplexers of the second set comprises three hierarchically arranged 2:1 multiplexers.
In a further embodiment the sequential MUX-based configurable cell comprises one 4:1 multiplexer, one logic OR-element, one logic AND-element and one flip-flop.
In a further embodiment the MUX-based configurable cell arrangement further comprises two combinational MUX-based configurable cell implemented from resources of the mask programmable logic cell and one sequential MUX-based configurable cell.
Some embodiments of the invention provide a configurable logic array comprising a plurality of configurable cells and further comprising: at least one LUT-based configurable cell, comprising at least one LUT implemented from resources of a mask programmable logic cell wherein the resources comprise a first set of 2:1 multiplexers each comprising two input terminals and at least one select terminal and a second set of 4:1 multiplexers each comprising four input terminals and at least two select terminals, and at least one MUX-based configurable cell arrangement, comprising at least one MUX-based configurable cell implemented from resources of the mask programmable logic cell.
In a further embodiment each of the 4:1 multiplexers of the second set comprises three hierarchically arranged 2:1 multiplexers.
Some embodiments of the invention provide a mask programmable basic cell for a mask programmable gate array (MPGA), the mask programmable basic cell comprising: a first and a second supply line, a first transistor strip to provide a first amount of first transistors of a first conductivity type, a second transistor strip to provide a second amount of second transistors of a second conductivity type opposite to the first conductivity type.
In a further embodiment the first and the second amount are equal.
In a further embodiment the first and second amount is five or ten.
In a further embodiment the first and second amount is four or six.
In a further embodiment the first amount is twice the second amount.
In a further embodiment the first transistors are arranged adjacent to the first supply line and the second transistors are arranged adjacent to the second supply line.
In a further embodiment the first and second transistors are field effect controlled transistors.
In a further embodiment the first transistors are PMOS transistors and the second transistors are NMOS transistors.
In a further embodiment adjacent transistors of the first transistors and second transistors comprise a doped region.
In a further embodiment all adjacent transistors of the first transistors and all adjacent transistors of the second transistors comprise respectively a doped region.
In a further embodiment all of the first transistors are arranged in a first row on the first transistor strip and all of second transistors are arranged in a second row on the second transistor strip.
In a further embodiment at least one of the first and second row is linear.
Some embodiments of the invention provide a mask programmable gate array, comprising: a plurality of input/output terminals, an array comprising a plurality of mask programmable basic cells, the layout of the mask programmable basic cell comprising a first and a second supply line, a first transistor strip to provide a first amount of first transistors of a first conductivity type, and a second transistor strip to provide a second amount of second transistors of a second conductivity type opposite to the first conductivity type.
In a further embodiment the first and the second amount is five or ten.
In a further embodiment the first amount is twice the second amount.
In a further embodiment the first transistors are arranged adjacent to the first supply line and the second transistors are arranged adjacent to the second supply line.
In a further embodiment the first transistors are PMOS transistors and the second transistors are NMOS transistors.
In a further embodiment the mask programmable gate array further comprising at least one first NAND-element having five input terminals and one output terminal, wherein each one of the NAND-elements is realized my means of one single mask programmable basic cell.
In a further embodiment the mask programmable gate array further comprising at least one logic element, each of the logic elements comprising one second NAND-element having two input terminals and one output terminal and one third NAND-element having three input terminals and one output terminal, wherein each one of the logic elements is realized my means of one single mask programmable basic cell.
In a further embodiment the mask programmable gate array further comprising at least one first NOR-element having five input terminals and one output terminal, wherein each one of the NOR-elements is realized by means of two single mask programmable basic cells which are arranged adjacent to each other to provide pMOS transistors with double width.
In a further embodiment the mask programmable gate array further comprising at least one MUX-based configurable cell comprising a 4:1 multiplexer, a OR-NOR-element and a AND-NAND-element each having two input terminals, wherein the OR-NOR-element has a first and second output to provide complementary signals and wherein the AND-NAND-element has a third and fourth output to provide complementary signals.
In a further embodiment each one of the MUX-based configurable cells is realized by means of four single mask programmable basic cells which are arranged adjacent to each other.
In a further embodiment each of the MUX-based configurable cells comprises one hierarchical arranged 4:1 multiplexer comprising three 2:1 multiplexers.
In a further embodiment the mask programmable gate array further comprising at least one inverter.
In a further embodiment the mask programmable gate array further comprising at least one D-flip flop, wherein each one of the D-flip flops is realized my means of at least two single mask programmable basic cells which are arranged adjacent to each other.
In a further embodiment the D-flip-flop is a settable D-flip-flop comprises two fourth NAND-elements, two 2:1 multiplexers and at least one inverter arranged in series connection to each other with the inverter arranged at the output side of the D-flip-flop and one 2:1 multiplexer and one NAND-element each form a stage of the D-flip-flop.
In a further embodiment the mask programmable gate array further comprising at least one common first supply line and at least one common second supply line commonly, each one of the common first and second supply lines is designed to be used by at least two mask programmable basic cells.
In a further embodiment the mask programmable gate array further comprising at least one data line to provide a static signal related to a first logical level.
Some embodiments of the invention provide a method for generating a mask for a mask programmable gate array using mask programmable logic cells for configuration of at least one either LUT-based or MUX-based configurable cell comprising: providing an user defined design of an integrated circuit; performing a logic synthesis depending on the defined design of the integrated circuit.
In a further embodiment the mask programmable logic cell comprising: a first set of 2:1 multiplexers each comprising at least two input terminals and at least one select terminal, a second set of 4:1 multiplexers each comprising at least four input terminals and at least two select terminals.
In a further embodiment the method further comprising after the step of performing a logic synthesis: performing a mask programmable routing for the integrated circuit; performing a mask generation for the integrated circuit; chip fabrication of the integrated circuit.
In a further embodiment the logic synthesis comprises the step of a multiplexer based synthesis followed by a corresponding first placement step.
In a further embodiment the logic synthesis comprises the step of a LUT-based synthesis followed by a corresponding second placement step.
In a further embodiment the method allows for the same integrated circuit a LUT-based synthesis and multiplexer based synthesis during the step of performing a logic synthesis.
In a further embodiment the design is a FPGA-circuit.
In a further embodiment the design is a MPGA-circuit.
In a further embodiment the method further comprising the generation of a manufacturer specific library which is adapted on the corresponding logic synthesis and which is constructed on the basis of a mask programmable basic cell.
In a further embodiment the mask programmable basic cell comprising: a first and a second supply line, a first transistor strip to provide a first amount of first transistors of a first conductivity type, a second transistor strip to provide a second amount of second transistors of a second conductivity type opposite to the first conductivity type.
In a further embodiment after the step of logic synthesis the method proceeds without a step of performing a mask programmable routing directly with the steps of: performing a mask generation for the integrated circuit; chip fabrication of the integrated circuit.
In the embodiment according to
While the present embodiment according to
A buffer 15 may be used to drive output signals having a high output load or output signals on long wired connections. A dedicated clock tree may be provided having high strength buffers 15 within the logic cell 10.
The function of an inverter 16 is to complement its input signal. For example, an input signal having a low voltage level is transferred to a signal having a high logic level and vice versa. The incorporation the inverter 16 within a logic cell 10 as shown in
The configuration of a mask programmable logic cell 10 as described above fits well with commercial FPGA technologies such as a MUX-based FPGA and a LUT-based FPGA. All the elements of the mask programmable logic cell 10, i.e., the 2:1 and 4:1 multiplexers 11, 12, the flip-flop 14, the buffers 15 and inverters 16 are predefined within the MPGA. The MPGA is programmed by connecting the input terminals and output terminals of these elements 11, 12, 14, 15, 16 with user-defined metal masks and vias.
By providing a mask programmable logic cell 10 such as that shown in
In
The flip-flop 22 may also be bridged e.g., by a hard wire (not shown in
The logic cell 20 further comprises a input clock terminal 27 for receiving a clock signal CLK. The clock signal may be an internal or external clock signal CLK.
Using a LUT 21 theoretically every visible mapping can be implemented between their input and output terminals 23, 24.
The LUT 21, which comprises four input terminals 23 and a single output terminal 24, further comprises a plurality of 2:1 multiplexers 30. In total, the LUT 21 comprises fifteen single 2:1 multiplexers 30 and 16 memory cells 31 holding the configuration data. The 2:1 multiplexers 30 each having two inputs are arranged in the form of a multiplexer tree resulting in a hierarchical arrangement of the multiplexers 30 with a total of four hierarchical levels 32a-32d. Each of these hierarchical levels 32a-32d is assigned to one of the input terminals 23 which are used to control the functionality of the different multiplexers 30.
The multiplexers 30 are arranged within the multiplexer tree in a manner that the number of multiplexers 30 is halved when going from a low hierarchical level of the LUT 21 to the next higher hierarchical level. Thus, in the lowest hierarchical level 32a there are eight multiplexers 30, whereas in the next higher hierarchical level 32b there are four multiplexers 30, in the third hierarchical level 32c there are two multiplexers 30 and in the highest hierarchical level 32d there is only one multiplexer 30.
In addition to the multiplexers 30, the LUT 21 further comprises a plurality of configuration memory cells 31. Each of these memory cells 31 is designed for storing a single bit. The two inputs of the 2:1 multiplexers 30 in the lowest hierarchical level 32a are in each case connected to the 1 bit output of two memory cells 31, whereas two respective memory cells 31 are assigned to each one of these multiplexers 30.
The control inputs 23 of the different multiplexers 30 are used, as usually in a LUT 21, as for receiving data signals. The four input signals A, B, C, D simultaneously control the multiplexers 30 of the LUT 21.
During the operation of the configurable logic cell 20 the input variables A,B,C,D are fed into input terminals 23. As a result of the setting of the multiplexers 30 that is thereby chosen the output of a memory cell 31 is connected to the output 24 of the LUT 21. Consequently, the bit stored in this memory cell 31 can be tapped off at the output 24. In other words, the bit that can be read out at the output 24 is a function of the input variables at the input terminals 23 and furthermore depends on the bits stored in the memory cells 31. The 16 memory cells 31 are therefore configured with bits in accordance with the synthesis carried out before the input variables are fed into the input terminals 23.
By using a logic cell 10 as shown in
By providing a mask programmable logic cell 10 according to
In the embodiments shown in
It is to be understood that by providing a mask programmable logic cell 10 it may also be possible to create a LUT 21 having less than 15 multiplexers 30 whereas in this case some of the 2:1 multiplexers 11 and/or some of the 4:1 multiplexers 12 within the logic cell 10 are not used and thus are redundant.
Besides creating LUT-based FPGAs (see
The MUX-based configurable cell 50 in
It may also be possible, that the AND- and OR-elements 51, 52 are interchanged with respect to their input and output terminals, i.e. in this case the AND-element 51 controls the multiplexers 13 of the lowest hierarchical level and the OR-element 52 controls the single multiplexer 13 in the highest hierarchical level.
As shown in the exemplary illustration in
For the AND-element 51, the first input forms one input of the multiplexer 70 and the second input forms the control terminal of this multiplexer 70. The second input of the multiplexer 70 is referenced to a low potential.
For the OR-element 52, a first input terminal of the multiplexer 71 forms a first input of the OR-element 52 and a second input terminal and the control terminal of the multiplexer 71 are connected to form a second input of the OR-element 52.
To realize the different interconnections of the AND-element 51 and OR-element 52, a metal layer and a via is used to configure the two different and independent multiplexers 70, 71 to form an AND-element and an OR-element and to connect the respective multiplexers 70, 71, which represent the AND- and OR-elements to form the combinational multiplexer based configurable cell 50 in
Since every AND-element 51 and OR-element 52 is realized by a single independent 2:1 multiplexer to implement the multiplexer based configurable cell in
Thus, a mask programmable logic cell 10 according to the embodiment as shown in
Besides the combinational multiplexer based configurable cells 50 and sequential multiplexer based configurable cells 60 it is also possible to create other permutations and multiplexer based circuit arrangements by providing a single mask programmable logic cell 10 according to at least some embodiments of the present invention.
Again, the embodiments shown in
In
Typically LUT-based synthesis 84 is more efficient in terms of area and delay. However, the multiplexer based synthesis 82 is more efficient with regard to the synthesis of control circuits. Therefore, often a trade-off has to be found which one of the two routes, on the one hand the multiplexer based synthesis 82 or on the other hand the LUT-based synthesis 84, is chosen. This trade-off is typically dependent on the used technology of the semiconductor manufacturer. With some embodiments of the present invention, an architecture is provided allowing both types of synthesis during the synthesis stage 82, 84.
In
The mask programmable basic cell—or shortly basic cell—is denoted with reference symbol 100. The mask programmable basic cell 100 is usable in a MPGA 90 such as shown in
A basic cell 100 comprises a first supply line 101 for a first supply voltage VDD, for example a positive supply voltage VDD, and a second supply line 102 for a second supply voltage VSS, for example a negative voltage or a reference voltage VSS such as the ground potential.
The basic cell 100 further comprises an upper transistor region 103 arranged adjacent to the first supply line 101 and a lower transistor region 104 arranged adjacent to the second supply line 102 and further arranged adjacent to the upper transistor region 103.
In the embodiment in
Each of the transistor regions 103, 104 comprise a doped region 107, 108. The doped region 107, 108 later comprise the drain region, the source region and the channel region of a NMOS or a PMOS transistor, respectively, whereas within the basic cell 100 shown in
The hatched portions of the transistor gates 105, 106 represent the gate electrodes of the not yet connected PMOS and NMOS transistors 105, 106.
The channel width of the PMOS transistors 105 is denoted to as Wp and the channel width of the NMOS transistor 106 is denoted to as Wn.
It is further noted that
The drain regions, source regions and channel regions within the doped regions 107, 108 are generated by semiconductor doping processes such as implantation and diffusion. The conductivity type of the channel region as well as the conductivity types of the source and drain regions are then determined by the type of the desired MOS-transistor and especially by its channel-type.
It is assumed that the semiconductor substrate 109 is in embodiment in
The basic cell 100 shown in
The generation of the different logic elements and programmable cells may be achieved easily by connecting the different transistor electrodes of the basic cell 100 e.g. with the supply lines 101, 102 or for the purpose of ESD prevention with signal lines that provide equivalent static data signals, with each other and/or with given output terminals. As a consequence of this, the basic cell design according to
It is further noted that the embodiment of a basic cell shown in
It is also noted that by varying the conductivity type of the semiconductor substrate 109, the well 109′ and/or the doped regions 107, 108 from p to n and vice versa and by varying the doping concentrations of these regions it is possible to provide an additional number of different designs of a mask programmable basic cell 100.
While embodiments provide an identical number of transistor portions 105, 106 within the different transistor regions 103, 104 of a given basic cell 100, it may also be possible (e.g. in the example in
The complete array of the MPGA may then be constructed only by this type of basic cells 100 (comprising e.g. ten PMOS transistors 105 and five NMOS transistors 106). Alternatively, the array of the MPGA may also comprise only a few of these basic cells 100 and the other basic cells 100 may be e.g. such as shown in
The NAND element 120 comprises five input terminals 121 for receiving five input variables A0-E0 and a single output terminal 122 for providing an output signal OUT (see
The regions within the doped region 107, 108 which are arranged between adjacent transistor gates form a shared drain region, a shared source region or a region which forms for one of the transistors 107, 108 the drain region and for the adjacent transistor 107, 108 the source region. In
In this embodiment, both NAND elements 131, 132 and their respective PMOS and NMOS transistors 137, 137′, 138, 138′ are incorporated within the same basic cell 100 and thus use the same doped regions 107, 108 within the respective transistor regions 103, 104 of the basic cell 100. Only the interconnection of the different transistors 137, 137′, 138, 138′ with respect to the output terminals 134, 136, the supply terminals 101, 102 and also with respect to the interconnection of the transistors 137, 137′, 138, 138′ to each other is different compared to the five input NAND elements 120 shown in
All NMOS transistors 144 are arranged in parallel to each other between the output terminal 142 and the second supply terminal 102. A first plurality of five of the PMOS transistors 143 are connected in series between the first supply terminal 101 and the output terminal 142 and a second plurality of five of the PMOS transistors 143 (which form the double channel width) are connected in series between the first supply terminal 101 and the output terminal 142.
For the implementation of the NOR element 140, altogether one and a half basic cells 100 as shown in
In the layout arrangement shown in
The MUX-based cell 150 further comprises one OR-NOR element 152 and one AND-NAND element 153 each having two input terminals and two output terminals. The OR-NOR element 152 is designed to receive two input variables A_NOR, B_NOR and to provide the two output variables S1, S1′ as selection signals for the two 2:1 multiplexers 156, 157 in the lowest hierarchical level of the 4:1 multiplexer 150. The AND-NAND element 153 is designed to receive two input variables A_NAND, B_NAND and to provide the two output variables S2, S2′ as selection signals for the highest level 2:1 multiplexer 155.
The multiplexer 155 is considered to provide an inverted output signal OUT′. The MUX-based cell 150 is designed to generate at a first output terminal 159′ a first output signal OUT and at a second output terminal 159″ a second output signal OUT′ which is inverted to the first output signal OUT.
Instead of using a single OR-NOR-element 152 and a single AND-NAND-element 153 it may also be possible to implement the MUX-based cell 150 by using a separate OR-element and a separate NOR-element for the OR-NOR-element 152 and a separate AND-element and a separate NAND-element instead of the AND-NAND-element 153.
For the implementation of the 4:1 multiplexer 151 two basic cells 100 are necessary. For the implementation of the OR-NOR element 152, the AND-NAND element 153 and all necessary inverters 158 again two basic cells 100 are required.
The 4:1 multiplexer shown in
Thus, a total amount of four basic cells 100 are needed for the MUX-based configurable cell as shown in
In
In
Thus, a total number of three basic cells 100 are needed for the D-flip flop 160 in
Additional functionalities such as ENABLE and/or SCAN can also be implemented by introducing previously mentioned concepts and structures such as 4:1 multiplexers for the master stage, etc.
It is also noted that the above mentioned embodiments and examples should be understood to be only exemplary. Thus, additional logic elements, circuit arrangements and functional circuits may be implemented using one or more of the basic elements such as shown in
Referring back to
While embodiments and applications of this invention have been shown and described above 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 described herein. The invention, therefore, is not restricted except in the spirit of the appended claims.
It is therefore intended that the foregoing detailed description is to be regarded as illustrative rather than limiting and that it is understood that it is the following claims including all equivalents described in the claims that are intended to define the spirit and the scope of this invention. Nor is anything in the foregoing description intended to disavow the scope of the invention as claimed or any equivalents thereof.
Embodiments of the present invention are suitable for example for use with programmable logic circuits such as FPGAs. However, it is not restricted to this embodiment and can also be used, for example, with PLDs (programmable logic devices) or PLAs (programmable logic arrays), at least partially cell-based circuit designs, etc.