WO2019059119A1 - プログラマブル集積回路および制御装置 - Google Patents

プログラマブル集積回路および制御装置 Download PDF

Info

Publication number
WO2019059119A1
WO2019059119A1 PCT/JP2018/034151 JP2018034151W WO2019059119A1 WO 2019059119 A1 WO2019059119 A1 WO 2019059119A1 JP 2018034151 W JP2018034151 W JP 2018034151W WO 2019059119 A1 WO2019059119 A1 WO 2019059119A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
output
input
output buffer
group
Prior art date
Application number
PCT/JP2018/034151
Other languages
English (en)
French (fr)
Inventor
信 宮村
阪本 利司
幸秀 辻
竜介 根橋
あゆ香 多田
旭 白
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2019543613A priority Critical patent/JP6908121B2/ja
Priority to US16/648,757 priority patent/US20200251496A1/en
Publication of WO2019059119A1 publication Critical patent/WO2019059119A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • H01L27/118Masterslice integrated circuits
    • H01L27/11803Masterslice integrated circuits using field effect technology
    • H01L27/11807CMOS gate arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5614Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using conductive bridging RAM [CBRAM] or programming metallization cells [PMC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0009RRAM elements whose operation depends upon chemical change
    • G11C13/0011RRAM elements whose operation depends upon chemical change comprising conductive bridging RAM [CBRAM] or programming metallization cells [PMCs]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • H01L27/118Masterslice integrated circuits
    • H01L27/11803Masterslice integrated circuits using field effect technology
    • H01L27/11807CMOS gate arrays
    • H01L2027/11883Levels of metallisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017509Interface arrangements

Definitions

  • the present invention relates to programmable integrated circuits and controllers.
  • the present invention relates to a programmable integrated circuit using a variable resistance nonvolatile element and a control device for setting configuration data in the programmable integrated circuit.
  • the FPGA has programmable wiring (hereinafter also referred to as crossbar switch) as a main component in order to enable implementation of a user design described in an RTL (Resistor Transfer Level) language.
  • crossbar switch examples include those using a complementary metal-oxide-semiconductor (CMOS) circuit, an antifuse element, or a resistance change element.
  • CMOS complementary metal-oxide-semiconductor
  • a crossbar switch using a CMOS circuit has basic components such as a static random access memory (SRAM) for storing the connection state of wiring, and a pass transistor whose on / off is controlled by a switch control signal stored in the SRAM.
  • SRAM static random access memory
  • FPGAs using CMOS circuits require many transistors per switching switch. Therefore, there is a problem that the layout area at the time of integration on the semiconductor wafer is increased, and the cost and the performance are restricted.
  • Non-Patent Document 1 discloses an example of a crossbar switch using a CMOS circuit.
  • the crossbar switch of Non-Patent Document 1 pass transistors are arranged in a tournament manner. Therefore, in the FPGA using the crossbar switch of Non-Patent Document 1, it is difficult to configure a large-scale crossbar switch because the layout area increases beyond the proportional relationship as the circuit is enlarged.
  • Patent Document 1 discloses a crossbar switch using an antifuse element.
  • the basic component of the connection switch is only the resistance variable element. Therefore, although the crossbar switch using the resistance variable element has a complicated manufacturing process, if the element size is as small as that of the CMOS, the increase in the layout area at the time of integration can be suppressed.
  • the resistance variable element ReRAM (Resistance Random Access Memory) using a transition metal oxide, Nano Bridge (registered trademark) using an ion conductor, and the like can be given.
  • Patent Document 2 discloses a resistance variable element that changes the resistance value of an ion conductor by changing the polarity of an applied voltage to control the conduction state between two electrodes.
  • Patent Document 2 discloses a crossbar switch that uses a variable resistance element for ULSI (Ultra-Large Scale Integration).
  • FIG. 25 is a configuration example of a crossbar switch of an FPGA using the variable resistance element of Patent Document 2.
  • the crossbar switch 100 of FIG. 25 has a configuration in which the resistance variable element 103 is disposed at the intersections of the plurality of input lines 101 and the plurality of output lines 102. Since the configuration of the crossbar switch 100 is simple as shown in FIG. 25, a multi-input multi-output crossbar switch can be configured relatively easily.
  • FIG. 26 shows a crossbar switch circuit in which logic circuits (logic circuits 106a to 106c) are connected to the output line 102 of the crossbar switch 100 (FIG. 25) using the resistance variable element of Patent Document 2.
  • logic circuits logic circuits 106a to 106c
  • FIG. 26 shows a crossbar switch circuit in which logic circuits (logic circuits 106a to 106c) are connected to the output line 102 of the crossbar switch 100 (FIG. 25) using the resistance variable element of Patent Document 2.
  • the resistance variable element 103 When the resistance variable element 103 is in the on state, the capacitance 104 of each output line 102 and the input capacitance 105 to the logic circuit 106 are connected to each input line 101 as a load.
  • the on-state resistance variable elements 103 resistance variable elements 103 (resistance variable elements 103a to 103d) are blacked out and the off-state resistance variable elements 103 are whited.
  • one output line 102b is connected to the input line 101a via the resistance change element 103a in the on state. Further, the output line 102a, the output line 102c, and the output line 102d are connected to the input line 101b through the resistance change elements 103b to 103d in the on state.
  • the number of output lines 102 connected to the input line 101 is referred to as the fan-out number. In the example of FIG. 26, the fan-out number of the input line 101a is one, and the fan-out number of the input line 101b is three.
  • the capacitance 104b and the input capacitance 105b are connected as a load to the input line 101a via the resistance variable element 103a.
  • three capacitances (capacitance 104a, capacitance 104c, capacitance 104d) and three input capacitances (input capacitance 105a, input capacitance 105c, input) are input to the input line 101b via the resistance change elements 103b to 103d, respectively.
  • a load combined with the capacitance 105d) is connected.
  • Patent Document 3 discloses a resistance change type element utilizing movement of metal ions in an ion conductor in which ions can freely move by application of an electric field, and an electrochemical reaction. Patent Document 3 discloses a method of achieving both off reliability and writing at a low voltage by connecting resistance variable elements in series and using them as a unit element.
  • the crossbar switch circuit using the resistance variable element of Patent Document 2 is advantageous for enlargement in terms of layout area, but the propagation delay changes depending on the fanout number of the crossbar. If the setting is made on the assumption that the propagation delay is the slowest, the delay performance as a circuit deteriorates. In order to increase the drive current, the area of the buffer circuit for driving the crossbar switch is increased, and the area of the crossbar switch circuit is increased. Also, assuming that the propagation delay is the slowest, if the drive current of the crossbar switch input is increased, a large pulse current instantaneously flows in the resistance variable element of the crossbar switch having a small fan-out number. In the resistance variable element in which a large pulse current flows instantaneously, the stress due to electromigration may increase.
  • an object of the present invention is to provide a programmable logic circuit capable of reducing the propagation delay and electromigration which may occur depending on the number of fan-outs in a crossbar switch circuit using resistance variable elements. It is to provide.
  • a programmable logic circuit includes: a plurality of first wirings arranged in a first direction; and a plurality of second wirings arranged in a second direction intersecting the first direction.
  • a crossbar switch including a resistance variable element that connects the first wiring and the second wiring; and a logic circuit group including at least one logic circuit connected to the output of the second wiring.
  • an output buffer group constituted by at least two output buffers connected to the input of the first wiring and operated with different driving forces.
  • the control device includes a crossbar switch, at least two output buffers connected to the input of the crossbar switch, and at least one logic circuit connected to one of the outputs of the crossbar switch.
  • Logic synthesis means for logically synthesizing a behavioral description file to create a first level netlist, mapping means for mapping a first level netlist and converting it to a second level netlist, second level net Grouping multiple logical elements contained in the list into a clustered basic logical element
  • Cluster means for generating the third level netlist in line with the above, and the optimum arrangement of the third level netlist for the array of clustered basic logic elements, and the clustered basic logic elements are calculated.
  • Layout means for creating user circuit configuration information by connecting the connected crossbar switches and wiring inside and outside the cluster, and the value of the output buffer driving power corresponding to the number of fanouts of the crossbar switch
  • the fanout number is calculated for each crossbar switch input based on the storage means for storing the lookup table to be stored and the user circuit configuration information, and the driving power of the output buffer corresponding to the fanout number is referenced with reference to the lookup table.
  • the program Data generating means for generating the configuration data for programming the user circuit to Maburu integrated circuit, based on the configuration data, and a circuit setting means for programming a user circuit in a programmable integrated circuit.
  • the control device includes a crossbar switch, at least two output buffers with fixed driving power connected to the input of the crossbar switch, and at least one logic connected to any of the outputs of the crossbar switch.
  • Logic synthesis means for logically synthesizing the behavioral description file to create the first level netlist; mapping means for mapping the first level netlist and converting it to the second level netlist; Grouping multiple logical elements contained in the netlist, and clustering basic logical circuits
  • the fanout number is calculated for each crossbar switch input based on the cluster means for generating the third level netlist according to the configuration of the third level netlist, and the driving power is high in the descending order of the fanout number.
  • Assigning means for reclustering the basic logic circuit by assigning an output buffer to the input of the crossbar switch, and calculating an optimal arrangement of the third level netlist for the reclustered basic logic circuit array, and reclustering Layout means for creating user circuit configuration information by connecting crossbar switches connected to the integrated basic logic circuit and wiring inside and outside the cluster, and user circuit configuration including output buffer allocation Configurable for programming user circuits into programmable integrated circuits based on information Data generating means for generating Yondeta, based on the configuration data, and a circuit setting means for programming a user circuit in a programmable integrated circuit.
  • a programmable logic circuit capable of reducing propagation delay and electromigration which may occur depending on the number of fan-outs in a crossbar switch circuit using a resistance variable element.
  • FIG. 6 is a conceptual diagram for describing a capacitance of an output line provided in the programmable logic circuit according to the first embodiment of the present invention and an input capacitance of the logic circuit. It is a conceptual diagram for demonstrating the connection relation of the programmable logic circuit which concerns on the 1st Embodiment of this invention, and the logic circuit of the circuit of a front
  • FIG. 1 is a conceptual diagram showing the configuration of the programmable logic circuit 1 of the present embodiment.
  • the programmable logic circuit 1 includes an output buffer group 11, a crossbar switch 12, and a logic circuit group 16.
  • the output buffer group 11 includes at least one output buffer.
  • the driving power of the output buffer included in the output buffer group 11 is set according to the number of output lines 14 (also referred to as the fan-out number) to which the input lines connected to the output buffer are connected.
  • the output buffer group 11 includes a plurality of output buffers that can be driven with different driving forces.
  • the program output buffer includes at least one buffer circuit and at least one tri-state buffer circuit.
  • the crossbar switch 12 includes an input line 13 disposed along the y direction (also referred to as a first direction), an output line 14 disposed along the x direction (also referred to as a second direction), and an input line 13 And the output line 14 and the resistance variable element 15 disposed at the intersection.
  • an example in which the crossbar switch 12 is configured by the plurality of input lines 13, the plurality of output lines 14, and the plurality of resistance variable elements 15 will be described.
  • the input line 13 (also referred to as a first wiring) is connected to any output buffer included in the output buffer group 11. Further, the input line 13 is connected to the output line 14 via the resistance variable element 15. In the present embodiment, the input line 13 is described regardless of whether it is a single line or a multiple line.
  • the output line 14 (also referred to as a second wiring) is connected to the input line 13 via the resistance variable element 15. Further, the output line 14 is connected to any one of the logic circuits constituting the logic circuit group 16. In the present embodiment, the output line 14 is described regardless of whether it is a single line or a double line.
  • the resistance variable element 15 is disposed at the intersection of the input line 13 and the output line 14.
  • the on / off state of the resistance variable element 15 is controlled by a control line (not shown).
  • a control line not shown.
  • the input line 13 and the output line 14 are connected, and a signal input from any output buffer of the output buffer group 11 is any one of the logic circuit group 16. It is output to the logic circuit.
  • the resistance variable element 15 is in the OFF state, the input line 13 and the output line 14 are not connected, and the signal input from the output buffer group 11 is not output to the logic circuit group 16.
  • Logic circuit group 16 includes at least one logic circuit.
  • the logic circuits included in the logic circuit group 16 are circuits set to perform various logic operations.
  • the logic circuit included in the logic circuit group 16 is connected to any output line 14.
  • the logic circuit to which the signal is input through the on-state resistance change element 15 performs a logical operation on the input signal and outputs an execution result.
  • FIG. 2 is a conceptual diagram extracting a part of the configuration of programmable logic circuit 1 in order to describe output buffer group 11 included in programmable logic circuit 1.
  • FIG. 2 shows one of the plurality of output buffers included in the output buffer group 11 (programmable output buffer 110).
  • the programmable output buffer 110 has an input terminal 117, an output terminal 118 and a driving force setting terminal 119.
  • the input terminal 117 is connected to the output of one of the logic circuits constituting the logic circuit group 16 at the previous stage.
  • the output terminal 118 is connected to one end of the input line 13.
  • the driving force setting terminal 119 is connected to a control device (not shown), and receives a control signal for setting the driving force of the programmable output buffer 110.
  • the driving power of the programmable output buffer 110 is set according to the control signal.
  • resistance change elements 15b to 15f are in the off state when resistance change element 15a is in the on state.
  • a signal input from the programmable output buffer 110 to the input line 13 is input to the logic circuit 16 a via the on-state resistance change element 15 a and the output line 14.
  • the driving power of the programmable output buffer 110 is set to one.
  • the resistance change elements 15a to 15c are in the on state and the resistance change elements 15d to 15f are in the off state.
  • the signal input from the programmable output buffer 110 to the input line 13 is input to the logic circuits 16a and 16b via the on-state resistance change elements 15a to 15c and the output line 14.
  • the driving power of the programmable output buffer 110 is set to three times.
  • the driving force of the programmable output buffer 110 connected to the input line 13 is set according to the fan-out number of the input line 13.
  • FIG. 3 is a circuit configuration of an example of the programmable output buffer 110. Note that FIG. 3 is an example of the circuit configuration of the programmable output buffer 110, and the circuit configuration of the programmable output buffer 110 is not limited.
  • the programmable output buffer 110 includes a buffer circuit 111, a tri-state buffer circuit 112-1, and a tri-state buffer circuit 112-2.
  • the tristate buffer circuit 112 may be referred to as the tristate buffer circuit 112 without distinction between the tristate buffer circuit 112-1 and the tristate buffer circuit 112-2.
  • the buffer circuit 111 has an input terminal BA and an output terminal BY.
  • the tri-state buffer circuit 112-1 has an input terminal TA1, an output terminal TY1, and an enable terminal TE1.
  • Tri-state buffer circuit 112-2 has an input terminal TA2, an output terminal TY2, and an enable terminal TE2.
  • An input terminal BA of buffer circuit 111, an input terminal TA1 of tri-state buffer circuit 112-1, and an input terminal TA2 of tri-state buffer circuit 112-2 are connected to input terminal 117.
  • the output terminal BY of the buffer circuit 111, the output terminal TY1 of the tri-state buffer circuit 112-1, and the output terminal TY2 of the tri-state buffer circuit 112-2 are connected to the output terminal 118. That is, programmable output buffer 110 has a configuration in which buffer circuit 111, tristate buffer circuit 112-1, and tristate buffer circuit 112-2 are connected in parallel.
  • a control signal for setting the driving force of the tristate buffer circuit 112-1 is input to the enable terminal TE1 of the tristate buffer circuit 112-1.
  • the driving force of tri-state buffer circuit 112-1 is set to 0 or 1 in accordance with the setting signal.
  • a control signal for setting the driving force of the tristate buffer circuit 112-2 is input to the enable terminal TE2 of the tristate buffer circuit 112-2.
  • the driving force of tri-state buffer circuit 112-2 is set to 0 or 2 in accordance with the setting signal.
  • FIG. 4 is a truth table 110A of the buffer circuit 111. That is, the buffer circuit 111 outputs 0 from the output terminal BY when 0 is input from the input terminal BA, and outputs 1 from the output terminal BY when 1 is input from the input terminal BA.
  • FIG. 5 is a truth table 110 B of the tri-state buffer circuit 112. That is, when the enable terminal TE is set to 0, the tri-state buffer circuit 112 causes the output terminal TY to be in a high impedance state (High-Z) regardless of which of 0 and 1 is input from the input terminal TA. Does not output On the other hand, tri-state buffer circuit 112 outputs 0 from output terminal TY when 0 is input from input terminal TA when enable terminal TE is set to 1, and outputs when 1 is input from input terminal TA. Output 1 from the terminal TY.
  • High-Z high impedance state
  • FIG. 6 is a table 110C summarizing the driving power of the programmable output buffer 110 according to the setting values of the enable terminal TE1 and the enable terminal TE2.
  • the enable terminal TE1 When the enable terminal TE1 is set to 0 and the enable terminal TE2 is set to 0, the outputs of the tri-state buffer circuit 112-1 and the tri-state buffer circuit 112-2 are disconnected, and only the buffer circuit 111 can be driven. That is, the driving force of the programmable output buffer 110 is 1 ⁇ .
  • the enable terminal TE1 When the enable terminal TE1 is set to 1 and the enable terminal TE2 is set to 0, the output of the tri-state buffer circuit 112-2 is disconnected, and the sum of the driving power of the buffer circuit 111 and the tri-state buffer circuit 112-1 is obtained. That is, the driving power of the programmable output buffer 110 is doubled.
  • the output of the tri-state buffer circuit 112-1 is disconnected, and the sum of the driving powers of the buffer circuit 111 and the tri-state buffer circuit 112-2 is obtained. That is, the driving power of the programmable output buffer 110 is tripled.
  • the total of the driving powers of the buffer circuit 111, the tri-state buffer circuit 112-1 and the tri-state buffer circuit 112-2 is obtained. That is, the driving power of the programmable output buffer 110 is quadrupled.
  • the programmable output buffer 110 is set to the driving force according to the setting value of the control signal set to the enable terminal TE.
  • FIG. 7 is a symbol representation of a unipolar resistance change element (unipolar element 151).
  • the unipolar element 151 has a configuration in which the variable resistance layer is sandwiched between the first electrode and the second electrode.
  • the unipolar element 151 is a switching element that switches between an off state (high resistance state) and an on state (low resistance state) according to an applied voltage value.
  • the unipolar element 151 transitions from the off state to the on state.
  • a voltage larger than the reset voltage is applied to the on-state unipolar element 151, the unipolar element 151 transitions from the on state to the off state.
  • the positive voltage being applied is increased and the voltage value exceeds the set voltage, the unipolar element 151 transitions from the off state to the on state again.
  • the unipolar element 151 transitions from the off state to the on state.
  • the negative voltage applied to the first electrode of the on-state unipolar element 151 exceeds the reset voltage
  • the unipolar element 151 transitions from the on state to the off state.
  • the negative voltage value applied to the first electrode of the unipolar element 151 exceeds the set voltage
  • the unipolar element 151 transitions from the off state to the on state again.
  • the unipolar element 151 does not depend on the polarity of the voltage to be applied, but exhibits a resistance change characteristic depending on the value of the applied voltage.
  • FIG. 8 is a symbol representation of a bipolar resistance change element (bipolar element 152).
  • the bipolar element 152 has a configuration in which an ion conductor functioning as a resistance change layer is sandwiched between the first electrode and the second electrode.
  • the bipolar element 152 is a switching element that switches between the off state and the on state according to the polarity of the applied voltage.
  • the time when the voltage applied to the first electrode is higher than the voltage applied to the second electrode is defined as the positive electrode.
  • the bipolar element 152 transitions from the off state to the on state.
  • a negative voltage is applied to the first electrode of the bipolar element 152 and the applied voltage value exceeds the reset voltage, the bipolar element 152 transitions from the on state to the off state.
  • the bipolar element 152 can be switched between the off state and the on state according to the polarity of the applied voltage.
  • either the unipolar element 151 or the bipolar element 152 may be used.
  • the resistance variable element 153 may be used by connecting two bipolar elements 152 in series in reverse polarity.
  • FIG. 10 is a conceptual diagram for describing capacitances of the output line 14 and the logic circuit group 16 of the crossbar switch 12 of FIG.
  • the input line 13 is connected to any one of the output lines 14 through the on-state resistance variable element 15 when the resistance variable element 15 connected to the input line 13 is in the on state.
  • the capacitance 140 of the output line 14 and the input capacitance 160 to the logic circuit 106 are connected as a load to the input line 13 connected to the on-state resistance variable element 15.
  • the programmable output buffer 110 capable of adjusting the driving force is connected to the input side of the input line 13. Then, in the programmable output buffer 110 connected to each input line 13, a driving force corresponding to the number of output lines 14 connected to each input line 13 (also referred to as the fan-out number) is set. For example, in the programmable output buffer 110, when the fanout number of the input line 13 connected to the programmable output buffer 110 is one, the driving power is set to one and when the fanout number is three, the driving power is three Set to double. Thus, by adjusting the driving power of the programmable output buffer 110 according to the fan-out number of the input line 13, it is possible to improve the propagation delay and the stress due to the electromigration.
  • FIG. 11 is a configuration diagram explicitly showing the connection relationship between the programmable logic circuit 1 (FIG. 10) and the logic circuit group 16 included in the circuit of the previous stage. As shown in FIG. 11, the output of the logic circuit group 16 of the circuit of the preceding stage is input to the programmable logic circuit 1. The output from the logic circuit group 16 of the circuit of the preceding stage is connected to the input terminal of the output buffer constituting the output buffer group 11.
  • the number of output signals may be more than one.
  • the logic circuit is an AND circuit or an OR circuit
  • the output is one, but in the case of an arithmetic logic circuit, the output has multiple bits.
  • the logic circuit constituting the logic circuit group 16 at the previous stage may be a multi-bit output or may be a logic circuit of a different type. Therefore, in the present embodiment, the crossbar switch 12 has multiple inputs and multiple outputs. When the crossbar switch 12 has multiple inputs and multiple outputs, an output buffer is connected to each of the plurality of input lines 13 of the crossbar switch 12.
  • the current drive capability to the input line of the crossbar switch can be made variable.
  • the input capacitance of the crossbar switch changes according to the on / off state of the variable resistance element forming the crossbar switch.
  • the input capacity increases as the number of elements in the on-state is increased, the increase in signal propagation time can be suppressed by increasing the driving power of the programmable output buffer according to the increase in the input capacity.
  • the number of elements in the ON state is small, by reducing the driving force, it is possible to suppress the electromigration stress applied to the resistance variable element without unnecessarily increasing the rush current.
  • FIG. 12 shows a configuration example using an output buffer group 11b in which a plurality of output buffers whose driving forces are fixed to different values are combined.
  • the output buffer group 11b includes at least one output buffer with different driving power.
  • numbers indicating driving forces are shown for the respective output buffers constituting the output buffer group 11b.
  • a signal having a connection with a high fan-out number is preferentially assigned to the input line 13 connected to the output buffer with high driving power.
  • a signal having a connection with a low fan-out number may be assigned to the input line 13 connected to an output buffer with a low driving power.
  • the driving force of the output buffer constituting the output buffer group 11b is fixed, by selecting the input line 13 according to the number of fan-outs, stress due to an increase in propagation delay and electromigration is It can be improved.
  • the drive area of the output buffer group 11b can be suppressed by creating the driving powers of the plurality of output buffers constituting the output buffer group 11b in advance.
  • a programmable logic circuit according to a second embodiment of the present invention will be described with reference to the drawings.
  • the present embodiment differs from the first embodiment in that the output of the logic circuit constituting the logic circuit group is fed back to the crossbar switch circuit to form a cluster structure.
  • description of the same configuration as that of the first embodiment is appropriately omitted.
  • FIG. 13 is a conceptual diagram showing the configuration of the programmable logic circuit 2 of this embodiment.
  • the programmable logic circuit 2 having the configuration of FIG. 13 is also referred to as a cluster structure.
  • the programmable logic circuit 2 includes a crossbar switch 22, a first output buffer group 21 a, a second output buffer group 21 b, and a logic circuit group 26.
  • FIG. 13 also shows the third output buffer group 21c, the third output buffer group 21c can be omitted.
  • Crossbar switch 22 includes an input line (input line 23a and input line 23b) arranged along the y direction, an output line (output line 24a and output line 24b) arranged along the x direction, and an input line A plurality of resistance variable elements 25 are provided at the intersections with the output lines.
  • the input line 23a, the input line 23b, the output line 24a, and the output line 24b are described regardless of whether they are single or double.
  • the input line 23a is connected to any output buffer included in the first output buffer group 21a.
  • the input line 23b is connected to any output buffer included in the second output buffer group 21b.
  • the input line 23 a and the input line 23 b are connected to one of the output line 24 a and the output line 24 b through the resistance variable element 25.
  • the output line 24 a and the output line 24 b are connected to one of the input line 23 a and the input line 23 b via the resistance variable element 25.
  • the output line 24 a is connected to any of the logic circuits constituting the logic circuit group 26.
  • the output line 24 b is connected to the external output line 203 through the third output buffer group 21 c.
  • the crossbar switch 22 is connected to an external output line 203 for outputting a signal to an adjacent crossbar switch circuit (not shown).
  • the external output line 203 outputs a signal through the third output buffer group 21c for providing a driving force according to the fan-out number of the adjacent crossbar switch circuit.
  • the first output buffer group 21a includes at least one output buffer.
  • the output buffer included in the first output buffer group 21a has an input terminal, an output terminal, and a driving force setting terminal.
  • the input terminal of the output buffer of the first output buffer group 21a is connected to the output of the logic circuit group 26 of the preceding stage.
  • the output terminal of the output buffer of the first output buffer group 21a is connected to the input line 23a.
  • the driving force setting terminal of the output buffer of the first output buffer group 21a is connected to a control device (not shown), and receives a control signal for setting the driving force of the output buffer.
  • the second output buffer group 21b includes at least one output buffer.
  • the output buffer included in the second output buffer group 21b has an input terminal, an output terminal, and a driving force setting terminal.
  • the input terminal of the output buffer of the second output buffer group 21 b is connected to the output of the logic circuit group 26 via the feedback wiring 201.
  • the output terminal of the output buffer of the second output buffer group 21b is connected to the input line 23b.
  • the driving force setting terminal of the output buffer of the second output buffer group 21b is connected to a control device (not shown), and receives a control signal for setting the driving force of the output buffer of the second output buffer group 21b.
  • the logic circuit group 26 is connected to the output line 24a. A signal is input to the logic circuit group 26 via the on-state resistance variable element 25.
  • the logic circuit group 26 is connected to the second output buffer group 21 b via the feedback wiring 201. Then, the output of the logic circuit group 26 is input to the crossbar switch 22 via the second output buffer group 21 b.
  • logic circuit group 26 in programmable logic circuit 2 (cluster structure) can be mutually connected by feedback wiring 201. Therefore, according to the configuration shown in FIG. 13, a single programmable logic circuit 2 can configure a larger scale programmable logic circuit.
  • the fan-out number of the crossbar switch 22 in the feedback wiring 201 may be changed variously depending on the user design. When the fan-out number of the crossbar switch 22 is large, the increase in propagation delay can be suppressed by increasing the driving power of the first output buffer group 21a.
  • FIG. 14 is a conceptual diagram showing the configuration of a programmable logic circuit 20 in which cluster structures 200 having the configuration of the programmable logic circuit 2 of this embodiment are arranged in an array.
  • the programmable logic circuit 20 includes a plurality of cluster structures 200 arranged in an array, a segment wiring network 210 connecting adjacent cluster structures 200, and a plurality of switch boxes 220 arranged at intersections of the segment wiring networks 210. Configured
  • the input line 23a (FIG. 13) and the external output line 203 (FIG. 13) of the crossbar switch 22 (FIG. 13) of the cluster structure 200 are connected to the segment wiring network 210. Adjacent cluster structures 200 are connected via the switch box 220.
  • FIG. 15 shows a switch box 220 a of a configuration example of the switch box 220.
  • the switch box 220 a has a configuration in which the resistance variable element 225 connects the intersections of the wiring network 221 constituted by the wirings extending in the x direction and the y direction.
  • the switch box 220a can change the connection destination of the input line 23a.
  • FIG. 16 shows a switch box 220 b of a configuration example of the switch box 220.
  • the switch box 220 b has a configuration in which the intersection point of the wiring network 221 configured by the wirings distributed in the x direction and the y direction is connected by the via 226.
  • the connection destination of the input line 23a can not be changed.
  • the switch box 220b is used when the connection destination of the input line 23a is limited.
  • the propagation delay and the electromigration that may occur depending on the number of fan-outs can be obtained. It can be reduced.
  • a programmable logic circuit larger than that of the first embodiment can be configured.
  • a programmable logic circuit according to a third embodiment of the present invention will be described with reference to the drawings.
  • the present embodiment is different from the second embodiment in the configuration of the logic circuit forming the logic circuit group.
  • description of the same configuration as that of the second embodiment will be appropriately omitted.
  • FIG. 17 is a conceptual diagram showing the configuration of the programmable logic circuit 3 of this embodiment.
  • the programmable logic circuit 3 includes a crossbar switch 32, a first output buffer group 31a, a second output buffer group 31b, and a logic circuit group 36.
  • FIG. 17 also illustrates the third output buffer group 31c, the third output buffer group 31c can be omitted.
  • Crossbar switch 32 includes an input line (input line 33a and input line 33b) arranged along the y direction, an output line (output line 34a and output line 34b) arranged along the x direction, and an input line A plurality of resistance variable elements 35 are provided at the intersections with the output lines.
  • the input line 33a, the input line 33b, the output line 34a, and the output line 34b are described regardless of whether they are single or double.
  • the input line 33a is connected to any output buffer included in the first output buffer group 31a.
  • the input line 33b is connected to any output buffer included in the second output buffer group 31b.
  • the input line 33 a and the input line 33 b are connected to one of the output line 34 a and the output line 34 b via the resistance variable element 35.
  • the output line 34 a and the output line 34 b are connected to one of the input line 33 a and the input line 33 b via the resistance variable element 35.
  • the output line 34 a is connected to any one of the logic circuits 360 constituting the logic circuit group 36.
  • the output line 34 b is connected to the external output line 303 via the third output buffer group 31 c.
  • the crossbar switch 32 is connected to an external output line 303 for outputting a signal to an adjacent crossbar switch circuit (not shown).
  • the external output line 303 outputs a signal through the third output buffer group 31 c for providing a driving force according to the fan-out number of the adjacent crossbar switch circuit.
  • the third output buffer group 31c may have the same configuration as the first output buffer group 31a and the second output buffer group 31b.
  • the first output buffer group 31a includes at least one output buffer.
  • the output buffer included in the first output buffer group 31a has an input terminal, an output terminal, and a driving force setting terminal.
  • the input terminal of the output buffer of the first output buffer group 31a is connected to the output of the logic circuit group 36 of the preceding stage.
  • the output terminal of the output buffer of the first output buffer group 31a is connected to the input line 33a.
  • the driving force setting terminal of the output buffer of the first output buffer group 31a is connected to a control device (not shown), and receives a control signal for setting the driving force of the output buffer.
  • the second output buffer group 31b includes at least one output buffer.
  • the output buffer included in the second output buffer group 31 b has an input terminal, an output terminal, and a driving force setting terminal.
  • the input terminal of the output buffer of the second output buffer group 31 b is connected to the output of the logic circuit group 36 via the feedback wiring 301.
  • the output terminal of the output buffer of the second output buffer group 31b is connected to the input line 33b.
  • the driving force setting terminal of the output buffer of the second output buffer group 31b is connected to a control device (not shown), and receives a control signal for setting the driving force of the output buffer of the second output buffer group 31b.
  • the logic circuit group 36 is connected to the output line 34a. A signal is input to the logic circuit group 36 via the on-state resistance variable element 35.
  • the logic circuit group 36 is connected to the second output buffer group 31 b via the feedback wiring 301. Then, the output of the logic circuit group 36 is input to the crossbar switch 32 via the second output buffer group 31 b.
  • Logic circuit group 36 includes at least one logic circuit 360.
  • Logic circuit 360 includes basic logic elements having look-up table circuit 361, flip flop circuit 362, and multiplexer circuit 363.
  • the logic circuit 360 has a look-up table and a flip flop, and constructs a programmable synchronous logic circuit by rewriting data of the look-up table.
  • the output of the output line 34 a of the crossbar switch 32 is input to the 4-input look-up table circuit 361.
  • the look-up table circuit 361 outputs one signal by referring to the value of the internal memory from the set of a plurality of input signals inputted from the output line 34a.
  • the output of the look-up table circuit 361 is input to the flip flop circuit 362.
  • the outputs of the lookup table circuit 361 and the flip flop circuit 362 are input to the multiplexer circuit 363.
  • the multiplexer circuit 363 selects and outputs one of the signals input from the look-up table circuit 361 and the flip flop circuit 362.
  • the output from the multiplexer circuit 363 is the output of the logic circuit 360.
  • the output of the logic circuit 360 is input to one of the output buffers constituting the second output buffer group 31 b via the feedback wiring 301. Then, the output of the logic circuit 360 is input to the crossbar switch 32 via any one of the output buffers constituting the second output buffer group 31b.
  • a plurality of basic logic elements can be connected to each other by the feedback wiring 301. Therefore, a larger programmable logic circuit can be configured in a single programmable logic circuit 3. Further, the feedback wiring 301 is also connected to the external output line 303. Therefore, a larger scale programmable logic circuit can be configured by arranging the cluster structure formed by the programmable logic circuit 3 in an array.
  • the circuit performance is reduced by reducing the influence of the propagation delay depending on the fanout number of the crossbar switch having the variable resistance element. Can be improved.
  • a programmable logic circuit according to a fourth embodiment of the present invention will be described with reference to the drawings.
  • the present embodiment differs from the third embodiment in that the driving force of the output buffers constituting the output buffer group is fixed. In the following, description of the same configuration as that of the third embodiment will be appropriately omitted.
  • FIG. 18 is a conceptual diagram showing the configuration of the programmable logic circuit 4 of the present embodiment.
  • the programmable logic circuit 4 includes a crossbar switch 42, a first output buffer group 41a, a second output buffer group 41b, and a logic circuit group 46.
  • FIG. 18 also shows the third output buffer group 41c, the third output buffer group 41c can be omitted.
  • Crossbar switch 42 includes an input line (input line 43a and input line 43b) arranged along the y direction, an output line (output line 44a and output line 44b) arranged along the x direction, and an input line A plurality of resistance variable elements 45 are provided at the intersections with the output lines.
  • the input line 43a, the input line 43b, the output line 44a, and the output line 44b are described regardless of whether they are single or double.
  • the input line 43a is connected to any output buffer included in the first output buffer group 41a.
  • the input line 43b is connected to any output buffer included in the second output buffer group 41b.
  • the input line 43 a and the input line 43 b are connected to one of the output line 44 a and the output line 44 b via the resistance variable element 45.
  • the output line 44 a and the output line 44 b are connected to one of the input line 43 a and the input line 43 b via the resistance variable element 45.
  • the output line 44 a is connected to any of the logic circuits constituting the logic circuit group 46.
  • the output line 44b is connected to the external output line 403 via the third output buffer group 41c.
  • the crossbar switch 42 is connected to an external output line 403 for outputting a signal to an adjacent crossbar switch circuit (not shown).
  • the external output line 403 outputs a signal through the third output buffer group 41 c for providing a driving force according to the fan-out number of the adjacent crossbar switch circuit.
  • the third output buffer group 41c may have the same configuration as the first output buffer group 41a and the second output buffer group 41b.
  • the first output buffer group 41a includes at least two output buffers of different driving forces.
  • the output buffer included in the first output buffer group 41a has an input terminal and an output terminal.
  • the input terminal of the output buffer of the first output buffer group 41 a is connected to the output of the logic circuit group 46 of the preceding stage.
  • the output terminal of the output buffer of the first output buffer group 41a is connected to the input line 43a.
  • the second output buffer group 41b includes at least two output buffers of different driving forces.
  • the output buffer included in the second output buffer group 41b has an input terminal and an output terminal.
  • the input terminal of the output buffer of the second output buffer group 41 b is connected to the output of the logic circuit group 46 via the feedback wiring 401.
  • the output terminal of the output buffer of the second output buffer group 41b is connected to the input line 43b.
  • Logic circuit group 46 is connected to output line 44a. A signal is input to the logic circuit group 46 via the on-state resistance variable element 45. Also, the logic circuit group 46 is connected to the second output buffer group 41 b via the feedback wiring 401. Then, the output of the logic circuit group 46 is input to the crossbar switch 42 via the second output buffer group 41 b.
  • the configuration and functions of the logic circuits included in the logic circuit group 46 are the same as those of the third embodiment, and thus detailed description will be omitted.
  • the output of the output line 44 a of the crossbar switch 42 is input to a 4-input look-up table of any of the basic logic elements constituting the logic circuit group 46.
  • the output of the look-up table is input to a flip flop.
  • the look-up table and the output of the flip flop circuit are input to the multiplexer.
  • the multiplexer selects and outputs one of the look-up table and the signal input from the flip flop.
  • the output from the multiplexer is the output of the basic logic element.
  • the output of the basic logic element constituting the logic circuit group 46 is inputted to one of the output buffers constituting the second output buffer group 41 b through the feedback wiring 401. Then, the output of the basic logic element is input to the crossbar switch 42 via one of the output buffers constituting the second output buffer group 41b.
  • the basic logic elements shown in this embodiment are programmable logic.
  • the output buffer with high driving power is connected to the user logic having a large fan-out number later.
  • Assigned basic logical elements In this way, an output with a large fan-out number can be driven by an output buffer with a high driving power. Therefore, substantially the same effect as that of the third embodiment can be obtained without using a programmable output buffer as in this embodiment.
  • the programmable output buffer needs to have a layout area corresponding to the largest driving force by being designed in consideration of the largest driving force. On the other hand, if output buffers with different driving powers are prepared in advance, it is possible to reduce the layout area corresponding to each driving power. In addition, compared with the case where the output buffer with the same driving force is used, the driving force can be changed more with the same layout area.
  • the layout area can be reduced as compared with the third embodiment by using the crossbar switch circuit having output buffers with different driving forces. Further, according to the present embodiment, as in the third embodiment, the circuit performance can be improved by reducing the influence of the propagation delay depending on the fan-out number of the crossbar switch having the resistance variable element. .
  • the semiconductor device of this embodiment is a programmable integrated circuit in which the programmable logic circuits of the first to fourth embodiments are configured.
  • FIG. 19 is a block diagram showing the configuration of the semiconductor device 5 of this embodiment.
  • the semiconductor device 5 includes a programmable logic circuit 50 (also referred to as a user circuit) having an output buffer group 51, a crossbar switch 52, and a logic circuit group 56.
  • a programmable logic circuit 50 also referred to as a user circuit
  • the crossbar switch 52 includes a plurality of first wires arranged in a first direction, a plurality of second wires arranged in a second direction crossing the first direction, a first wire, and a first wire. It is comprised by the resistance change type element which connects with 2 wiring.
  • the output buffer group 51 is composed of at least two output buffers operating at different driving forces.
  • the output buffer constituting the output buffer group 51 is connected to any one input side of the plurality of first wirings.
  • the logic circuit group 56 is configured by at least one logic circuit connected to the output of the second wiring.
  • the propagation delay and the electromigration which may occur depending on the fan-out number can be reduced.
  • the semiconductor device of the present embodiment is not limited to the circuit configuration using the crossbar circuit.
  • the semiconductor device of the present embodiment can be configured as a semiconductor device having a memory circuit such as a dynamic random access memory (DRAM) or a static random access memory (SRAM).
  • the semiconductor device of the present embodiment can be configured as a semiconductor device having an FeRAM (Ferro Electric Random Access Memory) or an MRAM (Magnetic Random Access Memory).
  • the semiconductor device of this embodiment can be configured as a semiconductor device having a flash memory or a bipolar transistor.
  • the semiconductor device of this embodiment can be configured as a semiconductor device having a logic circuit such as a microprocessor.
  • the semiconductor device of the present embodiment can be applied to the wiring such as a substrate or a package on which the memory circuit and the logic circuit as described above are mixedly mounted.
  • control device of this embodiment generates configuration data of the programmable logic circuit 3 of the third embodiment, and mounts the programmable logic circuit 3 on the programmable logic circuit based on the generated configuration data.
  • FIG. 20 is a block diagram showing the configuration of the control device 60 of this embodiment.
  • the control device 60 includes an input unit 61, a logic synthesis unit 62, a mapping unit 63, a cluster unit 64, a layout unit 65, a driving force determination unit 66, a storage unit 67, a data generation unit 68, and a circuit setting unit. 69 is provided.
  • the control device 60 is connected to a semiconductor device 6 (also referred to as a programmable integrated circuit) having the same configuration as the semiconductor device 5 of the fifth embodiment.
  • the input unit 61 receives an operation description file of the user circuit created by the designer.
  • the behavioral description file is created using a hardware description language such as Verilog-HDL (Hardware Description Language) or VHDL (Very high-speed integrated circuit HDL).
  • the input unit 61 outputs the input operation description file to the logic synthesis unit 62.
  • a behavior description file is input to the logic synthesis unit 62 from the input unit 61.
  • the logic synthesis unit 62 logically synthesizes the inputted operation description file to create a gate level netlist (also referred to as a first level netlist) based on the user circuit.
  • the logic synthesis unit 62 creates a gate level netlist using the basic logic circuit included in the semiconductor device 6.
  • the logic synthesis unit 62 optimizes the circuit to satisfy timing constraint information preset by the designer.
  • the logic synthesis unit 62 outputs the created gate level netlist to the mapping unit 63.
  • a gate level netlist is input from the logic synthesis unit 62 to the mapping unit 63.
  • the mapping unit 63 optimizes the net list so as to satisfy timing constraint information preset by the designer. That is, the mapping unit 63 maps the gate level netlist based on the user circuit, and converts it to a LUT (Lookup Table) level netlist (also referred to as a second level netlist).
  • the mapping unit 63 outputs the net list converted to the LUT level to the cluster unit 64.
  • the cluster unit 64 receives the LUT level netlist from the mapping unit 63.
  • the cluster unit 64 groups a plurality of LUTs and flip flops and generates a technology level netlist (also referred to as a third level netlist) conforming to the configuration of a clustered basic logic circuit included in an actual programmable logic circuit. Do.
  • the cluster unit 64 outputs the generated technology level netlist to the layout unit 65.
  • the layout unit 65 receives the technology level netlist from the cluster unit 64.
  • the layout unit 65 calculates the optimal arrangement of technology level netlists for the array of clustered basic logic circuits.
  • the layout unit 65 connects the crossbar circuits connected to the clustered basic logic circuits, and performs wiring inside and outside the cluster. That is, the layout unit 65 executes the placement and routing process of the programmable logic circuit mounted on the semiconductor device 6 to create configuration information of the programmable logic circuit.
  • the layout unit 65 outputs the generated configuration information of the programmable logic circuit to the driving force determination unit 66.
  • Configuration information of the programmable logic circuit is input from the layout unit 65 to the driving force determination unit 66.
  • the driving force determination unit 66 calculates the fanout number of the crossbar from the configuration information of the programmable logic circuit.
  • the driving force determination unit 66 refers to the reference table stored in the storage unit 67, and calculates the driving force of the programmable output buffer according to the calculated fan-out number. That is, the driving power determination unit 66 optimizes the driving power of the programmable output buffer based on the fanout number of the crossbar.
  • the driving force determination unit 66 outputs configuration information of the programmable logic circuit including the calculated driving force of the programmable output buffer to the data generation unit 68.
  • the storage unit 67 stores a reference table in which the value of the driving power of the programmable output buffer corresponding to the fanout number of the crossbar is stored. In the reference table stored in the storage unit 67, increase the drivability of the programmable output buffer so as to reduce the delay time when the fan-out number is large within the range satisfying the electromigration standard of the resistance variable element The conditions are stored.
  • the configuration information of the programmable logic circuit including the drive power of the programmable output buffer is input from the drive power determination unit 66 to the data generation unit 68.
  • the data generation unit 68 generates configuration data for programming the programmable logic circuit in the semiconductor device 6 based on the configuration information.
  • the data generation unit 68 outputs the generated configuration data to the circuit setting unit 69.
  • Configuration data is input from the data generation unit 68 to the circuit setting unit 69.
  • the circuit setting unit 69 programs the programmable logic circuit in the semiconductor device 6 based on the configuration data.
  • control device 60 The above is the description of the configuration of the control device 60. Next, the operation of the control device 60 will be described.
  • FIG. 21 is a flowchart for explaining the operation of the control device 60 of the present embodiment. In the description along the flowchart of FIG. 21, the control device 60 will be described as an operation subject.
  • step S61 the operation description file of the user circuit is input to the control device 60 (step S61).
  • control device 60 logically combines the operation description file to create a first level net list (step S62).
  • control device 60 maps the first level netlist and converts it into a second level netlist (step S63).
  • control device 60 groups a plurality of logical elements consisting of a plurality of LUTs and flip flops included in the second level netlist, and a third level net in line with the configuration of the clustered basic logical elements.
  • a list is generated (step S64).
  • control device 60 calculates the optimal arrangement of the third level netlist for the array of clustered basic logic elements (step S65).
  • control device 60 connects the crossbar switches connected to the clustered basic logic elements, and performs wiring inside and outside of the cluster (step S66). Through steps S65 and S66, configuration information of the user circuit is created.
  • control device 60 calculates the fan-out number for each crossbar switch input based on the configuration information of the user circuit, and determines the driving power of the programmable output buffer according to the fan-out number (step S67).
  • control device 60 generates configuration data for programming the user circuit in semiconductor device 6 based on the configuration information of the user circuit including the driving force of the output buffer (step S68).
  • control device 60 programs the user circuit in the semiconductor device 6 based on the configuration data.
  • the programmable logic circuit that realizes the circuit description of the user can be mounted on the programmable integrated circuit provided with the resistance variable element at the cross point of the crossbar switch circuit. That is, according to the present embodiment, a configuration pattern is generated in which the driving power of the buffer connected to the crossbar input to which the signal having the connection with a large fanout number is input is increased according to the fanout number of the crossbar switch. it can. According to the programmable logic circuit implemented by the control device of the present embodiment, the increase in propagation delay can be improved, and the stress due to electromigration of the variable resistance element can be improved.
  • control device of a seventh embodiment of the present invention generates configuration data of the programmable logic circuit 4 of the fourth embodiment, and mounts the programmable logic circuit 4 on the programmable logic circuit based on the generated configuration data.
  • FIG. 22 is a block diagram showing the configuration of the control device 70 of the present embodiment.
  • the control device 70 includes an input unit 71, a logic synthesis unit 72, a mapping unit 73, a cluster unit 74, an allocation unit 75, a layout unit 76, a data generation unit 77, and a circuit setting unit 78.
  • the control device 60 is connected to a semiconductor device 7 (also called a programmable integrated circuit) having the same configuration as the semiconductor device 5 of the fifth embodiment.
  • the input unit 71 receives an operation description file of the user circuit created by the designer.
  • the input unit 71 has the same configuration as the input unit 61 of the sixth embodiment.
  • the input unit 71 outputs the input operation description file to the logic synthesis unit 72.
  • a behavior description file is input to the logic synthesis unit 72 from the input unit 71.
  • the logic synthesis unit 72 has the same configuration as the logic synthesis unit 62 of the sixth embodiment.
  • the logic synthesis unit 72 logically synthesizes the inputted operation description file to create a gate level netlist (also referred to as a first level netlist) based on the user circuit.
  • the logic synthesis unit 72 outputs the generated gate level netlist to the mapping unit 73.
  • a gate level netlist is input from the logic synthesis unit 72 to the mapping unit 73.
  • the mapping unit 73 has the same configuration as the mapping unit 63 in the sixth embodiment.
  • the mapping unit 73 maps a gate level netlist based on the user circuit, and converts it to a LUT level netlist (also referred to as a second level netlist).
  • the mapping unit 73 outputs the net list converted to the LUT level to the cluster unit 74.
  • the cluster unit 74 receives the LUT level netlist from the mapping unit 73.
  • the cluster unit 74 has the same configuration as the cluster unit 64 of the sixth embodiment.
  • the cluster unit 74 groups a plurality of LUTs and flip flops, and generates a technology level netlist (also referred to as a third level netlist) conforming to the configuration of the clustered basic logic circuit included in an actual programmable logic circuit. Do.
  • the cluster unit 74 outputs the generated technology level netlist to the allocating unit 75.
  • a technology level netlist is input from the cluster unit 74 to the allocation unit 75.
  • the allocating unit 75 calculates the fanout number of the crossbars from the technology level netlist, and reclusters the crossbars to the basic logic element circuits connected to the output buffer with the highest driving power in descending order of the fanout number.
  • the allocation unit 75 outputs the reclustered technology level netlist to the layout unit 76.
  • the re-clustered technology level netlist is input from the allocating unit 75 to the layout unit 76.
  • the layout unit 76 calculates the optimal arrangement of technology level netlists for the reclustered array of basic logic circuits. Then, the layout unit 76 connects the crossbar circuits connected to the reclustered basic logic circuit, and performs wiring inside and outside the cluster. That is, the layout unit 76 executes the placement and routing process of the programmable logic circuit mounted on the semiconductor device 7 to create configuration information of the programmable logic circuit.
  • the layout unit 76 outputs the generated configuration information of the programmable logic circuit to the data generation unit 77.
  • the data generation unit 77 receives, from the layout unit 76, configuration information of the programmable logic circuit including the driving power of the programmable output buffer.
  • the data generation unit 77 has the same configuration as the data generation unit 68 of the sixth embodiment.
  • the data generation unit 77 generates configuration data for programming the programmable logic circuit in the semiconductor device 7 based on the configuration information.
  • the data generation unit 77 outputs the generated configuration data to the circuit setting unit 78.
  • Configuration data is input from the data generation unit 77 to the circuit setting unit 78.
  • the circuit setting unit 78 has the same configuration as the circuit setting unit 69 of the sixth embodiment.
  • the circuit setting unit 78 programs the programmable logic circuit in the semiconductor device 7 based on the configuration data.
  • control device 70 The above is the description of the configuration of the control device 70. Next, the operation of the control device 70 will be described.
  • FIG. 23 is a flowchart for explaining the operation of the control device 70 of the present embodiment.
  • the control device 70 will be described as an operation subject.
  • step S71 the operation description file of the user circuit is input to the control device 70 (step S71).
  • control device 70 logically combines the operation description file to create a first level netlist (step S72).
  • control device 70 maps the first level netlist and converts it into a second level netlist (step S73).
  • control device 70 groups a plurality of logical elements consisting of a plurality of LUTs and flip flops included in the second level netlist, and a third level net in line with the configuration of the clustered basic logical elements.
  • a list is generated (step S74).
  • the controller 70 calculates the fanout number for each crossbar switch input based on the third level netlist. Then, the control device 70 allocates an output buffer having a high driving power to the input of the crossbar switch in descending order of the fan-out number to recluster the basic logical element (step S75).
  • control device 70 calculates the optimal arrangement of the third level netlist for the reclustered array of basic logic circuits (step S76).
  • control device 70 connects the crossbar switch connected to the reclustered basic logic circuit, and performs wiring inside and outside of the cluster (step S77). Through steps S76 and S77, configuration information of the user circuit is created.
  • control device 70 generates configuration data for programming the user circuit in the semiconductor device 7 based on the configuration information of the user circuit including the assignment of the output buffer (step S78).
  • control device 70 programs the user circuit in the semiconductor device 7 based on the configuration data.
  • the processing according to the flowchart of FIG. 23 is applied to a programmable logic circuit having an output buffer group in which a plurality of output buffers with fixed driving power are combined.
  • basic logic circuits having high drivability output buffers are allocated preferentially to nets with a large number of fan-outs.
  • the programmable logic circuit that realizes the circuit description of the user can be mounted on the programmable integrated circuit provided with the resistance variable element at the cross point of the crossbar switch circuit. That is, according to the present embodiment, it is possible to generate, according to the fan-out number of the crossbar switch, a configuration pattern in which a signal having a connection with a large fan-out number is preferentially allocated to the crossbar input having a buffer with high drivability. According to the programmable logic circuit implemented by the control device of the present embodiment, the increase in propagation delay can be improved, and the stress due to electromigration of the variable resistance element can be improved.
  • the information processing apparatus 90 of FIG. 24 is a configuration example for realizing the control apparatus of each embodiment, and does not limit the scope of the present invention.
  • the information processing apparatus 90 includes a processor 91, a main storage 92, an auxiliary storage 93, an input / output interface 95, and a communication interface 96.
  • the interface is abbreviated as I / F (Interface).
  • the processor 91, the main storage unit 92, the auxiliary storage unit 93, the input / output interface 95, and the communication interface 96 are communicably connected to one another via a bus 99.
  • the processor 91, the main storage device 92, the auxiliary storage device 93, and the input / output interface 95 are connected to a network such as the Internet or an intranet via the communication interface 96.
  • the processor 91 deploys the program stored in the auxiliary storage device 93 or the like in the main storage device 92, and executes the deployed program.
  • the software program installed in the information processing apparatus 90 may be used.
  • the processor 91 executes processing by the control device according to the present embodiment.
  • the main storage device 92 has an area in which a program is expanded.
  • the main storage device 92 may be, for example, a volatile memory such as a dynamic random access memory (DRAM).
  • a non-volatile memory such as a magnetoresistive random access memory (MRAM) may be configured and added as the main storage device 92.
  • DRAM dynamic random access memory
  • MRAM magnetoresistive random access memory
  • the auxiliary storage device 93 stores various data.
  • the auxiliary storage device 93 is configured by a local disk such as a hard disk or a flash memory. Note that various data may be stored in the main storage unit 92, and the auxiliary storage unit 93 may be omitted.
  • the input / output interface 95 is an interface for connecting the information processing apparatus 90 and peripheral devices.
  • the communication interface 96 is an interface for connecting to an external system or device through a network such as the Internet or an intranet based on standards and specifications.
  • the input / output interface 95 and the communication interface 96 may be common as an interface connected to an external device.
  • the information processing apparatus 90 may be configured to connect input devices such as a keyboard, a mouse, and a touch panel as necessary. Those input devices are used to input information and settings. Note that in the case where the touch panel is used as an input device, the display screen of the display device may serve as an interface of the input device. Data communication between the processor 91 and the input device may be performed by the input / output interface 95.
  • the information processing apparatus 90 may be provided with a display device for displaying information.
  • the information processing device 90 is preferably provided with a display control device (not shown) for controlling the display of the display device.
  • the display device may be connected to the information processing apparatus 90 via the input / output interface 95.
  • the information processing apparatus 90 may be equipped with a disk drive as needed.
  • the disk drive is connected to the bus 99.
  • the disk drive mediates reading of the data program from the recording medium, writing of the processing result of the information processing apparatus 90 to the recording medium, and the like between the processor 91 and a recording medium (program recording medium) (not shown).
  • the recording medium can be realized by, for example, an optical recording medium such as a CD (Compact Disc) or a DVD (Digital Versatile Disc).
  • the recording medium may be realized by a semiconductor recording medium such as a Universal Serial Bus (USB) memory or a Secure Digital (SD) card, a magnetic recording medium such as a flexible disk, or another recording medium.
  • USB Universal Serial Bus
  • SD Secure Digital
  • the above is an example of the hardware configuration for enabling the control device according to each embodiment of the present invention.
  • the hardware configuration in FIG. 24 is an example of the hardware configuration for executing the arithmetic processing of the control device according to each embodiment, and does not limit the scope of the present invention.
  • a program that causes a computer to execute the processing relating to the control device according to each embodiment is also included in the scope of the present invention.
  • a program recording medium recording the program according to each embodiment is also included in the scope of the present invention.
  • the components of the control device of each embodiment can be arbitrarily combined.
  • the components of the control device of each embodiment may be realized by software or may be realized by a circuit.

