Semiconductor integrated circuit

One embodiment provides a semiconductor integrated circuit, including: a first input wire; a second input wire; a first look-up table (LUT) comprising: a plurality of first memories; a first number of first switches connected to the first input wire; and a second number of second switches connected to the second input wire, the second number being less than the first number, the first LUT being configured to output information which is stored in one of the first memories; and a second LUT including: a plurality of second memories; a third number of third switches connected to the second input wire; and a fourth number of fourth switches connected to the first input wire, the fourth number being less than the third number, the second LUT being configured to output information which is stored in one of the second memories.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims priority/priorities from Japanese Patent Application No. 2012-072515 filed on Mar. 27, 2012, the entire contents of which are incorporated herein by reference.

FIELD

Embodiments described herein relate generally to semiconductor integrated circuits.

BACKGROUND

Reconfigurable integrated circuits (ICs), such as field programmable gate arrays (FPGAs), can reconfigure circuits to thereby implement arbitrary logic functions. A reconfigurable IC includes logic blocks and wiring portions. The logic blocks respectively implement arbitrary truth tables, and the wiring portions change the interconnection among the logic blocks. For example, look-up tables (LUTs) are used as elements for respectively configuring logic blocks, and switches are provided in the wiring portions. Data of the LUTs and data for switching connection/non-connection of the switches are stored in memories. The user can implement arbitrary logic-functions by appropriately writing information into the memories.

For example, in an LUT for implementing an N-input 1-output logic-circuit (“N” is a positive integer), 2Nmemories are provided. To realize the logical operation represented by a given truth table, data corresponding to outputs of the given truth table are written into the 2Nmemories. Then, the LUT outputs an appropriate signal by selecting one of the 2Nmemories according to inputs thereto. Here, as the number of inputs to the LUT increases, delay in output thereof increases.

DETAILED DESCRIPTION

Hereinafter, embodiments are described with reference to the drawings.

FIG. 1illustrates an LUT according to a first embodiment. The LUT10illustrated inFIG. 1is an (N+1)-input LUT. The LUT10includes two LUTs11and12and a multiplexer13. Each of the LUTs11and12is less in the number of inputs than the LUT10. The following description is made by assuming that each of the LUTs11and12is an N-input LUT. Thus, the N-input LUT11includes a memory group21aof 2Nmemories and a multiplexer22a, and selectively outputs information stored in the memory group21ausing N input signals. The N-input LUT12includes a memory group21bof 2Nmemories and a multiplexer22b, and selectively outputs information stored in the memory group21busing N input signals.

The N-input LUTs11and12are connected to the N input signal wires, and output signals of the N-input LUTs11and12are input to the multiplexer13. One of the output signals input to the multiplexer13is selected to be output according to an (N+1)-th input signal. Consequently, an (N+1)-input 1-output LUT10can be implemented. Here, a direction of connecting the N-input LUT11to the N input signal wires is opposite to a direction of connecting the N-input LUT12to the N input signal wires.

By making the connection directions of the N-input LUTs11and12with respect to the N input signal wires to be opposite to one another, loads of the N input signal wires can be uniformized. Accordingly, a delay time from the input of each input signal to the output of the selected signal can be reduced. This effect is described hereinafter with reference to a circuit example of the LUT10.

FIG. 2illustrates a circuit example of the LUT10. The LUT10illustrated inFIG. 2is a4-input LUT. The LUT10configures multiplexers13,22aand22busing plural switches. In the case of the 4-input LUT10, 3 input wires A, B and C are connected to each of the multiplexers22aand22b, and 3 input signals A, B and C are input to the 3 input wires A, B and C, respectively.

As illustrated inFIG. 3A, e.g., a transfer gate configured by a parallel combination of an N-channel metal oxide semiconductor (NMOS) transistor and a P-channel metal oxide semiconductor (PMOS) transistor can be used as each of the transistors. Incidentally, inFIG. 2and later, the transfer gate is designated with a symbol illustrated inFIG. 3B. Alternatively, as illustrated inFIG. 4, either an NMOS transistor switch or a PMOS transistor switch can be used as each of the switches of the LUT10. The memories of the memory groups21aand21bmay be either volatile memories or nonvolatile memories.

