WO2018139408A1 - 設計支援システムおよび設計支援方法 - Google Patents
設計支援システムおよび設計支援方法 Download PDFInfo
- Publication number
- WO2018139408A1 WO2018139408A1 PCT/JP2018/001823 JP2018001823W WO2018139408A1 WO 2018139408 A1 WO2018139408 A1 WO 2018139408A1 JP 2018001823 W JP2018001823 W JP 2018001823W WO 2018139408 A1 WO2018139408 A1 WO 2018139408A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- wiring
- design support
- cost
- support system
- wear cost
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/31—Design entry, e.g. editors specifically adapted for circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
Definitions
- the present invention relates to a design support system and a design support method for supporting circuit design.
- Programmable logic integrated circuits such as FPGA (Field Programmable Gate Array) are composed of logic elements, input / output elements, and connection elements.
- the logic element provides a programmable logic operation function.
- As the logic element for example, a logic block including a lookup table that realizes a combinational circuit, a flip-flop that holds data, and a selector is used.
- the input / output element provides a programmable input / output function with the outside of the device.
- the connection element provides a programmable connection function between logic elements and input / output elements. Thereby, the user can form a desired logic circuit in the programmable logic integrated circuit by arbitrarily combining a plurality of logic blocks.
- Configuration information necessary for forming a desired logic circuit is stored in a memory element included in the programmable logic integrated circuit.
- a memory element for storing configuration information an SRAM (Static Random Access Memory) cell, an antifuse, a floating gate MOS (Metal-Oxide-Semiconductor) transistor, or the like is used.
- a switch that connects these memory elements and logic blocks in a changeable manner is generally formed in the same layer as a logic block composed of a large number of transistors. This causes a large area overhead. This increases the chip area of the programmable logic integrated circuit and increases the manufacturing cost. In addition, since the layout area of the memory element and the switch increases, the proportion of the logic block in the chip area decreases.
- a programmable logic integrated circuit using a resistance change element that can be formed in a wiring layer has been proposed as a switch that can change the connection between logic blocks after manufacture while suppressing an increase in layout area.
- metal ions are introduced between a first wiring layer and a second wiring layer formed thereon.
- the resistance change element can change the resistance value by applying a bias voltage to the both ends in the forward direction or the reverse direction, and the ratio between the low resistance state (ON state) and the high resistance state (OFF state). Becomes the fifth power of 10 or more. That is, the variable resistance element functions as a switch that electrically connects or disconnects the first wiring and the second wiring.
- an SRAM cell as a memory element and a switch cell having one transistor having a switch function are used.
- the variable resistance element has both a memory function and a switch function, a switch cell can be realized with a single variable resistance element.
- resistance change elements are arranged at intersections of a first wiring group and a second wiring group that intersects the first wiring group.
- a crossbar switch capable of connecting or disconnecting an arbitrary wiring of the first wiring group and an arbitrary wiring of the second wiring group can be realized in a compact size.
- the performance of the programmable logic integrated circuit is improved by drastically reducing the chip area and improving the use efficiency of the logic block.
- variable resistance element is maintained even when the power supply to the programmable logic integrated circuit is stopped. Therefore, there is an advantage that it is possible to save the trouble of loading the configuration information every time the power is turned on.
- Patent Document 4 adjacent spacing conditions are given only to problematic nets, and wiring processing is executed by giving adjacent spacing conditions that do not cause a wiring violation based on the net list.
- the optimal placement / wiring method described in Patent Document 5 searches for a path that minimizes the delay of a designated clock signal, determines an optimal logic block position, and obtains an optimal wiring.
- weights are given to circuit wiring, a sum of products of the weight and the wiring length is obtained, and wiring is performed so that the sum is minimized.
- the resistance change element as described above has a limit on the number of times it can be rewritten. If the resistance change element is rewritten repeatedly, it deteriorates and eventually cannot be rewritten. For this reason, when writing concentrates on a part of resistance change elements, the programmable logic integrated circuit fails earlier and cannot form a desired logic circuit.
- an SSD Solid-State drive
- Non-Patent Document 2 includes a controller and a flash memory.
- the controller converts user data specified by a logical address, and flash memory specified by a physical address. Write to.
- Patent Document 3 in order to avoid the deterioration of the memory cell by repeatedly writing to the same memory line, the correspondence relationship between the logical address and the memory line is controlled so that the write destination is distributed. A storage device is described.
- Non-Patent Document 2 can improve the degree of freedom of the physical location where data is stored by address conversion. However, it is difficult to directly apply this technique to a programmable logic integrated circuit. Because the data in the programmable logic integrated circuit prescribes the logic operation function of the logic block near the physical position where the data is stored and the connection state between the logic blocks, the physical position of some data is simply moved. This is because a desired logic circuit cannot be formed. The same applies to the technique described in Patent Document 3, and does not take the consistency of the circuit connection relationship.
- An object of the present invention is to provide a design support system and a design support method for solving the above problems.
- a design support system includes: A design support system for supporting design of a circuit mounted on a programmable logic integrated circuit including a resistance change element, Rewrite history information generating means for generating rewrite history information indicating the number of times of change of the state of the resistance change element; Wear cost generation means for calculating the wear cost of the switch included in the circuit based on the rewrite history information; Wiring means for performing wiring of the circuit based on the evaluation function including the wear cost.
- a design support method includes: A design support method for supporting design of a circuit mounted on a programmable logic integrated circuit including a resistance change element, Rewrite history information indicating the number of changes in the state of the resistance change element is generated, Based on the rewrite history information, calculate the wear cost of the switch included in the circuit, The circuit is wired based on the evaluation function including the wear cost.
- a highly reliable programmable logic integrated circuit can be provided.
- FIG. 3 is a flowchart for explaining an example of a design support method in the design support system shown in FIG. 1. It is a figure which shows 2nd Embodiment of the design support system of this invention. It is a figure which shows one structural example of the design support tool group with which the design support system shown in FIG. 3 in 2nd Embodiment is provided. It is a flowchart for demonstrating an example of the design support method in the design support system shown in FIG. It is a figure which shows the 1st example of the wear cost function at the time of the wear cost production
- FIG. 4 is a schematic diagram illustrating an example of two logic blocks included in the programmable logic integrated circuit illustrated in FIG. 3 and wiring resources that connect the logic blocks. It is a directed graph which shows the existing wiring path
- FIG. 1 is a diagram showing a first embodiment of a design support system of the present invention.
- the design support system in this embodiment supports the design of a circuit to be mounted on a programmable logic integrated circuit including a resistance change element.
- the design support system in this embodiment includes a rewrite history information generation unit 110, a wear cost generation unit 120, and a wiring unit 130.
- the rewrite history information generation unit 110 generates rewrite history information indicating the number of changes in the state of the resistance change element.
- the wear cost generation unit 120 calculates the wear cost of the switch included in the circuit based on the rewrite history information generated by the rewrite history information generation unit 110.
- the wiring unit 130 performs circuit wiring based on the evaluation function including the wear cost.
- FIG. 2 is a flowchart for explaining an example of a design support method in the design support system shown in FIG.
- the rewrite history information generation unit 110 generates rewrite history information indicating the number of changes in the state of the resistance change element included in the programmable logic integrated circuit (step S1). Then, the wear cost generation unit 120 calculates the wear cost of the switch included in the circuit mounted on the programmable logic integrated circuit based on the rewrite history information generated by the rewrite history information generation unit 110 (step S2). Subsequently, the wiring unit 130 performs wiring of the circuit to be mounted on the programmable logic integrated circuit based on the evaluation function including the wear cost (step S3).
- FIG. 3 is a diagram showing a second embodiment of the design support system of the present invention.
- the design support system 201 in this embodiment is connected to a configuration information transfer apparatus 301 as shown in FIG.
- the design support system 201 is connected to the programmable logic integrated circuit 401 via the configuration information transfer device 301. These connections may be wired or wireless.
- the signal communication method for connection is not particularly defined.
- the programmable logic integrated circuit 401 and the configuration information transfer device 301 may be mounted on the design support system 201 as an application board.
- the design support system 201 is realized by a computer system, for example. As illustrated in FIG. 3, the design support system 201 includes an arithmetic device 211, a storage device 221, a display device 231, and an input / output device 241. The arithmetic device 211, the storage device 221, the display device 231, and the input / output device 241 are connected to each other via a bus 251.
- the computing device 211 controls the overall operation of the design support system 201 by executing processing in accordance with a program stored in the storage device 221 in advance.
- the arithmetic device 211 realizes functions of a design support tool group described later by executing processing according to a program stored in the storage device 221 in advance.
- the storage device 221 is a storage medium such as a memory for storing design information and programs.
- the design information includes operation description information, constraint condition information, and the like of a circuit created by a designer to be mounted on the programmable logic integrated circuit 401.
- This design information includes netlist information, placement and routing information, processing information of the arithmetic unit 211 described later, resource information and configuration information of the programmable logic integrated circuit 401, rewrite history information, and the like.
- the display device 231 displays the instruction input screen of the design support tool and the processing result performed by the design support tool.
- the display device 231 displays information on the number of rewrites of the resistance change element and the wear cost, which will be described later.
- the display method includes graph display of data after statistical processing and color display on the floor planner. When the user confirms these displays, for example, the user can create a floor plan that avoids a place where the number of rewrites (the number of changes) is large.
- the input / output device 241 is an interface circuit that transmits and receives signals and data to and from input devices such as a keyboard, mouse, and touch panel, and a configuration information transfer device 301 and an output device such as a printing device.
- the input / output device 241 provides a user with a function of setting a wear cost, which will be described later. By using this function, the user can set a wiring that gives priority to delay time and area or a wiring that minimizes wear. Further, the input / output device 241 provides a user with a function of setting a threshold number of wear cost functions that change in a step-like manner, which will be described later. By using this function, the user can set a wiring that gives priority to delay time and area or a wiring that minimizes wear.
- the configuration information transfer apparatus 301 is connected to the design support system 201 and the programmable logic integrated circuit 401, and controls data transmission such as configuration information between the design support system 201 and the programmable logic integrated circuit 401.
- the configuration information transfer apparatus 301 receives data such as configuration information transmitted from the design support system 201, converts the data into transmission data of the data input / output specification of the programmable logic integrated circuit 401, and transfers the data.
- the configuration information transfer device 301 receives data such as configuration information output from the programmable logic integrated circuit 401, converts the data into transmission data of the data input / output specification of the design support system 201, and transfers the data.
- FIG. 4 is a diagram illustrating a configuration example of a design support tool group included in the design support system 201 illustrated in FIG. 3 in the second embodiment.
- the design support tool group 101 provided in the design support system 201 shown in FIG. 3 includes a rewrite history information generation tool 111, a wear cost generation tool 121, a placement and routing tool 131, a logic, as shown in FIG. And a synthesis tool 141. These tools are stored in advance in the storage device 221 shown in FIG. 3, and are read out from the storage device 221 and executed by the arithmetic device 211.
- the logic synthesis tool 141 is a logic synthesis unit that performs logic synthesis of a circuit with reference to operation description information input by the designer using the input / output device 241 and constraint information such as delay and power.
- the designer can obtain a netlist using the logic synthesis tool 141.
- the net list is created using logic elements included in the programmable logic integrated circuit 401.
- the netlist is connection information between logical elements and logical elements.
- the placement and routing tool 131 is a placement portion and a wiring portion.
- the placement and routing tool 131 generates resource information such as logic elements and wiring resources of the programmable logic integrated circuit 401.
- the placement and routing tool 131 virtually places and routes logical elements included in the netlist based on the resource information of the programmable logic integrated circuit 401. The designer can obtain configuration information using the placement and routing tool 131.
- the rewrite history information generation tool 111 is a rewrite history information generation unit that generates device-specific rewrite history information based on the configuration information read from the programmable logic integrated circuit 401.
- the rewrite history information includes address information indicating the state of the resistance change element included in the logic element and connection element included in the programmable logic integrated circuit 401 and rewrite count information indicating the number of changes (rewrites).
- the wear cost generation tool 121 is a wear cost generation unit that generates a wear cost specific to a device such as a switch included in a circuit based on the rewrite history information generated by the rewrite history information generation tool 111.
- the wear cost generation tool 121 calculates the wear cost using the wear cost function F (N) with respect to the number N of rewrites.
- the wear cost is supplied to the placement and routing tool 131 and used for the next placement and routing.
- FIG. 5 is a flowchart for explaining an example of the design support method in the design support system 201 shown in FIG. 3 .
- the design support system 201 illustrated in FIG. 3 sequentially performs a logic synthesis process, a placement and routing process, a rewrite history generation process, and a wear cost generation process.
- processing when a circuit B different from the circuit A is mounted on the programmable logic integrated circuit 401 on which the circuit A has already been mounted will be described.
- hardware description files such as Verilog-HDL (Hardware Description Language) or VHDL (Very high-speed integrated hardware Description Language language) using a hardware design file such as a hardware description file created using a language description file. Is input using the input / output device 241 (step S11).
- Verilog-HDL Hardware Description Language
- VHDL Very high-speed integrated hardware Description Language language
- the logic synthesis tool 141 performs logic synthesis on the input operation description file (step S12), and generates a net list (step S13).
- the net list is generated using a logic element included in the programmable logic integrated circuit 401.
- the logic synthesis tool 141 optimizes the circuit so as to satisfy timing constraint information set in advance by the designer.
- the placement and routing tool 131 executes a placement and routing process for circuits to be mounted on the programmable logic integrated circuit 401 (step S14), and generates configuration information (step S15).
- the place-and-route tool 131 has a feature of performing place-and-route processing based on wear costs described later.
- the configuration information transfer device 301 is connected to the design support system 201 and the programmable logic integrated circuit 401 based on the designer's operation on the input / output device 241. Thereby, a communication path between the design support system 201 and the programmable logic integrated circuit 401 is established.
- the determined configuration information is transmitted from the design support system 201 to the programmable logic integrated circuit 401 via the configuration information transfer device 301.
- the programmable logic integrated circuit 401 receives the configuration information from the configuration information transfer apparatus 301, the programmable logic integrated circuit 401 starts a configuration operation. When the configuration operation of all the configuration information is completed, the programmable logic integrated circuit 401 is in a state where the circuit B is mounted.
- the rewrite history information generation tool 111 generates rewrite history information including address information of each resistance change element included in the programmable logic integrated circuit 401 and information indicating the number of times of rewrite of the state of each resistance change element (step). S16).
- the rewrite history information generation tool 111 compares the configuration information (circuit B) read from the programmable logic integrated circuit 401 after configuration with the configuration information of the circuit A, and updates the rewrite history information by taking the difference. .
- the rewrite history information generation tool 111 obtains the configuration information of the circuit A in advance by, for example, reading the configuration information of the circuit B prior to the configuration of the configuration information of the circuit B.
- the wear cost generation tool 121 generates a wear cost including address information of each resistance change element and information indicating the wear cost of each resistance change element based on the rewrite history information (step S17).
- the generated wear cost is supplied to the placement and routing tool 131 and used in the next placement and routing.
- FIG. 6A is a diagram illustrating a first example of a wear cost function when the wear cost generation tool 121 illustrated in FIG. 4 calculates the wear cost.
- FIG. 6A shows a wear cost function in which the wear cost increases (increases) with the number of rewrites.
- a failure rate of the resistance change element or a value obtained by scaling the failure rate to a value comparable to a delay cost or a congestion cost described later can be used.
- the failure rate is the proportion of the resistance change elements that have been operated up to a certain number of times of rewriting N that fail at the next rewriting.
- An example of the wear cost function shown in FIG. 6A is a failure rate function of a Weibull distribution when the shape parameter is larger than 1.
- ⁇ (t) (m / ⁇ ⁇ m) t ⁇ (m ⁇ 1) Is given by In this equation, m is called a shape parameter (Weibull coefficient), and ⁇ is called a scale parameter.
- FIG. 6B is a diagram showing a second example of the wear cost function when the wear cost generation tool 121 shown in FIG. 4 calculates the wear cost.
- FIG. 6B shows a wear cost function including a section in which the wear cost increases downward in a convex manner with respect to the number of rewrites.
- a failure rate of the resistance change element or a value obtained by scaling the failure rate to a value comparable to a delay cost or a congestion cost described later can be used.
- An example of the wear cost function shown in FIG. 6B is a failure rate function of the Weibull distribution when the shape parameter is larger than 2.
- the advantage of using the failure rate of the resistance change element or a value obtained by scaling the failure rate to a value that can be compared with a delay cost or congestion cost described later is that the evaluation function in the placement and routing and the programmable logic integrated circuit 401 The failure rate can be related.
- the failure of the programmable logic integrated circuit 401 is defined as one of the resistance change elements constituting the programmable logic integrated circuit 401 being failed.
- Such a system is a series system in terms of reliability.
- the overall failure rate of the series system is the sum of the failure rates of the components.
- the evaluation function in the placement and routing can be associated with the failure rate of the programmable logic integrated circuit 401 by setting the sum of wear costs. By minimizing the evaluation function in the placement and routing, the failure rate of the programmable logic integrated circuit 401 can be minimized.
- FIG. 6C is a diagram illustrating a third example of the wear cost function when the wear cost generation tool 121 illustrated in FIG. 4 calculates the wear cost.
- FIG. 6C shows a wear cost function in which the wear cost changes stepwise with respect to the number of rewrites.
- the number of rewrites at which the wear cost changes is defined as the threshold number.
- a value that can be compared with the delay cost and the congestion cost is used as the wear cost at the number of rewrites less than the threshold number.
- the wear cost at the number of rewrites greater than the threshold number can be set larger than the delay cost and the congestion cost.
- the wear cost generation tool 121 or the placement and routing tool 131 may set the threshold number of times according to the number of times that the programmable logic integrated circuit 401 is configured. Further, the wear cost generation tool 121 or the placement and routing tool 131 may set the threshold count according to the position of the resistance change element in the programmable logic integrated circuit 401. The wear cost generation tool 121 or the placement and routing tool 131 is based on the number of resistance change elements that need to be rewritten beyond the threshold count in the placement and routing process, whether or not the wiring has been completed, and wiring result information such as delay time. Thus, the threshold count may be set.
- the advantage of using a step function as a wear cost function is that control according to the result of placement and routing is easy to perform.
- the threshold count as the guaranteed number of rewrites of the resistance change element
- the wear cost at the number of rewrites greater than the threshold count is prohibited. Can do.
- the use of the failed resistance change element can be prohibited.
- FIG. 7 is a flowchart for explaining an example of a placement and routing procedure performed by the placement and routing tool 131 shown in FIG.
- the placement and routing tool 131 sequentially performs a resource information generation step, a placement step, a wiring step, and a rewiring step based on the wear cost.
- the placement and routing tool 131 generates resource information such as logical elements and wiring resources in the resource information generation step (step S21).
- the resource information may include information including a set of an identification number of a certain logic element and an identification number of a resistance change element that stores configuration information of the logic element. Further, the resource information may include, for example, a directed graph or an undirected graph of the wiring resource as information in which the identification number of a certain wiring resource and the identification number of the resistance change element connected to the wiring resource are linked. good. Further, the wear cost of each resistance change element may be acquired by associating the identification number of the resistance change element with the address information.
- the placement and routing tool 131 assigns each logic element included in the netlist to the placement slot of the programmable logic integrated circuit 401 in the placement step (step S22).
- a slot is a place where a logical element is arranged.
- the placement and routing tool 131 uses, for example, the sum of virtual wiring lengths as an evaluation value (evaluation function) to search for a placement that minimizes this.
- the virtual wiring length of a net is the sum of the lengths in the x-axis and y-axis directions of a rectangle surrounding the slot positions of all the logical elements included in the net.
- the placement and routing tool 131 determines which wiring resource is used to connect each logical element included in the netlist in the routing step (step S23). For example, the placement and routing tool 131 uses an evaluation function including a delay cost and a congestion cost in order to minimize the delay time and to avoid that a wiring path is not found. Search for the wiring to be changed. Here, the delay cost is calculated based on the delay time of the wiring path. The congestion cost is calculated based on the number of competing nets for a certain wiring resource. The placement and routing tool 131 performs wiring repeatedly while gradually increasing the congestion cost, whereby the competition is resolved. If the conflict is not resolved, the placement and routing tool 131 can perform other procedures such as logical replication.
- an evaluation function including a delay cost and a congestion cost in order to minimize the delay time and to avoid that a wiring path is not found. Search for the wiring to be changed.
- the delay cost is calculated based on the delay time of the wiring path.
- the congestion cost is calculated based on the number of competing nets for a certain wiring
- the placement and routing tool 131 evaluates the existing wiring route and the alternative route of each net using an evaluation function including the wear cost, and performs rewiring (step S24). .
- the alternative route is searched in a range that does not affect the wiring route of other nets.
- FIG. 8 is a schematic diagram illustrating an example of two logic blocks included in the programmable logic integrated circuit 401 illustrated in FIG. 3 and wiring resources connecting the logic blocks.
- the logic block as the logic element shown in FIG. 8 includes two input terminals and one output terminal.
- the wiring resource shown in FIG. 8 includes two crossbar switches and two buffer circuits.
- the crossbar switch is composed of four column wirings extending in the column direction, four row wirings extending in the row direction, and resistance change elements located at intersections of the column wirings and the row wirings.
- the crossbar switch can connect or disconnect an arbitrary wiring of the column wiring and an arbitrary wiring of the row wiring by using the resistance change element.
- the crossbar switch XB0 uses the column wirings A0 and A1 as input lines, connects the column wiring Y0 to the output terminal of the logic block LB0, and grounds the column wiring C0.
- the crossbar switch XB0 is connected to the input terminal of the logic block LB0 using the row wirings I0 and I1 as output lines.
- the crossbar switch XB0 is connected to the input terminals of the buffer circuits BUF0 and BUF1, respectively, using the row wirings B0 and B1 as output wirings.
- the crossbar switch XB1 is connected to the output terminals of the buffer circuits BUF0 and BUF1, respectively, using the column wirings A2 and A3 as input lines.
- the crossbar switch XB1 connects the column wiring Y1 to the output terminal of the logic block LB1, and grounds the column wiring C1.
- the crossbar switch XB1 is connected to the input terminal of the logic block LB1 using the row wirings I2 and I3 as output lines.
- the crossbar switch XB1 uses the row wirings B2 and B3 as output wirings.
- the placement and routing tool 131 uses the wiring Y0, the resistance change element as an existing wiring path in response to a connection request from the output terminal Y0 of LB0 to one of the input terminals I2 and I3 of LB1 in the wiring process.
- E0, wiring B0, buffer circuit BUF0, wiring A2, resistance change element E2, and wiring I2 are already wired in this order.
- the placement and routing tool 131 searches for an alternative route based on the wiring resource graph.
- the related variable resistance elements are E0, E1, E2, E3, E4, and E5.
- FIG. 9 is a directed graph showing the existing wiring path and the alternative wiring path corresponding to the connection request.
- a node indicated by a circle indicates a wiring
- an edge indicated by a solid line with an arrow indicates a resistance change element or a buffer circuit. The number of rewrites of the resistance change element is added to the edge.
- the alternative wiring path 1 is a wiring path including the wiring Y0, the resistance change element E0, the wiring B0, the buffer circuit BUF0, the wiring A2, the resistance change element E3, and the wiring I3.
- the alternative wiring path 2 is a wiring path including the wiring Y0, the resistance change element E1, the wiring B1, the buffer circuit BUF1, the wiring A3, the resistance change element E4, and the wiring I2.
- the alternative wiring path 3 is a wiring path including the wiring Y0, the resistance change element E1, the wiring B1, the buffer circuit BUF1, the wiring A3, the resistance change element E5, and the wiring I3.
- the existing wiring path including E2 is considered as one of the optimum candidates.
- the already-routed path also has a demerit that the variable resistance element E0 having the largest number of rewrites is included. Therefore, even when a plurality of resistance change elements are included in the wiring path, a method for appropriately selecting the wiring path is required.
- the placement and routing tool 131 performs wiring based on an evaluation function including wear cost.
- the placement and routing tool 131 employs a tool having the smallest sum of wear costs of the resistance change elements included in the wiring path.
- FIG. 10 is a diagram illustrating an example of the wear cost function F (N) indicating the wear cost with respect to the number N of rewrites.
- a failure rate based on the Weibull distribution is used as the wear cost function F (N).
- the shape parameter is 10 and the average number of writable times is 2000.
- the sum of the wear cost of the existing wiring path is 1E-6
- the sum of the wear cost of the alternative wiring path 1 is 2E-6
- the sum of the wear cost of the alternative wiring path 2 is 4.1E-7
- the alternative wiring path 3 The wear cost is 3.8E-8. Since the sum of the wear costs of the alternative wiring path 3 is the smallest, the placement and routing tool 131 selects the alternative wiring path 3 as the alternative wiring path.
- the design support system 201 that supports the design of the circuit mounted on the programmable logic integrated circuit 401 including the variable resistance element according to the present embodiment equalizes the number of rewrites of the variable resistance element of the programmable logic integrated circuit 401.
- the design support system 201 performs wiring based on the evaluation function including the wear cost. Thereby, even when a plurality of resistance change elements are included in the wiring path, it is possible to appropriately select the wiring path. Therefore, according to this embodiment, a highly reliable programmable logic integrated circuit can be provided.
- the third embodiment of the design support system of the present invention will be described below. Since the configuration of the design support system in this embodiment is the same as that of the second embodiment, the components will be described using the components shown in FIGS. 3 and 4.
- FIG. 11 is a flowchart for explaining an example of a placement and routing procedure in the third embodiment of the design support system of the present invention.
- the placement and routing tool 131 sequentially performs a resource information generation step, a placement step, and a wiring step in consideration of wear costs. Since the resource information generation step (step S31) and the placement step (step S32) of the placement and routing procedure in this embodiment are the same as those in the second embodiment, description thereof is omitted.
- the placement and routing tool 131 determines which wiring resource is used to connect each logical element included in the netlist in the routing process considering wear costs (step S33).
- the placement and routing tool 131 searches for a wiring that minimizes this by using an evaluation function including a wear cost in addition to a delay cost and a congestion cost.
- the delay cost is calculated based on the delay time of the wiring path.
- the congestion cost is calculated based on the number of competing nets for a certain wiring resource.
- the wear cost is generated using the wear cost generation tool 121 as in the second embodiment.
- the placement and routing tool 131 performs wiring repeatedly while gradually increasing the congestion cost, whereby the competition is resolved. If the conflict is not resolved, the place and route tool 131 may perform other procedures such as logical replication and wear cost correction.
- the design support system 201 that supports the design of the circuit mounted on the programmable logic integrated circuit 401 including the variable resistance element according to the present embodiment leveles the rewriting of the variable resistance element of the programmable logic integrated circuit 401. it can. Furthermore, the design support system 201 according to the present embodiment performs wiring in a lump using an evaluation function including a delay cost, a congestion cost, and a wear cost. Therefore, as compared with the second embodiment, there are more choices of wiring routes, and a more optimal wiring route can be selected. (Fourth embodiment) The fourth embodiment of the design support system of the present invention will be described below. Since the configuration of the design support system in this embodiment is the same as that of the second embodiment, the components will be described using the components shown in FIGS. 3 and 4.
- FIG. 12 is a flowchart for explaining an example of the placement and routing procedure in the fourth embodiment of the design support system of the present invention.
- the placement and routing tool 131 sequentially performs a resource information generation step, a placement step in consideration of wear costs, and a wiring step in consideration of wear costs. Since the resource information generation process (step S41) of the placement and routing procedure and the wiring process (step S43) considering wear costs in the present embodiment are the same as those in the third embodiment, description thereof will be omitted.
- the placement and routing tool 131 assigns each logic element included in the netlist to the placement slot of the programmable logic integrated circuit 401 in the placement step.
- the placement and routing tool 131 searches for a placement that minimizes this by using an evaluation function composed of the total virtual wiring length and the congestion cost.
- the congestion cost is based on, for example, the number of wiring paths that can be routed from one placement slot to another placement slot, and the delay time and wear cost of each wiring route are below a certain reference value. Calculated.
- the congestion cost is set so as to increase as the number of wiring paths decreases. As a result, the wiring path including the resistance change element having a high wear cost is not easily included in the number of wiring paths, and the congestion cost increases.
- the placement and routing tool 131 can search for an alternative placement with a smaller evaluation function.
- the design support system 201 that supports the design of the circuit mounted on the programmable logic integrated circuit 401 including the variable resistance element according to the present embodiment leveles the rewriting of the variable resistance element of the programmable logic integrated circuit 401. it can. Furthermore, the design support system 201 of the present embodiment calculates the congestion cost of the wiring between the placement slots based on the delay time and the wear cost, and minimizes the evaluation function composed of the total virtual wiring length and the congestion cost. Turn into. For this reason, it is possible to select an optimal arrangement for leveling rewriting of the variable resistance element. (Fifth embodiment) The fifth embodiment of the design support system of the present invention will be described below. Since the configuration of the design support system in this embodiment is the same as that in the second embodiment, the components will be described using the components shown in FIG.
- FIG. 13 is a diagram illustrating a configuration example of a design support tool group included in the design support system 201 illustrated in FIG. 3 according to the fifth embodiment.
- the design support tool group 102 included in the design support system 201 shown in FIG. 3 includes a rewrite history information generation tool 112, a wear cost generation tool 122, a placement and routing tool 132, a logic, as shown in FIG.
- a synthesis tool 142 and an equivalent circuit analysis tool 152 are included. These tools are stored in advance in the storage device 221 shown in FIG. 3, and are read out from the storage device 221 and executed by the arithmetic device 211.
- processing when a circuit B different from the circuit A is mounted on the programmable logic integrated circuit 401 on which the circuit A has already been mounted will be described.
- the equivalent circuit analysis tool 152 is optimal so as to reduce unnecessary rewriting based on the configuration information of the circuit A already mounted on the programmable logic integrated circuit 401 and the configuration information of the circuit B output from the placement and routing tool 132. And the configuration information of the corrected circuit B is output.
- the equivalent circuit analysis tool 152 first counts the total number of resistance change elements that are rewritten when changing from the circuit A to the circuit B based on the configuration information of the circuit A and the configuration information of the circuit B. Calculate as a number. Subsequently, the equivalent circuit analysis tool 152 corrects the configuration information of the circuit B and generates circuit configuration information equivalent to the circuit B. The equivalent circuit analysis tool 152 is based on the configuration information of the circuit A and the configuration information of the circuit equivalent to the circuit B, and the resistance change element that is rewritten when the circuit A is changed to the circuit equivalent to the circuit B. The total number is calculated as the second count number. The equivalent circuit analysis tool 152 outputs circuit configuration information equivalent to the circuit B when the second count number is smaller than the first count number.
- FIG. 14 is a flowchart for explaining an example of the design support method according to the fifth embodiment.
- the design support system 201 in the fifth embodiment sequentially performs a logic synthesis step, a placement and routing step, an equivalent circuit analysis step, a rewrite history generation step, and a wear cost generation step.
- Logic synthesis process steps S51 to S52
- placement and routing process steps S53 to S54
- rewrite history generation process step S59
- wear cost generation process step S59 of the design support method (logic design procedure) in the fifth embodiment. Since step S60) is the same as the process in the second embodiment, the description thereof is omitted.
- the equivalent circuit analysis tool 152 acquires the configuration information of the circuit A and the configuration information of the circuit B output from the placement and routing tool 132 (steps S55 to S56).
- the equivalent circuit analysis tool 152 performs optimization so as to reduce unnecessary rewriting based on the acquired configuration information of the circuit A and the configuration information of the circuit B, and outputs the configuration information of the corrected circuit B ( Steps S57 to S58).
- the placement and routing tool determines which wiring resource is used to connect each logical element included in the netlist in the routing process.
- the placement and routing tool does not perform optimization that reduces unnecessary rewriting on unused wiring resources, don't care bits of logic blocks, and the like.
- the don't care bit is a bit that does not change the logical function realized by the logic block even if the value of the bit is changed.
- the equivalent circuit analysis tool 152 analyzes the equivalent circuit for such unused wiring resources and don't care bits of the logic block, and performs optimization to reduce unnecessary rewriting.
- FIG. 15A is a schematic diagram illustrating an example of a programmable logic integrated circuit 401 on which the circuit A is mounted.
- FIG. 15B is a schematic diagram illustrating an example of the programmable logic integrated circuit 401 when the circuit B is mounted based on the configuration information.
- FIG. 15C is a schematic diagram illustrating an example of the programmable logic integrated circuit 401 when the circuit B is mounted based on the modified configuration information after the equivalent circuit analysis.
- FIG. 15A a schematic diagram showing two logic blocks provided in the programmable logic integrated circuit 401 and wiring resources connecting them is shown.
- a logic block as a logic element includes two input terminals and one output terminal.
- the wiring resource shown in FIG. 15A includes two crossbar switches and two buffer circuits.
- the crossbar switch is composed of four column wirings extending in the column direction, four row wirings extending in the row direction, and resistance change elements located at intersections of the column wirings and the row wirings.
- the crossbar switch can connect or disconnect any column wiring and any row wiring using resistance change elements.
- the crossbar switch XB0 uses the column wirings A0 and A1 as input lines, connects the column wiring Y0 to the output terminal of the logic block LB0, and grounds the column wiring C0.
- the crossbar switch XB0 is connected to the input terminal of the logic block LB0 using the row wirings I0 and I1 as output lines.
- the crossbar switch XB0 is connected to the input terminals of the buffer circuits BUF0 and BUF1, respectively, using the row wirings B0 and B1 as output wirings.
- the crossbar switch XB1 is connected to the output terminals of the buffer circuits BUF0 and BUF1, respectively, using the column wirings A2 and A3 as input lines.
- the crossbar switch XB1 connects the column wiring Y1 to the output terminal of the logic block LB1, and grounds the column wiring C1.
- the crossbar switch XB1 is connected to the input terminal of the logic block LB1 using the row wirings I2 and I3 as output lines.
- the crossbar switch XB1 uses the row wirings B2 and B3 as output wirings.
- the programmable logic integrated circuit 401 on which the circuit A is mounted has, as the wiring path 1, the wiring Y0, the resistance change element E0, the wiring B0, the buffer circuit BUF0, the wiring A2, the resistance change element E2, and the wiring I2. They are wired in the order.
- the resistance change elements E0 and E2 are set to a low resistance state, and conduct signals.
- the programmable logic integrated circuit 401 in the case where the circuit B is mounted based on the configuration information includes, as the wiring path 2, the wiring C0, the resistance change element E1, the wiring B0, the buffer circuit BUF0, and the wiring A2. Wired in order. Further, the wiring C1, the resistance change element E3, and the wiring I2 are arranged in this order. The wiring resistance change elements E1 and E3 are set in a low resistance state and conduct signals. The wirings C0 and C1 are grounded, and the wirings B0 and I2 are not used in the circuit B for signal propagation.
- the programmable logic integrated circuit 401 when the circuit B is mounted based on the modified configuration information after the equivalent circuit analysis has the wiring C3, the resistance change element E1, and the wiring B0 as the wiring path 3.
- the buffer circuit BUF0, the wiring A2, the resistance change element E2, and the wiring I2 are arranged in this order.
- the resistance change elements E1 and E2 are set to a low resistance state and conduct signals.
- the wiring C0 is grounded, and the wirings B0 and I2 are not used in the circuit B for signal propagation.
- the reset operation for changing one bit of the resistance change element E0 from the low resistance state to the high resistance state, and one bit of the resistance change element E1 from the high resistance state to the low resistance state. A set operation to be changed occurs. Therefore, the wiring path 3 can reduce unnecessary rewriting of the variable resistance element as compared with the wiring path 2.
- the optimum equivalent circuit is selected based on the total number of resistance change elements that undergo rewriting. However, the optimum equivalent circuit is selected based on the wear cost of the resistance change element that undergoes rewriting. You may choose.
- the optimization target obtained by analyzing the equivalent circuit is the wiring resource, but the don't care bit of the logic block may be the target.
- the design support system that supports the design of the circuit mounted on the programmable logic integrated circuit 401 including the variable resistance element according to the present embodiment levels the rewriting of the variable resistance element of the programmable logic integrated circuit 401. be able to.
- the equivalent circuit analysis tool 152 analyzes the equivalent circuit based on the configuration information already mounted on the programmable logic integrated circuit 401 and the configuration information output by the placement and routing tool 132 so as to reduce unnecessary rewriting. Perform optimal optimization. Therefore, unnecessary rewriting of the variable resistance element can be reduced.
- variable resistance elements included in the programmable logic integrated circuit may be replaced with other memory elements such as SRAM.
- a part of the variable resistance element included in the programmable logic integrated circuit may be replaced with a circuit in which a pass transistor and another memory element such as an SRAM are combined.
- each function (process) was shared and demonstrated to each component, this allocation is not limited to what was mentioned above.
- the configuration described above is merely an example, and the present invention is not limited to this.
- each component provided in the above-described design support system may be performed by a logic circuit produced according to the purpose.
- a computer program (hereinafter referred to as a program) describing the processing contents as a procedure is recorded on a recording medium readable by the design support system, and the program recorded on the recording medium is read into the design support system and executed. It may be what you do.
- Recording media that can be read by the design support system include floppy (registered trademark) disk, magneto-optical disk, DVD (Digital Versatile Disc), CD (Compact Disc), Blu-ray (registered trademark) Disc, etc.
- ROM Read Only Memory
- RAM Random Access Memory
- HDD Hard Disc Drive
- the program recorded on this recording medium is read by a CPU provided in the design support system, and the same processing as described above is performed under the control of the CPU.
- the CPU operates as a computer that executes a program read from a recording medium on which the program is recorded.
- a part or all of the above embodiment can be described as in the following supplementary notes, but is not limited thereto.
- Appendix 1 A design support system for supporting design of a circuit mounted on a programmable logic integrated circuit including a resistance change element, Rewrite history information generating means for generating rewrite history information indicating the number of times of change of the state of the resistance change element; Wear cost generation means for calculating the wear cost of the switch included in the circuit based on the rewrite history information;
- a design support system comprising: wiring means for performing wiring of the circuit based on the evaluation function including the wear cost.
- the wear cost generation means calculates the wear cost using a wear cost function F (N) for the number of rewrites N that is the number of changes, The wear cost function includes increasing intervals, The design support system according to attachment 1. (Appendix 3) The wear cost generation means calculates the wear cost using a wear cost function F (N) for the number of rewrites N that is the number of changes, The wear cost function is a downward convex function and includes an increasing interval. The design support system according to attachment 1. (Appendix 4) The wear cost generation means calculates the wear cost using a wear cost function F (N) for the number of rewrites N that is the number of changes, The wear cost function includes a section that changes stepwise. The design support system according to attachment 1.
- the wear cost generating means or the wiring means is configured to rewrite the number of times the configuration has been performed on the programmable logic integrated circuit, the position of the variable resistance element in the programmable logic integrated circuit, and the wear cost to be changed in steps.
- the threshold number is set according to at least one information among the number of resistance change elements that need to be rewritten exceeding the threshold number that is the number of times, the availability of the wiring, and the delay time.
- the design support system according to any one of appendices 1 to 4.
- the wiring means performs wiring based on an evaluation function including a delay cost and a congestion cost in addition to the wear cost, The design support system according to any one of appendices 1 to 5.
- the wear cost generation means calculates the wear cost using a wear cost function F (N) for the number of rewrites N that is the number of changes,
- the wear cost function is a value obtained by scaling the failure rate or the failure rate of the variable resistance element to a value that can be compared with the delay cost or the congestion cost.
- the design support system according to any one of appendices 1 to 6.
- (Appendix 8) Calculating a congestion cost based on the wear cost, and having an arrangement unit that implements the arrangement of the resistance change element based on an evaluation function including the congestion cost.
- the design support system according to any one of appendices 1 to 7.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
信頼性の高いプログラマブル論理集積回路を提供するため、本発明の設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、書き換え履歴情報に基づいて、回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、摩耗コストを含む評価関数に基づいて、回路の配線を実施する配線手段とを有する。
Description
本発明は、回路設計を支援する設計支援システムおよび設計支援方法に関する。
FPGA(Field Programmable Gate Array)等のプログラマブル論理集積回路は、論理要素と、入出力要素と、接続要素とから構成される。論理要素は、プログラマブルな論理演算機能を提供する。論理要素として、例えば、組み合わせ回路を実現するルックアップテーブルとデータを保持するフリップフロップとセレクタとから構成されるロジックブロックが用いられる。入出力要素は、デバイス外部との間のプログラマブルな入出力機能を提供する。接続要素は、論理要素や入出力要素の間のプログラマブルな接続機能を提供する。これにより、ユーザは複数のロジックブロックを任意に組み合わせることで、プログラマブル論理集積回路に所望の論理回路を形成することができる。所望の論理回路を形成するために必要な情報(構成情報)は、プログラマブル論理集積回路が備えるメモリ素子に保存される。構成情報を記憶するメモリ素子には、SRAM(Static Random Access Memory)セル、アンチフューズ、フローティングゲートMOS(Metal-Oxide-Semiconductor)トランジスタ等が用いられる。
これらのメモリ素子やロジックブロック同士を変更可能に接続するスイッチは、一般的に、多数のトランジスタから成るロジックブロックと同層に形成される。これが大きな面積オーバーヘッドの要因となる。これにより、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇してしまう。また、メモリ素子やスイッチのレイアウト面積が大きくなることで、チップ面積に占めるロジックブロックの割合が低下してしまう。
そこで、レイアウト面積の増大を抑制しつつ、製造後のロジックブロック同士の接続を変更可能にするスイッチとして、配線層に形成可能な抵抗変化素子を用いたプログラマブル論理集積回路が提案されている。例えば、特許文献1、特許文献2および非特許文献1に記載されたプログラマブル論理集積回路は、第1の配線層と、その上部に形成される第2の配線層との間に、金属イオンを含有する固体電解質材料から成る抵抗変化素子が配置された構成である。抵抗変化素子は、その両端に順方向または逆方向にバイアス電圧を印加することで抵抗値を変化させることが可能であり、低抵抗状態(オン状態)と高抵抗状態(オフ状態)との比が10の5乗またはそれ以上となる。すなわち、抵抗変化素子が、第1の配線と第2の配線とを電気的に接続または切断するスイッチとして機能する。
広く利用されているプログラマブル論理集積回路における配線の接続および切断には、メモリ素子であるSRAMセルと、スイッチ機能を備えた1つのトランジスタを有するスイッチセルとが利用されている。一方、抵抗変化素子は、メモリ機能とスイッチ機能との両方を備えているため、1つの抵抗変化素子でスイッチセルを実現することができる。
特許文献1に記載された半導体装置では、第1の配線群と、第1の配線群と交差する第2の配線群との各交点に抵抗変化素子が配置されている。これにより、第1の配線群の任意の配線と第2の配線群の任意の配線とを接続または切断できるクロスバスイッチをコンパクトなサイズで実現することができる。その結果、チップ面積の大幅な縮小やロジックブロックの使用効率の改善によるプログラマブル論理集積回路の性能向上が期待できる。
また、抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路に対する電源供給が停止しても保持される。そのため、電源を投入するたびに構成情報をロードする手間を省くことができるという利点もある。
他の先行技術文献として特許文献4ないし6がある。特許文献4に記載された配線方法は、問題のあるネットに絞って隣接スペーシング条件を与え、ネットリストに基づいて配線違反とならない隣接スペーシング条件を与えて配線処理を実行する。特許文献5に記載の最適配置・配線方法は、指定したクロック信号のディレイが最小となるパスを検索し、最適な論理ブロックの位置と決定し、最適な配線を求める。特許文献6に記載の自動レイアウト方法は、回路の配線に重みを付して、重みと配線長との積の総和を求め、総和が最小となるように配線する。
M. Miyamura et al., "Low-power programmable-logic cell arrays using nonvolatile complementary atom switch", 15th International symposium on Quality Electronic Design (ISQED), pp. 330-334, March 3-5, 2014
Xiao-Yu Hu, et al., "Write amplification analysis in flash-based solid state drives", Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference (SYSTOR: ACM International Systems and Storage Conference), Article No. 10, pp. 1-9, 2009
上述したような抵抗変化素子は、書き換え可能な回数に制限がある。抵抗変化素子を繰り返し書き換えると、劣化してしまい、最終的に書き換えができなくなってしまう。このため、一部の抵抗変化素子に書き込みが集中すると、プログラマブル論理集積回路は、より早期に故障し、所望の論理回路を形成できなくなってしまう。
関連する技術として、メモリへの書き込みを平準化するウェアレベリング手法が知られている。例えば、非特許文献2に記載されたSSD(Solid-State drive)は、コントローラとフラッシュメモリとを備え、コントローラが論理アドレスで指定されたユーザデータをアドレス変換し、物理アドレスで指定されたフラッシュメモリへ書き込む。
また、例えば、特許文献3には、同じメモリラインへ繰り返し書き込みを行うことでメモリセルが劣化することを回避するために、書き込み先を分散させるように論理アドレスとメモリラインとの対応関係を制御する記憶装置が記載されている。
非特許文献2に記載された技術は、アドレス変換により、データが保存される物理的な位置の自由度を向上できる。しかしながら、この技術をプログラマブル論理集積回路にそのまま適用することは困難である。なぜなら、プログラマブル論理集積回路におけるデータは、データが保存された物理的位置近傍のロジックブロックの論理演算機能やロジックブロック間の接続状態を規定するため、一部のデータの物理的位置を単に移動すると所望の論理回路を形成できなくなってしまうからである。特許文献3に記載された技術についても同様であり、回路の接続関係の整合性をとるものではない。
本発明の目的は、上記課題を解決する設計支援システムおよび設計支援方法を提供することにある。
本発明の一形態における設計支援システムは、
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する。
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する。
また、本発明の一形態における設計支援方法は、
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する。
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する。
以上説明したように、本発明においては、信頼性の高いプログラマブル論理集積回路を提供することができる。
以下に本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
図1は、本発明の設計支援システムの第1の実施の形態を示す図である。本形態における設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する。本形態における設計支援システムは図1に示すように、書き換え履歴情報生成部110と、摩耗コスト生成部120と、配線部130とを有する。
(第1の実施の形態)
図1は、本発明の設計支援システムの第1の実施の形態を示す図である。本形態における設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する。本形態における設計支援システムは図1に示すように、書き換え履歴情報生成部110と、摩耗コスト生成部120と、配線部130とを有する。
書き換え履歴情報生成部110は、抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する。摩耗コスト生成部120は、書き換え履歴情報生成部110が生成した書き換え履歴情報に基づいて、回路に含まれるスイッチの摩耗コストを算出する。配線部130は、摩耗コストを含む評価関数に基づいて、回路の配線を実施する。
以下に、図1に示した設計支援システムにおける設計支援方法について説明する。図2は、図1に示した設計支援システムにおける設計支援方法の一例を説明するためのフローチャートである。
まず、書き換え履歴情報生成部110は、プログラマブル論理集積回路が具備する抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する(ステップS1)。すると、摩耗コスト生成部120が、書き換え履歴情報生成部110が生成した書き換え履歴情報に基づいて、プログラマブル論理集積回路に実装する回路に含まれるスイッチの摩耗コストを算出する(ステップS2)。続いて、配線部130が、摩耗コストを含む評価関数に基づいて、プログラマブル論理集積回路に実装する回路の配線を実施する(ステップS3)。
このように、第1の実施の形態は、抵抗変化素子の状態の変更回数に基づいて、摩耗コストを算出し、摩耗コストを含んだ評価関数に基づいて、回路の配線を実施する。そのため、第1の実施の形態は、信頼性の高いプログラマブル論理集積回路を提供することができる。
(第2の実施の形態)
図3は、本発明の設計支援システムの第2の実施の形態を示す図である。本形態における設計支援システム201は、図3に示すように、構成情報転送装置301と接続されている。また、設計支援システム201は、構成情報転送装置301を介してプログラマブル論理集積回路401と接続されている。これらの接続は、有線を用いるものであっても良いし、無線を用いるものであっても良い。また、接続における信号の通信方式は特に規定しない。なお、プログラマブル論理集積回路401および構成情報転送装置301は、アプリケーション・ボードとして設計支援システム201に搭載されていても良い。
(第2の実施の形態)
図3は、本発明の設計支援システムの第2の実施の形態を示す図である。本形態における設計支援システム201は、図3に示すように、構成情報転送装置301と接続されている。また、設計支援システム201は、構成情報転送装置301を介してプログラマブル論理集積回路401と接続されている。これらの接続は、有線を用いるものであっても良いし、無線を用いるものであっても良い。また、接続における信号の通信方式は特に規定しない。なお、プログラマブル論理集積回路401および構成情報転送装置301は、アプリケーション・ボードとして設計支援システム201に搭載されていても良い。
設計支援システム201は、例えば、コンピュータシステムによって実現されるものである。設計支援システム201は、図3に示すように、演算装置211と、記憶装置221と、表示装置231と、入出力装置241とを有する。演算装置211と、記憶装置221と、表示装置231と、入出力装置241とは、互いにバス251を介して接続されている。
演算装置211は、記憶装置221にあらかじめ格納されているプログラムに従って処理を実行することで、設計支援システム201全体の動作を制御する。また、演算装置211は、記憶装置221にあらかじめ格納されているプログラムに従って処理を実行することで、後述する設計支援ツール群の機能を実現する。
記憶装置221は、設計情報やプログラムを格納するメモリ等の記憶媒体である。設計情報は、プログラマブル論理集積回路401に実装する、設計者が作成する回路の動作記述情報、制約条件情報などを含む。この設計情報には、後述する演算装置211の処理結果であるネットリスト情報、配置配線情報、プログラマブル論理集積回路401のリソース情報や構成情報、書き換え履歴情報等を含む。
表示装置231は、設計支援ツールの命令入力画面や設計支援ツールが行った処理結果を表示する。表示装置231は、後述する抵抗変化素子の書き換え回数や摩耗コストの情報を表示する。表示方法としては、統計処理後のデータのグラフ表示、フロアプランナー上でのカラー表示を含む。これらの表示をユーザが確認することで、例えば、ユーザは、書き換え回数(変更回数)が大きなところを避けたフロアプランを作成することができる。
入出力装置241は、キーボード、マウス、タッチパネル等の入力装置、および構成情報転送装置301、並びに印刷装置等の出力装置と、信号やデータを送受信するインタフェース回路である。入出力装置241は、後述する摩耗コストを設定する機能をユーザに提供する。ユーザは、この機能を利用することで、遅延時間や面積を優先した配線または摩耗が最小となる配線を設定することができる。また、入出力装置241は、後述するステップ状に変化する摩耗コスト関数の閾値回数を設定する機能をユーザに提供する。ユーザは、この機能を利用することで、遅延時間や面積を優先した配線または摩耗が最小となる配線を設定することができる。
構成情報転送装置301は、設計支援システム201およびプログラマブル論理集積回路401と接続され、設計支援システム201とプログラマブル論理集積回路401との間の構成情報などのデータ伝送を制御する。例えば、構成情報転送装置301は、設計支援システム201から送信された構成情報等のデータを受信し、プログラマブル論理集積回路401のデータ入出力仕様の送信データに変換して転送する。また、構成情報転送装置301は、プログラマブル論理集積回路401から出力された構成情報等のデータを受信し、設計支援システム201のデータ入出力仕様の送信データに変換して転送する。
図4は、第2の実施の形態において図3に示した設計支援システム201が備える設計支援ツール群の一構成例を示す図である。本形態において図3に示した設計支援システム201が備える設計支援ツール群101は、図4に示すように、書き換え履歴情報生成ツール111と、摩耗コスト生成ツール121と、配置配線ツール131と、論理合成ツール141とを有する。これらのツールは、図3に示した記憶装置221にあらかじめ格納されており、演算装置211が記憶装置221から読み出して実行するものである。
論理合成ツール141は、設計者が入出力装置241を用いて入力した動作記述情報および遅延・電力などの制約条件情報を参照して、回路の論理合成を行う論理合成部である。設計者は、論理合成ツール141を用いてネットリストを得ることができる。ネットリストは、プログラマブル論理集積回路401が備える論理要素を用いて作成される。ネットリストは、論理要素および論理要素間の接続情報である。
配置配線ツール131は、配置部および配線部である。配置配線ツール131は、プログラマブル論理集積回路401の論理要素や配線リソース等のリソース情報を生成する。
配置配線ツール131は、プログラマブル論理集積回路401のリソース情報に基づいて、ネットリストに含まれる論理要素を仮想的に配置・配線する。設計者は、配置配線ツール131を用いて構成情報を得ることができる。
書き換え履歴情報生成ツール111は、プログラマブル論理集積回路401から読み出された構成情報に基づいて、デバイス固有の書き換え履歴情報を生成する書き換え履歴情報生成部である。書き換え履歴情報は、プログラマブル論理集積回路401が備える論理要素や接続要素に含まれる抵抗変化素子の状態であるアドレス情報と変更(書き換え)回数を示す書き換え回数情報とを含む。
摩耗コスト生成ツール121は、書き換え履歴情報生成ツール111が生成した書き換え履歴情報に基づいて、回路に含まれるスイッチ等のデバイス固有の摩耗コストを生成する摩耗コスト生成部である。摩耗コスト生成ツール121は、書き換え回数Nに対する摩耗コスト関数F(N)を用いて摩耗コストを算出する。摩耗コストは、配置配線ツール131へ供給され、次回の配置配線の際に利用される。
以下に、図3に示した設計支援システム201における設計支援方法について説明する。図5は、図3に示した設計支援システム201における設計支援方法の一例を説明するためのフローチャートである。図3に示した設計支援システム201は、論理合成工程、配置配線工程、書き換え履歴生成工程、及び摩耗コスト生成工程を順に行う。ここでは、回路Aがすでに実装されたプログラマブル論理集積回路401に、回路Aと異なる回路Bを実装する場合の処理について説明する。
まず、設計支援システム201には、Verilog-HDL(Hardware Description Language)やVHDL(Very high-speed integrated circuit Hardware Description Language)等のハードウェア記述言語を用いて設計者が作成した回路Bの動作記述ファイルが、入出力装置241を用いて入力される(ステップS11)。
論理合成ツール141が、入力された動作記述ファイルを論理合成し(ステップS12)、ネットリストを生成する(ステップS13)。ネットリストは、プログラマブル論理集積回路401が備える論理要素を用いて生成される。論理合成ツール141は、設計者があらかじめ設定したタイミング制約情報を満たすように回路を最適化する。
続いて、配置配線ツール131は、プログラマブル論理集積回路401に実装する回路の配置配線処理を実行し(ステップS14)、構成情報を生成する(ステップS15)。配置配線ツール131は、後述する摩耗コストに基づいて配置配線処理を行うという特徴を有する。
回路Bの構成情報が決定すると、入出力装置241に対する設計者の操作に基づいて、構成情報転送装置301が設計支援システム201およびプログラマブル論理集積回路401と接続される。これにより、設計支援システム201とプログラマブル論理集積回路401との通信経路が確立する。決定した構成情報は、設計支援システム201から構成情報転送装置301を介してプログラマブル論理集積回路401へ送信される。プログラマブル論理集積回路401は、構成情報転送装置301から構成情報を受信すると、コンフィグレーション動作を開始する。全ての構成情報のコンフィグレーション動作が完了すると、プログラマブル論理集積回路401は、回路Bが実装された状態となる。
すると、書き換え履歴情報生成ツール111は、プログラマブル論理集積回路401が有する各抵抗変化素子のアドレス情報と、各抵抗変化素子の状態の書き換え回数を示す情報とが含まれる書き換え履歴情報を生成する(ステップS16)。書き換え履歴情報生成ツール111は、コンフィグレーション後にプログラマブル論理集積回路401から読み出された構成情報(回路B)と回路Aの構成情報とを比較し、その差分をとることで書き換え履歴情報を更新する。なお、書き換え履歴情報生成ツール111は、回路Aの構成情報を、回路Bの構成情報のコンフィグレーションに先立ち読み出す等して、あらかじめ入手する。
続いて、摩耗コスト生成ツール121は、書き換え履歴情報に基づいて、各抵抗変化素子のアドレス情報と各抵抗変化素子の摩耗コストを示す情報とが含まれる摩耗コストを生成する(ステップS17)。生成された摩耗コストは、配置配線ツール131へ供給され、次回の配置配線の際に利用される。
図6Aは、図4に示した摩耗コスト生成ツール121が摩耗コストを算出する際の摩耗コスト関数の第1の例を示す図である。図6Aは、摩耗コストが書き換え回数とともに大きくなる(増加する)摩耗コスト関数を示している。摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値が利用されうる。ここで、故障率は、ある書き換え回数Nまで動作してきた抵抗変化素子のうち、次の書き換えで故障する割合である。図6Aに示した摩耗コスト関数の一例は、形状パラメータが1よりも大きな場合のワイブル分布の故障率関数である。一般的にワイブル分布の故障率関数λ(t)は、
λ(t)=(m/η^m)t^(m-1)
の式で与えられる。この式において、mは形状パラメータ(ワイブル係数)、ηは尺度パラメータと呼ばれる。
λ(t)=(m/η^m)t^(m-1)
の式で与えられる。この式において、mは形状パラメータ(ワイブル係数)、ηは尺度パラメータと呼ばれる。
図6Bは、図4に示した摩耗コスト生成ツール121が摩耗コストを算出する際の摩耗コスト関数の第2の例を示す図である。図6Bは、摩耗コストが書き換え回数に対して下方向に凸型に増加する区間を含んだ摩耗コスト関数を示している。摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値が利用されうる。図6Bに示した摩耗コスト関数の一例は、形状パラメータが2よりも大きな場合のワイブル分布の故障率関数である。
摩耗コスト関数として、抵抗変化素子の故障率または後述する遅延コストや混雑コストと比較可能な値に故障率をスケールした値を利用する利点は、配置配線における評価関数と、プログラマブル論理集積回路401の故障率とを関連付けることができる点である。
ここで、プログラマブル論理集積回路401の故障は、プログラマブル論理集積回路401を構成する複数の抵抗変化素子のうち、1つの抵抗変化素子が故障したときと定義する。このような系は、信頼性面で直列系である。直列系の全体の故障率は、構成要素の故障率の総和である。このため、配置配線における評価関数を摩耗コストの総和とすることで、評価関数をプログラマブル論理集積回路401の故障率と関連付けることができる。配置配線における評価関数を最小化することにより、プログラマブル論理集積回路401の故障率を最小化することができる。
図6Cは、図4に示した摩耗コスト生成ツール121が摩耗コストを算出する際の摩耗コスト関数の第3の例を示す図である。図6Cは、摩耗コストが書き換え回数に対してステップ状に変化する摩耗コスト関数を示している。ここでは、摩耗コストが変化する書き換え回数を閾値回数と定義する。閾値回数よりも少ない書き換え回数における摩耗コストは、遅延コストや混雑コストと比較可能な値が利用される。閾値回数よりも多い書き換え回数における摩耗コストは、遅延コストや混雑コストに比べ、大きな値が設定されうる。
摩耗コスト生成ツール121または配置配線ツール131は、プログラマブル論理集積回路401へコンフィグレーションを行った回数に応じて、閾値回数を設定しても良い。また、摩耗コスト生成ツール121または配置配線ツール131は、プログラマブル論理集積回路401内の抵抗変化素子の位置に応じて、閾値回数を設定しても良い。摩耗コスト生成ツール121または配置配線ツール131は、配置配線工程において、その閾値回数を超えて書き換えが必要な抵抗変化素子の数や、配線できたか否か、遅延時間などの配線結果の情報に基づいて、閾値回数を設定しても良い。
摩耗コスト関数として、ステップ関数を用いる利点は、配置配線の結果に応じた制御が行いやすい点である。また、閾値回数を抵抗変化素子の書き換え保証回数と設定し、かつ、閾値回数よりも多い書き換え回数における摩耗コストを十分大きな値に設定することにより、書き換え保証回数以上の素子の利用を禁止することができる。また、故障した抵抗変化素子の閾値回数を0とし、かつ、閾値回数よりも多い書き換え回数における摩耗コストを十分大きな値に設定することにより、故障した抵抗変化素子の利用を禁止することができる。
図7は、図4に示した配置配線ツール131が行う配置配線手順の一例を説明するためのフローチャートである。配置配線ツール131は、リソース情報生成工程、配置工程、配線工程、及び摩耗コストに基づく再配線工程を順に行う。
配置配線ツール131は、リソース情報生成工程において、論理要素や配線リソース等のリソース情報を生成する(ステップS21)。リソース情報は、ある論理要素の識別番号と、その論理要素の構成情報を保存する抵抗変化素子の識別番号とを一組とした情報を含んでいても良い。また、リソース情報は、ある配線リソースの識別番号と、その配線リソースと接続している抵抗変化素子の識別番号とがリンクした情報として、例えば、配線リソースの有向グラフまたは無向グラフを含んでいても良い。また、抵抗変化素子の識別番号とアドレス情報との紐づけにより、各抵抗変化素子の摩耗コストを取得できるようにしても良い。
配置配線ツール131は、配置工程において、ネットリストに含まれる各論理要素をプログラマブル論理集積回路401の配置スロットに割り当てる(ステップS22)。スロットとは、論理要素を配置する場所である。配置配線ツール131は、例えば、仮想配線長の総和を評価値(評価関数)として用いて、これを最小化する配置を探索する。ここで、ネットの仮想配線長は、そのネットに含まれるすべての論理要素のスロット位置を囲う矩形のx軸、y軸方向の長さの和である。
配置配線ツール131は、配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する(ステップS23)。例えば、配置配線ツール131は、遅延時間を最小化することと、配線経路が見つからないことを避けることとを実現するために、遅延コストと混雑コストとを含んだ評価関数を用い、これを最小化する配線を探索する。ここで、遅延コストは、配線経路の遅延時間に基づいて算出される。混雑コストは、ある配線リソースに対し、競合しているネットの数に基づいて算出される。配置配線ツール131が、混雑コストを徐々に上げながら、繰り返し配線を行うことで、競合が解消されていく。競合が解消されない場合、配置配線ツール131は、論理複製など他の手順を行いうる。
配置配線ツール131は、摩耗コストに基づいた再配線工程において、各ネットの既配線経路と代替経路とに対して、摩耗コストを含む評価関数を用いて評価し、再配線を行う(ステップS24)。ここで、代替経路は、他のネットの配線経路へ影響を及ぼさない範囲で探索される。
以下に、摩耗コストに基づいた配線処理について説明する。図8は、図3に示したプログラマブル論理集積回路401が備える、2つのロジックブロックとそれを接続する配線リソースとの一例を示す模式図である。図8に示した論理要素としてのロジックブロックは、2つの入力端子と1つの出力端子とを備える。図8に示した配線リソースは、2つのクロスバスイッチと2つのバッファ回路とから構成される。
クロスバスイッチは列方向に延伸した4つの列配線と、行方向に延伸した4つの行配線と、列配線と行配線との交差部に位置する抵抗変化素子とから構成される。クロスバスイッチは、抵抗変化素子を用いて、列配線の任意の配線と行配線の任意の配線とを接続または切断することができる。
クロスバスイッチXB0は、列配線A0,A1を入力線として用いて、列配線Y0をロジックブロックLB0の出力端子と接続し、列配線C0を接地する。クロスバスイッチXB0は、行配線I0,I1を出力線として用いて、ロジックブロックLB0の入力端子と接続する。クロスバスイッチXB0は、行配線B0,B1を出力配線として用いて、それぞれバッファ回路BUF0,BUF1の入力端子と接続する。
クロスバスイッチXB1は、列配線A2,A3を入力線として用いて、それぞれバッファ回路BUF0,BUF1の出力端子と接続する。クロスバスイッチXB1は、列配線Y1をロジックブロックLB1の出力端子と接続し、列配線C1を接地する。クロスバスイッチXB1は、行配線I2,I3を出力線として用いて、ロジックブロックLB1の入力端子と接続する。クロスバスイッチXB1は、行配線B2,B3を出力配線として用いる。
ここでは、配置配線ツール131が、配線工程において、LB0の出力端子Y0から、LB1の入力端子I2,I3のどちらか一方への接続要求に応じて、既配線経路として、配線Y0、抵抗変化素子E0、配線B0、バッファ回路BUF0、配線A2、抵抗変化素子E2、配線I2の順に既に配線している場合を考える。摩耗コストに基づいた配線処理を行うに当たり、配置配線ツール131は、配線リソースグラフに基づいて、代替経路を探索する。ここで、関連する抵抗変化素子はE0,E1,E2,E3,E4,E5である。
図9は、接続要求に対応する、既配線経路および代替配線経路を示す有向グラフである。図9において、丸で示されたノードは配線、矢印付の実線で示されたエッジは抵抗変化素子またはバッファ回路を示している。エッジには、抵抗変化素子の書き換え回数を付記した。
図9において、代替配線経路は3つある。代替配線経路1は、配線Y0、抵抗変化素子E0、配線B0、バッファ回路BUF0、配線A2、抵抗変化素子E3、配線I3から構成される配線経路である。代替配線経路2は、配線Y0、抵抗変化素子E1、配線B1、バッファ回路BUF1、配線A3、抵抗変化素子E4、配線I2から構成される配線経路である。代替配線経路3は、配線Y0、抵抗変化素子E1、配線B1、バッファ回路BUF1、配線A3、抵抗変化素子E5、配線I3から構成される配線経路である。
配線経路に1つの抵抗変化素子が含まれている場合には、抵抗変化素子の書き換えを分散させる方法として、書き換え回数が最も少ない抵抗変化素子を経由する配線経路を優先して選ぶことは合理的な方法と考えられる。しかしながら、配線経路に複数の抵抗変化素子が含まれている場合、抵抗変化素子の書き換えを分散させる方法は必ずしも自明ではない。
図9を参照すると、書き換え回数が最も少ない抵抗変化素子はE2であるため、E2を含む既配線経路が最適な候補の1つと考えられる。しかしながら、既配線経路は、書き換え回数が最も多い抵抗変化素子E0が含まれるというデメリットもある。したがって、配線経路に複数の抵抗変化素子が含まれている場合にも、適切に配線経路を選択する方法が必要である。
抵抗変化素子の書き換えを分散させる方法として、本発明では、配置配線ツール131は、摩耗コストを含む評価関数に基づいて、配線を実施する。例えば、配置配線ツール131は、配線経路に含まれる抵抗変化素子の摩耗コストの和が最小のものを採用する。
図10は、書き換え回数Nに対する摩耗コストを示す摩耗コスト関数F(N)の一例を示す図である。ここで、摩耗コスト関数F(N)として、ワイブル分布に基づく故障率を用いる。図10に示した例では、形状パラメータを10、平均書き込み可能回数を2000とした。この場合、既配線経路の摩耗コストの和は1E-6、代替配線経路1の摩耗コストの和は2E-6、代替配線経路2の摩耗コストの和は4.1E-7、代替配線経路3の摩耗コストは3.8E-8である。代替配線経路3の摩耗コストの和が最小であるため、配置配線ツール131は代替配線経路として代替配線経路3を選択する。
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路401に実装する回路の設計を支援する設計支援システム201は、プログラマブル論理集積回路401の抵抗変化素子の書き換え回数を平準化することができる。さらに、設計支援システム201は、摩耗コストを含む評価関数に基づいて、配線を実施する。これにより、配線経路に複数の抵抗変化素子が含まれている場合であっても、適切に配線経路を選択することが可能である。そのため、本実施の形態によれば、信頼性の高いプログラマブル論理集積回路を提供することができる。
(第3の実施の形態)
以下に、本発明の設計支援システムの第3の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3および図4に示したものを使用して説明する。
(第3の実施の形態)
以下に、本発明の設計支援システムの第3の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3および図4に示したものを使用して説明する。
以下に、本発明の設計支援システムの第3の実施の形態における配置配線手順について説明する。図11は、本発明の設計支援システムの第3の実施の形態における配置配線手順の一例を説明するためのフローチャートである。配置配線ツール131は、リソース情報生成工程、配置工程、及び摩耗コストを考慮した配線工程を順に行う。本実施の形態における配置配線手順のリソース情報生成工程(ステップS31)および配置工程(ステップS32)は、第2の実施の形態におけるものと同じであるため、説明は省略する。
配置配線ツール131は、摩耗コストを考慮した配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する(ステップS33)。配置配線ツール131は、遅延コストおよび混雑コストに加え、摩耗コストを含む評価関数を用いて、これを最小化する配線を探索する。ここで、遅延コストは、配線経路の遅延時間に基づいて算出される。混雑コストは、ある配線リソースに対して、競合しているネットの数に基づいて算出される。摩耗コストは、第2の実施の形態と同様に、摩耗コスト生成ツール121を用いて生成される。配置配線ツール131が、混雑コストを徐々に上げながら、繰り返し配線を行うことで、競合が解消されていく。競合が解消されない場合、配置配線ツール131は、論理複製、及び摩耗コストの修正など他の手順を行いうる。
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路401に実装する回路の設計を支援する設計支援システム201は、プログラマブル論理集積回路401の抵抗変化素子の書き換えを平準化できる。さらに、本実施の形態の設計支援システム201は、遅延コストと、混雑コストと、摩耗コストとを含んだ評価関数を用いて一括して配線を行う。そのため、第2の実施の形態と比較して、配線経路の選択肢が増え、より最適な配線経路を選択することができる。
(第4の実施の形態)
以下に、本発明の設計支援システムの第4の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3および図4に示したものを使用して説明する。
(第4の実施の形態)
以下に、本発明の設計支援システムの第4の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3および図4に示したものを使用して説明する。
以下に、本発明の設計支援システムの第4の実施の形態における配置配線手順について説明する。図12は、本発明の設計支援システムの第4の実施の形態における配置配線手順の一例を説明するためのフローチャートである。配置配線ツール131は、リソース情報生成工程、摩耗コストを考慮した配置工程、及び摩耗コストを考慮した配線工程を順に行う。本実施の形態における配置配線手順のリソース情報生成工程(ステップS41)および摩耗コストを考慮した配線工程(ステップS43)は第3の実施の形態におけるものと同じであるため、説明は省略する。
配置配線ツール131は、配置工程において、ネットリストに含まれる各論理要素をプログラマブル論理集積回路401の配置スロットに割り当てる。配置配線ツール131は、仮想配線長の総和と混雑コストとから構成される評価関数を用いて、これを最小化する配置を探索する。ここで、混雑コストは、例えば、ある配置スロットから、他の配置スロットへの配線可能な配線経路のうち、各配線経路の遅延時間や摩耗コストがある基準値以下である配線経路数に基づいて算出される。混雑コストは、配線経路数が少ないほど大きくなるように設定する。これにより、摩耗コストが高い抵抗変化素子を含んだ配線経路は、配線経路数に含まれにくくなり、混雑コストが上昇する。ある配置スロット間の混雑コストが上昇すると、配置配線ツール131は、より評価関数が小さい、代替の配置を探索しうる。
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路401に実装する回路の設計を支援する設計支援システム201は、プログラマブル論理集積回路401の抵抗変化素子の書き換えを平準化できる。さらに、本実施の形態の設計支援システム201は、遅延時間や摩耗コストに基づいて配置スロット間の配線の混雑コストを算出し、仮想配線長の総和と混雑コストとから構成される評価関数を最小化する。そのため、抵抗変化素子の書き換えを平準化する最適な配置を選択することができる。
(第5の実施の形態)
以下に、本発明の設計支援システムの第5の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3に示したものを使用して説明する。
(第5の実施の形態)
以下に、本発明の設計支援システムの第5の実施の形態について説明する。本形態における設計支援システムの構成は、第2の実施の形態と同様であるため、その構成要素は、図3に示したものを使用して説明する。
図13は、第5の実施の形態において図3に示した設計支援システム201が備える設計支援ツール群の一構成例を示す図である。本形態において図3に示した設計支援システム201が備える設計支援ツール群102は、図13に示すように、書き換え履歴情報生成ツール112と、摩耗コスト生成ツール122と、配置配線ツール132と、論理合成ツール142と、等価回路解析ツール152とを有する。これらのツールは、図3に示した記憶装置221にあらかじめ格納されており、演算装置211が記憶装置221から読み出して実行するものである。
図13に示した、第5の実施の形態における設計支援ツール群102の論理合成ツール142、配置配線ツール132、書き換え履歴情報生成ツール112、及び摩耗コスト生成ツール122は、図4に示した、第2の実施の形態における設計支援ツール群101の論理合成ツール141、配置配線ツール131、書き換え履歴情報生成ツール111、及び摩耗コスト生成ツール121と、それぞれ同じであるため、説明は省略する。ここでは、回路Aがすでに実装されたプログラマブル論理集積回路401に、回路Aと異なる回路Bを実装する場合の処理について説明する。
等価回路解析ツール152は、プログラマブル論理集積回路401にすでに実装された回路Aの構成情報と、配置配線ツール132が出力した回路Bの構成情報とに基づいて、不要な書き換えを低減するような最適化を行い、修正後の回路Bの構成情報を出力する。
この最適化は、以下のように行われる。まず、等価回路解析ツール152は、回路Aの構成情報と、回路Bの構成情報とに基づいて、回路Aから回路Bへ変更する際に書き換えが発生する抵抗変化素子の総数を第1のカウント数として算出する。続いて、等価回路解析ツール152は、回路Bの構成情報を修正して回路Bと等価な回路の構成情報を生成する。等価回路解析ツール152は、回路Aの構成情報と、回路Bと等価な回路の構成情報とに基づいて、回路Aから回路Bと等価な回路へ変更する際に書き換えが発生する抵抗変化素子の総数を第2のカウント数として算出する。等価回路解析ツール152は、第2のカウント数が第1のカウント数よりも少ない場合、回路Bと等価な回路の構成情報を出力する。
以下に、本形態における設計支援方法について説明する。図14は、第5の実施の形態における設計支援方法の一例を説明するためのフローチャートである。第5の実施の形態における設計支援システム201は、論理合成工程、配置配線工程、等価回路解析工程、書き換え履歴生成工程、及び摩耗コスト生成工程を順に行う。第5の実施の形態における設計支援方法(論理設計手順)の論理合成工程(ステップS51~S52)、配置配線工程(ステップS53~S54)、書き換え履歴生成工程(ステップS59)および摩耗コスト生成工程(ステップS60)は、第2の実施の形態における処理と同じであるため、説明は省略する。
等価回路解析ツール152は、回路Aの構成情報と、配置配線ツール132が出力した回路Bの構成情報とを取得する(ステップS55~S56)。等価回路解析ツール152は、取得した回路Aの構成情報と回路Bの構成情報とに基づいて、不要な書き換えを低減するような最適化を行い、修正後の回路Bの構成情報を出力する(ステップS57~S58)。一般的に配置配線ツールは、配線工程において、ネットリストに含まれる各論理要素がどの配線リソースを利用して接続するかを決定する。しかしながら、一般的に配置配線ツールは、利用しない配線リソースや、ロジックブロックのドントケアビット等に対して、不要な書き換えを低減するような最適化を行わない。ここで、ドントケアビットは、そのビットの値を変更しても、ロジックブロックが実現する論理機能が変更しないビットである。等価回路解析ツール152は、このような利用しない配線リソースや、ロジックブロックのドントケアビットに対して、等価回路を解析し、不要な書き換えを低減するような最適化を行う。
以下に、等価回路解析工程について、具体例を挙げて説明する。
図15Aは、回路Aが実装されたプログラマブル論理集積回路401の一例を示す模式図である。図15Bは、構成情報に基づいて回路Bが実装される場合のプログラマブル論理集積回路401の一例を示す模式図である。図15Cは、等価回路解析後の修正された構成情報に基づいて回路Bが実装される場合のプログラマブル論理集積回路401の一例を示す模式図である。
図15Aを参照すると、プログラマブル論理集積回路401が備える、2つのロジックブロックとそれを接続する配線リソースとを示す模式図が示されている。論理要素としてのロジックブロックは、2つの入力端子と1つの出力端子を備える。図15Aに示されている配線リソースは、2つのクロスバスイッチと2つのバッファ回路とから構成される。
クロスバスイッチは列方向に延伸した4つの列配線と、行方向に延伸した4つの行配線と、列配線と行配線の交差部に位置する抵抗変化素子とから構成される。クロスバスイッチは、抵抗変化素子を用いて、列配線の任意の配線と行配線の任意の配線とを接続または切断できる。
クロスバスイッチXB0は、列配線A0,A1を入力線として用いて、列配線Y0をロジックブロックLB0の出力端子と接続し、列配線C0を接地する。クロスバスイッチXB0は、行配線I0,I1を出力線として用いて、ロジックブロックLB0の入力端子と接続する。クロスバスイッチXB0は、行配線B0,B1を出力配線として用いて、それぞれバッファ回路BUF0,BUF1の入力端子と接続する。
クロスバスイッチXB1は、列配線A2,A3を入力線として用いて、それぞれバッファ回路BUF0,BUF1の出力端子と接続する。クロスバスイッチXB1は、列配線Y1をロジックブロックLB1の出力端子と接続し、列配線C1を接地する。クロスバスイッチXB1は、行配線I2,I3を出力線として用いて、ロジックブロックLB1の入力端子と接続する。クロスバスイッチXB1は、行配線B2,B3を出力配線として用いる。
図15Aに示すように、回路Aが実装されたプログラマブル論理集積回路401は、配線経路1として、配線Y0、抵抗変化素子E0、配線B0、バッファ回路BUF0、配線A2、抵抗変化素子E2、配線I2の順に配線されている。抵抗変化素子E0,E2が低抵抗状態に設定され、信号を導通する。
図15Bに示すように、構成情報に基づいて回路Bが実装される場合のプログラマブル論理集積回路401は、配線経路2として、配線C0、抵抗変化素子E1、配線B0、バッファ回路BUF0、配線A2の順に配線される。さらに、配線C1、抵抗変化素子E3、配線I2の順に配線される。配線抵抗変化素子E1、E3が低抵抗状態に設定され、信号を導通する。配線C0,C1が接地され、配線B0、I2は回路Bでは信号の伝搬には利用されない。配線経路1から配線経路2への変更に際して、抵抗変化素子E0,E2の2ビットを低抵抗状態から高抵抗状態へ変更するリセット動作、および抵抗変化素子E1,E3の2ビットを高抵抗状態から低抵抗状態へ変更するセット動作が発生する。
図15Cに示すように、等価回路解析後の修正された構成情報に基づいて回路Bが実装される場合のプログラマブル論理集積回路401は、配線経路3として、配線C0、抵抗変化素子E1、配線B0、バッファ回路BUF0、配線A2、抵抗変化素子E2、配線I2の順に配線されている。抵抗変化素子E1,E2が低抵抗状態に設定され、信号を導通する。配線C0は接地され、配線B0,I2は回路Bでは信号の伝搬に利用されない。配線経路1から配線経路3への変更に際して、抵抗変化素子E0の1ビットを低抵抗状態から高抵抗状態へ変更するリセット動作、および抵抗変化素子E1の1ビットを高抵抗状態から低抵抗状態へ変更するセット動作が発生する。したがって、配線経路3は、配線経路2と比較して、抵抗変化素子の不要な書き換えを低減することができる。
なお、上記の説明では、書き換えが発生する抵抗変化素子の総数に基づいて、最適な等価回路の選択を行ったが、書き換えが発生する抵抗変化素子の摩耗コストに基づいて、最適な等価回路を選択しても良い。また、上記の説明では、等価回路を解析して行う最適化の対象を配線リソースとしたが、ロジックブロックのドントケアビットを対象としても良い。
以上説明したように、本実施の形態の抵抗変化素子を備えるプログラマブル論理集積回路401に実装する回路の設計を支援する設計支援システムは、プログラマブル論理集積回路401の抵抗変化素子の書き換えを平準化することができる。さらに、等価回路解析ツール152は、プログラマブル論理集積回路401に既に実装された構成情報と、配置配線ツール132が出力した構成情報とに基づいて、等価回路を解析し、不要な書き換えを低減するような最適化を行う。そのため、抵抗変化素子の不要な書き換えを低減することができる。
以上、本発明の好ましい実施の形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。例えば、プログラマブル論理集積回路に含まれる抵抗変化素子の一部をSRAM等の他のメモリ素子に置き換えても良い。また、プログラマブル論理集積回路に含まれる抵抗変化素子の一部をパストランジスタとSRAM等の他のメモリ素子とを組み合わせた回路に置き換えても良い。また、各構成要素に各機能(処理)それぞれを分担させて説明したが、この割り当ては上述したものに限定しない。また、構成要素の構成についても、上述した形態はあくまでも例であって、これに限定しない。
上述した設計支援システムに設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム(以下、プログラムと称する)を設計支援システムにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを設計支援システムに読み込ませ、実行するものであっても良い。設計支援システムにて読取可能な記録媒体とは、フロッピー(登録商標)ディスク、光磁気ディスク、DVD(Digital Versatile Disc)、CD(Compact Disc)、Blu-ray(登録商標) Discなどの移設可能な記録媒体の他、設計支援システムに内蔵されたROM(Read Only Memory)、RAM(Random Access Memory)等のメモリやHDD(Hard Disc Drive)等を指す。この記録媒体に記録されたプログラムは、設計支援システムに設けられたCPUにて読み込まれ、CPUの制御によって、上述したものと同様の処理が行われる。ここで、CPUは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
上記の実施の形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する設計支援システム。
(付記2)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、増加する区間を含む、
付記1に記載の設計支援システム。
(付記3)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、下方向に凸型の関数であり、かつ、増加する区間を含む、
付記1に記載の設計支援システム。
(付記4)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、ステップ状に変化する区間を含む、
付記1に記載の設計支援システム。
(付記5)
前記摩耗コスト生成手段または前記配線手段は、前記プログラマブル論理集積回路へコンフィグレーションを行った回数と、前記プログラマブル論理集積回路内の前記抵抗変化素子の位置と、前記摩耗コストがステップ状に変化する書き換え回数である閾値回数を超えて書き換えが必要な抵抗変化素子の数と、前記配線の可否と、遅延時間とのうち少なくとも1つの情報に応じて、前記閾値回数を設定する、
付記1から4のいずれか1に記載の設計支援システム。
(付記6)
前記配線手段は、前記摩耗コストに加え、遅延コストおよび混雑コストを含む評価関数に基づいて、配線を実施する、
付記1から5のいずれか1に記載の設計支援システム。
(付記7)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、前記抵抗変化素子の故障率または故障率を遅延コスト若しくは混雑コストと比較可能な値にスケールした値である、
付記1から6のいずれか1に記載の設計支援システム。
(付記8)
前記摩耗コストに基づいて混雑コストを算出し、前記混雑コストを含む評価関数に基づいて、前記抵抗変化素子の配置を実施する配置手段を有する、
付記1から7のいずれか1に記載の設計支援システム。
(付記9)
前記プログラマブル論理集積回路に既に実装された第1の構成情報と、前記配線手段が配線を行った第2の構成情報とに基づいて、前記第1の構成情報から前記第2の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第1のカウント数としてカウントし、前記第2の構成情報と等価な第3の構成情報を生成し、前記第1の構成情報と前記第3の構成情報とに基づいて、前記第1の構成情報から前記第3の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第2のカウント数としてカウントし、前記第2のカウント数が前記第1のカウント数よりも少ない場合、前記第3の構成情報を出力する等価回路解析手段を有する、
付記1から8のいずれか1に記載の設計支援システム。
(付記10)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する
設計支援方法。
(付記11)
前記変更回数または前記摩耗コストの情報を表示する表示装置を有する、
付記1から9のいずれか1項に記載の設計支援システム。
(付記12)
前記摩耗コストを設定可能な入出力装置を有する、
付記1から9のいずれか1項に記載の設計支援システム。
(付記1)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する設計支援システム。
(付記2)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、増加する区間を含む、
付記1に記載の設計支援システム。
(付記3)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、下方向に凸型の関数であり、かつ、増加する区間を含む、
付記1に記載の設計支援システム。
(付記4)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、ステップ状に変化する区間を含む、
付記1に記載の設計支援システム。
(付記5)
前記摩耗コスト生成手段または前記配線手段は、前記プログラマブル論理集積回路へコンフィグレーションを行った回数と、前記プログラマブル論理集積回路内の前記抵抗変化素子の位置と、前記摩耗コストがステップ状に変化する書き換え回数である閾値回数を超えて書き換えが必要な抵抗変化素子の数と、前記配線の可否と、遅延時間とのうち少なくとも1つの情報に応じて、前記閾値回数を設定する、
付記1から4のいずれか1に記載の設計支援システム。
(付記6)
前記配線手段は、前記摩耗コストに加え、遅延コストおよび混雑コストを含む評価関数に基づいて、配線を実施する、
付記1から5のいずれか1に記載の設計支援システム。
(付記7)
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、前記抵抗変化素子の故障率または故障率を遅延コスト若しくは混雑コストと比較可能な値にスケールした値である、
付記1から6のいずれか1に記載の設計支援システム。
(付記8)
前記摩耗コストに基づいて混雑コストを算出し、前記混雑コストを含む評価関数に基づいて、前記抵抗変化素子の配置を実施する配置手段を有する、
付記1から7のいずれか1に記載の設計支援システム。
(付記9)
前記プログラマブル論理集積回路に既に実装された第1の構成情報と、前記配線手段が配線を行った第2の構成情報とに基づいて、前記第1の構成情報から前記第2の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第1のカウント数としてカウントし、前記第2の構成情報と等価な第3の構成情報を生成し、前記第1の構成情報と前記第3の構成情報とに基づいて、前記第1の構成情報から前記第3の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第2のカウント数としてカウントし、前記第2のカウント数が前記第1のカウント数よりも少ない場合、前記第3の構成情報を出力する等価回路解析手段を有する、
付記1から8のいずれか1に記載の設計支援システム。
(付記10)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する
設計支援方法。
(付記11)
前記変更回数または前記摩耗コストの情報を表示する表示装置を有する、
付記1から9のいずれか1項に記載の設計支援システム。
(付記12)
前記摩耗コストを設定可能な入出力装置を有する、
付記1から9のいずれか1項に記載の設計支援システム。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2017年 1月26日に出願された日本出願特願2017-011975を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
101,102 設計支援ツール群
110 書き換え履歴情報生成部
111,112 書き換え履歴情報生成ツール
120 摩耗コスト生成部
121,122 摩耗コスト生成ツール
130 配線部
131,132 配置配線ツール
141,142 論理合成ツール
152 等価回路解析ツール
201 設計支援システム
211 演算装置
221 記憶装置
231 表示装置
241 入出力装置
251 バス
301 構成情報転送装置
401 プログラマブル論理集積回路
110 書き換え履歴情報生成部
111,112 書き換え履歴情報生成ツール
120 摩耗コスト生成部
121,122 摩耗コスト生成ツール
130 配線部
131,132 配置配線ツール
141,142 論理合成ツール
152 等価回路解析ツール
201 設計支援システム
211 演算装置
221 記憶装置
231 表示装置
241 入出力装置
251 バス
301 構成情報転送装置
401 プログラマブル論理集積回路
Claims (12)
- 抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成する書き換え履歴情報生成手段と、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出する摩耗コスト生成手段と、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する配線手段と
を有する設計支援システム。 - 請求項1に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、増加する区間を含む
設計支援システム。 - 請求項1に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、下方向に凸型の関数であり、かつ、増加する区間を含む
設計支援システム。 - 請求項1に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、ステップ状に変化する区間を含む
設計支援システム。 - 請求項1から4のいずれか1項に記載の設計支援システムにおいて、
前記摩耗コスト生成手段または前記配線手段は、前記プログラマブル論理集積回路へコンフィグレーションを行った回数と、前記プログラマブル論理集積回路内の前記抵抗変化素子の位置と、前記摩耗コストがステップ状に変化する書き換え回数である閾値回数を超えて書き換えが必要な抵抗変化素子の数と、前記配線の可否と、遅延時間とのうち少なくとも1つの情報に応じて、前記閾値回数を設定する
設計支援システム。 - 請求項1から5のいずれか1項に記載の設計支援システムにおいて、
前記配線手段は、前記摩耗コストに加え、遅延コストおよび混雑コストを含む評価関数に基づいて、配線を実施する
設計支援システム。 - 請求項1から6のいずれか1項に記載の設計支援システムにおいて、
前記摩耗コスト生成手段は、前記変更回数である書き換え回数Nに対する摩耗コスト関数F(N)を用いて前記摩耗コストを算出し、
前記摩耗コスト関数は、前記抵抗変化素子の故障率または故障率を遅延コスト若しくは混雑コストと比較可能な値にスケールした値である
設計支援システム。 - 請求項1から7のいずれか1項に記載の設計支援システムにおいて、
前記摩耗コストに基づいて混雑コストを算出し、前記混雑コストを含む評価関数に基づいて、前記抵抗変化素子の配置を実施する配置手段
を有する設計支援システム。 - 請求項1から8のいずれか1項に記載の設計支援システムにおいて、
前記プログラマブル論理集積回路に既に実装された第1の構成情報と、前記配線手段が配線を行った第2の構成情報とに基づいて、前記第1の構成情報から前記第2の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第1のカウント数としてカウントし、前記第2の構成情報と等価な第3の構成情報を生成し、前記第1の構成情報と前記第3の構成情報とに基づいて、前記第1の構成情報から前記第3の構成情報へ変更する場合に書き換えが発生する抵抗変化素子の総数を第2のカウント数としてカウントし、前記第2のカウント数が前記第1のカウント数よりも少ない場合、前記第3の構成情報を出力する等価回路解析手段を
有する設計支援システム。 - 抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援方法であって、
前記抵抗変化素子の状態の変更回数を示す書き換え履歴情報を生成し、
前記書き換え履歴情報に基づいて、前記回路に含まれるスイッチの摩耗コストを算出し、
前記摩耗コストを含む評価関数に基づいて、前記回路の配線を実施する
設計支援方法。 - 請求項1から9のいずれか1項に記載の設計支援システムにおいて、
前記変更回数または前記摩耗コストの情報を表示する表示装置を有する、
設計支援システム。 - 請求項1から9のいずれか1項に記載の設計支援システムにおいて、
前記摩耗コストを設定可能な入出力装置を有する、
設計支援システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018564559A JPWO2018139408A1 (ja) | 2017-01-26 | 2018-01-22 | 設計支援システムおよび設計支援方法 |
US16/478,517 US20210133379A1 (en) | 2017-01-26 | 2018-01-22 | Design assistance system and design assistance method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017011975 | 2017-01-26 | ||
JP2017-011975 | 2017-01-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018139408A1 true WO2018139408A1 (ja) | 2018-08-02 |
Family
ID=62978468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/001823 WO2018139408A1 (ja) | 2017-01-26 | 2018-01-22 | 設計支援システムおよび設計支援方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210133379A1 (ja) |
JP (1) | JPWO2018139408A1 (ja) |
WO (1) | WO2018139408A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016088234A1 (ja) * | 2014-12-04 | 2016-06-09 | 株式会社 東芝 | 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置 |
WO2016194332A1 (ja) * | 2015-05-29 | 2016-12-08 | 日本電気株式会社 | プログラマブル論理集積回路、設計支援システム及びコンフィグレーション方法 |
JP2016225797A (ja) * | 2015-05-29 | 2016-12-28 | 日本電気株式会社 | プログラマブル論理集積回路 |
-
2018
- 2018-01-22 US US16/478,517 patent/US20210133379A1/en not_active Abandoned
- 2018-01-22 JP JP2018564559A patent/JPWO2018139408A1/ja not_active Withdrawn
- 2018-01-22 WO PCT/JP2018/001823 patent/WO2018139408A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016088234A1 (ja) * | 2014-12-04 | 2016-06-09 | 株式会社 東芝 | 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置 |
WO2016194332A1 (ja) * | 2015-05-29 | 2016-12-08 | 日本電気株式会社 | プログラマブル論理集積回路、設計支援システム及びコンフィグレーション方法 |
JP2016225797A (ja) * | 2015-05-29 | 2016-12-28 | 日本電気株式会社 | プログラマブル論理集積回路 |
Also Published As
Publication number | Publication date |
---|---|
US20210133379A1 (en) | 2021-05-06 |
JPWO2018139408A1 (ja) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5699195B2 (ja) | 冗長回路網を有するプログラム可能な集積回路 | |
US8555218B2 (en) | Decision modules | |
US9589090B1 (en) | Method and apparatus for performing multiple stage physical synthesis | |
US11030383B2 (en) | Integrated device and method of forming the same | |
US8365120B2 (en) | Resolving global coupling timing and slew violations for buffer-dominated designs | |
US10068048B1 (en) | Generating clock trees for a circuit design | |
US7210115B1 (en) | Methods for optimizing programmable logic device performance by reducing congestion | |
US8181139B1 (en) | Multi-priority placement for configuring programmable logic devices | |
US10262096B2 (en) | Component placement with repacking for programmable logic devices | |
Xue et al. | Routing path reuse maximization for efficient NV-FPGA reconfiguration | |
US9940422B2 (en) | Methods for reducing congestion region in layout area of IC | |
WO2018139408A1 (ja) | 設計支援システムおよび設計支援方法 | |
US9817936B2 (en) | Methods for minimizing layout area of IC | |
US20180076803A1 (en) | Clock-distribution device of ic and method for arranging clock-distribution device | |
JP6944728B2 (ja) | 設計支援システム、設計支援方法およびプログラム | |
JP6326756B2 (ja) | スキャンパスを構成するための情報処理装置、スキャンパス接続方法及びプログラム | |
JP2011238011A (ja) | 半導体集積回路設計装置、半導体集積回路設計方法及びプログラム | |
JP6908121B2 (ja) | プログラマブル集積回路および制御装置 | |
US9542519B2 (en) | Method and design apparatus | |
US20150161067A1 (en) | Reduced-area architecture for asymmetric interconnect | |
JP2012186236A (ja) | レイアウト設計方法、レイアウト設計プログラム及びレイアウト設計装置 | |
Tsai et al. | Routability optimization for crossbar-switch structured ASIC design | |
JP2014211824A (ja) | 設計支援装置、設計支援方法、および設計支援プログラム | |
JP2013191025A (ja) | Lsi設計方法 | |
JP2015210703A (ja) | Cad装置、セル、およびレイアウト方法 |
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: 18745063 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018564559 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: 18745063 Country of ref document: EP Kind code of ref document: A1 |