Abstract

抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減するために、第1の方向に配列された複数の第1の配線と、第1の方向に交差する第2の方向に配列された複数の第2の配線と、第1の配線と第2の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、第2の配線の出力に接続される少なくとも一つの論理回路によって構成される論理回路群と、第1の配線の入力に接続され、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群とを備えるプログラマブル論理回路とする。

Description

プログラマブル集積回路および制御装置
 本発明は、プログラマブル集積回路および制御装置に関する。特に、抵抗変化型不揮発素子を用いたプログラマブル集積回路およびそのプログラマブル集積回路にコンフィグレーションデータを設定する制御装置に関する。
 半導体集積回路の微細化に伴って、電界効果トランジスタは、3年で4倍のペースで高集積化がなされてきた。その結果、集積回路の製造に必要なフォトマスクや、回路の設計検証コストが増加し、ユーザが予め固定機能をカスタムで設計するASIC(Application Specific Integrated Circuit)の開発コストが増加した。このような状況から、FPGA(Field Programmable Gate Array)などのように、製造後の半導体チップに対して設計者が所望の回路を電気的にプログラムできる半導体装置が注目されている。
 FPGAは、RTL(Resistor Transfer Level)言語で記述されたユーザデザインを実装可能とするため、主要な構成要素としてプログラム可能な配線(以下、クロスバスイッチとも呼ぶ)を有する。クロスバスイッチの例としては、CMOS(Complementary Metal-Oxide-Semiconductor)回路やアンチヒューズ型素子、抵抗変化型素子を用いるものが挙げられる。
 CMOS回路を用いたクロスバスイッチは、配線の接続状態を記憶するSRAM(Static Random Access Memory)と、SRAMに蓄えられたスイッチ制御信号によってオン・オフが制御されるパストランジスタとを基本の構成要素とする。CMOS回路を用いたクロスバスイッチは、製造工程が容易である一方で、CMOS回路を用いたFPGAは、1つの切り替えスイッチにつき多数のトランジスタを必要とする。そのため、半導体ウエハ上に集積する際のレイアウト面積が増大して、コストや性能に制約が生じるという問題点がある。
 非特許文献1には、CMOS回路を用いたクロスバスイッチの一例が開示されている。非特許文献1のクロスバスイッチにおいては、トーナメント状にパストランジスタを配置する。そのため、非特許文献1のクロスバスイッチ用いたFPGAは、回路を大規模化するにつれてレイアウト面積が比例の関係以上に増大するため、大規模なクロスバスイッチを構成することは困難である。
 特許文献1には、アンチヒューズ型素子を用いたクロスバスイッチについて開示されている。
 抵抗変化型素子を用いたクロスバスイッチは、接続スイッチの基本構成要素が抵抗変化型素子だけである。そのため、抵抗変化型素子を用いたクロスバスイッチは、製造工程が複雑であるものの、素子サイズがCMOSと比べて同程度に小さければ、集積化される際のレイアウト面積の増大を抑えられる。例えば、抵抗変化型素子の一例としては、遷移金属酸化物を用いたReRAM(Resistance Random Access Memory)や、イオン伝導体を用いたNano Bridge(登録商標)などが挙げられる。
 特許文献2には、印加電圧極性を変えることによってイオン伝導体の抵抗値を変化させ、2つの電極間の導通状態を制御する抵抗変化型素子が開示されている。特許文献2には、抵抗変化型素子をULSI(Ultra-Large Scale Integration)に用いるクロスバスイッチが開示されている。
 図25は、特許文献2の抵抗変化型素子を用いたFPGAのクロスバスイッチの構成例である。図25のクロスバスイッチ100は、複数の入力線101と複数の出力線102との交点に抵抗変化型素子103を配置した構成を有する。図25のように、クロスバスイッチ100の構成は単純であるため、多入力多出力のクロスバスイッチを比較的容易に構成し得る。
 図26は、特許文献2の抵抗変化型素子を用いたクロスバスイッチ100(図25)の出力線102に論理回路(論理回路106a~c)を接続したクロスバスイッチ回路である。各入力線101には、抵抗変化型素子103がオン状態の場合、各出力線102の容量104と、論理回路106への入力容量105が負荷として接続される。なお、図26においては、オン状態の抵抗変化型素子103(抵抗変化型素子103a~d)を黒く塗りつぶし、オフ状態の抵抗変化型素子103を白く塗りつぶしている。
 図26において、入力線101aには、オン状態の抵抗変化型素子103aを介して、一つ出力線102bが接続される。また、入力線101bには、オン状態の抵抗変化型素子103b~dのそれぞれを介して、出力線102a、出力線102cおよび出力線102dが接続される。これ以降、入力線101に接続される出力線102の数のことをファンアウト数と呼ぶ。図26の例では、入力線101aのファンアウト数は1であり、入力線101bのファンアウト数は3である。
 図26のように、入力線101aには、抵抗変化型素子103aを介して、容量104bと入力容量105bとが負荷として接続される。また、入力線101bには、抵抗変化型素子103b~dのそれぞれを介して、3つの容量(容量104a、容量104c、容量104d)と、3つの入力容量(入力容量105a、入力容量105c、入力容量105d)とを合わせた負荷が接続される。
 また、特許文献3には、電界を印加することによってイオンが自由に動くことのできるイオン伝導体中における金属イオンの移動と電気化学反応とを利用した抵抗変化型素子が開示されている。特許文献3には、抵抗変化型素子を直列に接続してユニット素子として利用することによって、オフ信頼性と低電圧での書き込みとを両立させる方法が開示されている。