The memories of the memory group21a are connected to a switch that is connected to the input wire A, whereas the memories of the memory group21bare connected to a switch that is connected to the input wire C. As illustrated inFIG. 2, the stages of the multiplexers22aand22bhaving the largest number of switches are connected to the input wires A and C that are closest to the memory groups21aand21b, respectively. Two switches are connected to the closest to output terminals of the multiplexers22aand22b, respectively. Thus, by making the direction of connecting the multiplexer22ato the input wires A to C and the direction of connecting the multiplexer22bto the input wires A to C to be opposite to one another, the number of the switches of the multiplexer22a, which are connected to the input wire A, is larger than the number of the switches of the multiplexer22a, which are connected to the input wire C, while the number of the switches of the multiplexer22b, which are connected to the input wire A, is smaller than the number of the switches of the multiplexer22b, which are connected to the input wire C. Consequently, the loads on the input wires can be uniformized.

For example, if the direction of connecting the multiplexer22ato the input wires and the direction of connecting the multiplexer22bto the input wires are the same, as indicated in a comparative example illustrated inFIG. 5, the number of switches driven by signals input from the closest input wire (i.e., the input wire A) to each of the memory groups are16.

On the other hand, in the case of the LUT10illustrated inFIG. 2, the number of switches driven by the input signal A is10. Thus, time taken to charge and discharge the switch through the wire from which the signal A is input is shortened. Consequently, the delay time of the LUT can be shortened.

If the connection directions of the multiplexers22aand22bwith respect to the input wires are the same, the number of switches connected to the closest input wire (i.e., the input wire A) to the memory group is twice or more the number of switches connected to the other input wires. Therefore, load is concentrated onto the closest input wire to the memory group. Delay time from the input of an input signal to the switch connected to this input wire to the output of the input signal is longer than the delay time of other switches. Thus, circuit delay has considerably changed depending on whether the critical path of the circuit uses the closest input wire to the memory group.

On the other hand, in the LUT10illustrated inFIG. 2, the number of switches driven by an input signal A is10. The number of switches driven by an input signal B is8. The number of switches driven by an input signal C is10. Thus, the loads on the input wires can be uniformized. Consequently, the necessity of considering the balance of loads on input terminals at the configuration of the circuit is reduced.

In the first embodiment, memory data stored in the memories of the memory group21ais set so as to differ in the order of values from that stored in the memories of the memory group21b. As illustrated inFIG. 2, the memory group22bis configured by reversing the memory group22a. Data arranged considering the above-mentioned relationship are stored in the memory groups21aand21b. That is, the following data are respectively stored in the memories of the memory group21a, from the top, as viewed inFIG. 2.

On the other hand, the following data are respectively stored in the memories of the memory group21b, from the top, as viewed inFIG. 2.

Each overbar represents logical negation. For example, low voltage level is assigned to logical negation. The data respectively stored in the memories of the memory group21a, which are sequentially arranged from the top, differ in arrangement-sequence from the data respectively stored in the memories of the memory group21b, which are sequentially arranged from the top. However, all the possible values represented by the data stored in the memories of the memory group21acorrespond to those represented by the data stored in the memories of the memory group21b, respectively. The LUT10serves as a 4-input LUT by selecting which of the memory groups21aand21bcorresponds to each of an input from the wire D and the logical negation of this input. On the other hand, in the case of a comparative example illustrated inFIG. 5, the arrangement-sequence determined according to input signals A, B and C is the same between a memory group illustrated at an upper portion and a lower memory group illustrated at a lower portion.

FIG. 6illustrates a first modification of the first embodiment. An (N+1)-input LUT101further includes wires for inputting, to an external circuit, signals output from two N-input LUTs11and12. Consequently, the LUT101can be used as either an (N+1)-input LUT or two N-input LUTs.

FIG. 7illustrates a second modification of the first embodiment. An (N+2)-input LUT102includes four N-input LUTs11,12,14and15. The connection directions of the LUTs11and14with respect to input wires are opposite to the connection directions of the LUTs12and15with respect to the input wires. Thus, an i-input LUT (“i” is a positive integer) may be configured by three or more j-input LUTs (“j” is a positive integer and less than the integer “i”). The number of the LUTs connected to the input wires in a first connection direction is not necessarily the same as the number of the LUTs connected to the input wires in a second connection direction that is opposite to the first connection direction.

