Abstract:
A reconfigurable circuit of the present invention is characterized in being provided with: a first programmable wiring group, which is disposed in the first direction; a second programmable wiring group, which is disposed in the second direction that intersects the first direction; a first switch element array, which connects the programmable wiring groups to each other at the intersecting points of the first programmable wiring group and the branch line group of a functional block input wiring group or at the intersecting points of the branch line group of the first programmable wiring group and the functional block input wiring group; a second switch element array, which connects the programmable wiring groups to each other at the intersecting points of the first programmable wiring group and functional block output wiring; and a third switch element array, which connects the programmable wiring groups to each other at the intersecting points of the second programmable wiring group and the first programmable wiring group. The reconfigurable circuit is also characterized in being provided with a fourth switch element array, which connects the programmable wiring groups to each other at the intersecting points of the second programmable wiring group and the functional block input wiring group, and/or a fifth switch element array, which connects the programmable wiring groups to each other at the intersecting points of the second programmable wiring group and the branch lines of the functional block output wiring.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to reconfigurable circuits using a rewritable nonvolatile switching element. 
       BACKGROUND ART 
       [0002]    A nonvolatile switching element has been developed recently, which can be re-written with a small area (hereinafter, referred to as a rewritable nonvolatile switching element). 
         [0003]    As shown in  FIG. 15A , a rewritable nonvolatile switching element  1  includes an anode  10  of a first electrode, a cathode  12  of a second electrode, and an ion conductor  11  sandwiched between the two electrodes. 
         [0004]    The anode  10  is an electrode which supplies a metal ion to the ion conductor  11  and is mainly composed of copper. The cathode  12  is an electrode which does not supply a metal ion to the ion conductor  11  and platinum or the like is utilized. The ion conductor  11  has such a nature as to move the metal ion supplied from the anode  10  and tantalum oxide or the like is utilized. 
         [0005]      FIG. 15B  shows the state that the rewritable nonvolatile switching element  1  is ON, that is, the conduction state between these two electrodes. These two electrodes become the conduction state by applying a voltage Von to the anode  10  to and connecting the cathode  12  to the ground. 
         [0006]      FIG. 15C  shows the state that the rewritable nonvolatile switching element  1  is OFF, that is, the cut-off state between these two electrodes. These two electrodes become the cut-off state by connecting the anode  10  to the ground and applying a voltage Voff to the cathode  12 . 
         [0007]    Turning the rewritable nonvolatile switching element  1  ON or OFF is called programming. The ON state and the OFF state of the rewritable nonvolatile switching element  1  are held even if the power supply is cut. 
         [0008]    A programmable cell  5  is disclosed in the Patent Literature 1, which uses the rewritable nonvolatile switching element  1  as shown in  FIG. 16 . A horizontal programmable wiring group  100  intersects a vertical programmable wiring group  200 , an input wiring group  310  of a function block  2 , and an output wiring  400  of a function block  2  at an intersecting area  5000  of these wiring groups. An intersecting point of each wiring is coupled with each other by a rewritable nonvolatile switching element  1 A. The adjacent horizontal programmable wiring groups  100  are coupled with each other by a rewritable nonvolatile switching element  1 B and the adjacent vertical programmable wiring groups  200  are coupled with each other by a rewritable nonvolatile switching element  1 B. 
         [0009]    The rewritable nonvolatile switching element  1 A is an element in which a horizontal wiring and a vertical wiring are connected to terminals  14  and  13  of the rewritable nonvolatile switching element  1  as shown in  FIG. 17A . The rewritable nonvolatile switching element  1 B is an element in which adjacent wirings are connected to the terminals  14  and  13  of the rewritable nonvolatile switching element  1  as shown in  FIG. 17B . 
       CITATION LIST 
     Patent Literature 
       [0000]    
       
         Patent Literature 1: Japanese Patent Application Laid-Open Publication No. 2005-101535 
       
     
       DISCLOSURE OF INVENTION 
     Problem to be Solved by the Invention 
       [0011]    However, the circuit using the rewritable nonvolatile switching element described in patent literature 1 has a problem of a lack of routability. In other words, the input wiring group and the output wiring group of the function block do not have a means connecting with the vertical wiring group directly. Therefore, the order for the input wiring and the output wiring to connect with the vertical wiring group, it is necessary to connect via the horizontal wiring group. As a result, the degree of freedom of the wiring connectivity declines. 
         [0012]    The object of the present invention is to provide a reconfigurable circuit which solves the above-mentioned problem. 
       Means for Solving a Problem 
       [0013]    A reconfigurable circuit, comprising: a first programmable wiring group disposed in a first direction; a second programmable wiring group disposed in a second direction intersecting the first direction; a first switching element array connecting the first programmable wiring group to branch line group of input line group of a function block at those intersecting points, or connecting branch line group of the first programmable wiring group to the input line group of the function block at those intersecting points; a second switching element array connecting the first programmable wiring group to the output wiring of the function block at those intersecting points; a third switching element array connecting the first programmable wiring group to the second programmable wiring group at those intersecting points; at least one of a fourth switching element array and a fifth switching element is disposed; and the fourth switching element array connects the second programmable wiring group to the input wiring group of the function block at those intersecting points, and the fifth switching element array connects the second programmable wiring group to the branch line of the output wiring of the function block at those intersecting points. 
       Effect of Invention 
       [0014]    According to the reconfigurable circuit by the present invention, it becomes possible to realize a circuit with having high routability. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  is a circuit diagram of the programmable cell  5  in the first exemplary embodiment. 
           [0016]      FIG. 2  is a block diagram of the reconfigurable circuit in the second exemplary embodiment. 
           [0017]      FIG. 3  is a circuit diagram of the programmable cell  5  in the second exemplary embodiment. 
           [0018]      FIG. 4  is a circuit diagram of the programmable cell  5  in the third exemplary embodiment. 
           [0019]      FIG. 5  is a circuit diagram of the programmable cell  5  in the fourth exemplary embodiment. 
           [0020]      FIG. 6A  is an example of the function block  2 . 
           [0021]      FIG. 6B  is a table showing the function block and the logic function. 
           [0022]      FIG. 7  is an example of the 3-input LUT using the rewritable nonvolatile switching element. 
           [0023]      FIG. 8  is a top view of the wiring layout. 
           [0024]      FIG. 9  is a side view of the rewritable nonvolatile switching element at the intersecting point of wirings. 
           [0025]      FIG. 10A  is a perspective view of the rewritable nonvolatile switching element. 
           [0026]      FIG. 10B  is a perspective view of the rewritable nonvolatile switching element. 
           [0027]      FIG. 11  is a circuit diagram of the programmable cell  5  in the sixth exemplary embodiment. 
           [0028]      FIG. 12  is a state transition diagram of the reconfigurable circuit in the seventh exemplary embodiment. 
           [0029]      FIG. 13A  is a block diagram of the first programming block in the eighth exemplary embodiment. 
           [0030]    A  FIG. 13B  is a block diagram of the second programming block in the eighth exemplary embodiment. 
           [0031]      FIG. 14  is a circuit diagram of the programming driver  7  in the eighth exemplary embodiment. 
           [0032]      FIG. 15A  is a diagram showing a structure of the rewritable nonvolatile switching element. 
           [0033]      FIG. 15B  is a diagram showing a structure of the rewritable nonvolatile switching element. 
           [0034]      FIG. 15C  is a diagram showing a structure of the rewritable nonvolatile switching element. 
           [0035]      FIG. 16  is a circuit diagram of the programmable cell  5  described in the patent literature 1. 
           [0036]      FIG. 17A  shows a rewritable nonvolatile switching element arranged between cross wirings. 
           [0037]      FIG. 17B  shows a rewritable nonvolatile switching element between parallel wirings. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
     First Exemplary Embodiment 
       [0038]    The preferred exemplary embodiment of the present invention will be described below using drawings. Although, technically preferable limitations are added in the embodiments described below to embody the present invention, the scope of the invention is not limited to those embodiments. 
         [0039]    [Description of the structure]  FIG. 1  is a block diagram of a reconfigurable circuit of an exemplary embodiment of the present invention. The reconfigurable circuit in the present exemplary embodiment includes a plurality of programmable cells  5 . 
         [0040]    The programmable cell  5  includes a rewritable nonvolatile switching element  1 , a function block  2 , a first programmable wiring group (a horizontal programmable wiring group  100  in the present exemplary embodiment), a second programmable wiring group (a vertical programmable wiring group  200  in the present exemplary embodiment), input wiring groups  300  and  310 , and output wirings  400  and  410 . 
         [0041]    The output wiring  400  of the function block  2  is programmably connected to the horizontal programmable wiring group  100  via rewritable nonvolatile switching element group  21 . On the other hand, an output wiring  410  of the function block  2  is programmably connected to the vertical programmable wiring group  200  via rewritable nonvolatile switching element group  22 . The output wiring  410  is a branch line of the output wiring  400 . 
         [0042]    The input wiring group  310  of the function block  2  is programmably connected to the horizontal programmable wiring group  100  via rewritable nonvolatile switching element group  61 . The input wiring group  300  is programmably connected to the vertical programmable wiring group  200  via a rewritable nonvolatile switching element group  62 . The input wiring group  310  is branch lines of the grouped input wiring group  300 . 
         [0043]    The horizontal programmable wiring group  100  and the vertical programmable wiring group  200  are connected via a rewritable nonvolatile switching element group  63 . 
         [0044]    [Description of the effect] The semiconductor integrated circuit described in the patent literature 1 does not have the means for connecting the input wiring group and the output line of the function block  2  to the vertical wiring group directly, and thus those are connected with each other via the horizontal wiring group. Therefore, there is a problem of a lack of routability. 
         [0045]    The programmable cell  5  in the present exemplary embodiment is further provided with the rewritable nonvolatile switching element groups  62  and  22  newly. The rewritable nonvolatile switching element group  62  connects the input wiring group  300  to the vertical programmable wiring group  200 . The rewritable nonvolatile switching element group  22  connects the output line  410  to the vertical programmable wiring group  200 . 
         [0046]    By the above configuration, it is possible in the programmable cell  5  to connect the vertical programmable wiring group  200  to the input lines and the output line of the function block  2  directly. Thus, it is possible to increase the flexibility of wiring design and to realize high routability. 
         [0047]    In the present exemplary embodiment, the description has been made for the structure in which both of the rewritable nonvolatile switching element groups  62  and  22  are provided; a structure is also acceptable in which only one of them is provided. 
       Second Exemplary Embodiment 
       [0048]    Concerning the second exemplary embodiment,  FIG. 2  is a block diagram showing the structure of a reconfigurable circuit of the present exemplary embodiment. 
         [0049]    [Description of the structure] As shown in  FIG. 2 , a reconfigurable circuit of the present exemplary embodiment includes a horizontal wiring group  1000 , a vertical wiring group  2000 , a first programming block  7000 , and a second programming block  6000 . The other structure and connection relationship of the present exemplary embodiment are the same as those of the first exemplary embodiment. In other words, the reconfigurable circuit of the second exemplary embodiment includes the programmable cell  5 , the rewritable nonvolatile switching element  1 , the function block  2 , the horizontal programmable wiring group  100 , the vertical programmable wiring group  200 , the input wiring groups  300  and  310 , and the output wiring groups  400  and  410 . 
         [0050]    The reconfigurable circuit in the present exemplary embodiment has a plurality of programmable cells  5 . The programmable cells  5  are arranged in a matrix in a plane. It is possible for the matrix to have any array size (the number of rows and the number of columns). The programmable cells  5  lying next to each other on right and left are coupled with each other by the horizontal wiring group  1000 . The programmable cells  5  lying next to each other on top and bottom are coupled with each other by the vertical wiring group  2000 . 
         [0051]    The first programming block  7000  is disposed in the end of each column of a matrix of the programmable cell  5 . The first programmable cell  7000  is connected to the programmable cell  5  via the first programming wiring group  700 . 
         [0052]    Similarly, the second programming block  6000  is disposed in the end of each row of a matrix of the programmable cell  5 . The second programmable cell  6000  is connected to the programmable cell  5  via the second programming wiring group  600 . 
         [0053]    The plurality of first programming blocks  7000  and the plurality of second programming blocks  6000  are connected by a state detection line  500 , and the state detection line  500  is connected to a programming controller  9 . 
         [0054]    As shown in  FIG. 3 , the programmable cell  5  in the present exemplary embodiment is provided with a horizontal programming transistor group  31 , a vertical programming transistor group  32 , an input programming transistor group  30 , and an output programming transistor  33 . 
         [0055]    The drain terminal of each transistor of the horizontal programming transistor group  31  is connected to each wiring of the horizontal programmable wiring group  100 , respectively. The source terminal of each transistor of the horizontal programming transistor group  31  is connected to a horizontal programming line  71 . 
         [0056]    The drain terminal of each transistor of the vertical programming transistor group  32  is connected to each wiring of the vertical programmable wiring group  200 , respectively. The source terminal of each transistor of the vertical programming transistor group  32  is connected to a vertical programming line  72 . 
         [0057]    The drain terminal of each transistor of the input programming transistor group  30  is connected to each wiring of the input wiring group  300  of the function block  2 , respectively. The source terminal of each transistor of the input programming transistor group  30  is connected to an input programming line  70 . 
         [0058]    The drain terminal of the output programming transistor  33  is connected to the output wiring  400  of the function block  2 . The source terminal of the output programming transistor  33  is connected to the input programming line  70 . While the source terminal is connected to the input programming line  70  in  FIG. 3 , it is not limited to it, it is possible to be connected to another programming line. 
         [0059]    The gate terminal of each of programming transistors from  30  to  33  (a gate terminal  93  of the output programming transistor  33 , for example) is controlled by the programming controller  9 . 
         [0060]    The rewritable nonvolatile switching element group  51  connects the horizontal programmable wiring group  100  to the adjacent horizontal programmable wiring group  100  programmably. Similarly, the rewritable nonvolatile switching element group  52  connects the vertical programmable wiring group  200  to the adjacent vertical programmable wiring group  200  programmably. 
         [0061]    [Description of the action] Next, a programming example of the rewritable nonvolatile switching element  1  in the present exemplary embodiment will be described. 
         [0062]    As shown in  FIG. 3 , in the case where a rewritable nonvolatile switching element  1   a  in the rewritable nonvolatile switching element group  61  is programmed to ON, programming transistors  31   a  and  30   a  are turned on, and other programming transistors are turned off. 
         [0063]    Next, when the input programming line  70  is set at an ON voltage Von and the horizontal programming line  71  is set at 0 V, the rewritable nonvolatile switching element  1   a  becomes the ON state after the elapse of a certain period of time. To prevent programming by mistake to an unintended rewritable nonvolatile switching element  1 , it is desirable to set a non-use programming line at half the voltage of Von for precharge. 
         [0064]    Also, to change the rewritable nonvolatile switching element  1   a  into OFF state, the input programming line  70  should be set at 0 V and the horizontal programming line  71  should be set at Voff of the OFF voltage. 
         [0065]    In  FIG. 3 , each wiring segment of the horizontal programmable wiring group  100  is connected to the vertical programmable wiring group  200  via the rewritable nonvolatile switching element group  63 . Each wiring segment of the horizontal programmable wiring group  100  is connected to the input wiring group  310  via the rewritable nonvolatile switching element group  61 . If performing programming, it is desirable to set only one rewritable nonvolatile switching element  1  at ON state. In other words, it is possible to prevent an erroneous operation of programming and to perform highly reliable and stable connection by not setting more than one rewritable nonvolatile switching element  1  which are connected to the same wiring at ON state. 
         [0066]    In  FIG. 3 , each wiring segment of the vertical programmable wiring group  200  is connected to the horizontal programmable wiring group  100  via the rewritable nonvolatile switching element group  63 . Each wiring segment of the vertical programmable wiring group  200  is connected to the input wiring group  300  via the rewritable nonvolatile switching element group  62 . If performing programming, it is desirable to set only one rewritable nonvolatile switching element  1  at ON state. In other words, it is possible to prevent an erroneous operation of programming and to perform highly reliable and stable connection by not setting more than one rewritable nonvolatile switching element  1  which are connected to the same wiring at ON state. 
         [0067]    Also, in  FIG. 3 , each wiring segment of the input wiring group  310  is connected to the horizontal programmable wiring group  100  via the rewritable nonvolatile switching element group  61 . Further, each wiring segment of the input wiring group  300  is connected to the vertical programmable wiring group  200  via the rewritable nonvolatile switching element group  62 . If performing programming, it is desirable to set only one rewritable nonvolatile switching element  1  at ON state. In other words, it is possible to prevent an erroneous operation of programming and to perform highly reliable and stable connection by not setting more than one rewritable nonvolatile switching element  1  which are connected to the same wiring at ON state. 
         [0068]    Further, In  FIG. 3 , the output wiring  400  is connected to the horizontal programmable wiring group  100  via the rewritable nonvolatile switching element group  21 . The output wiring  410  is connected to the vertical programmable wiring group  200  via the rewritable nonvolatile switching element group  22 . If performing programming, it is desirable to set only one rewritable nonvolatile switching element  1  at ON state. In other words, it is possible to prevent an erroneous operation of programming and to perform highly reliable and stable connection by not setting more than one rewritable nonvolatile switching element  1  which are connected to the same wiring at ON state. 
         [0069]    [Description of the effect] In the programmable cell  5  by disposing the rewritable nonvolatile switching element groups  62  and  22  newly, it becomes possible to connect the vertical programmable wiring group  200  to the input and output of the function block  2  directly. Thus, it is possible to increase the flexibility of wiring design and to realize high routability, as is the case with the first exemplary embodiment. 
         [0070]    Since the rewritable nonvolatile switching element  1  has a very small area, even if the number of the elements increases, it does not affect the area of the whole circuit. On the other hand, since a programming transistor has a very large area, the number of them dominates the circuit area. Because addition of the rewritable nonvolatile switching element groups  62  and  22  do not require additional programming transistors, the area of the whole circuit hardly increases, and thus it is possible to realize high routability, 
       Third Exemplary Embodiment 
       [0071]    Next, the third exemplary embodiment will be described. 
         [0072]    [Description of structure] As shown in  FIG. 4 , the different point of the present exemplary embodiment from the second exemplary embodiment is that rewritable nonvolatile switching element groups  41  and  42  are disposed. The other structure and connection relationship of the present exemplary embodiment are the same as those of the second exemplary embodiment. 
         [0073]    A programmable cell  5  of the present exemplary embodiment is provided with the rewritable nonvolatile switching element group  41  in the horizontal programmable wiring group  100 . The rewritable nonvolatile switching element group  41  has a function to set an unused wiring at a logical value and prevent an unused line from becoming a floating wiring by supplying a logical value of 0 or 1 to the horizontal programmable wiring group  100  from a horizontal fixed value programmable wiring  81 . 
         [0074]    The cathodes of the rewritable nonvolatile switching element group  41  are connected to each wiring of the horizontal programmable wiring group  100 , respectively. The anodes  10  of the rewritable nonvolatile switching element group  41  are connected to the horizontal fixed value programming line  81 . 
         [0075]    Further, the programmable cell  5  of the present exemplary embodiment is provided with the rewritable nonvolatile switching element group  42  in the vertical programmable wiring group  200 . The rewritable nonvolatile switching element group  42  has a function to set an unused line at a logical value and prevent an unused line from becoming a floating wiring by supplying a logical value of 0 or 1 to the vertical programmable wiring group  200  from a vertical fixed value programmable wiring  82 . 
         [0076]    The anodes  10  of the rewritable nonvolatile switching element group are connected to each wiring of the vertical programmable wiring group  200 , respectively. The cathodes of the rewritable nonvolatile switching element group are connected to the vertical fixed value programming line  82 . 
         [0077]    [Description of the action] An example of programming of the rewritable nonvolatile switching element groups  41  and  42  will be described. 
         [0078]    If a rewritable nonvolatile switching element  1   b  in the rewritable nonvolatile switching element group  41  is set at ON atate, a programming transistor  31   a  is turned on and the other programming transistors are turned off. 
         [0079]    Next, if the horizontal fixed value programming line  81  is set at an ON setting voltage Von and the horizontal programming line  71  is set at 0 V, the rewritable nonvolatile switching element  1   b  becomes an ON state after the elapse of a certain period of time. 
         [0080]    At this time, to prevent an unintended rewritable nonvolatile switching element  1  from being programmed, it is desirable to set a non-use programming wiring at half the voltage of Von for precharge. In order to change the rewritable nonvolatile switching element  1   b  into OFF state, the horizontal fixed value programming line  81  should be set at 0 V and the horizontal programming line  71  should be set at an OFF voltage V. 
         [0081]    [Description of the Effect] Generally, there are some unused programmable wirings in a reconfigurable circuit. Without any process, an unused programmable line will be floating line whose electric potential is unfixed because of nothing to driven it. It is desirable to eliminate a floating line because it causes a problem such as increasing power consumption and the like. 
         [0082]    Methods are known by which it becomes possible to prevent a programmable line from becoming a floating line by connecting pull-up resistor or a bus holder. However, those methods have a problem that the area and the electric power consumption enlarge and wiring delay increases. 
         [0083]    The programmable cell  5  of the present exemplary embodiment is programmed to change the rewritable nonvolatile switching element into an ON state which is connected to an unused wiring segment among the rewritable nonvolatile switching element group  41  and the rewritable nonvolatile switching element group  42 . 
         [0084]    An unused line segment does not become a floating line because it can be fixed to a predetermined logical value, if a logical value of 0 or 1 is supplied to it from the horizontal fixed value programming line  81  and the vertical fixed value programming line  82 . 
         [0085]    In the above method, the rewritable nonvolatile switching element  1  to supply fixed value is in OFF state in the wiring segments except the rewritable nonvolatile switching element group  41  or  42 . Therefore, the power consumption and the increase in delay is very small. 
         [0086]    Also, the area of the whole circuit hardly increases because the rewritable nonvolatile switching element  1  is very small. Further, it is not necessary to add a new programming transistor even if the rewritable nonvolatile switching element groups  41  and  42  are added newly. Therefore, it is possible to realize a floating line prevention circuit on the small area. 
       Fourth Exemplary Embodiment 
       [0087]    Next, the fourth exemplary embodiment will be described. 
         [0088]    [Description of structure] As shown in  FIG. 5 , the different point of the present exemplary embodiment from the second exemplary embodiment is that rewritable nonvolatile switching element groups  40  and  43  are disposed. The other structure and connection relationship of the present exemplary embodiment are the same as those of the second exemplary embodiment. 
         [0089]    The programmable cell  5  of the present exemplary embodiment is provided with the grouped rewritable nonvolatile switching element group  40  in the input line group  300 . The rewritable nonvolatile switching element group  40  has the function to set a fixed logical value  0  to the input line group  300  programmably. 
         [0090]    Also, the programmable cell  5  of the present exemplary embodiment is provided with the rewritable nonvolatile switching element group  43  in the input line group  300 . The rewritable nonvolatile switching element group  43  has the function to set a fixed logical value  1  to the grouped input line group  300  programmably. 
         [0091]    The cathode of each element the rewritable nonvolatile switching element group  40  is connected to each line of the input line group  300  respectively, and the anode  10  is connected to an input logical-value- 0  programming line  80 . 
         [0092]    The rewritable nonvolatile switching element group  40  is programmed that the rewritable nonvolatile switching element  1  is into the ON state, which is associated with a line segment to be desired to set fixed logical value to  0  among the input line group  300 . Then, a desired wiring segment of the grouped input line group  300  can be set to fixed logical value  0  by setting the input logical-value- 0  programming line  80  at the logical value  0 . 
         [0093]    In the rewritable nonvolatile switching element group  43 , the cathode of each element is connected to each line segment of the grouped input line group  300 , and the anode  10  is connected to an input logical-value- 1  programming line  83 . 
         [0094]    The rewritable nonvolatile switching element group  43  is programmed that the rewritable nonvolatile switching element  1  is set at the ON state, which is associated with a line segment to be desired to set fixed logical value to  1  among the input line group  300 . Then, a desired line segment of the input line group  300  can be set at a fixed logical value  1  by setting the input logical-value- 1  programming line  83  at the logical value  1 . By the above mentioned method, it is possible to set fixed logical values  0  or  1  to an optional input of the function block  2 . 
         [0095]    [Description of the operation] An example of programming of the rewritable nonvolatile switching element group  43  will be described. If setting a rewritable nonvolatile switching element  1   c  in the rewritable nonvolatile switching element group  43  at ON state, only a programming transistor  30   a  is turned on and the other programming transistors are turned off. 
         [0096]    If the input logical-value- 1  programming line  83  is set at an ON setting voltage Von and the input programming line  70  is set at 0 V, the rewritable nonvolatile switching element  1   c  becomes an ON state after a the elapse of certain period of time. At this time, preventing an unintended rewritable nonvolatile switching element  1  from programming, it is desirable to set a non-use programming line at a half the voltage of Von. 
         [0097]    In order to set the rewritable nonvolatile switching element  1   c  at turn-off state, the horizontal fixed value programming line  83  should be set at 0 V and the horizontal programming line  70  at an off voltage V. Programming of the rewritable nonvolatile switching element group  40  is in the same way. 
         [0098]      FIG. 6A  is an example of the function block  2  of  FIG. 2 . This is a multiplexer which outputs a  0  side input I 0  to OUT in case of an input I 2  equal to  0  and outputs a  1  side input I 1  to OUT in case of an input I 2  equal to  1 . 
         [0099]    The table of  FIG. 6B  shows a logic functions of the multiplexer in  FIG. 6A  when fixed logical values at any one of  0 ,  1 , or an optional input signal is given to input terminals I 0 , I 1  and I 2 . Thus, various logic functions can be realized by giving a fixed logical value to the inputs. 
         [0100]    [Description of the effect] Various logic functions can be set for the programmable cell  5  of the exemplary embodiment of the present invention by providing the rewritable nonvolatile switching element group  40  and the grouped rewritable nonvolatile switching element group  43 . It is not necessary for the rewritable nonvolatile switching element groups  40  and  43  to provid an additional programming transistor, and so it is possible to set a fixed logical value to the input line group  300  on the small area. 
         [0101]    While the function block indicated in  FIG. 6B  is as one example of function blocks, the function block would have various changes in form and details. For example, the number of inputs and outputs of the function block  2  can be changed. 
         [0102]    [The other effects] Generally, a look-up table (hereinafter, LUT) is widely used as the function block  2 .  FIG. 7  is an example of the 3-input LUT using the rewritable nonvolatile switching element  1 . The LUT disposes an 8-input multiplexer  8  whose inputs from 0 to 7 are connected to the rewritable nonvolatile switching element groups  45  and  46 . 
         [0103]    In each input of the circuit described in  FIG. 7 , it is programmed a switching element of any one of LUT logical-value- 0  rewritable nonvolatile switching element group  45  and LUT logical-value- 1  rewritable nonvolatile switching element group  46  to set at ON state. After performing programming of all pieces of rewritable nonvolatile switching element  1 , a LUT logical-value- 0  programming line  75  is set at the logical value  0  and making a LUT logical-value- 1  programming line  76  is set at the logical value  1 , and then it functions as a LUT. I 0 , I 1 , and  12  become input of the function block  2 , and OUT becomes output of the function block  2 . 
         [0104]    However, there is a problem that the area of a LUT using the rewritable nonvolatile switching element  1  becomes large. The reason is that LUT programming transistor group  35  and a LUT programming line  85  connected to the former are needed for the inputs of the 8-input multiplexer  8  in order to program the LUT. Because a programming transistor occupies a large area, the area of this LUT will be very large. 
         [0105]    In the programmable cell  5  of the present exemplary embodiment, various logic functions can be set to the function block  2  by providing the rewritable nonvolatile switching element group  40  and the rewritable nonvolatile switching element group  43  for the input of the function block  2 . 
         [0106]    Also, because the input programming transistor group  30  already having been provided can be used for programming of the rewritable nonvolatile switching element  1 , addition of a programming transistor is not necessary. Thus, the present exemplary embodiment can realize a logic function setting means of a small area using the rewritable nonvolatile switching element  1 . 
       Fifth Exemplary Embodiment 
       [0107]    Next, the fifth exemplary embodiment will be described. 
         [0108]    As shown in  FIG. 8 , the different point of the present exemplary embodiment from the second exemplary embodiment is that a line in the vertical direction is formed onto a M-th layer metal wiring  3  and a line in the horizontal direction is formed onto an M+1-th layer metal wiring  4 . Structure and connection relationship of the present exemplary embodiment are the same as those of the second exemplary embodiment except lines and blocks listed above. 
         [0109]    The programmable cell  5  of the present exemplary embodiment uses the rewritable nonvolatile switching element  1 . 
         [0110]    For example, as shown in from  FIG. 3  to  FIG. 5 , the rewritable nonvolatile switching element groups  61  and  62  form two-dimensional switch matrices, moreover both of them form different two-dimensional switch matrices with the rewritable nonvolatile switching element group  63 . Thus, not only a simple single switch matrix but plural switch matrices existing in association with each other complicatedly are included on a reconfigurable circuit in the present exemplary embodiment. Therefore, it is need to have an idea to lay out switching element groups compactly. 
         [0111]    Here, wiring of the vertical direction is formed onto the M-th layer metal wiring  3  and wiring of the horizontal direction onto the M+1-th layer metal wiring  4  in the programmable cell  5  in the present exemplary embodiment, thus a wiring direction is changed for each layer alternately. 
         [0112]      FIG. 8  is a diagram of the top view about a wiring layout sample. Here, the M-th layer metal wiring  3  is used for a vertical direction wiring and the M+1-th layer metal wiring  4  is used for a horizontal direction wiring. The rewritable nonvolatile switching element  1  is formed into an intersection of the horizontal direction wiring  4  and the vertical direction wiring  3 . 
         [0113]      FIG. 9  is a diagram of the side view about an intersection of the vertical wiring direction  3  and the horizontal wiring direction  4 . The rewritable nonvolatile switching element  1  including the anode  10 , the ion conductor  11 , and the cathode  12  is formed between the vertical direction wiring  3  and the horizontal direction wiring  4 . A via  6  connects the horizontal direction wiring  4  and the rewritable nonvolatile switching element  1 . Because the anode  10  is often made of copper in the same material as a wiring, the vertical direction wiring  3  can be used as the anode  10 . 
         [0114]    It is possible to suppress the cost by making the mask pattern simple, if forming all pieces of rewritable nonvolatile switching element  1  in a same structure. Actually, the anode  10  of every rewritable nonvolatile switching element  1  is made to be in the vertical direction wiring  3  side of M-th layer and the cathode  12  is made to be in the horizontal direction wiring  4  side of M+1-th layer as an example using  FIG. 9 . In addition, it would be fair to reverse the directions of all pieces of rewritable nonvolatile switching element  1 . 
         [0115]      FIG. 10A  is a perspective view of  FIG. 9 . The rewritable nonvolatile switching element  1  is formed between the horizontal direction wiring  4  and the vertical direction wiring  3 . The anode  10  is formed in the side of the vertical direction wiring  3 . 
         [0116]    [Description of the effect] while plural switch matrices exist in association with each other complicatedly in the programmable cell  5  of the present exemplary embodiment, every rewritable nonvolatile switching element  1  is formed in the same direction. For example, wasteful pulling over of wiring can be eliminated as a whole and a compact layout can be made, by connecting the anode  10  of every rewritable nonvolatile switching element  1  to M-th layer vertical direction metal wiring and connecting the cathode to M+1-th layer horizontal direction metal wiring. In this regard, however, the rewritable nonvolatile switching element  1  outside of an intersection of wiring of the vertical direction and the horizontal direction such as ones in the rewritable nonvolatile switching element groups  51  and  52  are not available. 
         [0117]    As shown in  FIG. 10B , wiring connected to anode  10  and wiring connected to the cathode  12  can be made reverse while keeping the direction of the rewritable nonvolatile switching element  1  the same.  FIG. 10B  is a perspective view in which wiring is reversed compared with  FIG. 10A . That is to say, the anode  10  is connected to the horizontal direction wiring  4  and the cathode  12  is connected to the vertical direction wiring  3 . 
         [0118]    Referring to this structure in detail, the anode  10  of the rewritable nonvolatile switching element  1  is connected to a M-th layer metal wiring  3 A. Further, the M-th layer metal wiring  3 A is connected to the horizontal direction wiring  4  via a via  6 B. The cathode of the rewritable nonvolatile switching element  1  is connected to a M+1-th layer metal wiring  4 A. Further, the M+1-th layer metal wiring  4 A is connected to the vertical direction wiring  3  via a via  6 A. 
         [0119]    Thus, the anode  10  and the cathode of the rewritable nonvolatile switching element  1  can be connected to opposite wiring of the example of  FIG. 10A . 
       Sixth Exemplary Embodiment 
       [0120]    Next, the sixth exemplary embodiment will be described. 
         [0121]    As shown in  FIG. 11 , the different point of the present exemplary embodiment from the second exemplary embodiment is that the rewritable nonvolatile switching element group  61  is different from the place and is renamed the rewritable nonvolatile switching element group  60 . Structure and connection relationship of the present exemplary embodiment are the same as those of the second exemplary embodiment except lines and blocks listed above. 
         [0122]    As shown in  FIG. 11 , a reconfigurable circuit in the present exemplary embodiment includes vertical direction branch lines  110  for the of horizontal direction programmable wiring group  100 , and the vertical direction branch line group  110  connect to the input line group  300  via the rewritable nonvolatile switching element  60 . In other words, in  FIG. 11 , the rewritable nonvolatile switching element group  61  indicated in  FIG. 2  is different from the place and is renamed the rewritable nonvolatile switching element group  60 . 
         [0123]    In the case of this structure, while the topology of the circuit is not changed, polarity of the rewritable nonvolatile switching element group  60  become reverse to the rewritable nonvolatile switching element group  61  in  FIG. 2 , because it follows the above-mentioned optimum layout. 
         [0124]    That is to say, the anode  10  of the rewritable nonvolatile switching element group  60  is connected to the vertical direction branch line group  110  of the horizontal direction programmable wiring group  100 . On the other hand, the cathode of the rewritable nonvolatile switching element group  61  of  FIG. 2  is connected to the horizontal direction programmable wiring group  100 . 
         [0125]    In both of  FIG. 2  and  FIG. 8 , long-distance lines of the vertical direction and the horizontal direction correspond to vertical direction wiring group and horizontal direction wiring group of an actual layout, respectively. Conforming to the rewritable nonvolatile switching element groups  60  and  61  described above to the compact layout method, such handling is needed. As above, a circuit diagram net list can be determined so that an optimum layout can be realized in the present exemplary embodiment. 
         [0126]    [Description of the effect] In every rewritable nonvolatile switching element  1  (except for the rewritable nonvolatile switching element groups  51  and  52 ) of  FIG. 11 , the anode  10  is connected to the vertical direction wiring side. Thus, it is possible to design connecting and reversing the rewritable nonvolatile switching element  1  in a circuit diagram according to a layout and it becomes possible to realize various kinds of wiring design. 
       Seventh Exemplary Embodiment 
       [0127]    Next, the seventh exemplary embodiment will be described. 
         [0128]    As shown in  FIG. 12 , a reconfigurable circuit of the present exemplary embodiment has an operation mode with transition among three states. Structure and connection relationship of the present exemplary embodiment are the same as those of the first exemplary embodiment except lines and blocks listed above. 
         [0129]      FIG. 12  indicates a state transition diagram of a reconfigurable circuit in the present exemplary embodiment. A reconfigurable circuit in the present exemplary embodiment makes transition among three states, such as an intermediate state  8000 , a programming state  8100 , and an application state  8200 . 
         [0130]    A reconfigurable circuit in the present exemplary embodiment will be in the intermediate state  8000 , if it is powered on in the state that a configuration has not been performed yet. At that time, every programming transistor becomes off state, and every programming driver  7  outputs an intermediate voltage Vmdl. As a result, every line will be set at the intermediate voltage Vmdl and a floating line disappears. 
         [0131]    In a case where one specific rewritable nonvolatile switching element  1  is programmed, transition to the programming state  8100  is made. The programming state  8100  turns on a programming transistor connected to the rewritable nonvolatile switching element  1  of a programming target and turns off programming transistors besides that. 
         [0132]    In this case, the programming driver  7 , connected to the anode  10  of the rewritable nonvolatile switching element  1  of the programming target, outputs a voltage Von and another programming driver  7 , connected to the cathode  12  of it, outputs zero voltage and thus programming of the switching element into the ON state is made. 
         [0133]    Every time a programming of one piece of rewritable nonvolatile switching element  1  is completed, it returns to the intermediate state  8000  and advances towards programming of a different switching element again. 
         [0134]    [Description of the effect] In the programming state  8100 , almost every line of a reconfigurable circuit becomes a floating line. However, because it returns to the intermediate state  8000  every time the program of one switching element is ended, it is possible to charge all lines to the intermediate voltage Vmdl and keep the electric potential within a certain range. 
         [0135]    After desired programs have ended, transition to the application state  8200  is made. Here, all power supply voltages are set to a normal operation voltage Vdd, and an application circuit which has been written into the reconfigurable circuit by the programming can be operated. 
         [0136]    When programmed once, it does not disappear even if the power supply is cut. Therefore, next time the power is turned on again and the application circuit is driven, it can be started from the application state  8200  directly. 
         [0137]    In the case where the application circuit is rewritten, transition to the intermediate state  8000  is made, and a desired rewritable nonvolatile switching element  1  is set at ON state or OFF state. When performing OFF state setting, transition to the programming state  8100  is made, the output voltage of the programming driver  7  connected to the cathode of a rewritable nonvolatile switching element  1  of the program target is set to Voff, and the output voltage of a programming driver  7  connected to the anode  10  to 0 V. 
       Eighth Exemplary Embodiment 
       [0138]    Next, the eighth exemplary embodiment will be described. 
         [0139]    Next, a programming block in a reconfigurable circuit of the present exemplary embodiment will be described. Structure and connection relationship of the present exemplary embodiment are the same as those of the second exemplary embodiment except lines and blocks listed above. 
         [0140]    [Description of the structure]  FIG. 13A  is a block diagram of the first programming block  7000  in  FIG. 2 . The first programming block  7000  includes programming drivers  7   a ,  7   b ,  7 A,  7 B, and  7 C, and the TEST terminal of each programming driver  7  is connected to the state detection line  500 . 
         [0141]    Each output PV of the programming drivers  7   a ,  7   b ,  7   c ,  7 A,  7 B, and  7 C drives the input programming line  70 , the horizontal programming line  71 , the input logical-value- 0  programming line  80 , the input logical-value- 1  programming line  83 , and the horizontal fixed value programming line  81 , respectively. 
         [0142]      FIG. 13B  is diagram indicating a block diagram of the second programming block  6000  in  FIG. 2 . The second programming block  6000  includes programming drivers  7   d  and  7 D, and the TEST terminal of each programming driver  7  is connected to the state detection line  500 . 
         [0143]    Each output PV of programming driver  7   d  and  7 D drives the vertical fixed value programming line  82  and the vertical programming line  72 , respectively. 
         [0144]    The first programming line group  700  of  FIG. 2  corresponds to the programming line groups  70 ,  71 ,  80 ,  83 , and  81  of  FIG. 5 . The second programming line group  600  of  FIG. 2  corresponds to the programming line groups  72  and  82  of  FIG. 5 . 
         [0145]    Next, a circuit diagram of each programming driver  7  will be described using  FIG. 14 . 
         [0146]    The programming driver  7  selects one from at least three kinds of power supply voltages such as Von, Voff, Vmdl, and a ground 0 V and outputs it to PV. Or, the whole voltage selection transistor group  36  is turned off, it is to be made for the PV in the high impedance state. 
         [0147]    Which of these states is outputted by a programming driver  7  is decided by the signal given to voltage selection line group  96 . This signal is based on a signal outputted from the programming controller  9  of  FIG. 2 . In other words, which of the voltages is outputted is decided by the programming controller  9 . 
         [0148]    When the voltage outputted to PV is 0 V, a test selection transistor  34  is turned on, and the voltage of PV is outputted to a TEST terminal. In order to program only one rewritable nonvolatile switching element  1  at a time, only one among all pieces of programming driver  7  outputs 0 V. 
         [0149]    That is, only one TEST terminal is enabled, and the other TEST terminals will be in the high impedance state (a TEST selection transistor becomes off). Because the resistance of the rewritable nonvolatile switching element  1  differs greatly between the ON state and the OFF state, electric potentials of the terminal PV of a programming driver  7 , which outputs 0 V, are also different between them. 
         [0150]    That is to say, although it is approximately 0 V in the OFF state, it becomes of an electric potential more definitely higher than that in the ON state. The difference in these electric potentials is transmitted to the programming controller  9  from the TEST terminal through the state detection line  500 . By this, the programming controller  9  detects whether desired programming has been performed or not. 
         [0151]    Further, because a voltage is applied to the rewritable nonvolatile switching element  1  via a programming transistor, a voltage that is lower than the original voltage by the programming transistor threshold voltage Vth of the programming transistor is added. Therefore, the voltages Von and Voff given from outside should be given a voltage of Vth higher than the ON voltage and the OFF voltage of the rewritable nonvolatile switching element  1 . 
         [0152]    In the intermediate state  8000 , a half of the ON voltage is given to the rewritable nonvolatile switching element  1 . Therefore, it is desirable to make the external source voltage Vmdl be sum of the half of ON voltage and the half of Vth. In general, Von is higher than Voff, and the both voltages are different from each other. In addition, the OFF current for programming the rewritable nonvolatile switching element  1  to the OFF state is larger than the ON current for programming it to the ON state. 
         [0153]    Thus, regarding the ON setting and OFF setting, not only polarities of voltages applied to the rewritable nonvolatile switching element  1  are reversed from each other, but also voltage values and current values are different from each other. The programming driver  7  of  FIG. 14  can apply three different kind voltages, and can set an electric current optionally for each power supply by adjusting each transistor width of the grouped voltage selection transistor group  36 . 
         [0154]    An example is indicated in the programmable cell  5  of  FIG. 2 , in which the horizontal programmable line group  100  includes four wiring segment, the vertical programmable line group  200  includes three wiring segments, the number of inputs of the function block  2  is three, and the number of outputs of the function block  2  is one and these numbers may be optional. While an example is shown, in which the length of each line segment is equal to that of one programmable cell  5 , the wiring length is not limited to this. 
         [0155]    [Description of the effect] There is a problem that a reconfigurable circuit using the rewritable nonvolatile switching element  1  can use only one kind programming voltage generally. In other words, it is assumed that voltages of the ON setting and the OFF setting of the rewritable nonvolatile switching element  1  are the same while their polarities are reversed from each other. However, Von and Voff are not necessarily the same generally, and thus an ON setting current and an OFF setting current are often times different. Further, because a state besides the ON setting and the OFF setting is also needed in the programming process, there is a problem that handling of various kinds of programming state  8100  is not possible. 
         [0156]    A reconfigurable circuit using the rewritable nonvolatile switching element  1  in the present exemplary embodiment includes a function to output an ON setting voltage and an OFF setting voltage of the rewritable nonvolatile switching element  1 , an intermediate voltage, and 0 V to the programming driver  7 . Also, regarding the above output voltages, an electric current can be set for each power supply by an adjustment of a transistor width. 
         [0157]    By the aforementioned configurations, appropriate ON setting conditions and OFF setting conditions can be realized and reliable programming of the rewritable nonvolatile switching element  1  can be performed. Further, by having the intermediate voltage output function, erroneous programming of the rewritable nonvolatile switching element  1  can be suppressed because a programmable line can be held within a desired potential range. 
         [0158]    While the programmable wiring groups  100  and  200  intersect with each other perpendicularly in the above-mentioned first to eighth exemplary embodiments, it is not limited to this angle and it may be intersection at any angle. 
         [0159]    While the invention has been particularly shown and described with reference to exemplary embodiments thereof. The invention is not limited to these embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the claims. 
         [0160]    This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2010-200433, filed on Sep. 8, 2010, the disclosure of which is incorporated hereby in its entirety by reference. 
       DESCRIPTION OF THE CODES 
       [0000]    
       
         
           
               1 ,  1 A,  1 B,  1   a ,  1   b ,  1   c ,  40 ,  41 ,  42 ,  43 ,  45  and  46  Rewritable nonvolatile switching element 
               2  Function block 
               3  and  3 A M-th layer metal wiring 
               4  and  4 A M+1-th layer metal wiring 
               5  Programmable cell 
               6 ,  6 A and  6 B Via 
               7   a ,  7   b ,  7   d ,  7 A,  7 B,  7 C and  7 D Programming driver 
               8  8-input multiplexer 
               9  Programming controller 
               10  Anode 
               11  Ion conductor 
               12  Cathode 
               13  and  14  Terminal of the rewritable nonvolatile switching element  1   
               21 ,  22 ,  40 ,  41 ,  42 ,  43 ,  51 ,  52 ,  60 ,  61 ,  62  and  63  Rewritable nonvolatile switching element group 
               30  Input programming transistor group 
               31  Horizontal programming transistor group 
               32  Vertical programming transistor group 
               33  Output programming transistor 
               30   a  and  31   a  Programming transistor 
               34  Test selection transistor 
               35  LUT programming transistor group 
               36  Voltage selection transistor group 
               70  Input programming line 
               71  Horizontal programming line 
               72  Vertical programming line 
               75  LUT logical-value- 0  programming line 
               76  LUT logical-value- 1  programming line 
               80  Input logical-value- 0  programming line 
               81  Horizontal fixed value programming line 
               82  Vertical fixed value programming line 
               83  Input logical-value- 1  programming line 
               85  LUT programming line 
               93  Gate terminal of the output programming transistor  33   
               96  Voltage selection line group 
               100  Horizontal programmable wiring group 
               110  Vertical direction branch lines 
               200  Vertical programmable wiring group 
               300  and  310  Input line group of the function block  2   
               400  and  410  Output line of the function block  2   
               500  State detection line 
               600  Second programming line group 
               700  First programming line group 
               1000  Horizontal line group 
               2000  Vertical line group 
               5000  Intersecting area 
               6000  Second programming block 
               7000  First programming block 
               8000  Intermediate state 
               8100  Programming state 
               8200  Application state