米国特許第5537056号明細書 特開2005-101535号公報 国際公開第2013/190741号
 特許文献2の抵抗変化型素子を用いたクロスバスイッチ回路では、ファンアウト数が多いほど、出力線の容量と、次段の論理回路の入力容量とが大きくなる。そのため、特許文献2の抵抗変化型素子を用いたクロスバスイッチ回路には、等しい電流値でクロスバスイッチの入力を駆動した際に、ファンアウト数が多いほど信号の伝搬遅延が増加するという問題点があった。
 また、特許文献2の抵抗変化型素子を用いたクロスバスイッチ回路は、レイアウト面積の点で大規模化に有利であるが、クロスバのファンアウト数に依存して伝搬遅延が変化する。伝搬遅延が最も遅いケースを想定して設定すると、回路としての遅延性能が悪化する。駆動電流を大きくするためには、クロスバスイッチを駆動するバッファ回路の面積を増やすことになり、クロスバスイッチ回路の面積が大きくなってしまう。また、伝搬遅延が最も遅いケースを想定してクロスバスイッチ入力の駆動電流を増加させると、ファンアウト数が小さいクロスバスイッチの抵抗変化型素子には瞬間的に大きなパルス電流が流れる。瞬間的に大きなパルス電流が流れた抵抗変化型素子には、エレクトロマイグレーションによるストレスが増加する可能性がある。
 本発明の目的は、上述した課題を解決するために、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できるプログラマブル論理回路を提供することにある。
 本発明の一態様のプログラマブル論理回路は、第1の方向に配列された複数の第1の配線と、第1の方向に交差する第2の方向に配列された複数の第2の配線と、第1の配線と第2の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、第2の配線の出力に接続される少なくとも一つの論理回路によって構成される論理回路群と、第1の配線の入力に接続され、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群とを備える。
 本発明の一態様の制御装置は、クロスバスイッチと、クロスバスイッチの入力に接続される少なくとも二つの駆動力が可変な出力バッファと、クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、論理回路の出力がいずれかの出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、ユーザ回路の動作記述ファイルを入力とする入力手段と、動作記述ファイルを論理合成して第1レベルのネットリストを作成する論理合成手段と、第1レベルのネットリストをマッピングして第2レベルのネットリストに変換するマッピング手段と、第2レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第3レベルのネットリストを生成するクラスタ手段と、クラスタ化された基本論理要素のアレイに対して第3レベルのネットリストの最適配置を計算し、クラスタ化された基本論理要素に接続されたクロスバスイッチを結線してクラスタの内部および外部の配線を行うことによってユーザ回路の構成情報を作成するレイアウト手段と、クロスバスイッチのファンアウト数に対応する出力バッファの駆動力の値が格納される参照テーブルを記憶する記憶手段と、ユーザ回路の構成情報に基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、参照テーブルを参照してファンアウト数に対応する出力バッファの駆動力を決定する駆動力決定手段と、出力バッファの駆動力を含めたユーザ回路の構成情報に基づいて、プログラマブル集積回路にユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、コンフィグレーションデータに基づいて、プログラマブル集積回路にユーザ回路をプログラムする回路設定手段とを有する。
 本発明の一態様の制御装置は、クロスバスイッチと、クロスバスイッチの入力に接続される少なくとも二つの駆動力が固定された出力バッファと、クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、論理回路の出力がいずれかの出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、ユーザ回路の動作記述ファイルを入力とする入力手段と、動作記述ファイルを論理合成して第1レベルのネットリストを作成する論理合成手段と、第1レベルのネットリストをマッピングして第2レベルのネットリストに変換するマッピング手段と、第2レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理回路の構成に即した第3レベルのネットリストを生成するクラスタ手段と、第3レベルのネットリストに基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い出力バッファをクロスバスイッチの入力に割り当てて基本論理回路を再クラスタ化する割当手段と、再クラスタ化された基本論理回路のアレイに対して第3レベルのネットリストの最適配置を計算し、再クラスタ化された基本論理回路に接続されたクロスバスイッチを結線してクラスタの内部および外部の配線を行うことによってユーザ回路の構成情報を作成するレイアウト手段と、出力バッファの割り当てを含めたユーザ回路の構成情報に基づいて、プログラマブル集積回路にユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、コンフィグレーションデータに基づいて、プログラマブル集積回路にユーザ回路をプログラムする回路設定手段とを有する。
 本発明によれば、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できるプログラマブル論理回路を提供することが可能になる。
