WO2012137652A1 - Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム - Google Patents

Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム Download PDF

Info

Publication number
WO2012137652A1
WO2012137652A1 PCT/JP2012/058214 JP2012058214W WO2012137652A1 WO 2012137652 A1 WO2012137652 A1 WO 2012137652A1 JP 2012058214 W JP2012058214 W JP 2012058214W WO 2012137652 A1 WO2012137652 A1 WO 2012137652A1
Authority
WO
WIPO (PCT)
Prior art keywords
tmr
circuit
fpga
soft error
error rate
Prior art date
Application number
PCT/JP2012/058214
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 株式会社日立製作所
Publication of WO2012137652A1 publication Critical patent/WO2012137652A1/ja

Links

Images

Classifications

    • 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]

Definitions

  • the present invention relates to a semiconductor integrated circuit design technique, and more particularly, to an FPGA design support system, an FPGA design support method, and an FPGA design support program that support a design that improves resistance against soft errors in an FPGA (Field-Programmable Gate Array). It is related to effective technology.
  • a programmable logic device typified by an FPGA stores configuration information of a logic circuit designed by a user (hereinafter sometimes referred to as “user circuit”) in a configuration memory (hereinafter referred to as “CRAM (Configuration RAM)”). May be described).
  • Soft errors in FPGA can be roughly divided into two phenomena. One is a phenomenon that causes malfunction due to inversion of data held in the internal memory or flip-flop due to the influence of radiation. The other is a phenomenon in which, in the CRAM, data is inverted due to the influence of radiation particularly in a bit in which circuit information is stored, thereby destroying the circuit configuration itself and causing malfunction (for example, Patent Document 1 ( (See JP 2005-505827 A).
  • the second mathematical expression is derived by substituting the relationship of the soft error rate dependency on the information storage node voltage in the same information storage node area Sc into the first mathematical expression from the measurement result.
  • the soft error rate can be calculated by substituting the information storage node area and the information storage node voltage of the storage circuit or information holding circuit to be obtained into the second equation.
  • Patent Document 3 a step of registering a soft error rate of each cell in a cell library in which a plurality of cells used for designing a semiconductor device are registered; The step of counting the number of each cell included in the target semiconductor device and the product of the number and the soft error rate for each cell are obtained, and the product is added to all the cells to obtain the soft error rate of the semiconductor device.
  • TMR Triple Modular Redundancy
  • Xilinx an FPGA vendor, provides a tool for automatically converting a circuit designed by a user into TMR as an additional function of a dedicated design application (see Non-Patent Document 1).
  • TMR is applied as a countermeasure against soft errors in FPGA, the soft error rate is reduced, but the circuit scale and power consumption increase. Therefore, the designer needs to determine the optimum TMR application range in the circuit configuration by these trade-off designs.
  • an object of the present invention is to estimate a soft error rate when it is assumed that TMR is applied to a designed user circuit at the design stage of the FPGA. Also, an object of the user circuit designed by applying TMR is as follows. To provide an FPGA design support system, an FPGA design support method, and an FPGA design support program capable of calculating a soft error rate.
  • An FPGA design support system is an FPGA design support system that calculates a soft error rate when TMR is applied to a user circuit designed by FPGA, and has the following features: It is.
  • the FPGA design support system calculates a TMR effect information database that holds information including a soft error rate reduction rate when TMR is applied for each type of FPGA, and a soft error rate of the entire CRAM included in the FPGA.
  • a CRAM_SER calculation unit, an FPGA resource usage rate calculation unit that calculates the usage rate of the FPGA resource of each circuit block in the user circuit, the soft error rate of the entire CRAM calculated by the CRAM_SER calculation unit, and the FPGA A circuit block SER calculation unit that calculates a soft error rate for each circuit block of the user circuit based on information including the resource usage rate of the FPGA of each circuit block in the user circuit calculated by the resource usage rate calculation unit And have.
  • the soft error rate calculated by the circuit block SER calculation unit TMR for calculating the soft error rate of the TMR block based on information obtained from the TMR effect information database and including information on a soft error rate reduction rate when TMR is applied to the user circuit designed by the FPGA
  • the soft error rate of each circuit block in the user circuit calculated by the circuit block SER calculation unit and the soft error rate of each TMR block calculated by the TMR block SER calculation unit Said you It is characterized in that it has a SER calculation unit for calculating a soft error rate of the entire circuit.
  • the present invention can also be applied to an FPGA design support method for calculating a soft error rate when TMR is applied to a user circuit designed with an FPGA, and a program for causing a computer to function as an FPGA design support system.
  • the soft error rate of the designed user circuit can be calculated. Further, by focusing on the feature that the soft error rate changes depending on the granularity of the TMR circuit (the size of the unit circuit to be TMR), it is possible to appropriately estimate the soft error rate when TMR is applied. . As a result, since the effect of reducing the soft error rate when TMR is applied can be appropriately estimated, it is possible to design the optimum tolerance against the soft error of the FPGA.
  • (A), (b) is the figure shown about the example of the screen displayed via the input-output part in Embodiment 1 of this invention. It is the flowchart shown about the example of the flow of a process which determines the TMR conditions required in order to implement
  • FIG. 1 is a diagram showing an outline of a configuration example of an FPGA design support system according to the first embodiment of the present invention.
  • the FPGA design support system 1 includes, for example, a general server and an information processing device such as a PC (Personal Computer), and each unit such as a SER calculation unit 10, an input / output unit 20, and an execution control unit 30 implemented by software.
  • a general server and an information processing device such as a PC (Personal Computer), and each unit such as a SER calculation unit 10, an input / output unit 20, and an execution control unit 30 implemented by software.
  • circuit information can be exchanged with the circuit configuration design tool 2 operating on the same or another information processing apparatus.
  • This circuit configuration design tool 2 is a design environment generally provided by, for example, an FPGA manufacturer or a third party. For example, design input / correction, logic synthesis, placement and routing in a language such as HDL (Hardware Description Language)
  • HDL Hardware Description Language
  • This is a known tool that has various functions such as various verifications by simulation and outputs circuit information about a circuit designed by a user using an FPGA. For example, it is more desirable to have a function of automatically converting a designated part to a user circuit into a TMR and outputting circuit information like a design tool provided by the above-mentioned Xilinx.
  • the circuit information refers to design information after placement and routing is completed in a normal FPGA design process, and is used within the FPGA, such as the model number of the FPGA for programming the user circuit, the hierarchical structure of the circuit block, and the like.
  • a circuit block represents a unit of a logic circuit that realizes an arbitrary function designed by a user.
  • the circuit block includes a lower circuit block. In this case, the circuit block has a hierarchical structure.
  • the FPGA resource includes information on logic resources, memory resources, and wiring resources.
  • the logical resource refers to a flip-flop, a look-up table, an arithmetic unit, or the like arranged in a logical block inside the FPGA.
  • the wiring resource indicates a wiring used for logical block connection and clock distribution, a switch matrix for connecting the wirings, and the like.
  • the memory resource indicates an internal memory composed of RAM (Random Access Memory) or the like.
  • the SER calculation unit 10 calculates the soft error rate for the entire target circuit by calculating and adding the soft error rate for each circuit block in the user circuit for the target FPGA, and specifies Based on the TMR condition, the soft error rate when the user circuit is converted to TMR is calculated.
  • the TMR condition is information for calculating the soft error rate when the application of TMR is assumed to be applied to the user circuit in the FPGA design support system 1.
  • the TMR condition is a circuit block (hereinafter, referred to as TMR application).
  • TMR application information specifying the TMR block (which may be described as “TMR block”) and information regarding the TMR granularity (the size of the unit circuit to be TMR (fineness)) described later are included.
  • TMR block information specifying the TMR block
  • TMR granularity the size of the unit circuit to be TMR (fineness)) described later are included.
  • a plurality of TMR blocks may be specified.
  • the TMR condition is input to the SER calculation unit 10 via the input / output unit 20 by, for example, a user or an execution control unit 30 described later.
  • the SER calculation unit 10 includes, for example, each unit such as a circuit block SER calculation unit 11 and a TMR block SER calculation unit 14, an FPGA information database (DB) 15 that holds basic information of the target FPGA device, and a circuit block SER calculation unit 11 and data such as a circuit SER calculation result database (DB) 16 that holds information related to the soft error rate calculated by the TMR block SER calculation unit 14.
  • each unit such as a circuit block SER calculation unit 11 and a TMR block SER calculation unit 14, an FPGA information database (DB) 15 that holds basic information of the target FPGA device, and a circuit block SER calculation unit 11 and data such as a circuit SER calculation result database (DB) 16 that holds information related to the soft error rate calculated by the TMR block SER calculation unit 14.
  • DB circuit SER calculation result database
  • the circuit block SER calculation unit 11 calculates (estimates) a soft error rate for each circuit block in the user circuit designed in the target FPGA, and calculates a circuit SER calculation for each circuit information and each circuit block in the calculation result. Record in result DB16.
  • the circuit block SER calculation unit 11 further calculates, for example, information necessary for calculating the soft error rate for each circuit block based on the contents of the FPGA information DB 15.
  • the FPGA information DB 15 holds basic information of devices necessary for calculating the soft error rate of the target FPGA device.
  • This basic information includes, for example, information for identifying the type of FPGA such as the manufacturer and model number of the target FPGA, the number of resources built in the FPGA, the capacity of the internal memory and the CRAM, and the per unit bit of the internal memory and the CRAM. Items such as the soft error rate (SER), the actual usage rate of the CRAM, and the CRAM dependency rate for each resource are included.
  • SER soft error rate
  • These pieces of information are prepared in advance by, for example, extracting from FPGA circuit information acquired from the circuit configuration design tool 2 or by directly setting and registering values by the user.
  • the soft error rate SER REF per unit bit of CRAM may vary depending on the FPGA manufacturing technology, the FPGA manufacturer series, and the like. Therefore, for example, it is assumed that the user registers and uses a value published by the FPGA manufacturer according to the model number of the target FPGA, an actual value obtained by a soft error acceleration test, or the like.
  • the actual usage rate k of the CRAM is a value indicating a ratio of the capacity of the CRAM that is actually used when circuit information is written to the total capacity of the CRAM in the FPGA, and a value in a range of 0 ⁇ k ⁇ 1. Used.
  • the CRAM_SER calculation unit 12 of the circuit block SER calculation unit 11 determines the CRAM in the target FPGA based on information such as the capacity of the CRAM acquired from the FPGA information DB 15, the soft error rate per unit bit of the CRAM, and the actual usage rate of the CRAM. Calculate the overall soft error rate. The calculation result is transferred to the circuit block SER calculation unit 11.
  • the FPGA resource usage rate calculation unit 13 calculates the target based on information such as the circuit information of the user circuit by the FPGA acquired from the circuit configuration design tool 2 and the number of resources built in the target FPGA acquired from the FPGA information DB 15. The usage rate of the FPGA resource of each circuit block in the user design circuit is calculated. The calculation result is transferred to the circuit block SER calculation unit 11.
  • the circuit block SER calculation unit 11 includes circuit information of the user circuit by the FPGA acquired from the circuit configuration design tool 2, the soft error rate of the entire CRAM calculated by the CRAM_SER calculation unit 12, and each of the calculation by the FPGA resource usage rate calculation unit 13.
  • a soft error rate for each circuit block is calculated based on information such as the usage rate of the FPGA resource of the circuit block and the CRAM dependency rate for each resource acquired from the FPGA information DB 15. Further, for a circuit block including an internal memory, by adding a value obtained by multiplying the internal memory capacity acquired from the FPGA information DB 15 and the soft error rate per unit bit of the internal memory, a soft error for each circuit block is added. Calculate the rate.
  • Information on the calculated soft error rate for each circuit block is recorded in the circuit SER calculation result DB 16.
  • the circuit block SER calculation unit 11 may calculate the soft error rate for each circuit block for all blocks in each layer having a hierarchical structure. Alternatively, the soft error rate may be calculated only for the circuit block of the lowest layer, and the soft error rate of the circuit block of the upper layer may be obtained as the sum of the soft error rates of the circuit blocks of the lower layer included therein.
  • the circuit block SER calculation unit 11 calculates a soft error rate in a state in which TMR conversion is not taken into consideration (application of TMR is not assumed) for each circuit block of the user circuit. Therefore, when the user circuit already has a circuit block converted to TMR, the soft error rate is calculated for the unit circuit before conversion to TMR. As a result, it is possible to grasp how much the effect of reducing the soft error rate by TMR is also in this portion.
  • the TMR block SER calculation unit 14 of the SER calculation unit 10 determines the TMR block based on the TMR condition input to the SER calculation unit 10 via the input / output unit 20 and applies the TMR block soft error rate (TMR). Soft error rate).
  • TMR TMR block soft error rate
  • DB TMR effect information database 17 that holds information on the reduction rate of the soft error rate by TMR conversion for each type of FPGA is provided.
  • the calculation result of the soft error rate is recorded by adding / updating to the record of the corresponding circuit block in the circuit SER calculation result DB 16.
  • a TMR granularity G TMR which will be described later, is calculated based on the input TMR condition and circuit information held in the FPGA information DB 15.
  • Information on the rate D TMR is acquired from the TMR effect information DB 17.
  • the SER calculation unit 10 refers to the circuit SER calculation result DB 16 and performs a soft error on each circuit block (TMR block and other non-TMR blocks) calculated by the circuit block SER calculation unit 11 and the TMR block SER calculation unit 14. By adding the rates, the soft error rate of the entire user circuit is calculated.
  • the calculation result is edited and shaped into a predetermined format, and then output to the user in the form of a GUI (Graphical User Interface) or a data file via the input / output unit 20.
  • GUI Graphic User Interface
  • the input / output unit 20 performs input / output processing with respect to the FPGA design support system 1, for example, an interface that exchanges data in cooperation with other systems, tools, and the like, and receives various operations and inputs by the user, and processing results Has a user interface or the like.
  • the input device to the input / output unit 20 may be of any device type such as a keyboard or a touch panel used in a general computer. Data output from other systems and tools including the circuit configuration design tool 2 may be directly input via a network or the like without using an input device.
  • the output destination of data may be any type, such as a display device such as a display used in a general computer, other systems and tools including the circuit configuration design tool 2, and data files on various recording media. Absent.
  • the input / output unit 20 may have a Web server program (not shown), and a user may access for input / output from a client terminal (not shown) via a Web browser or the like.
  • the execution control unit 30 controls execution of processing in the SER calculation unit 10 and the input / output unit 20.
  • a TMR condition that designates a series of processes in which circuit information is input from the circuit configuration design tool 2 via the input / output unit 20
  • a TMR condition is specified, and a soft error rate is calculated by the SER calculation unit 10. It is also possible to search for an optimal TMR condition by appropriately changing the above and performing control so that it is repeatedly executed.
  • the division and assignment of functions according to the configuration of each unit described above is merely an example, and it is a matter of course that the function sharing by other configurations may be adopted by design as long as the functions of each unit can be realized as a whole. Is possible.
  • the CRAM_SER calculator 12 and the FPGA resource usage rate calculator 13 are included in the circuit block SER calculator 11, and the circuit block SER calculator 11 is included in the SER calculator 10.
  • the TMR block SER calculation unit 14 is included in the configuration, but such inclusion / hierarchical relationships are not essential.
  • Each of these units may be configured as separate elements independent of other units.
  • control lines and information lines made up of arrows in the figure indicate what is considered necessary for explanation, and not all control lines and information lines are necessarily provided on an actual system. Actually, it may be considered that almost all the components are connected to each other.
  • FIG. 2 is a diagram showing a data configuration of the TMR effect information DB 17 and an example of specific data.
  • the TMR effect information DB 17 is a database that holds information on the soft error rate reduction rate by TMR conversion for each type of FPGA. For example, each of the manufacturer, model number, process, SER reduction rate D TMR , TMR granularity characteristics, etc. Have items.
  • the manufacturer, model number, and process items hold information for identifying the type of the target FPGA, and the type of the target FPGA (in the TMR effect information DB 17 is determined by the content of the basic information of the FPGA held in the FPGA information DB 15. The items are not limited to these as long as they can identify the corresponding record.
  • the item of the SER reduction rate D TMR holds information indicating the ratio of the soft error rate of the target circuit block before and after the TMR conversion (0 ⁇ D TMR ⁇ 1).
  • the item of TMR particle size characteristics holds information indicating the characteristics of the SER reduction rate that changes depending on the TMR particle size, as will be described later.
  • This TMR granularity characteristic is shown, for example, by a graph as shown in FIG. 3 to be described later, and can be held in the form of a function that approximates this, or a table that includes the SER reduction rate for each TMR granularity.
  • the TMR granularity indicates the size of a unit circuit to which TMR is applied in the TMR block, and the size (resource amount) S REF of the entire target circuit (TMR block) before being converted to TMR.
  • FIG. 3 is a diagram illustrating an example of a change in the SER reduction rate depending on the TMR granularity.
  • the horizontal axis of the graph is the TMR particle size G TMR
  • the vertical axis is the SER reduction rate D TMR_grain .
  • This SER reduction rate D TMR_grain is the soft error rate of the target circuit block (TMR block) before the TMR conversion and the soft error rate when the circuit of the size determined by the TMR granularity is converted to the TMR as a unit circuit.
  • Information indicating the ratio is the soft error rate of the target circuit block (TMR block) before the TMR conversion and the soft error rate when the circuit of the size determined by the TMR granularity is converted to the TMR as a unit circuit.
  • this value is obtained based on an actual measurement value obtained by a soft error acceleration test for each TMR granularity, for example.
  • a calculated value may be used for conditions where there is no actual measurement value.
  • D TMR_grain is reduced.
  • the soft error rate in the FPGA depends on the used capacity of the CRAM, and the target circuit block is divided into smaller parts and each is used as a unit circuit to be used as a unit circuit. This shows that the CRAM capacity can be reduced, and as a result, the soft error rate can be further reduced.
  • a unit circuit is set in units of each circuit block in the hierarchical structure of circuit blocks and is converted into a TMR.
  • the circuit block as the unit circuit is specified by designating the depth L (0 to N) of the hierarchy from the TMR block.
  • the TMR granularity G TMR can be calculated by the above equation (1).
  • the TMR block specified by the TMR condition is converted to TMR as a unit circuit as it is.
  • FIG. 4 is a diagram illustrating an example of the difference between the circuit configuration and the TMR granularity G TMR when the layer depth L is changed to TMR.
  • a user circuit composed of a circuit block A (parent block) is shown, and the circuit block A is composed of circuit blocks B, C, and D (child blocks). It is assumed that the circuit size S REF of the circuit block A is 100, for example.
  • An example of a circuit configuration in the case of the configuration is shown.
  • (A) In the case of L 0, the circuit block A, which is a TMR block, is converted into TMR as a unit circuit, so that the circuit block A is converted into TMR as circuit blocks A, A ′, A ′′.
  • the TMR granularity G TMR is 1.0 from the above equation (1).
  • the SER reduction rate D TMR case for example, may be obtained directly from the column of SER reduction rate D TMR of the TMR effect information DB17 shown in FIG. 2, TMR particle size the characteristics of the SER reduction rate shown in FIG. 3 G TMR is may be acquired as SER reduction rate D TMR_grain when the 1.0 (a 0.7 in the example of FIG. 3).
  • circuit blocks B, C, and D are converted to TMRs as unit circuits in order to convert the circuit blocks in the hierarchy one level lower as unit circuits. That is, the circuit block B is converted into TMR as circuit blocks B, B ′, B ′′, the circuit block C is converted into circuit blocks C, C ′, C ′′, and the circuit block D is converted into circuit blocks D, D ′, D ′′.
  • the sizes of the circuit blocks B, C, and D may be different from each other, that is, the TMR granularity G TMR is obtained for each of the circuit blocks B, C, and D by the above equation (1). In this case, each value becomes different.
  • each circuit block of the target hierarchy (in the example of FIG. 4)
  • Various methods such as taking an average value of the sizes of the circuit blocks B, C, and D) can be appropriately employed.
  • the size of each circuit block of the target layer is the largest with reference to S GRAIN and the TMR granularity G TMR is calculated by the above-described equation (1).
  • the TMR granularity G TMR is calculated with the size of the circuit block C as S GRAIN .
  • the smaller the TMR granularity G TMR (the smaller the unit circuit size), the smaller the SER reduction rate D TMR_grain , that is, the greater the effect of reducing the soft error rate. Therefore, calculating the TMR granularity G TMR based on the circuit block having the largest size means that the SER reduction rate D TMR_grain is estimated to be large, that is, the soft error rate reduction effect is estimated on the safe side.
  • the circuit block as a unit circuit for TMR conversion is specified, and the TMR granularity is specified.
  • the G TMR is calculated, but if possible, the value of the TMR granularity G TMR may be directly specified.
  • FIG. 5 is a flowchart showing an example of the flow of the calculation process of the soft error rate in the FPGA design support system 1 of the present embodiment.
  • circuit information is input for a user circuit designed with an FPGA for which a soft error rate is to be calculated (S01).
  • the circuit information is input through, for example, the input / output unit 20, and the circuit information output from the circuit configuration design tool 2 is input manually by the user or automatically read by control of the execution control unit 30 or the like.
  • TMR conditions are designated (S02).
  • a circuit block (TMR block) assuming application of TMR and information related to the granularity of TMR are designated.
  • the TMR granularity G TMR indicates the size of the unit circuit to be converted to TMR.
  • the layer depth L (0 to N) of the circuit block as the unit circuit from the TMR block is used. It is assumed that the TMR granularity is calculated internally by specifying. Note that the number of TMR blocks is not limited to one, and a plurality of TMR blocks may be specified, or may not be specified when TMR conversion is not considered.
  • the designation of the TMR condition is performed, for example, via the input / output unit 20, and can be input manually by the user or by reading a file in which the TMR condition is recorded.
  • a file in which the TMR condition is recorded may be automatically read under the control of the execution control unit 30.
  • the soft error rate of the CRAM in the target FPGA is calculated (S03).
  • the capacity C CRAM of the FPGA CRAM, the soft error rate SER REF per unit bit of the CRAM, and the CRAM is multiplied to calculate the soft error rate SER CRAM of the entire CRAM .
  • the usage rate of the FPGA resource for each circuit block in the target user circuit is calculated (S04).
  • the internal resources of the FPGA As a ratio of the number and the resource usage number in each circuit block acquired from the circuit information, the FPGA resource usage rate (logical resource usage rate Un, wiring resource usage rate Wn, memory resource usage rate Mn) in each circuit block n calculate.
  • the soft error rate for each circuit block in the target user circuit is calculated (S05).
  • FPGA resource usage rate (logical resource usage rate Un, wiring resource usage rate Wn, memory resource usage rate Mn), capacity of internal memory and soft error rate per unit bit of internal memory acquired from FPGA information DB 15, and CRAM of resource
  • a soft error rate for each circuit block is calculated based on information such as dependency rate (logical resource dependency rate ⁇ u, wiring resource dependency rate ⁇ w, memory resource dependency rate ⁇ m).
  • the FPGA resource usage rate and the CRAM usage capacity are in a proportional relationship, and the usage rate (Un, Wn, Mn) of each resource of logic / wiring / memory depends on the corresponding CRAM.
  • the circuit block soft error rate is calculated by multiplying the rate ( ⁇ u, ⁇ w, ⁇ m) by the soft error rate SER CRAM of the entire CRAM and summing up each resource. Furthermore, for a circuit block including an internal memory, the soft error rate of the internal memory obtained by multiplying the internal memory capacity and the soft error rate per unit bit of the internal memory is added, so that the software for each circuit block is added. Calculate the error rate.
  • the soft error rate of the TMR block designated by the TMR condition is calculated (S06).
  • the TMR block SER calculation unit 14 applies the TMR with the soft error rate calculated in step S05 and the specified TMR granularity G TMR acquired from the TMR effect information DB 17.
  • the soft error rate of the TMR block is calculated by multiplying the SER reduction rate D TMR_grain .
  • the soft error rate in the entire target user circuit is calculated (S07).
  • the soft error rate of the entire user circuit is calculated by adding the block soft error rate.
  • FIG. 6 is a diagram showing an example of a screen displayed by the FPGA design support system 1 via the input / output unit 20.
  • Table 22 shows the soft error rate (“SER” column) for each circuit block calculated by the series of processes shown in FIG. 5 and the soft error rate (“ The information of the reduced SER "column) is displayed in accordance with the hierarchical structure.
  • the user may be able to specify TMR conditions via this user interface.
  • TMR TMR granularity G TMR.
  • depth L of the hierarchy from the TMR block of the circuit block to be specified can be specified ("depth" column). Similar designation may be performed via another condition designation window 25 as shown in FIG. 6B, for example.
  • the user looks at the calculation result of the soft error rate displayed on the screen as shown in FIG. 6 and determines whether the specified TMR condition is good or bad. For example, when the soft error rate satisfies the predetermined condition for the entire user circuit, the designated TMR condition is determined as a necessary design condition. If the predetermined condition is not satisfied, the soft error rate can be calculated again after designating a new TMR condition from the screen.
  • the calculation result of the soft error rate may be output in the form of a data file or the like instead of or in addition to the output on the screen as shown in FIG.
  • the designation of the TMR conditions may be input by reading the file in which the TMR conditions are recorded, instead of being manually input from the screen as shown in FIG.
  • the usage rate of the FPGA resource and the FPGA By using the soft error rate information of the installed CRAM, the soft error rate of the entire user circuit is simply calculated, and further, the design is made using the information on the SER reduction rate by TMR obtained by actual measurement. It is possible to provide a means for estimating a soft error rate when TMR is applied to a user circuit.
  • the soft error rate when the TMR is applied to the designed user circuit can be appropriately estimated. Optimal tolerance design against soft errors is possible.
  • the example of the FPGA design support system according to the second embodiment of the present invention is necessary for the user circuit based on the FPGA to realize a predetermined soft error rate based on the FPGA design support system 1 according to the first embodiment.
  • An analysis method capable of determining the TMR condition is realized.
  • FIG. 7 is a flowchart showing an example of a flow of processing for determining a TMR condition necessary for realizing a predetermined soft error rate in the FPGA design support system 1 of the present embodiment.
  • the CRAM soft error rate in the target FPGA is calculated (S12). This process is the same as step S03 in FIG. 5 in the first embodiment described above.
  • the usage rate of the FPGA resource for each circuit block in the target user circuit is calculated (S13). This process is the same as step S04 in FIG. 5 in the first embodiment described above.
  • the soft error rate for each circuit block in the target user circuit is calculated (S14). This process is the same as step S05 in FIG. 5 in the first embodiment described above.
  • the soft error rate in the entire target user circuit is calculated (S15).
  • the SER calculation unit 10 adds the soft error rates for each circuit block calculated in step S14 without considering TMR, and calculates the soft error rate for the entire user circuit.
  • the execution control unit 30 makes this determination, and the soft error rate is lower than the target value specified in advance by the user via the input / output unit 20 (the condition is satisfied), the TMR Since the calculation is unnecessary, the calculation result of the soft error rate of each circuit block is output on the screen shown in FIG.
  • a TMR condition is designated in order to consider TMR (S17).
  • This process is the same as step S02 of FIG. 5 in the first embodiment described above.
  • the soft error rate of the TMR block designated by the TMR condition is calculated (S18).
  • the process here is the same as step S06 of FIG. 5 in the first embodiment described above.
  • the soft error rate in the entire target user circuit is calculated (S19). The process here is the same as step S07 in FIG. 5 in the first embodiment described above.
  • step S19 it is determined whether or not the soft error rate in the entire user circuit considering the TMR calculation calculated in step S19 is smaller than a predetermined target value (S20).
  • this determination is performed by the execution control unit 30 as in step S16, and the soft error rate is lower than the target value designated by the user in advance via the input / output unit 20 (the condition is satisfied). ),
  • the TMR condition designated in step S17 is determined as a necessary design condition, and the process is terminated.
  • step S20 if the soft error rate in the entire user circuit is greater than or equal to the predetermined target value in step S20 (the condition is not satisfied), the process returns to step S17 to re-specify the TMR condition, Steps S17 to S20 are repeated until the soft error rate falls below a predetermined target value (conditions are met).
  • the TMR condition designation and the soft error rate recalculation process are repeated until the soft error rate in the entire user circuit calculated by the SER calculation unit 10 satisfies the condition as described above.
  • the TMR condition that satisfies the following condition can be determined. It is also possible to automatically search for a TMR condition that satisfies the condition of the soft error rate by executing the above series of processes under the control of, for example, the execution control unit 30.
  • TMR condition in step S17 (re-designation). For example, when the TMR condition is first specified in step S17, the soft error rate is specified. It is also possible to specify a TMR condition that maximizes the reduction effect. That is, in the TMR condition, the entire user circuit is specified as the TMR block, the maximum value is specified for the depth L of the hierarchy that specifies the unit circuit for TMR conversion, and the circuit block in the deepest hierarchy is used as the unit circuit. . If the soft error rate in the entire user circuit at this time is equal to or higher than the predetermined target value in step S20 (the condition is not satisfied), the soft error rate is specified regardless of any other TMR conditions. It can be seen that does not fall below the predetermined target value. Therefore, it can be determined at an early stage that the search for the subsequent TMR condition is unnecessary.
  • TMR is applied as a countermeasure against soft errors in FPGA
  • the soft error rate is reduced, but the overhead such as circuit scale and power consumption increases. Therefore, the designer needs to determine the optimum TMR condition in the circuit configuration by these trade-off designs.
  • the TMR condition information obtained as a condition satisfying the soft error rate by the series of processes of FIG. 7 is fed back to the circuit configuration design tool 2 via the input / output unit 20, and the circuit configuration design tool 2 uses the TMR.
  • the circuit information in the converted state is generated again, and the increase in overhead is verified. Thereby, it is possible to determine the TMR condition in which both the reduction rate of the soft error rate and the increase in overhead satisfy the predetermined condition.
  • a series of processes in FIG. 7 are repeatedly executed under the control of the execution control unit 30 to acquire all TMR conditions that satisfy the soft error rate condition.
  • Each acquired TMR condition is fed back to the circuit configuration design tool 2 via the input / output unit 20, and circuit information in a state of being converted to TMR by the circuit configuration design tool 2 is generated.
  • TMR that provides an optimal balance in consideration of trade-offs by giving a predetermined weight to each of the reduction effect of the soft error rate and the increase in overhead and quantifying the overall effect It is also possible to determine the conditions.
  • the soft error rate when the TMR is applied to the user circuit is appropriately set in advance in the FPGA design stage. Since it can be estimated, the TMR condition necessary for improving the soft error resistance of the user circuit to the target level can be easily determined. Thereby, a trade-off design with an increase in overhead associated with TMR can be easily performed.
  • Information such as programs, tables, and files for realizing the above-described functions is stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD. be able to.
  • the FPGA design support system 1 is constructed on an information processing apparatus, and each of the above-described configurations, functions, and the like is software by the processor interpreting and executing a program that realizes each function.
  • this is not a limitation.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • a soft error generated by the influence of environmental radiation on the ground is used as a target semiconductor integrated circuit that supports design by appropriately estimating or calculating a soft error rate when TMR is applied.
  • This is intended for FPGAs where the effects of expansion are considered to be problems.
  • even other programmable logic devices have the same or similar configuration and mechanism as the FPGA, and the influence of the soft error rate increases due to, for example, further progress in capacity increase, and this is appropriately estimated.
  • the present invention can be used for an FPGA design support system, an FPGA design support method, and an FPGA design support program that support a design for improving resistance to soft errors in an FPGA.

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

 FPGAの設計段階で、ユーザ回路にTMRを適用したときのSERを見積もることができるFPGA設計支援システムである。TMRを適用した場合のSER低減率を含む情報を保持するTMR効果情報DBと、FPGAが有するCRAM全体のSERを計算するCRAM_SER計算部と、各回路ブロックのFPGAリソースの使用率を計算するFPGAリソース使用率計算部と、CRAM全体のSERおよび各回路ブロックのFPGAリソースの使用率に基づいて、回路ブロック単位のSERを計算する回路ブロックSER計算部と、TMRブロックについてSERおよびTMRを適用した場合のSERの低減率に基づいてTMRブロックのSERを計算するTMRブロックSER計算部と、各回路ブロックのSERおよび各TMRブロックのSERに基づいてユーザ回路全体のSERを計算するSER計算部とを有する。