The more largely the number of the j-input LUTs configuring the i-input LUT is increased, the more uniform the balance of loads on the input wires becomes. Consequently, whatever input wire the critical path of the circuit uses, the variation of the delay time of the LUT is reduced.

FIG. 8illustrates a third modification of the first embodiment. An LUT103includes an N-input LUT11and an M-input LUT12(“M” is a positive integer) configured such that M is less than N. In the case of combining LUTs differing in size from one another, preferably, the small-size LUT12is connected to the input wires which are connected to switches close to the output terminal of the large-size LUT11, among input wires to which the large-size LUT11is connected. This is because of the facts that a load on the input wire connected to the switch close to the output terminal of the large-size LUT11, which is caused due to the switch of the large-size LUT11, is small, and that even if the LUT12is connected such an input wire, load on the input wire is suppressed.

FIG. 9illustrates the case of combining a 3-input LUT and a 2-input LUT. Even in the LUT103illustrated inFIG. 9, the switches may be transfer gates, NMOS transistors, or PMOS transistors. Assuming that the input wires of the 3-input LUT113are an input wire A, an input wire B, and an input wire C, the input wire A is connected to a switch that is connected to the memory of the3-input LUT113. The input wire C is connected to a switch that is connected to an output of the3-input LUT113. A 2-input LUT123is connected to the input wire B and the input wire C. The 2-input LUT123can be connected to the input wires A and B, or to the input wires A and C. However, because the wire A is the input wire to which the largest number of switches of the 3-input LUT113are connected, the load on the wire A is large. Thus, the load on the wire A is large. Therefore, a lowest load circuit configuration for the LUT103is obtained by connecting the 2-input LUT123to the input wire B and the input wire C. In addition, the loads on the input wires are substantially equal to one another. Thus, configuration with small variation of the delay time can be implemented. Incidentally, this modification employs the combination of the 3-input LUT and the 2-input LUT by way of example. However, LUTs each having an optional number of inputs can be used.

FIG. 10illustrates a fourth modification of the first embodiment. In an LUT104, signals output from the LUTs11and12are input to an external circuit, instead of selecting one of outputs of the LUT11and the LUT12with a multiplexer. For example, in the case of configuring an adder, an output therefrom is surely represented by plural bits. In this case, it is unnecessary that one of outputs from plural LUTs is selected by a multiplexer. Thus, since the LUT104can be configured without providing a multiplexer therein, the area of the circuit and the power consumption thereof can be reduced.

The above modifications may be combined with one another. For example, an i-input LUT may be configured by three or more j-input LUTs, and a wire for inputting, to an external circuit, three or more j-input LUTs may be added. At that time, a multiplexer for selecting one of output signals from the j-input LUTs is not necessarily provided. In addition, the plural LUTs may differ in the number of inputs from one another.

FIG. 11illustrates an LUT20according to a second embodiment. The LUT20is configured such that PMOS power-supply-control switches32aand32bare connected to the memory groups21aand21b, respectively. Power-supply-control memories31aand31bare connected to the gates of the power-supply-control switches32aand32b, respectively. In the case of the LUT20illustrated inFIG. 11, the power-supply-control switches32aand32bare provided between the power supply wire and the memory group21aand between the power supply wire and the memory group21b, respectively. However, a PMOS power-supply-control switch may be provided between the power supply wire and each of the memory groups21aand21b. In addition, an NMOS power-supply-control switch may be provided between the ground wire and each of the memory groups21aand21b. The power-supply-control switch may be provided only between the power supply wire and the memory group. Alternatively, the power-supply-control switch may be provided only between the memory group and the ground wire. The power supply wire and the ground wire may be referred correctively to as the power-supply/ground wire. The LUTs11and12and the multiplexer13may be configured similarly to those according to the first embodiment.

Thus, the power supply to the LUTs11and12may be interrupted by providing the power-supply-control switches. For example, in a case where the LUT20is not used, the power consumption of the entire LUT20can be reduced by shutting off both of the power-supply-control switches32aand32b.