本発明の第1の実施形態に係るプログラマブル論理回路の構成を示す概念図である。 本発明の第1の実施形態に係るプログラマブル論理回路の構成を示す概念図である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファの回路構成の一例を示す概念図である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファに含まれるバッファ回路の真理値表である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファに含まれるトライステートバッファ回路の真理値表である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファのイネーブル端子の設定値に対する駆動力をまとめたテーブルである。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例のバイポーラ型素子の記号である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例のユニポーラ型素子の記号である。 本発明の第1の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例として二つのバイポーラ型素子を逆極性で直列に接続した素子の記号である。 本発明の第1の実施形態に係るプログラマブル論理回路が備える出力線の容量および論理回路の入力容量に関して説明するための概念図である。 本発明の第1の実施形態に係るプログラマブル論理回路と前段の回路の論理回路との接続関係について説明するための概念図である。 本発明の第1の実施形態に係るプログラマブル論理回路の変形例の構成を示す概念図である。 本発明の第2の実施形態に係るプログラマブル論理回路(クラスタ構造)の構成を示す概念図である。 本発明の第2の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路の構成を示す概念図である。 本発明の第2の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路に含まれるスイッチボックスの構成例を示す概念図である。 本発明の第2の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路に含まれるスイッチボックスの別の構成例を示す概念図である。 本発明の第3の実施形態に係るプログラマブル論理回路の構成を示す概念図である。 本発明の第4の実施形態に係るプログラマブル論理回路の構成を示す概念図である。 本発明の第5の実施形態に係る半導体装置の構成を示す概念図である。 本発明の第6の実施形態に係る制御装置の構成を示すブロック図である。 本発明の第6の実施形態に係る制御装置の動作について説明するためのフローチャートである。 本発明の第7の実施形態に係る制御装置の構成を示すブロック図である。 本発明の第7の実施形態に係る制御装置の動作について説明するためのフローチャートである。 本発明の第6および第7の実施形態に係る制御装置を実現するハードウェア構成の一例を示すブロック図である。 抵抗変化型素子を含む一般的なクロスバスイッチの構成を示す概念図である。 抵抗変化型素子を含む一般的なクロスバスイッチの問題点について説明するための概念図である。
 以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付したり、符号を省略したりすることがある。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
 (第1の実施形態)
 まず、本発明の第1の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。
 図1は、本実施形態のプログラマブル論理回路1の構成を示す概念図である。図1のように、プログラマブル論理回路1は、出力バッファ群11と、クロスバスイッチ12と、論理回路群16とを備える。
 出力バッファ群11は、少なくとも一つの出力バッファを含む。出力バッファ群11に含まれる出力バッファの駆動力は、出力バッファに接続される入力線の接続先の出力線14の数(ファンアウト数とも呼ぶ)に応じて設定される。
 出力バッファ群11は、互いに異なる駆動力で駆動できる複数の出力バッファを含む。本実施形態においては、駆動力を設定可能なプログラム出力バッファを用いる例を挙げる。例えば、プログラム出力バッファは、少なくとも一つのバッファ回路と、少なくとも一つのトライステートバッファ回路とを含む。
 クロスバスイッチ12は、y方向(第1の方向とも呼ぶ)に沿って配される入力線13と、x方向(第2の方向とも呼ぶ)に沿って配される出力線14と、入力線13と出力線14との交点に設置される抵抗変化型素子15とによって構成される。本実施形態においては、複数の入力線13と、複数の出力線14と、複数の抵抗変化型素子15によってクロスバスイッチ12が構成される例について説明する。
 入力線13(第1の配線とも呼ぶ)は、出力バッファ群11に含まれるいずれかの出力バッファに接続される。また、入力線13は、抵抗変化型素子15を介して出力線14に接続される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線13と記載する。
 出力線14(第2の配線とも呼ぶ)は、抵抗変化型素子15を介して入力線13に接続される。また、出力線14は、論理回路群16を構成するいずれかの論理回路に接続される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、出力線14と記載する。
 抵抗変化型素子15は、入力線13と出力線14との交点に設置される。抵抗変化型素子15は、図示しない制御線によってオン・オフの状態が制御され。抵抗変化型素子15がオン状態のとき、入力線13と出力線14とが接続され、出力バッファ群11のいずれかの出力バッファから入力される信号は、論理回路群16を構成するいずれかの論理回路に出力される。一方、抵抗変化型素子15がオフ状態のとき、入力線13と出力線14とは接続されず、出力バッファ群11から入力される信号は論理回路群16に出力されない。
 論理回路群16は、少なくとも一つの論理回路を含む。論理回路群16に含まれる論理回路は、種々の論理演算を行うように設定される回路である。論理回路群16に含まれる論理回路は、いずれかの出力線14に接続される。オン状態の抵抗変化型素子15を介して信号が入力された論理回路は、入力された信号に関して論理演算を実行し、実行結果を出力する。
 図2は、プログラマブル論理回路1に含まれる出力バッファ群11について説明するために、プログラマブル論理回路1の一部の構成を抜き出した概念図である。図2には、出力バッファ群11に含まれる複数の出力バッファのうち一つ(プログラマブル出力バッファ110)を示す。
 図2のように、プログラマブル出力バッファ110は、入力端子117、出力端子118および駆動力設定端子119を有する。入力端子117は、前段の論理回路群16を構成するいずれかの論理回路の出力に接続される。出力端子118は、入力線13の一端に接続される。駆動力設定端子119は、図示しない制御装置に接続され、プログラマブル出力バッファ110の駆動力を設定するための制御信号を入力とする。プログラマブル出力バッファ110の駆動力は、制御信号に応じて設定される。
 例えば、抵抗型変化素子15aがオン状態で、抵抗型変化素子15b~fがオフ状態であるとする。この場合、プログラマブル出力バッファ110から入力線13に入力される信号は、オン状態の抵抗型変化素子15aおよび出力線14を介して論理回路16aに入力される。このとき、プログラマブル出力バッファ110に接続された入力線13のファンアウト数は1であるため、プログラマブル出力バッファ110の駆動力は1倍に設定される。
 また、例えば、抵抗型変化素子15a~cがオン状態で、抵抗型変化素子15d~fがオフ状態であるとする。この場合、プログラマブル出力バッファ110から入力線13に入力される信号は、オン状態の抵抗型変化素子15a~cおよび出力線14を介して論理回路16a~bに入力される。このとき、プログラマブル出力バッファ110に接続された入力線13のファンアウト数は3であるため、プログラマブル出力バッファ110の駆動力は3倍に設定される。
 このように、本実施形態においては、入力線13のファンアウト数に応じて、その入力線13に接続されたプログラマブル出力バッファ110の駆動力を設定する。
 〔プログラマブル出力バッファ回路〕
 次に、プログラマブル出力バッファ110の回路構成について一例を挙げて説明する。図3は、プログラマブル出力バッファ110の一例の回路構成である。なお、図3は、プログラマブル出力バッファ110の回路構成の一例であって、プログラマブル出力バッファ110の回路構成を限定するものではない。
 図3のように、プログラマブル出力バッファ110は、バッファ回路111と、トライステートバッファ回路112-1と、トライステートバッファ回路112-2とを有する。以下においては、トライステートバッファ回路112-1と、トライステートバッファ回路112-2とを区別せずに、トライステートバッファ回路112と記載することがある。
 バッファ回路111は、入力端子BAと、出力端子BYとを有する。トライステートバッファ回路112-1は、入力端子TA1と、出力端子TY1と、イネーブル端子TE1とを有する。トライステートバッファ回路112-2は、入力端子TA2と、出力端子TY2と、イネーブル端子TE2とを有する。
 バッファ回路111の入力端子BAと、トライステートバッファ回路112-1の入力端子TA1と、トライステートバッファ回路112-2の入力端子TA2とは、入力端子117に接続される。また、バッファ回路111の出力端子BYと、トライステートバッファ回路112-1の出力端子TY1と、トライステートバッファ回路112-2の出力端子TY2とは、出力端子118に接続される。すなわち、プログラマブル出力バッファ110は、バッファ回路111と、トライステートバッファ回路112-1と、トライステートバッファ回路112-2とを並列に接続した構成を有する。
 トライステートバッファ回路112-1のイネーブル端子TE1には、トライステートバッファ回路112-1の駆動力を設定するための制御信号が入力される。トライステートバッファ回路112-1の駆動力は、設定信号に応じて0または1倍に設定される。
 トライステートバッファ回路112-2のイネーブル端子TE2には、トライステートバッファ回路112-2の駆動力を設定するための制御信号が入力される。トライステートバッファ回路112-2の駆動力は、設定信号に応じて0または2倍に設定される。
 図4は、バッファ回路111の真理値表110Aである。すなわち、バッファ回路111は、入力端子BAから0が入力されると出力端子BYから0を出力し、入力端子BAから1が入力されると出力端子BYから1を出力する。
 図5は、トライステートバッファ回路112の真理値表110Bである。すなわち、トライステートバッファ回路112は、イネーブル端子TEが0に設定されると、入力端子TAから0および1のいずれが入力されても、出力端子TYが高インピーダンス状態(High-Z)となり、信号を出力しない。一方、トライステートバッファ回路112は、イネーブル端子TEが1に設定されると、入力端子TAから0が入力されると出力端子TYから0を出力し、入力端子TAから1が入力されると出力端子TYから1を出力する。
 図6は、イネーブル端子TE1およびイネーブル端子TE2の設定値に応じたプログラマブル出力バッファ110の駆動力をまとめたテーブル110Cである。
 イネーブル端子TE1に0、イネーブル端子TE2に0が設定されると、トライステートバッファ回路112-1およびトライステートバッファ回路112-2の出力が切り離され、バッファ回路111のみの駆動力となる。すなわち、プログラマブル出力バッファ110の駆動力は1倍となる。
 イネーブル端子TE1に1、イネーブル端子TE2に0が設定されると、トライステートバッファ回路112-2の出力が切り離され、バッファ回路111およびトライステートバッファ回路112-1の駆動力の合計となる。すなわち、プログラマブル出力バッファ110の駆動力は2倍となる。
 イネーブル端子TE1に0、イネーブル端子TE2に1が設定されると、トライステートバッファ回路112-1の出力が切り離され、バッファ回路111およびトライステートバッファ回路112-2の駆動力の合計となる。すなわち、プログラマブル出力バッファ110の駆動力は3倍となる。
 イネーブル端子TE1に1、イネーブル端子TE2に1が設定されると、バッファ回路111、トライステートバッファ回路112-1およびトライステートバッファ回路112-2の駆動力の合計となる。すなわち、プログラマブル出力バッファ110の駆動力は4倍となる。
 以上のように、プログラマブル出力バッファ110は、イネーブル端子TEに設定される制御信号の設定値に応じた駆動力に設定される。
 〔抵抗変化型素子〕
 ここで、抵抗変化型素子15の具体例について例を挙げて説明する。
 図7は、ユニポーラ型の抵抗変化型素子の記号表現である(ユニポーラ型素子151)。ユニポーラ型素子151は、抵抗変化層が第1電極と第2電極とによって挟まれた構成を有する。ユニポーラ型素子151は、印加電圧値によって、オフ状態(高抵抗状態)とオン状態(低抵抗状態)とが切り替わるスイッチング素子である。
 ユニポーラ型素子151の第1電極に正電圧を印加し、印加電圧が所定のセット電圧を超えると、ユニポーラ型素子151はオフ状態からオン状態に遷移する。このオン状態のユニポーラ型素子151にリセット電圧より大きな電圧を印加すると、ユニポーラ型素子151はオン状態からオフ状態に遷移する。さらに、印加している正電圧を大きくして電圧値がセット電圧を超えると、ユニポーラ型素子151は、再びオフ状態からオン状態に遷移する。
 一方、ユニポーラ型素子151の第1電極に負電圧を印加し、その電圧値がセット電圧を超えると、ユニポーラ型素子151はオフ状態からオン状態に遷移する。このオン状態のユニポーラ型素子151の第1電極に印加している負電圧値がリセット電圧を超えると、ユニポーラ型素子151はオン状態からオフ状態に遷移する。さらに、ユニポーラ型素子151の第1電極に印加している負電圧値がセット電圧を超えると、ユニポーラ型素子151は、再びオフ状態からオン状態に遷移する。
 このように、ユニポーラ型素子151は、印加する電圧の極性には依存せず、印加電圧値に依存した抵抗変化特性を示す。
 図8は、バイポーラ型の抵抗変化型素子の記号表現である(バイポーラ型素子152)。バイポーラ型素子152は、抵抗変化層として機能するイオン伝導体が第1電極と第2電極とによって挟まれた構成を有する。バイポーラ型素子152は、印加電圧の極性に応じて、オフ状態とオン状態とが切替わるスイッチング素子である。なお、バイポーラ型素子152においては、第1電極に印加されている電圧が第2電極に印加されている電圧より高いときを正極とする。
 バイポーラ型素子152の第1電極に正電圧を印加し、印加電圧値がセット電圧を超えると、バイポーラ型素子152はオフ状態からオン状態に遷移する。一方、バイポーラ型素子152の第1電極に負電圧を印加し、印加電圧値がリセット電圧を超えると、バイポーラ型素子152はオン状態からオフ状態に遷移する。
 このように、バイポーラ型素子152は、印加電圧の極性に応じて、オフ状態とオン状態とを切り替えられる。
 本実施形態においては、ユニポーラ型素子151とバイポーラ型素子152のどちらを用いてもよい。また、図9のように、スイッチの信頼性を高めるために、二つのバイポーラ型素子152を逆極性で直列に接続し抵抗変化型素子153を用いてもよい。
 〔クロスバスイッチ〕
 図10は、図1のクロスバスイッチ12の出力線14および論理回路群16の容量について説明するための概念図である。
 入力線13は、入力線13に接続されるいずれかの抵抗変化型素子15がオン状態の場合、オン状態の抵抗変化型素子15を介していずれかの出力線14に接続される。このとき、オン状態の抵抗変化型素子15に接続された入力線13には、出力線14の容量140と、論理回路106への入力容量160とが負荷として接続される。
 本実施形態においては、駆動力の調整が可能なプログラマブル出力バッファ110を入力線13の入力側に接続する。そして、各入力線13に接続されたプログラマブル出力バッファ110には、各入力線13に接続される出力線14の数(ファンアウト数とも呼ぶ)に応じた駆動力が設定される。例えば、プログラマブル出力バッファ110は、そのプログラマブル出力バッファ110に接続された入力線13のファンアウト数が1のときは駆動力が1倍に設定され、ファンアウト数が3のときは駆動力が3倍に設定される。このように、入力線13のファンアウト数に応じてプログラマブル出力バッファ110の駆動力を調整することによって、伝搬遅延の増加とエレクトロマイグレーションによるストレスとを改善することが可能になる。
 図11は、プログラマブル論理回路1(図10)と、前段の回路に含まれる論理回路群16との接続関係を明示的に示した構成図である。図11のように、プログラマブル論理回路1には、前段の回路の論理回路群16の出力が入力される。前段の回路の論理回路群16からの出力は、出力バッファ群11を構成する出力バッファの入力端子に接続される。
 論理回路の種類によっては、出力信号の本数が複数になりうる。例えば、論理回路がAND回路やOR回路であれば出力は1つであるが、算術論理演算回路の場合には出力が多ビットとなる。図11のように、前段の論理回路群16を構成する論理回路は、多ビット出力であってもよいし、異なる種類の論理回路であってもよい。したがって、本実施形態において、クロスバスイッチ12は、多入力多出力である。クロスバスイッチ12が多入力多出力の場合は、クロスバスイッチ12の複数の入力線13のそれぞれに出力バッファを接続する構成にする。
 以上のように、本実施形態においては、クロスバスイッチの入力側に出力バッファ群を設けることによって、クロスバスイッチの入力線への電流駆動能力を可変とする。本実施形態においては、クロスバスイッチを構成する抵抗変化型素子のオン/オフ状態によって、クロスバスイッチの入力容量は変化する。多くのオン状態の素子数に接続されるほど入力容量は増加するが、入力容量の増加に応じてプログラマブル出力バッファの駆動力を大きくすることで、信号の伝搬時間の増加を抑制できる。また、オン状態の素子数が少ない場合には、駆動力を小さくすることで、突入電流を不要に増加させず、抵抗変化型素子に掛かるエレクトロマイグレーションのストレスを抑制できる。
 (変形例)
 ここで、本実施形態の変形例について図面を参照しながら説明する。図12は、駆動力が異なる値に固定された複数の出力バッファを組み合わせた出力バッファ群11bを用いる構成例である。
 図12の構成では、出力バッファ群11bは、互いに異なる駆動力の出力バッファを少なくとも一つずつ含む。図12には、出力バッファ群11bを構成するそれぞれの出力バッファに駆動力を示す数字を示している。ファンアウト数の多い接続を持つ信号は、駆動力の高い出力バッファに接続された入力線13に優先して割り当てる。一方、ファンアウト数の少ない接続を持つ信号は、駆動力の低い出力バッファに接続された入力線13に割り当てればよい。
 図12の構成では、出力バッファ群11bを構成する出力バッファの駆動力は固定されているものの、ファンアウト数に応じて入力線13を選択することによって、伝搬遅延の増加とエレクトロマイグレーションによるストレスを改善することができる。図12の構成では、出力バッファ群11bを構成する複数の出力バッファの駆動力をあらかじめ作り分けることによって、出力バッファ群11bのレイアウト面積の増加を抑えることができる。
 (第2の実施形態)
 次に、本発明の第2の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、論理回路群を構成する論理回路の出力をクロスバスイッチ回路にフィードバックしてクラスタ構造を構成する点で第1の実施形態とは異なる。以下において、第1の実施形態と同様の構成については、適宜説明を省略する。
 図13は、本実施形態のプログラマブル論理回路2の構成を示す概念図である。なお、図13の構成のプログラマブル論理回路2のことをクラスタ構造とも呼ぶ。図13のように、プログラマブル論理回路2は、クロスバスイッチ22と、第1の出力バッファ群21aと、第2の出力バッファ群21bと、論理回路群26とを備える。なお、図13には、第3の出力バッファ群21cについても図示しているが、第3の出力バッファ群21cは省略可能である。
 クロスバスイッチ22は、y方向に沿って配される入力線(入力線23aおよび入力線23b)と、x方向に沿って配される出力線(出力線24aおよび出力線24b)と、入力線と出力線との交点に設置される複数の抵抗変化型素子25によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線23aや入力線23b、出力線24a、出力線24bと記載する。
 入力線23aは、第1の出力バッファ群21aに含まれるいずれかの出力バッファに接続される。入力線23bは、第2の出力バッファ群21bに含まれるいずれかの出力バッファに接続される。また、入力線23aおよび入力線23bは、抵抗変化型素子25を介して、出力線24aおよび出力線24bのいずれかに接続される。
 出力線24aおよび出力線24bは、抵抗変化型素子25を介して、入力線23aおよび入力線23bのいずれかに接続される。出力線24aは、論理回路群26を構成するいずれかの論理回路に接続される。また、出力線24bは、第3の出力バッファ群21cを介して外部出力線203に接続される。
 クロスバスイッチ22は、隣接するクロスバスイッチ回路(図示しない)に信号を出力するための外部出力線203に接続される。なお、外部出力線203は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第3の出力バッファ群21cを介して信号を出力する。
 第1の出力バッファ群21aは、少なくとも一つの出力バッファを含む。第1の出力バッファ群21aに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第1の出力バッファ群21aの出力バッファの入力端子は、前段の論理回路群26の出力に接続される。第1の出力バッファ群21aの出力バッファの出力端子は、入力線23aに接続される。第1の出力バッファ群21aの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、出力バッファの駆動力を設定するための制御信号を入力とする。
 第2の出力バッファ群21bは、少なくとも一つの出力バッファを含む。第2の出力バッファ群21bに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第2の出力バッファ群21bの出力バッファの入力端子は、フィードバック配線201を介して論理回路群26の出力に接続される。第2の出力バッファ群21bの出力バッファの出力端子は、入力線23bに接続される。第2の出力バッファ群21bの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、第2の出力バッファ群21bの出力バッファの駆動力を設定するための制御信号を入力とする。
 論理回路群26は、出力線24aに接続される。論理回路群26には、オン状態の抵抗変化型素子25を介して、信号が入力される。また、論理回路群26は、フィードバック配線201を介して、第2の出力バッファ群21bに接続される。そして、論理回路群26の出力は、第2の出力バッファ群21bを介して、クロスバスイッチ22に入力される。
 図13に示す構成によれば、フィードバック配線201によって、プログラマブル論理回路2(クラスタ構造)の内部の論理回路群26を相互に接続できる。そのため、図13に示す構成によれば、単一のプログラマブル論理回路2において、より大規模なプログラマブル論理回路を構成できる。ここで、フィードバック配線201におけるクロスバスイッチ22のファンアウト数は、ユーザデザインによって様々に変化しうる。クロスバスイッチ22のファンアウト数が大きい場合には、第1の出力バッファ群21aの駆動力を大きくすることによって伝搬遅延の増加を抑制することができる。
 〔クラスタ構造〕
 図14は、本実施形態のプログラマブル論理回路2の構成を有するクラスタ構造200をアレイ状に配列したプログラマブル論理回路20の構成を示す概念図である。
 プログラマブル論理回路20は、アレイ状に配列された複数のクラスタ構造200と、隣接するクラスタ構造200を接続するセグメント配線網210と、セグメント配線網210の交点に配置された複数のスイッチボックス220とによって構成される。
 クラスタ構造200のクロスバスイッチ22(図13)の入力線23a(図13)および外部出力線203(図13)は、セグメント配線網210に接続される。隣接するクラスタ構造200同士は、スイッチボックス220を介して接続される。
 図15は、スイッチボックス220の構成例のスイッチボックス220aである。スイッチボックス220aは、x方向とy方向に張り巡らされた配線によって構成される配線網221の交点を抵抗変化型素子225で接続する構成を有する。スイッチボックス220aは、入力線23aの接続先を変更することができる。
 図16は、スイッチボックス220の構成例のスイッチボックス220bである。スイッチボックス220bは、x方向とy方向に張り巡らされた配線によって構成される配線網221の交点をビア226で接続する構成を有する。スイッチボックス220bにおいては、配線網221の交点がビア226で接続されるため、入力線23aの接続先を変更することができない。スイッチボックス220bは、入力線23aの接続先が限定されている場合に用いられる。
 以上のように、本実施形態によれば、第1の実施形態と同様に、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できる。また、本実施形態によれば、クラスタ構造をアレイ化することによって、第1の実施形態よりも大規模なプログラマブル論理回路を構成できる。
 (第3の実施形態)
 次に、本発明の第3の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、論理回路群を構成する論理回路の構成が第2の実施形態とは異なる。以下において、第2の実施形態と同様の構成については、適宜説明を省略する。
 図17は、本実施形態のプログラマブル論理回路3の構成を示す概念図である。図17のように、プログラマブル論理回路3は、クロスバスイッチ32と、第1の出力バッファ群31aと、第2の出力バッファ群31bと、論理回路群36とを備える。なお、図17には、第3の出力バッファ群31cについても図示しているが、第3の出力バッファ群31cは省略可能である。
 クロスバスイッチ32は、y方向に沿って配される入力線(入力線33aおよび入力線33b)と、x方向に沿って配される出力線(出力線34aおよび出力線34b)と、入力線と出力線との交点に設置される複数の抵抗変化型素子35によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線33aや入力線33b、出力線34a、出力線34bと記載する。
 入力線33aは、第1の出力バッファ群31aに含まれるいずれかの出力バッファに接続される。入力線33bは、第2の出力バッファ群31bに含まれるいずれかの出力バッファに接続される。また、入力線33aおよび入力線33bは、抵抗変化型素子35を介して、出力線34aおよび出力線34bのいずれかに接続される。
 出力線34aおよび出力線34bは、抵抗変化型素子35を介して、入力線33aおよび入力線33bのいずれかに接続される。出力線34aは、論理回路群36を構成するいずれかの論理回路360に接続される。また、出力線34bは、第3の出力バッファ群31cを介して外部出力線303に接続される。
 クロスバスイッチ32は、隣接するクロスバスイッチ回路(図示しない)に信号を出力するための外部出力線303に接続される。なお、外部出力線303は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第3の出力バッファ群31cを介して信号を出力する。第3の出力バッファ群31cは、第1の出力バッファ群31aや第2の出力バッファ群31bと同様の構成にすればよい。
 第1の出力バッファ群31aは、少なくとも一つの出力バッファを含む。第1の出力バッファ群31aに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第1の出力バッファ群31aの出力バッファの入力端子は、前段の論理回路群36の出力に接続される。第1の出力バッファ群31aの出力バッファの出力端子は、入力線33aに接続される。第1の出力バッファ群31aの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、出力バッファの駆動力を設定するための制御信号を入力とする。
 第2の出力バッファ群31bは、少なくとも一つの出力バッファを含む。第2の出力バッファ群31bに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第2の出力バッファ群31bの出力バッファの入力端子は、フィードバック配線301を介して論理回路群36の出力に接続される。第2の出力バッファ群31bの出力バッファの出力端子は、入力線33bに接続される。第2の出力バッファ群31bの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、第2の出力バッファ群31bの出力バッファの駆動力を設定するための制御信号を入力とする。
 論理回路群36は、出力線34aに接続される。論理回路群36には、オン状態の抵抗変化型素子35を介して、信号が入力される。また、論理回路群36は、フィードバック配線301を介して、第2の出力バッファ群31bに接続される。そして、論理回路群36の出力は、第2の出力バッファ群31bを介して、クロスバスイッチ32に入力される。
 論理回路群36は、少なくとも一つの論理回路360を含む。論理回路360は、ルックアップテーブル回路361、フリップフロップ回路362、マルチプレクサ回路363を有する基本論理要素を含む。論理回路360は、ルックアップテーブルおよびフリップフロップを有しており、ルックアップテーブルのデータを書き換えることにより、プログラム可能な同期式論理回路を構成する。
 クロスバスイッチ32の出力線34aの出力は、4入力のルックアップテーブル回路361に入力される。ルックアップテーブル回路361は、出力線34aから入力される複数の入力信号の組から内部メモリの値を参照して一つの信号を出力する。
 ルックアップテーブル回路361の出力は、フリップフロップ回路362に入力される。ルックアップテーブル回路361およびフリップフロップ回路362の出力は、マルチプレクサ回路363に入力される。マルチプレクサ回路363は、ルックアップテーブル回路361およびフリップフロップ回路362から入力された信号のうちいずれかを選択して出力する。マルチプレクサ回路363からの出力が論理回路360の出力となる。
 論理回路360の出力は、フィードバック配線301を介して第2の出力バッファ群31bを構成するいずれかの出力バッファに入力される。そして、論理回路360の出力は、第2の出力バッファ群31bを構成するいずれかの出力バッファを介してクロスバスイッチ32に入力される。
 本実施形態のプログラマブル論理回路3では、フィードバック配線301によって複数の基本論理要素を互いに接続できる。そのため、単一のプログラマブル論理回路3において、より大規模なプログラマブル論理回路を構成することができる。また、フィードバック配線301は、外部出力線303にも接続される。そのため、プログラマブル論理回路3によって形成されるクラスタ構造をアレイ状に配置することによって、より大規模なプログラマブル論理回路を構成することが可能である。
 以上のように、本実施形態によれば、ルックアップテーブル回路を使用したプログラマブル論理回路において、抵抗変化型素子を有するクロスバスイッチのファンアウト数に依存した伝搬遅延の影響を小さくすることによって回路性能を向上させることができる。
 (第4の実施形態)
 次に、本発明の第4の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、出力バッファ群を構成する出力バッファの駆動力が固定されている点で第3の実施形態とは異なる。なお、以下において、第3の実施形態と同様の構成については、適宜説明を省略する。
 図18は、本実施形態のプログラマブル論理回路4の構成を示す概念図である。図18のように、プログラマブル論理回路4は、クロスバスイッチ42と、第1の出力バッファ群41aと、第2の出力バッファ群41bと、論理回路群46とを備える。なお、図18には、第3の出力バッファ群41cについても図示しているが、第3の出力バッファ群41cは省略可能である。
 クロスバスイッチ42は、y方向に沿って配される入力線(入力線43aおよび入力線43b)と、x方向に沿って配される出力線(出力線44aおよび出力線44b)と、入力線と出力線との交点に設置される複数の抵抗変化型素子45によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線43aや入力線43b、出力線44a、出力線44bと記載する。
 入力線43aは、第1の出力バッファ群41aに含まれるいずれかの出力バッファに接続される。入力線43bは、第2の出力バッファ群41bに含まれるいずれかの出力バッファに接続される。また、入力線43aおよび入力線43bは、抵抗変化型素子45を介して、出力線44aおよび出力線44bのいずれかに接続される。
 出力線44aおよび出力線44bは、抵抗変化型素子45を介して、入力線43aおよび入力線43bのいずれかに接続される。出力線44aは、論理回路群46を構成するいずれかの論理回路に接続される。また、出力線44bは、第3の出力バッファ群41cを介して外部出力線403に接続される。
 クロスバスイッチ42は、隣接するクロスバスイッチ回路(図示しない)に信号を出力するための外部出力線403に接続される。なお、外部出力線403は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第3の出力バッファ群41cを介して信号を出力する。第3の出力バッファ群41cは、第1の出力バッファ群41aや第2の出力バッファ群41bと同様の構成にすればよい。
 第1の出力バッファ群41aは、互いに異なる駆動力の少なくとも二つの出力バッファを含む。第1の出力バッファ群41aに含まれる出力バッファは、入力端子および出力端子を有する。第1の出力バッファ群41aの出力バッファの入力端子は、前段の論理回路群46の出力に接続される。第1の出力バッファ群41aの出力バッファの出力端子は、入力線43aに接続される。
 第2の出力バッファ群41bは、互いに異なる駆動力の少なくとも二つの出力バッファを含む。第2の出力バッファ群41bに含まれる出力バッファは、入力端子および出力端子を有する。第2の出力バッファ群41bの出力バッファの入力端子は、フィードバック配線401を介して論理回路群46の出力に接続される。第2の出力バッファ群41bの出力バッファの出力端子は、入力線43bに接続される。
 論理回路群46は、出力線44aに接続される。論理回路群46には、オン状態の抵抗変化型素子45を介して、信号が入力される。また、論理回路群46は、フィードバック配線401を介して、第2の出力バッファ群41bに接続される。そして、論理回路群46の出力は、第2の出力バッファ群41bを介して、クロスバスイッチ42に入力される。なお、論理回路群46に含まれる論理回路の構成や機能は、第3の実施形態と同様であるので、詳細な説明は省略する。
 クロスバスイッチ42の出力線44aの出力は、論理回路群46を構成するいずれかの基本論理要素の4入力のルックアップテーブルに入力される。ルックアップテーブルの出力は、フリップフロップに入力される。ルックアップテーブルおよびフリップフロップ回路の出力は、マルチプレクサに入力される。マルチプレクサは、ルックアップテーブルおよびフリップフロップから入力された信号のうちいずれかを選択して出力する。マルチプレクサからの出力が基本論理要素の出力となる。
 論理回路群46を構成する基本論理要素の出力は、フィードバック配線401を介して第2の出力バッファ群41bを構成するいずれかの出力バッファに入力される。そして、基本論理要素の出力は、第2の出力バッファ群41bを構成するいずれかの出力バッファを介してクロスバスイッチ42に入力される。
 本実施形態で示した基本論理要素は、プログラム可能な論理である。複数の基本論理要素を並べた構成とする場合、フィードバック配線に接続される出力バッファの種類を予め決めておけば、後でファンアウト数の多いユーザ論理に対して駆動力の高い出力バッファに接続された基本論理要素を割り当てることができる。このようにすれば、ファンアウト数の多い出力は駆動力の高い出力バッファで駆動することができる。そのため、本実施形態のように、プログラマブル出力バッファを用いなくても、第3の実施形態と実質的に同じ効果を得ることができる。
 プログラマブル出力バッファは、最大の駆動力を考慮して設計されることにより、最大の駆動力に対応したレイアウト面積が必要である。それに対し、予め駆動力の異なる出力バッファを用意しておけば、それぞれの駆動力に対応させてレイアウト面積を小さくすることが可能である。また、駆動力が同一の出力バッファを用いる場合と比較すると、等しいレイアウト面積でより大きく駆動力を変化させることができる。
 以上のように、本実施形態によれば、駆動力の異なる出力バッファを有するクロスバスイッチ回路を利用することによって、第3の実施形態よりもレイアウト面積を縮小することができる。また、本実施形態によれば、第3の実施形態と同様に、抵抗変化型素子を有するクロスバスイッチのファンアウト数に依存した伝搬遅延の影響を小さくすることによって回路性能を向上させることができる。
 (第5の実施形態)
 次に、本発明の第1の実施形態に係る半導体装置について図面を参照しながら説明する。本実施形態の半導体装置は、第1~第4の実施形態のプログラマブル論理回路が構成されるプログラマブル集積回路である。
 図19は、本実施形態の半導体装置5の構成を示すブロック図である。半導体装置5は、出力バッファ群51、クロスバスイッチ52、論理回路群56を有するプログラマブル論理回路50(ユーザ回路とも呼ぶ)を備える。
 クロスバスイッチ52は、第1の方向に配列された複数の第1の配線と、第1の方向に交差する第2の方向に配列された複数の第2の配線と、第1の配線と第2の配線とを接続する抵抗変化型素子とによって構成される。
 出力バッファ群51は、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される。出力バッファ群51を構成する出力バッファは、複数の第1の配線のうちいずれかの入力側に接続される。
 論理回路群56は、第2の配線の出力に接続される少なくとも一つの論理回路によって構成される。
 本実施形態のプログラマブル論理回路によれば、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できる。
 本実施形態の半導体装置は、クロスバ回路を用いた回路構成に限定されない。例えば、本実施形態の半導体装置は、DRAM(Dynamic Random Access Memory)や、SRAM(Static Random Access Memory)のようなメモリ回路を有する半導体装置として構成できる。また、本実施形態の半導体装置は、FeRAM(Ferro Electric Random Access Memory)やMRAM(Magnetic Random Access Memory)を有する半導体装置として構成できる。また、本実施形態の半導体装置は、フラッシュメモリやバイポーラトランジスタを有する半導体装置として構成できる。また、本実施形態の半導体装置は、マイクロプロセッサなどの論理回路を有する半導体装置として構成できる。また、本実施形態の半導体装置は、上述のようなメモリ回路や論理回路を混載した基板やパッケージなどの配線に対しても適用できる。
 (第6の実施形態)
 次に、本発明の第6の実施形態の制御装置について図面を参照しながら説明する。本実施形態の制御装置は、第3の実施形態のプログラマブル論理回路3のコンフィグレーションデータを生成し、生成したコンフィグレーションデータに基づいてプログラマブル論理回路3をプログラマブル論理回路に実装する。
 (構成)
 図20は、本実施形態の制御装置60の構成を示すブロック図である。図20のように、制御装置60は、入力部61、論理合成部62、マッピング部63、クラスタ部64、レイアウト部65、駆動力決定部66、記憶部67、データ生成部68、回路設定部69を備える。制御装置60は、第5の実施形態の半導体装置5と同様の構成を有する半導体装置6(プログラマブル集積回路とも呼ぶ)に接続される。
 入力部61は、設計者が作成したユーザ回路の動作記述ファイルを入力とする。例えば、動作記述ファイルは、Verilog-HDL(Hardware Description Language)やVHDL(Very high-speed integrated circuit HDL)などのハードウェア記述言語を用いて作成する。入力部61は、入力した動作記述ファイルを論理合成部62に出力する。
 論理合成部62には、動作記述ファイルが入力部61から入力される。論理合成部62は、入力された動作記述ファイルを論理合成して、ユーザ回路に基づいたゲートレベルのネットリスト(第1レベルのネットリストとも呼ぶ)を作成する。論理合成部62は、半導体装置6が備える基本論理回路を用いてゲートレベルのネットリストを作成する。論理合成部62は、設計者が予め設定したタイミング制約情報を満たすように回路を最適化する。論理合成部62は、作成したゲートレベルのネットリストをマッピング部63に出力する。
 マッピング部63には、ゲートレベルのネットリストが論理合成部62から入力される。マッピング部63は、設計者が予め設定したタイミング制約情報を満たすようにネットリストを最適化する。すなわち、マッピング部63は、ユーザ回路に基づいたゲートレベルのネットリストをマッピングし、LUT(Lookup Table)レベルのネットリスト(第2レベルのネットリストとも呼ぶ)に変換する。マッピング部63は、LUTレベルに変換されたネットリストをクラスタ部64に出力する。
 クラスタ部64には、LUTレベルのネットリストがマッピング部63から入力される。クラスタ部64は、複数のLUTおよびフリップフロップをグループ化し、実際のプログラマブル論理回路が有するクラスタ化した基本論理回路の構成に即したテクノロジーレベルのネットリスト(第3レベルのネットリストとも呼ぶ)を生成する。クラスタ部64は、生成したテクノロジーレベルのネットリストをレイアウト部65に出力する。
 レイアウト部65には、テクノロジーレベルのネットリストがクラスタ部64から入力される。レイアウト部65は、クラスタ化された基本論理回路のアレイに対してテクノロジーレベルのネットリストの最適配置を計算する。そして、レイアウト部65は、クラスタ化された基本論理回路に接続されたクロスバ回路を結線し、クラスタ内部および外部の配線を行う。すなわち、レイアウト部65は、半導体装置6に実装するプログラマブル論理回路の配置配線処理を実行し、プログラマブル論理回路の構成情報を作成する。レイアウト部65は、作成したプログラマブル論理回路の構成情報を駆動力決定部66に出力する。
 駆動力決定部66には、プログラマブル論理回路の構成情報がレイアウト部65から入力される。駆動力決定部66は、プログラマブル論理回路の構成情報からクロスバのファンアウト数を計算する。駆動力決定部66は、記憶部67に格納された参照テーブルを参照し、計算したファンアウト数に応じてプログラマブル出力バッファの駆動力を計算する。すなわち、駆動力決定部66は、クロスバのファンアウト数に基づいてプログラマブル出力バッファの駆動力の最適化を行う。駆動力決定部66は、算出したプログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報をデータ生成部68に出力する。
 記憶部67には、クロスバのファンアウト数に対応するプログラマブル出力バッファの駆動力の値が格納される参照テーブルが記憶される。記憶部67に格納される参照テーブルには、抵抗変化型素子のエレクトロマイグレーションの基準を満足する範囲で、ファンアウト数が大きい場合に遅延時間が小さくなるようにプログラマブル出力バッファの駆動力を大きくする条件が記憶される。
 データ生成部68には、プログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報が駆動力決定部66から入力される。データ生成部68は、構成情報に基づいて、半導体装置6にプログラマブル論理回路をプログラムするためのコンフィグレーションデータを生成する。データ生成部68は、生成したコンフィグレーションデータを回路設定部69に出力する。
 回路設定部69には、コンフィグレーションデータがデータ生成部68から入力される。回路設定部69は、コンフィグレーションデータに基づいて、半導体装置6にプログラマブル論理回路をプログラムする。
 以上が、制御装置60の構成についての説明である。次に、制御装置60の動作について説明する。
 (動作)
 図21は、本実施形態の制御装置60の動作について説明するためのフローチャートである。図21のフローチャートに沿った説明においては、制御装置60を動作主体として説明する。
 図21において、まず、制御装置60には、ユーザ回路の動作記述ファイルが入力される(ステップS61)。
 次に、制御装置60は、動作記述ファイルを論理合成して第1レベルのネットリストを作成する(ステップS62)。
 次に、制御装置60は、第1レベルのネットリストをマッピングして第2レベルのネットリストに変換する(ステップS63)。
 次に、制御装置60は、第2レベルのネットリストに含まれる複数のLUTおよびフリップフロップからなる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第3レベルのネットリストを生成する(ステップS64)。
 次に、制御装置60は、クラスタ化された基本論理要素のアレイに対して第3レベルのネットリストの最適配置を計算する(ステップS65)。
 次に、制御装置60は、クラスタ化された基本論理要素に接続されたクロスバスイッチを結線し、クラスタの内部および外部の配線を行う(ステップS66)。ステップS65とステップS66を経て、ユーザ回路の構成情報が作成される。
 次に、制御装置60は、ユーザ回路の構成情報に基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数に応じてプログラマブル出力バッファの駆動力を決定する(ステップS67)。
 次に、制御装置60は、出力バッファの駆動力を含めたユーザ回路の構成情報に基づいて、半導体装置6にユーザ回路をプログラムするためのコンフィグレーションデータを生成する(ステップS68)。
 そして、制御装置60は、コンフィグレーションデータに基づいて、半導体装置6にユーザ回路をプログラムする。
 以上が、図21のフローチャートに沿った制御装置60の動作についての説明である。図21のフローチャートに沿った処理を経ることによって、ユーザの回路記述を実現するプログラマブル論理回路がプログラマブル集積回路に設定される。
 以上のように、本実施形態によれば、クロスバスイッチ回路の交点に抵抗変化型素子を備えるプログラマブル集積回路にユーザの回路記述を実現するプログラマブル論理回路を実装できる。すなわち、本実施形態によれば、クロスバスイッチのファンアウト数に応じて、ファンアウト数の多い接続を持つ信号が入力されるクロスバ入力に接続されるバッファの駆動力を高めたコンフィグレーションパタンを生成できる。本実施形態の制御装置によって実装されるプログラマブル論理回路によれば、伝搬遅延の増加を改善するとともに、抵抗変化型素子のエレクトロマイグレーションによるストレスを改善できる。
 (第7の実施形態)
 次に、本発明の第7の実施形態の制御装置について図面を参照しながら説明する。本実施形態の制御装置は、第4の実施形態のプログラマブル論理回路4のコンフィグレーションデータを生成し、生成したコンフィグレーションデータに基づいてプログラマブル論理回路4をプログラマブル論理回路に実装する。
 (構成)
 図22は、本実施形態の制御装置70の構成を示すブロック図である。図22のように、制御装置70は、入力部71、論理合成部72、マッピング部73、クラスタ部74、割当部75、レイアウト部76、データ生成部77、回路設定部78を備える。制御装置60は、第5の実施形態の半導体装置5と同様の構成を有する半導体装置7(プログラマブル集積回路とも呼ぶ)に接続される。
 入力部71は、設計者が作成したユーザ回路の動作記述ファイルを入力とする。入力部71は、第6の実施形態の入力部61と同様の構成である。入力部71は、入力した動作記述ファイルを論理合成部72に出力する。
 論理合成部72には、動作記述ファイルが入力部71から入力される。論理合成部72は、第6の実施形態の論理合成部62と同様の構成である。論理合成部72は、入力された動作記述ファイルを論理合成して、ユーザ回路に基づいたゲートレベルのネットリスト(第1レベルのネットリストとも呼ぶ)を作成する。論理合成部72は、作成したゲートレベルのネットリストをマッピング部73に出力する。
 マッピング部73には、ゲートレベルのネットリストが論理合成部72から入力される。マッピング部73は、第6の実施形態のマッピング部63と同様の構成である。マッピング部73は、ユーザ回路に基づいたゲートレベルのネットリストをマッピングし、LUTレベルのネットリスト(第2レベルのネットリストとも呼ぶ)に変換する。マッピング部73は、LUTレベルに変換されたネットリストをクラスタ部74に出力する。
 クラスタ部74には、LUTレベルのネットリストがマッピング部73から入力される。クラスタ部74は、第6の実施形態のクラスタ部64と同様の構成である。クラスタ部74は、複数のLUTおよびフリップフロップをグループ化し、実際のプログラマブル論理回路が有するクラスタ化した基本論理回路の構成に即したテクノロジーレベルのネットリスト(第3レベルのネットリストとも呼ぶ)を生成する。クラスタ部74は、生成したテクノロジーレベルのネットリストを割当部75に出力する。
 割当部75には、テクノロジーレベルのネットリストがクラスタ部74から入力される。割当部75は、テクノロジーレベルのネットリストからクロスバのファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い出力バッファに接続された基本論理要素回路にクロスバを割り当てる再クラスタ化する。割当部75は、再クラスタ化したテクノロジーレベルのネットリストをレイアウト部76に出力する。
 レイアウト部76には、再クラスタ化されたテクノロジーレベルのネットリストが割当部75から入力される。レイアウト部76は、再クラスタ化された基本論理回路のアレイに対してテクノロジーレベルのネットリストの最適配置を計算する。そして、レイアウト部76は、再クラスタ化された基本論理回路に接続されたクロスバ回路を結線し、クラスタ内部および外部の配線を行う。すなわち、レイアウト部76は、半導体装置7に実装するプログラマブル論理回路の配置配線処理を実行し、プログラマブル論理回路の構成情報を作成する。レイアウト部76は、作成したプログラマブル論理回路の構成情報をデータ生成部77に出力する。
 データ生成部77には、プログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報がレイアウト部76から入力される。データ生成部77は、第6の実施形態のデータ生成部68と同様の構成である。データ生成部77は、構成情報に基づいて、半導体装置7にプログラマブル論理回路をプログラムするためのコンフィグレーションデータを生成する。データ生成部77は、生成したコンフィグレーションデータを回路設定部78に出力する。
 回路設定部78には、コンフィグレーションデータがデータ生成部77から入力される。回路設定部78は、第6の実施形態の回路設定部69と同様の構成である。回路設定部78は、コンフィグレーションデータに基づいて、半導体装置7にプログラマブル論理回路をプログラムする。
 以上が、制御装置70の構成についての説明である。次に、制御装置70の動作について説明する。
 (動作)
 図23は、本実施形態の制御装置70の動作について説明するためのフローチャートである。図23のフローチャートに沿った説明においては、制御装置70を動作主体として説明する。
 図23において、まず、制御装置70には、ユーザ回路の動作記述ファイルが入力される(ステップS71)。
 次に、制御装置70は、動作記述ファイルを論理合成して第1レベルのネットリストを作成する(ステップS72)。
 次に、制御装置70は、第1レベルのネットリストをマッピングして第2レベルのネットリストに変換する(ステップS73)。
 次に、制御装置70は、第2レベルのネットリストに含まれる複数のLUTおよびフリップフロップからなる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第3レベルのネットリストを生成する(ステップS74)。
 次に、制御装置70は、第3レベルのネットリストに基づいてクロスバスイッチの入力ごとにファンアウト数を計算する。そして、制御装置70は、ファンアウト数の大きい順に駆動力の高い出力バッファをクロスバスイッチの入力に割り当てて基本論理要素を再クラスタ化する(ステップS75)。
 次に、制御装置70は、再クラスタ化された基本論理回路のアレイに対して第3レベルのネットリストの最適配置を計算する(ステップS76)。
 次に、制御装置70は、再クラスタ化された基本論理回路に接続されたクロスバスイッチを結線し、クラスタの内部および外部の配線を行う(ステップS77)。ステップS76とステップS77を経て、ユーザ回路の構成情報が作成される。
 次に、制御装置70は、出力バッファの割り当てを含めたユーザ回路の構成情報に基づいて、半導体装置7にプユーザ回路をプログラムするためのコンフィグレーションデータを生成する(ステップS78)。
 そして、制御装置70は、コンフィグレーションデータに基づいて、半導体装置7にユーザ回路をプログラムする。
 以上が、図23のフローチャートに沿った制御装置70の動作についての説明である。図23のフローチャートに沿った処理を経ることによって、ユーザの回路記述を実現するプログラマブル論理回路がプログラマブル集積回路に設定される。
 図23のフローチャートに沿った処理は、駆動力が固定された複数の出力バッファを組み合わせた出力バッファ群を有するプログラマブル論理回路に適用する。図23のフローチャートに沿った処理では、テクノロジーレベルのネットリストを参照し、ファンアウト数が多いネットに対して優先的に高い駆動力の出力バッファを有する基本論理回路を割り当てる。
 以上のように、本実施形態によれば、クロスバスイッチ回路の交点に抵抗変化型素子を備えるプログラマブル集積回路にユーザの回路記述を実現するプログラマブル論理回路を実装できる。すなわち、本実施形態によれば、クロスバスイッチのファンアウト数に応じて、ファンアウト数の多い接続を持つ信号を駆動能力の高いバッファを持つクロスバ入力に優先して割り当てるコンフィグレーションパタンを生成できる。本実施形態の制御装置によって実装されるプログラマブル論理回路によれば、伝搬遅延の増加を改善するとともに、抵抗変化型素子のエレクトロマイグレーションによるストレスを改善できる。
 (ハードウェア)
 ここで、本発明の第6および第7の実施形態に係る制御装置を実現するハードウェア構成について、図24の情報処理装置90を一例として挙げて説明する。なお、図24の情報処理装置90は、各実施形態の制御装置を実現するための構成例であって、本発明の範囲を限定するものではない。
 図24のように、情報処理装置90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95および通信インターフェース96を備える。図24においては、インターフェースをI/F(Interface)と略して表記する。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95および通信インターフェース96は、バス99を介して互いにデータ通信可能に接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93および入出力インターフェース95は、通信インターフェース96を介して、インターネットやイントラネットなどのネットワークに接続される。
 プロセッサ91は、補助記憶装置93等に格納されたプログラムを主記憶装置92に展開し、展開されたプログラムを実行する。本実施形態においては、情報処理装置90にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ91は、本実施形態に係る制御装置による処理を実行する。
 主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリとすればよい。また、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリを主記憶装置92として構成・追加してもよい。
 補助記憶装置93は、種々のデータを記憶する。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクによって構成される。なお、種々のデータを主記憶装置92に記憶させる構成とし、補助記憶装置93を省略することも可能である。
 入出力インターフェース95は、情報処理装置90と周辺機器とを接続するためのインターフェースである。通信インターフェース96は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。入出力インターフェース95および通信インターフェース96は、外部機器と接続するインターフェースとして共通化してもよい。
 情報処理装置90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器を接続するように構成してもよい。それらの入力機器は、情報や設定の入力に使用される。なお、タッチパネルを入力機器として用いる場合は、表示機器の表示画面が入力機器のインターフェースを兼ねる構成とすればよい。プロセッサ91と入力機器との間のデータ通信は、入出力インターフェース95に仲介させればよい。
 また、情報処理装置90には、情報を表示するための表示機器を備え付けてもよい。表示機器を備え付ける場合、情報処理装置90には、表示機器の表示を制御するための表示制御装置(図示しない)が備えられていることが好ましい。表示機器は、入出力インターフェース95を介して情報処理装置90に接続すればよい。
 また、情報処理装置90には、必要に応じて、ディスクドライブを備え付けてもよい。ディスクドライブは、バス99に接続される。ディスクドライブは、プロセッサ91と図示しない記録媒体(プログラム記録媒体)との間で、記録媒体からのデータ・プログラムの読み出し、情報処理装置90の処理結果の記録媒体への書き込みなどを仲介する。記録媒体は、例えば、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体で実現できる。また、記録媒体は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどの半導体記録媒体や、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現してもよい。
 以上が、本発明の各実施形態に係る制御装置を可能とするためのハードウェア構成の一例である。なお、図24のハードウェア構成は、各実施形態に係る制御装置の演算処理を実行するためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、各実施形態に係る制御装置に関する処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、各実施形態に係るプログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。
 各実施形態の制御装置の構成要素は、任意に組み合わせることができる。また、各実施形態の制御装置の構成要素は、ソフトウェアによって実現してもよいし、回路によって実現してもよい。
 以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2017年9月22日に出願された日本出願特願2017-182576を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1、2、3、4、20、50  プログラマブル論理回路
 5、6、7  半導体装置
 11、51  出力バッファ群
 12、22、32、42、52  クロスバスイッチ
 13、23a、23b、33a、33b、43a、43b  入力線
 14、24a、24b、34a、34b、44a、44b  出力線
 15、25、35、45  抵抗変化型素子
 16、26、36、46、56  論理回路群
 21a、31a、41a  第1の出力バッファ群
 21b、31b、41b  第2の出力バッファ群
 21c、31c、41c  第3の出力バッファ群
 110  プログラマブル出力バッファ
 111  バッファ回路
 112  トライステートバッファ回路
 117  入力端子
 118  出力端子
 119  駆動力設定端子
 140  容量
 160  入力容量
 151  ユニポーラ型素子
 152  バイポーラ型素子
 153  抵抗変化型素子
 200  クラスタ構造
 201、301、401  フィードバック配線
 203、303、403  外部出力線
 210  セグメント配線網
 220  スイッチボックス
 225  抵抗変化型素子
 226  ビア
 360  論理回路
 361  ルックアップテーブル回路
 362  フリップフロップ回路
 363  マルチプレクサ回路