Description

FPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラム
 本発明は、半導体集積回路の設計技術に関し、特に、FPGA(Field-Programmable Gate Array)においてソフトエラーに対する耐性向上を図る設計を支援するFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムに適用して有効な技術に関するものである。
 半導体集積回路の微細化および高集積化に伴い、地上における環境放射線(アルファ線や中性子線など)の影響によって発生するソフトエラーの影響が拡大している。特に近年では、大容量化が進むFPGA(Field-Programmable Gate Array)におけるソフトエラーが問題視されている。
 FPGAを代表とするプログラマブルロジックデバイスは、ユーザが設計した論理回路(以下では“ユーザ回路”と記載する場合がある)の構成情報をデバイス内部のコンフィギュレーションメモリ(以下では“CRAM(Configuration RAM)”と記載する場合がある)に記憶する。FPGAにおけるソフトエラーは大きく二つの現象に分けられる。ひとつは内部メモリやフリップフロップに保持されているデータが放射線の影響によって反転しまうことで誤作動を引き起こす現象である。もうひとつは、CRAMにおいて、特に回路情報が記憶されたビットにおいて放射線の影響によってデータが反転してしまうことで、回路構成自体が破壊されて誤作動を引き起こす現象である(例えば、特許文献1(特表2005-505827号公報)など参照)。
 このような背景の下、設計段階からFPGAのソフトエラー率(以下では“SER(Soft Error Rate)”と記載する場合がある)を見積もることが重要となってきているが、現在、設計段階でFPGAのソフトエラー率を見積もる手法は確立されていない。
 SRAM(Static Random Access Memory)のソフトエラー率を製品設計段階で見積もる技術としては、例えば、特開2008-66598号公報(特許文献2)に以下のようなソフトエラー率の計算手法が記載されている。すなわち、MISFET(Metal-Oxide-Semiconductor Field-Effect Transistor)で構成される記憶回路又は情報保持回路の情報記憶ノード拡散層面積とソフトエラー率との関係を複数の情報記憶ノード電圧Vnをパラメータとして測定した測定結果を使用し、同一情報記憶ノード電圧Vnにおけるソフトエラー率の情報記憶ノード面積依存性を表す第1の数式を導出する。そして、測定結果から同一情報記憶ノード面積Scにおけるソフトエラー率の情報記憶ノード電圧依存性の関係を第1の数式に代入して第2の数式を導出する。求めたい記憶回路又は情報保持回路の情報記憶ノード面積及び情報記憶ノード電圧を第2の数式に代入すれば、そのソフトエラー率を計算することができる。
 また、例えば、特開2006-134938号公報(特許文献3)には、半導体デバイスの設計に用いる複数のセルが登録されたセルライブラリに、各セルのソフトエラー率を登録するステップと、被検証対象である半導体デバイスに含まれる各セルの個数をカウントするステップと、各セルについて個数とソフトエラー率との積を求め、この積を全てのセルについて足し合わせて、半導体デバイスのソフトエラー率を検証するステップとを有し、ロジック回路を含むロジックデバイス全体についてソフトエラー率を高速・簡単に検証する手法が記載されている。
 一方、FPGAにおけるソフトエラー対策として、論理回路を三重化し、出力の多数決を取ることで信頼性を向上させるTMR(Triple Modular Redundancy:三重化多数決回路)の技術が広く知られている。TMRは三重化された回路のうち、二つ以上の回路がエラーにならない限りシステムは正常動作を維持するため、ソフトエラー率を低減することができる。FPGAベンダのザイリンクス社からは、専用の設計アプリケーションの付加機能として、ユーザが設計した回路を自動的にTMR化するツールが提供されている(非特許文献1参照)。