For example, in the case of using the (N+1)-input LUT20as an N-input LUT, an output of a predetermined one (e.g., the LUT11) of the N-input LUTs11and12is selected by the multiplexer13. The selected signal is output from the LUT20. Thus, the (N+1)-input LUT20as an N-input LUT. At that time, it is unnecessary to use the LUT12. Then, the power supply to the power-supply-control switch32bis interrupted. Consequently, power consumption can be reduced.

Incidentally,FIG. 11illustrates the LUT in which the power supply to the multiplexer22aand the power supply to the multiplexer22bare controlled according data stored in the power-supply-control memories31aand31b, respectively, independent of each other. However, the power supply to both of the multiplexers22aand22bmay be controlled in common according to data stored in the power-supply-control memories31aand31b.FIG. 12illustrates such LUT200. In the LUT200, if “1” is stored in the power-supply-control memory31a, the power-supply-control switches32aand33aare put into an off-state. Thus, the power supply to the memories connected to the power-supply-control switches32aand33ais shut off. If “1” is stored in the power-supply-control memory31b, the power-supply-control switches32band33bare brought into an off-state. Thus, the power supply to the memories connected to the power-supply-control switches32band33bis shut off. In the LUT200, inverters provided on the input wires A, B, and C are shared by the multiplexers22aand22b. Power-supply-control switches32c,33c,32dand33dare connected to inverters provided on the input wires A, B, C and D. The power-supply-control switches32cand33care put into an off-state, if “1” is stored in the power-supply-control memory31b. The power-supply-control switches32dand33dare brought into an off-state, if “1” is stored in the power-supply-control memory31a. That is, the power supply to the inverters provided on the input wires A, B, C, and D is shut off if “1” is stored in both of the power-supply-control memories31aand31b. Thus, the power supply to the multiplexers22a,22band13provided in the LUT200can be shut off.

As illustrated inFIGS. 11 and 12, the power-supply-control memories31aand3lb and the power-supply-control switches32aand32bfor all LUT (i.e., the LUTs11and12) configuring the LUT20are provided. However, the power-supply-control memories and the power-supply-control switches are not necessarily provided for all the LUTs. The LUT20may be configured such that if one of the LUTs11and12is always used, no power-supply-control memory and no power-supply-control switches are provided for the one of the LUTs, and that the other LUT12or11is provided with a power-supply-control memory and a power-supply-control switch.

Thus, if both of the LUTs11and12are used in the LUT20, the delay of the circuit is reduced because the connection directions of the LUTs11and12with respect to the input wires are made to be opposite to one another. In addition, the power supply to at least one of the LUTs11and12can be shut off. Thus, the power consumption can be reduced.

The memories of the memory groups21aand21bmay be either volatile memories or nonvolatile memories. Alternatively, both of volatile and nonvolatile memories may be used as the memories of the memory groups21aand21b. However, if nonvolatile memories are used as the memories of the memory groups21aand21b, the power supply can be shut off even during operation of the LUT20.

As illustrated inFIGS. 13A and 13B, a floating type flash memory, a charge-trap type metal-oxide-nitride-oxide-semiconductor (MONOS) memory, a phase-change memory, MRAM, an ionic memory, and a resistance change type memory such as a resistance random access memory (ReRAM) can be employed as the nonvolatile memory. Further, as illustrated inFIGS. 13C,13D,13E and13F, selection transistors, such as NMOS transistors, PMOS transistors and transfer gates, may be used in combination with the above nonvolatile memories. If the drive power of the memory is low, the drive power can be increased by connecting a buffer, such as a complementary metal-oxide semiconductor (CMOS) inverter, to an output terminal of the memory, as illustrated inFIG. 14. Incidentally, in the case described with reference toFIGS. 13A,13B and14, the power supply wire is connected to one of two memories, while the ground wire is connected to the other memory. These figures illustrate a state at the time of causing the LUTs to operate. In addition, a programming power supply and a control circuit, which are used to write and erase data to and from each element, are connected to the memories, though this power supply and this control circuit are not illustrated.

As an example of interrupting the power supply during operation of the LUT20, the following case may be considered. That is, it is obvious or expected that only the LUT11is used and the LUT12is not used in a certain time period during operation of the LUT20. In this case, the power supply to the LUT12is interrupted.