Claims (10)

  1.  第1の方向に配列された複数の第1の配線と、前記第1の方向に交差する第2の方向に配列された複数の第2の配線と、前記第1の配線と前記第2の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、
     異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群と、
     前記第2の配線の出力側に接続される少なくとも一つの論理回路によって構成される論理回路群とを備え、
     前記出力バッファ群を構成する前記出力バッファは、
     複数の前記第1の配線のうちいずれかの入力側に接続されるプログラマブル集積回路。
  2.  複数の前記第2の配線は、
     前記論理回路群を構成するいずれかの前記論理回路に接続されるフィードバック配線によって構成される内向き配線群と、隣接する回路に接続される配線によって構成される外向き配線群とを含み、
     前記出力バッファ群は、
     隣接する回路の出力を入力とする第1の出力バッファ群と、
     前記フィードバック配線を介して、前記論理回路群を構成するいずれかの前記論理回路の出力を入力とする第2の出力バッファ群とを含む請求項1に記載のプログラマブル集積回路。
  3.  前記論理回路は、
     前記内向き配線群から入力される複数の入力信号の組を入力とし、内部メモリの値を参照して一つの信号を出力するルックアップテーブルと、
     前記ルックアップテーブルの出力を入力とし、いずれかの信号を出力するフリップフロップと、
     前記ルックアップテーブルおよび前記フリップフロップの出力を入力とし、いずれかの信号を選択して出力するマルチプレクサとによって構成される基本論理要素を含み、
     前記マルチプレクサによって選択される信号を、前記フィードバック配線を介して前記第2の出力バッファ群に出力する請求項2に記載のプログラマブル集積回路。
  4.  異なる駆動力で動作する少なくとも二つの前記出力バッファによって構成される第3の出力バッファ群を含み、
     前記第3の出力バッファ群を構成する前記出力バッファは、
     前記外向き配線群を構成するいずれかの配線に接続される請求項2または3に記載のプログラマブル集積回路。
  5.  前記出力バッファは、
     入力信号が入力される入力端子と、
     前記第1の配線に接続される出力端子と、
     駆動力の値を設定するための制御信号を入力とするイネーブル端子とを有する請求項1乃至4のいずれか一項に記載のプログラマブル集積回路。
  6.  前記出力バッファは、
     少なくとも一つのバッファ回路と、
     前記バッファ回路と入力および出力を共通とし、前記イネーブル端子から入力される前記制御信号に応じた駆動力が設定される少なくとも一つのトライステートバッファ回路とを含む請求項5に記載のプログラマブル集積回路。
  7.  前記出力バッファ群は、
     異なる駆動力に固定された前記出力バッファを組み合わせた構成を有する請求項1乃至4のいずれか一項に記載のプログラマブル集積回路。
  8.  請求項3乃至7のいずれか一項に記載されたプログラマブル集積回路に構成されるユーザ回路の構成を有する複数のクラスタ構造を、交点にスイッチボックスが配置されたセグメント配線網にアレイ状に配置することによって構成される回路。
  9.  クロスバスイッチと、前記クロスバスイッチの入力に接続される少なくとも二つの駆動力が可変な出力バッファと、前記クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、前記論理回路の出力がいずれかの前記出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、
     前記ユーザ回路の動作記述ファイルを入力とする入力手段と、
     前記動作記述ファイルを論理合成して第1レベルのネットリストを作成する論理合成手段と、
     前記第1レベルのネットリストをマッピングして第2レベルのネットリストに変換するマッピング手段と、
     前記第2レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第3レベルのネットリストを生成するクラスタ手段と、
     クラスタ化された前記基本論理要素のアレイに対して前記第3レベルのネットリストの最適配置を計算し、クラスタ化された前記基本論理要素に接続された前記クロスバスイッチを結線してクラスタの内部および外部の配線を行うことによって前記ユーザ回路の構成情報を作成するレイアウト手段と、
     前記クロスバスイッチのファンアウト数に対応する前記出力バッファの駆動力の値が格納される参照テーブルを記憶する記憶手段と、
     前記ユーザ回路の前記構成情報に基づいて前記クロスバスイッチの入力ごとに前記ファンアウト数を計算し、前記参照テーブルを参照して前記ファンアウト数に対応する前記出力バッファの駆動力を決定する駆動力決定手段と、
     前記出力バッファの駆動力を含めた前記ユーザ回路の前記構成情報に基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、
     前記コンフィグレーションデータに基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムする回路設定手段とを有する制御装置。
  10.  クロスバスイッチと、前記クロスバスイッチの入力に接続される少なくとも二つの駆動力が固定された出力バッファと、前記クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、前記論理回路の出力がいずれかの前記出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、
     前記ユーザ回路の動作記述ファイルを入力とする入力手段と、
     前記動作記述ファイルを論理合成して第1レベルのネットリストを作成する論理合成手段と、
     前記第1レベルのネットリストをマッピングして第2レベルのネットリストに変換するマッピング手段と、
     前記第2レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理回路の構成に即した第3レベルのネットリストを生成するクラスタ手段と、
     前記第3レベルのネットリストに基づいて前記クロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い前記出力バッファを前記クロスバスイッチの入力に割り当てて前記基本論理回路を再クラスタ化する割当手段と、
     再クラスタ化された前記基本論理回路のアレイに対して前記第3レベルのネットリストの最適配置を計算し、再クラスタ化された前記基本論理回路に接続された前記クロスバスイッチを結線してクラスタの内部および外部の配線を行うことによって前記ユーザ回路の構成情報を作成するレイアウト手段と、
     前記出力バッファの割り当てを含めた前記ユーザ回路の構成情報に基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、
     前記コンフィグレーションデータに基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムする回路設定手段とを有する制御装置。