特表2005-505827号公報 特開2008-66598号公報 特開2006-134938号公報
 FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの、回路規模や消費電力が増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMRの適用範囲を決定する必要がある。
 一方で、FPGAでは、TMRを適用しても期待されるソフトエラーの低減効果が得られない場合がある。FPGAでは前述したように回路情報をCRAMに記憶するが、CRAMのプロセス微細化に伴い、放射線等の影響で一度に複数ビットが反転してしまうマルチセルアップセット(Multi-Cell Upset:MCU)と呼ばれる現象がCRAMにおいても増加している。このMCUによってCRAM上に複数ビットの反転が発生してしまうと、MCUの発生確率でTMRが破壊されることになるため、期待したTMRの効果が低減してしまう。そのため、TMR適用時のソフトエラー低減効果を正しく見積もれず、TMR適用に伴うトレードオフ設計での課題となっていた。
 そこで本発明の目的は、FPGAの設計段階で、設計されたユーザ回路にTMRを適用したと仮定したときのソフトエラー率を見積もることができ、また、TMRを適用して設計されたユーザ回路のソフトエラー率を計算することができるFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
 本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
 本発明の代表的な実施の形態によるFPGA設計支援システムは、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムであって、以下の特徴を有するものである。
 すなわち、FPGA設計支援システムは、FPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するTMR効果情報データベースと、前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部とを有する。
 さらに、前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、および前記TMR効果情報データベースから取得した、前記FPGAで設計された前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするものである。
 また、本発明は、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援方法、ならびにコンピュータをFPGA設計支援システムとして機能させるプログラムにも適用することができる。
 本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
 本発明の代表的な実施の形態によれば、FPGAの設計段階で、設計されたユーザ回路にTMRを適用したと仮定したときのソフトエラー率を見積もることができ、また、TMRを適用して設計されたユーザ回路のソフトエラー率を計算することができる。また、TMR化する回路の粒度(TMR化する単位回路の大きさ)によってソフトエラー率が変化する特徴に着目することで、TMRを適用した場合のソフトエラー率を適切に見積もることが可能となる。これらにより、TMRを適用した場合のソフトエラー率の低減効果を適切に見積もることができるため、FPGAのソフトエラーに対する最適な耐性設計が可能となる。
 また、サーバやルータ、ストレージ、制御システムなどの高信頼性機器に搭載されるFPGAの設計に適用することで、これらの機器の信頼性を向上させるとともに、設計コストおよび保守コストを下げる効果を得ることができる。