In addition, after a lapse of the certain time period in which the LUT12is not used, the power supply to the LUT12is restored.

The power supply to a part of an LUT may be interrupted using an input signal, as illustrated inFIG. 15. An LUT201includes two3-input LUTs.5. Power-supply-control switches32a,32b,33aand33bare provided on the input wire A of the LUT201. Consequently, if an input signal A represents “1”, the power-supply-control switches32aand33aare turned off. Thus, the power supply to memories connected to the power-supply-control switches32aand33ais shut off. At that time, the power-supply-control switches32band33bare in an on-state. Therefore, power is supplied to memories connected to the power-supply-control switches32band33b. On the other hand, if a signal input from the input wire A represents “0”, the power-supply-control switches32aand33aare turned on, while the power-supply-control switches32band33bare turned off. The number of memories connected to the power-supply-control switches32aand33ais a half the number of memories provided in the LUT201. Memories connected to the power-supply-control switches32band33bare the remaining half of the memories provided in the LUT201. Thus, leakage current can be reduced by half by providing the power-supply-control switches32a,32b,33aand33bin the LUT201.

In an example ofFIG. 15, the input wire B functions as a first input wiring, the input wire C functions as a second input wiring, and the input wire A functions as a third input wiring. Although the power-supply-control switches are connected to the input wire A inFIG. 15, the power-supply-control switches may be connected to the input wires B, C, and D other than the input wire A. Whichever input-wire the power-supply-control switch is provided on, leakage current can be reduced by half.

In addition, the power supply to a part of an LUT can be interrupted using plural input signals, as illustrated inFIG. 16. An LUT202is configured such that the power-supply-control switches32a,33a,32b,33b,32c,33c,32dand33dare connected to the input wire A and the input wire B. Each of the power-supply-control switches32a,32b,32cand32dis configured by series-connecting a PMOS transistor, whose gate is connected to the input wire A, and a PMOS transistor, whose gate is connected to the input wire B. Each of the power-supply-control switches33a,33b,33cand33dis configured by series-connecting an NMOS transistor, whose gate is connected to the input wire A, and an NMOS transistor, whose gate is connected to the input wire B.

Consequently, if the input signal A and the input signal B represent “1”, the power-supply-control switches32dand33dare turned on. Other power-supply-control switches are turned off. Thus, one of a pair of the power-supply-control switches32aand33a, a pair of the power-supply-control switches32band33b, a pair of the power-supply-control switches32cand33c, and a pair of the power-supply-control switches32dand33dis turned on according to the combination of values respectively represented by the input signal A and the input signal B. Other power-supply-control switches are turned off. Therefore, leakage current of the memory groups included in the LUT202may be reduced to ¼.

The power-supply-control switches illustrated inFIG. 16can be configured using logic gates.FIG. 17illustrates an example of an LUT in the case of configuring the power-supply-control switches using NAND-gates to control the power supply according to the combination of values respectively represented by the input signal A and the input signal B. An LUT203is configured such that one of the power-supply-control switches34ato34dis turned on according to the combination of values respectively represented by the input signal A and the input signal B, and that other power-supply-control switches are turned off, similarly to the LUT202. Therefore, leakage current of the memory groups included in the LUT203may be reduced to ¼.

Incidentally, in the case of the LUTs respectively illustrated inFIGS. 16 and 17, the power supply to the memories is controlled, based on the two input signals.

However, the power supply to the memories may be performed, based on three or more input signals. Leakage current may be more reduced using a larger number of input signals in controlling the power supply.

The modifications of the first embodiment may be applied to the LUTs according to the second embodiment. For example, the number of inputs to the inner LUTs may vary thereamong. Three or more inner LUTs may be provided. And, the multiplexer13for selecting one of outputs from the inner LUTs may be omitted.

In the examples ofFIGS. 15-17, the power-supply-control switch is provided between the power supply wire and the memory group and between the memory group and the ground wire. However, as mentioned above in relation to the example ofFIG. 12, the power-supply-control switch may be provided only between the power supply wire and the memory group, or between the memory group and the ground wire.

According to the configuration of the above embodiments, LUTs with short delay time can be provided. The invention is not limited to the above embodiments. Various changes can be made to the above embodiments without departing from the spirit and scope of the invention.