PCT/JP2018/034151 2017-09-22 2018-09-14 プログラマブル集積回路および制御装置 WO2019059119A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019543613A JP6908121B2 (ja) 2017-09-22 2018-09-14 プログラマブル集積回路および制御装置
US16/648,757 US20200251496A1 (en) 2017-09-22 2018-09-14 Programmable integrated circuit and control device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-182576 2017-09-22
JP2017182576 2017-09-22

Publications (1)

Publication Number Publication Date
WO2019059119A1 true WO2019059119A1 (ja) 2019-03-28

Family

ID=65809759

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/034151 WO2019059119A1 (ja) 2017-09-22 2018-09-14 プログラマブル集積回路および制御装置

Country Status (3)

Country Link
US (1) US20200251496A1 (ja)
JP (1) JP6908121B2 (ja)
WO (1) WO2019059119A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10190445A (ja) * 1996-12-26 1998-07-21 Nec Ic Microcomput Syst Ltd 半導体集積回路装置
JP2012169023A (ja) * 2011-02-16 2012-09-06 Nec Corp 半導体装置
JP2016129081A (ja) * 2015-01-09 2016-07-14 株式会社東芝 再構成可能な回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10190445A (ja) * 1996-12-26 1998-07-21 Nec Ic Microcomput Syst Ltd 半導体集積回路装置
JP2012169023A (ja) * 2011-02-16 2012-09-06 Nec Corp 半導体装置
JP2016129081A (ja) * 2015-01-09 2016-07-14 株式会社東芝 再構成可能な回路