本発明の実施の形態1であるFPGA設計支援システムの構成例の概要について示した図である。 本発明の実施の形態1におけるTMR効果情報DBのデータ構成と具体的なデータの例を示した図である。 本発明の実施の形態1におけるTMRの粒度によるSER低減率の変化の例を示した図である。 (a)、(b)は、本発明の実施の形態1における階層の深さを変えてTMR化したときの回路構成とTMR粒度の違いについて例を示した図である。 本発明の実施の形態1におけるソフトエラー率の計算処理の流れの例について示したフローチャートである。 (a)、(b)は、本発明の実施の形態1における入出力部を介して表示する画面の例について示した図である。 本発明の実施の形態2における所定のソフトエラー率を実現するために必要となるTMR条件を決定する処理の流れの例について示したフローチャートである。
 以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
 <実施の形態1>
 以下では、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率(SER)を適切に見積もることを可能とするFPGA設計支援システムの例について説明する。図1は、本発明の実施の形態1であるFPGA設計支援システムの構成例の概要について示した図である。
 FPGA設計支援システム1は、例えば、一般的なサーバやPC(Personal Computer)等の情報処理装置によって構成され、ソフトウェアによって実装されるSER計算部10、入出力部20、実行制御部30などの各部を有する。また、同一もしくは他の情報処理装置上で稼働する回路構成設計ツール2との間で回路情報の授受を行うことができる。
 この回路構成設計ツール2は、例えば、FPGAメーカやサードパーティなどから一般的に提供される設計環境であり、例えば、HDL(Hardware Description Language)などの言語によるデザイン入力・修正、論理合成、配置配線、シミュレーションによる各種検証などの機能を有し、FPGAによってユーザが設計した回路についての回路情報を出力する公知のツールである。なお、例えば上述したザイリンクス社が提供する設計ツールのように、ユーザ回路に対して指定された部分を自動的にTMR化して回路情報を出力する機能を有していればより望ましい。
 ここで、回路情報とは、通常のFPGA設計工程において配置配線が終了した後の設計情報のことを指し、当該ユーザ回路をプログラミングするFPGAの型番や、回路ブロックの階層構成、FPGAの内部で使用されるフリップフロップ、配線、メモリなどのリソースの数と、それらの物理的な配置位置を示す情報が含まれている。また、回路ブロックとは、ユーザによって設計された任意の機能を実現する論理回路の単位を表す。回路ブロックはさらに下位の回路ブロックを含んで構成される場合があり、この場合は回路ブロックが階層構造を有することになる。
 また、FPGAリソースには、論理リソースとメモリリソース、配線リソースの情報が含まれる。論理リソースとは、FPGA内部の論理ブロックに配置されているフリップフロップやルックアップテーブル、演算器などを指す。配線リソースは、論理ブロックの接続やクロックの分配に使用される配線や、配線間の接続を行うスイッチマトリクスなどを指す。メモリリソースはRAM(Random Access Memory)などからなる内部メモリを指す。
 FPGA設計支援システム1において、SER計算部10は、対象のFPGAについてユーザ回路における回路ブロック毎にソフトエラー率を計算して合算することで、ユーザ回路全体でのソフトエラー率を計算するとともに、指定されたTMR条件に基づいてユーザ回路をTMR化した場合のソフトエラー率を計算する。
 ここで、TMR条件とは、FPGA設計支援システム1においてユーザ回路へのTMRの適用を仮定した場合のソフトエラー率を計算するための情報であり、例えば、TMRの適用を仮定する回路ブロック(以下では“TMRブロック”と記載する場合がある)を特定する情報や、後述するTMRの粒度(TMR化する単位回路の大きさ(細かさ))に係る情報が含まれる。TMRブロックは複数指定してもよい。また、TMRの適用を仮定する回路ブロックだけではなく、既にTMR化されている回路ブロックであってもよい。TMR条件は、例えば、ユーザもしくは後述する実行制御部30によって入出力部20を介してSER計算部10に入力される。
 SER計算部10は、例えば、回路ブロックSER計算部11、TMRブロックSER計算部14などの各部と、対象のFPGAデバイスの基本情報を保持するFPGA情報データベース(DB)15、および回路ブロックSER計算部11やTMRブロックSER計算部14によって計算されたソフトエラー率に係る情報を保持する回路SER計算結果データベース(DB)16などのデータを有する。
 回路ブロックSER計算部11は、対象のFPGAで設計されたユーザ回路における各回路ブロックについてのソフトエラー率を計算(見積もり)し、計算結果を回路情報毎およびその中の回路ブロック毎に回路SER計算結果DB16に記録する。この回路ブロックSER計算部11は、さらに例えば、FPGA情報DB15の内容に基づいて回路ブロック毎のソフトエラー率を計算するために必要な情報を計算する、CRAM_SER計算部12、FPGAリソース使用率計算部13などの各部によって構成される。
 ここで、FPGA情報DB15は、対象のFPGAデバイスのソフトエラー率を計算するために必要なデバイスの基本情報を保持する。この基本情報には、例えば、対象のFPGAのメーカや型番などのFPGAの種別を特定する情報、FPGAに内蔵されているリソース数、内部メモリおよびCRAMの容量、内部メモリおよびCRAMの単位ビット当たりのソフトエラー率(SER)、CRAMの実使用率、リソース毎のCRAM依存率などの項目が含まれる。これらの情報は、例えば、回路構成設計ツール2から取得したFPGAの回路情報から抽出したり、ユーザが直接値を設定・登録したりして予め用意しておく。
 例えば、CRAMの単位ビット当たりのソフトエラー率SERREFは、FPGAの製造テクノロジやFPGAメーカのシリーズなどによって異なり得る。そのため、例えば、対象のFPGAの型番に合わせてFPGAメーカから公表されている値や、ソフトエラー加速試験等によって得られた実測値などをユーザが登録して使用するものとする。CRAMの実使用率kは、FPGA内部のCRAMの総容量に対する、回路情報を書き込んだときに実際に使われるCRAMの容量の割合を示した値であり、0<k<1の範囲の値が用いられる。
 回路ブロックSER計算部11のCRAM_SER計算部12は、FPGA情報DB15から取得したCRAMの容量、CRAMの単位ビット当たりのソフトエラー率、CRAMの実使用率などの情報に基づいて、対象のFPGAにおけるCRAM全体のソフトエラー率を計算する。計算結果は、回路ブロックSER計算部11に受け渡す。
 FPGAリソース使用率計算部13は、回路構成設計ツール2から取得したFPGAによるユーザ回路の回路情報や、FPGA情報DB15から取得した対象のFPGAに内蔵されているリソース数などの情報に基づいて、対象のユーザ設計回路における各回路ブロックのFPGAリソースの使用率を計算する。計算結果は、回路ブロックSER計算部11に受け渡す。
 回路ブロックSER計算部11は、回路構成設計ツール2から取得したFPGAによるユーザ回路の回路情報や、CRAM_SER計算部12によって算出したCRAM全体のソフトエラー率、FPGAリソース使用率計算部13によって算出した各回路ブロックのFPGAリソースの使用率、およびFPGA情報DB15から取得したリソース毎のCRAM依存率などの情報に基づいて、回路ブロック単位のソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、FPGA情報DB15から取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、回路ブロック単位のソフトエラー率を計算する。計算された回路ブロック単位のソフトエラー率の情報は、回路SER計算結果DB16に記録する。
 なお、回路ブロックSER計算部11は、回路ブロック毎のソフトエラー率を、階層構造となっている各階層の全ブロックについてそれぞれ計算してもよい。もしくは、最下位層の回路ブロックについてのみソフトエラー率を計算し、上位の階層の回路ブロックのソフトエラー率は、これに含まれる下位階層の回路ブロックのソフトエラー率の和として求めてもよい。
 回路ブロックSER計算部11は、ユーザ回路の各回路ブロックに対してTMR化を考慮しない(TMRの適用を仮定しない)状態でのソフトエラー率を計算する。従って、ユーザ回路がすでにTMR化された回路ブロックを有している場合は、TMR化する前の単位回路を対象としてソフトエラー率を計算するものとする。これにより、当該部分についてもTMR化によるソフトエラー率の低減効果がどれくらいであるかを把握することが可能となる。
 SER計算部10のTMRブロックSER計算部14は、入出力部20を介してSER計算部10に入力されたTMR条件に基づいてTMRブロックの判定を行い、TMRブロックのソフトエラー率(TMRを適用した場合のソフトエラー率)を計算する。そのためにFPGAの種別毎のTMR化によるソフトエラー率の低減率の情報を保持するTMR効果情報データベース(DB)17を有する。ソフトエラー率の計算結果は回路SER計算結果DB16の該当の回路ブロックのレコードに追加・更新するなどにより記録する。
 TMRブロックのソフトエラー率の計算に際しては、まず入力されたTMR条件とFPGA情報DB15に保持された回路情報に基づいて、後述するTMRの粒度GTMRを計算する。このTMR粒度GTMRと、FPGA情報DB15から取得した対象のFPGAの種別を特定する情報とに基づいて、対象のFPGAで設計されたユーザ回路にTMR粒度GTMRでTMRを適用した場合のSER低減率DTMRの情報をTMR効果情報DB17から取得する。このSER低減率DTMRと、回路SER計算結果DB16に保持された対象の回路ブロックのソフトエラー率の値とを乗算することで、TMRブロックのソフトエラー率を計算する。
 SER計算部10は、回路SER計算結果DB16を参照して、回路ブロックSER計算部11およびTMRブロックSER計算部14によって計算された各回路ブロック(TMRブロックとそれ以外の非TMRブロック)のソフトエラー率を合算することで、ユーザ回路全体のソフトエラー率を計算する。計算結果は、所定のフォーマットに編集・整形した上で、入出力部20を介してGUI(Graphical User Interface)やデータファイル等の形式でユーザに出力する。
 入出力部20は、FPGA設計支援システム1に対する入出力の処理を行い、例えば、他のシステムやツール等と連携してデータの授受を行うインタフェースや、ユーザによる各種操作や入力を受け付けて処理結果を表示するユーザインタフェースなどを有する。入出力部20への入力装置は、一般的なコンピュータに使用されるキーボードやタッチパネル等、その装置種類は問わない。回路構成設計ツール2を含む他のシステムやツールから出力されたデータを入力装置を介さずにネットワーク等を介して直接入力するようにしてもよい。
 また、データの出力先についても、一般的なコンピュータに使用されるディスプレイ等の表示装置や、回路構成設計ツール2を含む他のシステムやツール、各種記録媒体上のデータファイル等、その種類は問わない。入出力部20が図示しないWebサーバプログラムを有し、図示しないクライアント端末からユーザがWebブラウザ等を介して入出力のためにアクセスするような構成であってもよい。
 実行制御部30は、SER計算部10や入出力部20での処理の実行を制御する。例えば、回路構成設計ツール2から入出力部20を介して回路情報を入力し、さらにTMR条件を指定して、SER計算部10によってソフトエラー率を計算するという一連の処理を、指定するTMR条件を適宜変更して繰り返し実行するよう制御することで、最適なTMR条件を探索するというようなことも可能となる。
 なお、図1において、上述した各部の構成による機能の分割や割り当ては一例であり、全体として各部が有する機能を実現できる構成であれば、設計により他の構成による機能分担を採用することも当然可能である。例えば、図1の例では、回路ブロックSER計算部11の内部にCRAM_SER計算部12およびFPGAリソース使用率計算部13の各部が含まれ、また、SER計算部10の内部に回路ブロックSER計算部11およびTMRブロックSER計算部14の各部が含まれる構成としているが、このような包含関係・階層関係は必須ではない。これら各部をそれぞれ他の各部からは独立した別の要素として構成してもよい。また、図中の矢印からなる制御線や情報線等は説明上必要と考えられるものを示しており、実システム上では必ずしも全ての制御線や情報線を有しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
 図2は、TMR効果情報DB17のデータ構成と具体的なデータの例を示した図である。TMR効果情報DB17は、FPGAの種別毎のTMR化によるソフトエラー率の低減率の情報を保持するデータベースであり、例えば、メーカ、型番、プロセス、SER低減率DTMR、およびTMR粒度特性などの各項目を有する。メーカ、型番、プロセスの項目は、対象のFPGAの種別を特定する情報を保持しており、FPGA情報DB15に保持されたFPGAの基本情報の内容によって対象のFPGAの種別(TMR効果情報DB17での該当するレコード)を特定することができるものであれば項目はこれらに限られない。
 SER低減率DTMRの項目は、TMR化の前後での対象の回路ブロックのソフトエラー率の比(0<DTMR<1)を示す情報を保持する。また、TMR粒度特性の項目は、後述するようにTMRの粒度によって変化するSER低減率の特性を示す情報を保持する。このTMR粒度特性は、例えば、後述する図3に示すようなグラフによって示され、これを近似した関数や、TMR粒度毎のSER低減率からなるテーブル等の形式で保持することができる。
 ここで、TMRの粒度とは、上述したように、TMRブロックにおいてTMRを適用する単位回路の大きさを示し、TMR化する前の対象の回路全体(TMRブロック)のサイズ(リソース量)SREFと、TMR化する単位回路のサイズ(リソース量)SGRAINとの比として、
  TMR粒度GTMR=SGRAIN/SREF …(1)
の式で定義する。従って、TMR粒度GTMRが小さいほどTMR化する単位回路のサイズが小さいことを示す。
 図3は、TMRの粒度によるSER低減率の変化の例を示した図である。グラフの横軸はTMR粒度GTMRであり、縦軸はSER低減率DTMR_grainである。このSER低減率DTMR_grainは、TMR化する前の対象の回路ブロック(TMRブロック)のソフトエラー率と、TMR粒度によって決定されるサイズの回路を単位回路としてTMR化した場合のソフトエラー率との比を示す情報である。この値は、上述したようにCRAMにおけるMCU(マルチセルアップセット)の影響を考慮するため、例えば、TMR粒度毎にソフトエラー加速試験によって得られた実測値に基づいて求める。実測値が無い条件については計算値を使用してもよい。
 図3の例に示したように、TMR粒度によるSER低減率の変化の特性としては、TMR粒度GTMRを小さくする、すなわちTMR化する単位回路のサイズを小さくしていくことで、TMRブロック全体を単位としてTMR化する場合(GTMR=1の場合)に比べて、さらにソフトエラー率が低減する(DTMR_grainが小さくなる)という特徴を有する。これは、FPGAにおけるソフトエラー率がCRAMの使用容量に依存しているためであり、対象の回路ブロックをより小さく分割して、それぞれを単位回路としてTMR化することで、単位回路で使用されるCRAM容量を小さくすることができ、その結果ソフトエラー率をさらに低減できるということを示している。
 ここで、TMR化する単位回路のサイズを小さくするためにユーザ回路をどのように分割するかを決定することは容易ではない。そこで、本実施の形態では、回路ブロックの階層構造における各回路ブロックの単位で単位回路を設定してTMR化するものとする。具体的には、TMRブロックからの階層の深さL(0~N)を指定することによって単位回路とする回路ブロックを特定する。ここで特定された単位回路とする回路ブロックとTMRブロックのそれぞれのサイズに基づいて、上記の(1)式によりTMR粒度GTMRを算出することができる。
 例えば、L=0とした場合、TMR条件で指定されたTMRブロックをそのまま単位回路としてTMR化する。L=1とした場合、TMRブロックの1レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてTMR化する。同様に、L=2とした場合は、TMRブロックの2レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてTMR化する。このように、TMR化する階層を深くしていく(Lを大きくしていく)ことで、TMR化する単位回路ブロックのサイズを小さくすることができる。
 図4は、階層の深さLを変えてTMR化したときの回路構成とTMR粒度GTMRの違いについて例を示した図である。図の上段には、回路ブロックA(親ブロック)からなるユーザ回路を示しており、回路ブロックAは回路ブロックB、C、D(子ブロック)によって構成されることを示している。なお、回路ブロックAの回路サイズSREFは例えば100であるものとする。
 このユーザ回路に対して回路ブロックAをTMRブロックとしてTMRを適用すると仮定した場合の例として、図の下段には(a)L=0でTMR化した場合と、(b)L=1でTMR化した場合の回路構成の例をそれぞれ示している。(a)L=0の場合では、TMRブロックである回路ブロックAを単位回路としてそのままTMR化するため、回路ブロックAが回路ブロックA、A’、A”としてTMR化される。
 このとき、TMR化する単位回路(回路ブロックA)のサイズSGRAINはSREFと同じ100であるため、上述の(1)式よりTMR粒度GTMRは1.0である。この場合のSER低減率DTMRは、例えば図2に示したTMR効果情報DB17のSER低減率DTMRのカラムから直接取得してもよいし、図3に示したSER低減率の特性からTMR粒度GTMRが1.0のときのSER低減率DTMR_grainとして取得してもよい(図3の例では0.7となる)。
 一方、(b)L=1の場合では、1レベル下の階層の回路ブロックを単位回路としてTMR化するため、回路ブロックB、C、Dのそれぞれを単位回路としてTMR化する。すなわち、回路ブロックBが回路ブロックB、B’、B”として、回路ブロックCが回路ブロックC、C’、C”として、回路ブロックDが回路ブロックD、D’、D”としてそれぞれTMR化される。このとき、図示するように、回路ブロックB、C、Dのサイズがそれぞれ異なる場合がある。すなわち、回路ブロックB、C、Dについてそれぞれ上述の(1)式によりTMR粒度GTMRを求めた場合、それぞれが異なる値となってしまう。
 階層の深さLを指定することによってTMR粒度GTMRを算出する際に、TMR化する単位回路のサイズSGRAINを決定する方法としては、例えば対象の階層の各回路ブロック(図4の例では回路ブロックB、C、D)のサイズの平均値をとるなど種々の方法を適宜採用することができる。本実施の形態では、対象の階層の各回路ブロックのうち最もサイズの大きいものを基準としてそのサイズをSGRAINとし、上述の(1)式によりTMR粒度GTMRを算出するものとする。例えば、図4の例では、回路ブロックB、C、Dのうち、最もサイズが大きい回路は回路ブロックCであるため、回路ブロックCのサイズをSGRAINとしてTMR粒度GTMRを算出する。
 なお、図3に示したように、TMR粒度GTMRが小さい(単位回路のサイズが小さい)ほどSER低減率DTMR_grainが小さくなる、すなわちソフトエラー率が低減する効果は大きくなる。従って、最もサイズの大きい回路ブロックを基準としてTMR粒度GTMRを算出することは、SER低減率DTMR_grainを大きく見積もる、すなわちソフトエラー率の低減効果について安全サイドで見積もることを意味する。
 図4において、最もサイズが大きい回路ブロックCの回路サイズSGRAINが50であるものとすると、上述の(1)式よりTMR粒度GTMRは0.5となり、図3に示したSER低減率の特性からSER低減率DTMR_grainは0.5となる。このように、図4の例では(b)L=1の場合のTMR化後の回路構成の方が(a)L=0の場合のTMR化後の回路構成に比べてよりソフトエラー率を低減できるということを、実設計の前にシミュレートし、確認することができる。
 上述したように、本実施の形態では、回路ブロックの階層構造における、TMRブロックからの階層の深さLを指定することで、TMR化する際の単位回路とする回路ブロックを特定し、TMR粒度GTMRを算出するものとしているが、可能な場合は直接TMR粒度GTMRの値を指定してもよい。
 なお、上述したように、FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの多数決回路の数が増えるなど、回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMRの粒度を決定する必要がある。
 図5は、本実施の形態のFPGA設計支援システム1でのソフトエラー率の計算処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるFPGAで設計されたユーザ回路について、回路情報を入力する(S01)。回路情報の入力は、例えば入出力部20を介して行い、回路構成設計ツール2から出力された回路情報を、ユーザによる手動もしくは実行制御部30等の制御により自動で読み込むなどして入力する。
 次に、TMR条件を指定する(S02)。ここでは、TMRの適用を仮定する回路ブロック(TMRブロック)と、TMRの粒度に係る情報を指定する。上述したように、TMRの粒度GTMRはTMR化する単位回路の大きさを示すが、本実施の形態では、単位回路とする回路ブロックのTMRブロックからの階層の深さL(0~N)を指定することによって内部的にTMRの粒度を算出するものとする。なお、TMRブロックは1つに限らず複数指定してもよいし、TMR化を考慮しない場合は指定しなくてもよい。TMR条件の指定は、例えば入出力部20を介して行い、ユーザが手動で入力したりTMR条件が記録されたファイルを読み込ませたりして入力することができる。実行制御部30の制御によりTMR条件が記録されたファイルを自動で読み込むようにしてもよい。
 次に、対象のFPGAにおけるCRAMのソフトエラー率を計算する(S03)。ここでは、例えば、CRAM_SER計算部12により、FPGA情報DB15から取得したFPGAの基本情報などに基づいて、FPGAのCRAMの容量CCRAMと、CRAMの単位ビットあたりのソフトエラー率SERREFと、CRAMの実使用率kとを乗算し、CRAM全体のソフトエラー率SERCRAMを計算する。
 次に、対象のユーザ回路における回路ブロック毎のFPGAのリソースの使用率を計算する(S04)。ここでは、例えば、FPGAリソース使用率計算部13により、回路構成設計ツール2から取得したFPGAの回路情報や、FPGA情報DB15から取得したFPGAの内蔵リソース数などの情報に基づいて、FPGAの内蔵リソース数と、回路情報から取得した各回路ブロックにおけるリソース使用数との比として、各回路ブロックnにおけるFPGAリソース使用率(論理リソース使用率Un、配線リソース使用率Wn、メモリリソース使用率Mn)をそれぞれ計算する。
 次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する(S05)。ここでは、例えば、回路ブロックSER計算部11により、回路構成設計ツール2から取得したFPGAの回路情報や、ステップS03で算出したCRAM全体のソフトエラー率SERCRAM、ステップS04で算出した各回路ブロックのFPGAリソース使用率(論理リソース使用率Un、配線リソース使用率Wn、メモリリソース使用率Mn)、FPGA情報DB15から取得した内部メモリの容量および内部メモリの単位ビットあたりのソフトエラー率と、リソースのCRAM依存率(論理リソース依存率αu、配線リソース依存率αw、メモリリソース依存率αm)などの情報に基づいて、回路ブロック毎のソフトエラー率を計算する。
 本実施の形態では、FPGAリソース使用率とCRAMの使用容量とは比例関係にあるものと仮定し、論理/配線/メモリの各リソースの使用率(Un、Wn、Mn)に、対応するCRAM依存率(αu、αw、αm)とCRAM全体のソフトエラー率SERCRAMを乗算して各リソースについて総和することで回路ブロックのソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、内部メモリ容量と内部メモリの単位ビット当たりのソフトエラー率とを乗算して得られる内部メモリのソフトエラー率を加算することで、回路ブロック毎のソフトエラー率を計算する。
 次に、TMR条件で指定されたTMRブロックのソフトエラー率を計算する(S06)。ここでは、例えば、各TMRブロックについて、TMRブロックSER計算部14により、ステップS05で算出したソフトエラー率と、TMR効果情報DB17から取得した、指定されたTMR粒度GTMRでTMRを適用した場合のSER低減率DTMR_grainとを乗算することで、TMRブロックのソフトエラー率を計算する。
 最後に、対象のユーザ回路全体でのソフトエラー率を計算する(S07)。ここでは、例えば、SER計算部10により、ステップS05で算出した回路ブロック毎のソフトエラー率のうちのTMR条件で指定されたTMRブロック以外の回路ブロックのソフトエラー率と、ステップS06で算出したTMRブロックのソフトエラー率とを合算し、ユーザ回路全体でのソフトエラー率を計算する。
 図6は、FPGA設計支援システム1が入出力部20を介して表示する画面の例について示した図である。図6(a)に示すようなメインウィンドウ21上に、回路構成設計ツール2等から読み込んだ回路ブロックの階層構造を表示する表22や、回路構成設計ツール2等から回路情報を読み込むためのボタン23、ユーザ回路のソフトエラー率の計算を開始するためのボタン24などを有する。表22には、図5に示した一連の処理によって計算された回路ブロック毎のソフトエラー率(“SER”カラム)や、対象の回路ブロックをTMR化した場合に低減されるソフトエラー率(“低減SER”カラム)の情報などを階層構造に合わせて表示する。
 また、このユーザインタフェースを介してユーザがTMR条件を指定できるようにしてもよい。例えば、メインウィンドウ21の表22上で、ユーザがTMRブロックとする回路ブロックにチェックを付し(“TMR”カラム)、さらにTMR粒度GTMRを算出するために、TMR化する際の単位回路とする回路ブロックのTMRブロックからの階層の深さLを指定できるようにする(“深さ”カラム)。同様な指定を、例えば図6(b)に示すような別の条件指定用ウィンドウ25などを介して行うようにしてもよい。
 ユーザは、図6に示したような画面に表示されるソフトエラー率の計算結果を見て、指定したTMR条件の良否を判定する。例えば、ユーザ回路全体としてソフトエラー率が所定の条件を満たす場合は、指定したTMR条件を必要な設計条件として決定する。所定の条件を満たさない場合は、当該画面から新たなTMR条件を指定した後、再度ソフトエラー率の計算を行うことができる。
 なお、上述したように、ソフトエラー率の計算結果を図6に示したような画面に出力するのに替えて、もしくはこれに加えてデータファイル等の形式で出力するようにしてもよい。また、TMR条件の指定も、ユーザが図6に示したような画面から手動で入力するのではなく、TMR条件が記録されたファイルを読み込ませて入力するようにしてもよい。
 以上に説明したように、本発明の実施の形態1であるFPGA設計支援システム1、および当該システム上で実行されるソフトエラー率の計算方法によれば、FPGAリソースの使用率と、そのFPGAが搭載するCRAMのソフトエラー率の情報を利用することで、ユーザ回路全体のソフトエラー率を簡易的に計算し、さらに、実測で得られたTMR化によるSER低減率の情報を利用して、設計されたユーザ回路にTMRを適用したときのソフトエラー率を見積もる手段を提供することができる。
 また、このとき、TMR化する回路の粒度によってソフトエラー率が変化する特徴に着目することで、設計されたユーザ回路にTMRを適用したときのソフトエラー率を適切に見積もることができ、FPGAのソフトエラーに対する最適な耐性設計が可能となる。
 <実施の形態2>
 本発明の実施の形態2であるFPGA設計支援システムの例は、上述した実施の形態1のFPGA設計支援システム1を基礎として、FPGAによるユーザ回路が所定のソフトエラー率を実現するために必要となるTMR条件を決定することができる解析手法を実現するものである。
 図7は、本実施の形態のFPGA設計支援システム1での所定のソフトエラー率を実現するために必要となるTMR条件を決定する処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるFPGAで設計されたユーザ回路について、回路情報を入力する(S11)。ここでの処理は、上述した実施の形態1における図5のステップS01と同様である。
 次に、対象のFPGAにおけるCRAMのソフトエラー率を計算する(S12)。ここでの処理は、上述した実施の形態1における図5のステップS03と同様である。次に、対象のユーザ回路における回路ブロック毎のFPGAのリソースの使用率を計算する(S13)。ここでの処理は、上述した実施の形態1における図5のステップS04と同様である。次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する(S14)。ここでの処理は、上述した実施の形態1における図5のステップS05と同様である。
 次に、対象のユーザ回路全体でのソフトエラー率を計算する(S15)。ここでは、例えば、SER計算部10により、TMR化を考慮せずに、ステップS14で算出した回路ブロック毎のソフトエラー率を合算し、ユーザ回路全体でのソフトエラー率を計算する。次に、ステップS15で算出したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する(S16)。ここでは、例えば、実行制御部30によってこの判断を行い、ソフトエラー率が、入出力部20を介して予めユーザにより指定された目標値を下回っている(条件を満たしている)場合は、TMR化は不要ということで、各回路ブロックのソフトエラー率の計算結果を図6に示した画面により出力するなどして処理を終了する。
 一方、ステップS16においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている(条件を満たしていない)場合は、TMR化を考慮するためにTMR条件を指定する(S17)。ここでの処理は、上述した実施の形態1における図5のステップS02と同様である。次に、TMR条件で指定されたTMRブロックのソフトエラー率を計算する(S18)。ここでの処理は、上述した実施の形態1における図5のステップS06と同様である。次に、対象のユーザ回路全体でのソフトエラー率を計算する(S19)。ここでの処理は、上述した実施の形態1における図5のステップS07と同様である。
 次に、ステップS19で算出したTMR化を考慮したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する(S20)。ここでは、例えば、ステップS16と同様に実行制御部30によってこの判断を行い、ソフトエラー率が、入出力部20を介して予めユーザにより指定された目標値を下回っている(条件を満たしている)場合は、ステップS17で指定されたTMR条件を必要な設計条件として決定し、処理を終了する。
 一方、ステップS20においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている(条件を満たしていない)場合は、ステップS17に戻ってTMR条件を再指定し、ユーザ回路全体でのソフトエラー率が所定の目標値を下回る(条件を満たす)までステップS17~S20の処理を繰り返す。本実施の形態では、このように、SER計算部10にて算出されたユーザ回路全体でのソフトエラー率が条件を満たすまでTMR条件指定とソフトエラー率の再計算の処理を繰り返し、ソフトエラー率の条件を満たすTMR条件を決定できることを特徴とする。上記の一連の処理を、例えば実行制御部30によって制御して実行することで、ソフトエラー率の条件を満たすTMR条件を自動的に探索することも可能である。
 ステップS17でのTMR条件の指定(再指定)においてどのような条件を指定するかについては、種々の手法が考えられるが、例えば、ステップS17において最初にTMR条件を指定する際に、ソフトエラー率の低減効果が最大となるTMR条件を指定するようにしてもよい。すなわち、TMR条件において、TMRブロックとしてユーザ回路全体を指定し、TMR化する際の単位回路を特定する階層の深さLに最大値を指定して、最も深い階層の回路ブロックを単位回路とする。このときのユーザ回路全体でのソフトエラー率が、ステップS20において所定の目標値以上となっている(条件を満たしていない)場合は、他のどのようなTMR条件を指定してもソフトエラー率が所定の目標値を下回らないことが分かる。従って、以降のTMR条件の探索が無用となることが早期に判断できる。
 なお、上述したように、FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMR条件を決定する必要がある。
 例えば、図7の一連の処理によってソフトエラー率の条件を満たすものとして得られたTMR条件の情報を、入出力部20を介して回路構成設計ツール2にフィードバックし、回路構成設計ツール2によってTMR化した状態での回路情報を再度生成して、オーバーヘッドの増大分を検証する。これにより、ソフトエラー率の低減率およびオーバーヘッドの増大分の双方が所定の条件を満たすTMR条件を決定することができる。
 もしくは、例えば、実行制御部30での制御により図7の一連の処理を繰り返し実行して、ソフトエラー率の条件を満たす全てのTMR条件を取得する。取得した各TMR条件をそれぞれ入出力部20を介して回路構成設計ツール2にフィードバックして、回路構成設計ツール2によってTMR化した状態での回路情報を生成する。生成された各回路情報について、ソフトエラー率の低減効果とオーバーヘッドの増大分のそれぞれに所定の重み付けをして全体での効果を数値化することで、トレードオフを考慮した最適なバランスとなるTMR条件を決定するということも可能である。
 以上に説明したように、本発明の実施の形態2であるFPGA設計支援システム1によれば、FPGAの設計段階において、ユーザ回路に対してTMRを適用した場合のソフトエラー率を事前に適切に見積もることができるため、ユーザ回路のソフトエラー耐性を目標レベルまで向上させるために必要なTMR条件を容易に決定することができる。これにより、TMR化に伴うオーバーヘッドの増大とのトレードオフ設計を容易に行うことができる。
 以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上述した各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。なお、上記の各実施の形態ではFPGA設計支援システム1を情報処理装置上で構築し、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現するものとしているが、これに限られない。例えば、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
 また、上記の各実施の形態では、TMRを適用した場合のソフトエラー率を適切に見積もるもしくは計算することで設計を支援する対象の半導体集積回路として、地上における環境放射線の影響によって発生するソフトエラーの拡大の影響が問題視されているFPGAを対象としている。これに対し、他のプログラマブルロジックデバイスであっても、FPGAと同様もしくは類似の構成や仕組みを有し、例えば大容量化のさらなる進展などによりソフトエラー率の影響が大きくなり、これを適切に見積もるもしくは計算することが必要となったものなどについても対象に含めることが可能である。
 本発明は、FPGAにおいてソフトエラーに対する耐性向上を図る設計を支援するFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムに利用可能である。
 1…FPGA設計支援システム、2…回路構成設計ツール、
 10…ソフトエラー率設計部、11…回路ブロックソフトエラー率計算部、12…CRAM_SER計算部、13…FPGAリソース使用率計算部、14…TMRブロックソフトエラー率計算部、15…FPGA情報DB、16…回路SER計算結果DB、17…TMR効果情報DB、
 20…入出力部、21…メインウィンドウ、22…表、23、24…ボタン、25…条件指定用ウィンドウ、
 30…実行制御部
 
 
 
 