Also Published As

Publication number Publication date
US20200251496A1 (en) 2020-08-06
JPWO2019059119A1 (ja) 2020-10-22
JP6908121B2 (ja) 2021-07-21

Similar Documents

Publication Publication Date Title
JP5859089B2 (ja) プログラマブル論理の特定用途向け集積回路等価物および関連の方法
Patel et al. An architectural exploration of via patterned gate arrays
JP6250548B2 (ja) 再構成可能な半導体装置の論理構成方法
US9276573B2 (en) High-performance low-power near-Vt resistive memory-based FPGA
US9257986B2 (en) Rescaling
Yang et al. Review of advanced FPGA architectures and technologies
JP6856032B2 (ja) 再構成可能回路、再構成可能回路システム、および再構成可能回路の動作方法
US8159266B1 (en) Metal configurable integrated circuits
Yazdanshenas et al. Automatic circuit design and modelling for heterogeneous FPGAs
Aslam et al. Exploring the effect of LUT size on the area and power consumption of a novel memristor-transistor hybrid FPGA architecture
US8159265B1 (en) Memory for metal configurable integrated circuits
EP2586128B1 (en) Rescaling
Ahmed The effect of logic block granularity on deep-submicron FPGA performance and density
JP6908121B2 (ja) プログラマブル集積回路および制御装置
Mane et al. Stateful-NOR based reconfigurable architecture for logic implementation
JP6784259B2 (ja) プログラマブル論理集積回路と半導体装置およびキャラクタライズ方法
Srinivasa et al. Improving FPGA design with monolithic 3D integration using high dense inter-stack via
US10720925B2 (en) Integrated circuit
US10855283B2 (en) Routing network for reconfigurable circuit
Higashi et al. Area-efficient LUT-like programmable logic using atom switch and its delay-optimal mapping algorithm
Goda et al. Gigahertz reconfigurable computing using SiGe hbt BiCMOS FPGAs
US20200380190A1 (en) Design assistance system, design assistance method, and program recording medium
Meng et al. A Study of Reconfigurable Switch Architecture for Chiplets Interconnection
WO2018139408A1 (ja) 設計支援システムおよび設計支援方法
WO2020095854A1 (ja) 論理集積回路、構成情報設定方法、および記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18859357

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019543613

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18859357

Country of ref document: EP

Kind code of ref document: A1