Claims (13)

  1.  FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムであって、
     FPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するTMR効果情報データベースと、
     前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、
     前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、
     前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部と、
     前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、および前記TMR効果情報データベースから取得した、前記FPGAで設計された前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、
     前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするFPGA設計支援システム。
  2.  請求項1に記載のFPGA設計支援システムにおいて、
     前記TMR効果情報データベースは、さらに、FPGAの種別毎に、TMRを適用した場合のTMRの粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持し、
     前記TMRブロックSER計算部は、前記TMR条件において、前記TMRブロックについて指定された前記粒度の値、もしくは前記TMRブロックにおいてTMRを適用する単位回路として指定された回路ブロックの情報に基づいて算出した前記粒度の値に基づいて、前記FPGAで設計された前記ユーザ回路に前記粒度でTMRを適用した場合のソフトエラー率の低減率の情報を前記TMR効果情報データベースから取得して、前記TMRブロックのソフトエラー率を計算することを特徴とするFPGA設計支援システム。
  3.  請求項2に記載のFPGA設計支援システムにおいて、
     前記TMR条件において指定される、前記TMRブロックにおいてTMRを適用する単位回路とする回路ブロックを、回路ブロックの階層構造における、前記TMRブロックからの階層の深さによって特定することを特徴とするFPGA設計支援システム。
  4.  請求項1~3のいずれか1項に記載のFPGA設計支援システムにおいて、
     さらに、前記FPGAの種別を特定する情報、前記FPGAに内蔵されているリソース数、内部メモリおよび前記CRAMの容量、前記内部メモリおよび前記CRAMの単位ビット当たりのソフトエラー率、前記CRAMの実使用率、前記FPGAのリソース毎の前記CRAMの依存率を含む、前記FPGAのソフトエラー率を計算するために必要なデバイスの基本情報を保持するFPGA情報データベースを有することを特徴とするFPGA設計支援システム。
  5.  請求項4に記載のFPGA設計支援システムにおいて、
     前記CRAM_SER計算部は、前記FPGA情報データベースから取得した前記CRAMの容量、前記CRAMの単位ビット当たりのソフトエラー率、および前記CRAMの実使用率を乗算して、前記FPGAにおける前記CRAM全体のソフトエラー率を計算することを特徴とするFPGA設計支援システム。
  6.  請求項4に記載のFPGA設計支援システムにおいて、
     前記FPGAリソース使用率計算部は、前記FPGA情報データベースから取得した前記FPGAに内蔵されているリソース数と、前記ユーザ回路の回路情報から取得した前記ユーザ回路の各回路ブロックにおける前記FPGAのリソースの使用数との比として、前記ユーザ回路における各回路ブロックの前記FPGAのリソース毎の使用率を計算することを特徴とするFPGA設計支援システム。
  7.  請求項4に記載のFPGA設計支援システムにおいて、
     前記回路ブロックSER計算部は、前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率、および前記FPGA情報データベースから取得した前記FPGAのリソース毎のCRAM依存率を乗算して各リソースについて総和することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算し、さらに、内部メモリが含まれる回路ブロックについては、前記FPGA情報データベースから取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算することを特徴とするFPGA設計支援システム。
  8.  請求項1~7のいずれか1項に記載のFPGA設計支援システムにおいて、
     前記TMRブロックSER計算部は、前記TMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率と、前記ユーザ回路にTMRを適応した場合のソフトエラー率の低減率とを乗算することで、前記TMRブロックのソフトエラー率を計算することを特徴とするFPGA設計支援システム。
  9.  請求項1~8のいずれか1項に記載のFPGA設計支援システムにおいて、
     前記SER計算部は、前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率のうちの前記TMRブロック以外の回路ブロックのソフトエラー率と、前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率とを合算して、前記ユーザ回路全体のソフトエラー率を計算することを特徴とするFPGA設計支援システム。
  10.  請求項1~9のいずれか1項に記載のFPGA設計支援システムにおいて、
     さらに、前記ユーザ回路の回路情報、および前記TMR条件の入力を受け付け、前記ユーザ回路の回路情報、前記TMR条件、前記回路ブロックSER計算部によって算出された前記ユーザ回路の各回路ブロックのソフトエラー率、前記TMRブロックSER計算部によって算出された前記各TMRブロックのソフトエラー率、および前記SER計算部によって算出された前記ユーザ回路全体のソフトエラー率の一部または全部を表示する入出力部を有することを特徴とするFPGA設計支援システム。
  11.  請求項10に記載のFPGA設計支援システムにおいて、
     さらに、前記入出力部に入力される前記TMR条件の内容を変更して、前記入出力部および前記SER計算部での処理の実行を制御する実行制御部を有することを特徴とするFPGA設計支援システム。
  12.  FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムとしてコンピュータを機能させるFPGA設計支援プログラムであって、
     前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、
     前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、
     前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部と、
     前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、およびFPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するデータベースから取得した、前記FPGAで設計した前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、
     前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするFPGA設計支援プログラム。
  13.  情報処理装置によってFPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援方法であって、
     ソフトエラー率を計算する対象となる前記ユーザ回路の回路情報を入力する第1のステップと、
     前記FPGAが有するCRAM全体のソフトエラー率を計算する第2のステップと、
     前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算する第3のステップと、
     前記第2のステップによって算出された前記CRAM全体のソフトエラー率、および前記第3のステップによって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する第4のステップと、
     前記第4のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率を合算して前記ユーザ回路全体のソフトエラー率を計算する第5のステップと、
     前記第5のステップによって算出された前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っているか否かを判定する第6のステップと、
     前記第6のステップにおいて、前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っていない場合に、前記ユーザ回路の回路ブロックのうちTMRの適用を仮定する回路ブロックであるTMRブロック、および前記TMRブロックについてのTMRを適用する際の粒度に係る情報を含むTMR条件を指定する第7のステップと、
     前記TMRブロックについて、前記第4のステップによって算出されたソフトエラー率、およびFPGAの種別毎にTMRを適用した場合のTMRの前記粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持するデータベースから取得した、前記FPGAで設計された前記ユーザ回路に前記粒度でTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算する第8のステップと、
     前記第4のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記第8のステップによって算出された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算する第9のステップと、
     前記第9のステップにおいて、前記ユーザ回路全体のソフトエラー率が前記所定の目標値を下回っているか否かを判定し、下回っていない場合は前記第7のステップに戻って処理を繰り返す第10のステップとを実行することを特徴とするFPGA設計支援方法。
     
     
     
     
     
     
     
     
     
     
     
     
PCT/JP2012/058214 2011-04-06 2012-03-28 Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム WO2012137652A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011084175A JP2012221077A (ja) 2011-04-06 2011-04-06 Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム
JP2011-084175 2011-04-06

Publications (1)

Publication Number Publication Date
WO2012137652A1 true WO2012137652A1 (ja) 2012-10-11

Family

ID=46969053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/058214 WO2012137652A1 (ja) 2011-04-06 2012-03-28 Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム

Country Status (2)

Country Link
JP (1) JP2012221077A (ja)
WO (1) WO2012137652A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238435A (zh) * 2014-05-27 2014-12-24 北京航天自动控制研究所 一种三冗余控制计算机及容错控制系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2998688B1 (fr) * 2012-11-29 2014-12-26 Electricite De France Procede de durcissement logique par partitionnement d'un circuit electronique
JP6944728B2 (ja) * 2017-11-29 2021-10-06 ナノブリッジ・セミコンダクター株式会社 設計支援システム、設計支援方法およびプログラム
WO2020095854A1 (ja) * 2018-11-08 2020-05-14 日本電気株式会社 論理集積回路、構成情報設定方法、および記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ASADI ET AL.: "Soft Error Susceptibility Analysis of SRAM-Based FPGAs in High- Performance Information Systems", IEEE TRANSACTIONS ON NUCLEAR SCIENCE, vol. 54, no. 6, December 2007 (2007-12-01), pages 2714 - 2726, XP011198470, DOI: doi:10.1109/TNS.2007.910426 *
YOUNGHUN KO ET AL.: "Coarse-Grained Reconfigurable Architecture with Flexible Reliability", IPSJ SIG NOTES, vol. 2008, no. 111, 10 November 2008 (2008-11-10), pages 79 - 84 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238435A (zh) * 2014-05-27 2014-12-24 北京航天自动控制研究所 一种三冗余控制计算机及容错控制系统
CN104238435B (zh) * 2014-05-27 2017-01-18 北京航天自动控制研究所 一种三冗余控制计算机及容错控制系统

Also Published As

Publication number Publication date
JP2012221077A (ja) 2012-11-12

Similar Documents

Publication Publication Date Title
JP2007328788A (ja) クロックメッシュ分析方法、装置及びシステム
US9646122B2 (en) Variable accuracy parameter modeling in statistical timing
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
US9740807B2 (en) Method to measure edge-rate timing penalty of digital integrated circuits
JP2010020372A (ja) 遅延ライブラリ、遅延ライブラリの作成方法、および遅延計算方法
US10140399B2 (en) Corner database generator
WO2012137652A1 (ja) Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム
US20120216160A1 (en) Estimating power consumption of an electronic circuit
Sari et al. A soft error vulnerability analysis framework for Xilinx FPGAs
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
US20100131249A1 (en) Method and apparatus for supporting verification of leakage current distribution
US9594858B1 (en) Methods, systems, and articles of manufacture for implementing scalable statistical library characterization for electronic designs
JP5785725B2 (ja) 電力見積装置、電力見積方法及びプログラム
US10162916B1 (en) Timing verification in a programmable circuit design using variation factors
US9996656B2 (en) Detecting dispensable inverter chains in a circuit design
TWI818068B (zh) 用於分段記憶體實體之方法及裝置
US8495538B1 (en) Power estimation of a circuit design
Hogervorst et al. Hardware acceleration of high-performance computational flow dynamics using high-bandwidth memory-enabled field-programmable gate arrays
US20070022392A1 (en) Multi-variable polynomial modeling techniques for use in integrated circuit design
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
US20140173547A1 (en) Analysis of chip-mean variation and independent intra-die variation for chip yield determination
US20130174107A1 (en) Design tool for glitch removal
US10796051B1 (en) Adaptive model interface for a plurality of EDA programs
US10460055B1 (en) Modeling of sequential circuit devices of multi-clock domain IC design for a transient vectorless power analysis
US10049174B2 (en) Exact delay synthesis

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: 12768037

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12768037

Country of ref document: EP

Kind code of ref document: A1