WO2019171428A1 - 回路生成装置及びソフトウェア生成装置 - Google Patents

回路生成装置及びソフトウェア生成装置 Download PDF

Info

Publication number
WO2019171428A1
WO2019171428A1 PCT/JP2018/008318 JP2018008318W WO2019171428A1 WO 2019171428 A1 WO2019171428 A1 WO 2019171428A1 JP 2018008318 W JP2018008318 W JP 2018008318W WO 2019171428 A1 WO2019171428 A1 WO 2019171428A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
description
software
generation device
degeneration
Prior art date
Application number
PCT/JP2018/008318
Other languages
English (en)
French (fr)
Inventor
輝昭 酒田
広津 鉄平
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2018/008318 priority Critical patent/WO2019171428A1/ja
Priority to US16/755,705 priority patent/US11232245B2/en
Priority to JP2020504492A priority patent/JP6850395B2/ja
Publication of WO2019171428A1 publication Critical patent/WO2019171428A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • the present invention relates to a circuit generation device and a software generation device.
  • CPU Central Processing Unit
  • RAM Random Access Memory, Memory
  • FPGA Field Programmable Gate Array, Field Programmable Gate Array
  • Patent Document 1 an operation described in an operation level description based on an operation level description and a constraint condition in which an operation of a circuit mounted on an integrated circuit is described.
  • the operation of the circuit expressed by the intermediate level description generated by the generating means Determine the number of individual execution cycles required to execute each process described in the intermediate level description and the total number of execution cycles required to execute all processes described in the intermediate level description.
  • the determination unit determines that the simulation has been completed.
  • the total number of execution cycles of the intermediate level description generated by the generation unit based on the number of individual execution cycles stored in the storage unit in association with the same loop structure specified by the specifying unit An example of a behavioral synthesis device that includes a calculation means for obtaining the above is described.
  • a feature is that a loop structure is extracted from the behavioral description to search for a synthesis constraint that optimizes the execution cycle performance of the loop part.
  • the content that automatically extracts the function is not mentioned, and it is difficult to utilize the point that the man-hour increases when creating the degenerate function in addition to the standard function that is the subject of the present invention. There was a problem that there was.
  • the present invention has been made in view of the above problems, and a purpose of the present invention is to provide a circuit generation device that can implement standard functions and degeneration functions at low cost and in an early stage in systems such as industrial fields and automobile fields. And providing a software generation apparatus.
  • the present invention provides a circuit generation device or software generation device having a first behavioral synthesis function for generating a circuit description or a software description based on a behavior description of a system.
  • the degeneration parameter change function for changing the values of the degeneration parameters, the operation description and the values of the degeneration parameters, the degeneration circuit description or the degeneration software description
  • a second behavioral synthesis function to be generated and a determination function for determining whether or not the performance of the degenerate circuit description or the degenerate software description satisfies a constraint condition based on the circuit description or the software description,
  • the degeneration parameter change function It shall perform the second operation synthesis function Change the value of the degenerate for parameter.
  • FIG. 2 is a flowchart showing details of a step of determining whether or not a degenerate circuit result satisfies a constraint condition based on a standard circuit result in the flow of FIG. 1.
  • GUI Graphic User Interface
  • FIG. 21 is a diagram illustrating an example of an operation description using a highly reliable pragma for the operation description illustrated in FIG. 20.
  • the operation description is the same as that shown in FIG.
  • FIG. 23 shows an example of an operation description using a degenerate pragma of the operation description shown in FIG.
  • FIG. 23 shows another example of the behavioral description using a pragma whose type is degenerate with respect to the behavioral description shown in FIG.
  • a circuit that realizes a standard function during normal operation of the system is called a standard circuit
  • its design description is called a standard circuit description
  • software that realizes a standard function is standard software
  • its design description is standard software description.
  • FIG. 1 is a flowchart showing an example of the operation of the circuit generation device according to this embodiment.
  • step S01 the designer prepares an operation description 401 of the system to be mounted and a constraint condition 402 that serves as a guide for the degenerate circuit to be mounted.
  • the standard circuit description 403 and the standard circuit result 407 are output from the behavior description 401 by the behavioral synthesis in step S03.
  • the degenerate circuit description 404 and the degenerate circuit result 408 are output from the behavior description 401 by the behavioral synthesis in step S04 via the degenerate parameter extraction in step S02.
  • step S05 whether or not the degenerate circuit description 404 and the degenerate circuit result 408 obtained by the flow of the circuit generation device in FIG. 1 are within the allowable range of the constraint condition 402 for the standard circuit description 403 and the standard circuit result 407 is evaluated. Is done. As a result, if the constraint is satisfied, the process proceeds to step S07 and the operation flow ends. If the constraint is not satisfied, the process proceeds to step S06 and the parameter for degeneration is changed, from step S04 to step S05. Repeat the operation flow.
  • FIG. 2 shows an example of the constraint condition 402 in the flow of FIG.
  • FIG. 2 shows that the operation speed (MHz), circuit area (Area), and accuracy (Accuracy) of the standard circuit are set to 100, the operation speed of the degeneration circuit is 85% of the standard circuit, the circuit area is 50%, The accuracy is expressed as a percentage such as 75%.
  • FIG. 3 shows the operation speed, area, and accuracy of the degenerate circuit in absolute values with respect to the absolute values of the operation speed, circuit area, and accuracy of the standard circuit, and different units are set for each item.
  • the restriction condition of the degeneration circuit can be set in various forms.
  • the format for setting the constraint condition of the degeneration circuit may be a table format, a text format, a comma-delimited format, or the like.
  • FIG. 4 shows an example of the behavior description 401 in the flow of FIG.
  • int32 indicates a 32-bit signed integer type.
  • int64 indicates a 64-bit signed integer type.
  • the first line of the behavior description 450 defines a 64-bit function accumulate. This function takes as input variables a and b each having 32 bits and an array size of 4.
  • the second line of the operation description 450 defines a variable c having 64 bits and an array size of 4 that is used locally in the function accumulate.
  • the third and fourth lines of the behavior description 450 define a 64-bit variable d and a 32-bit variable i that are used locally in the function accumulate, respectively.
  • the 6th to 8th lines of the behavior description 450 describe a for loop statement that repeats 4 times when the value of the local variable i is between 0 and less than 4.
  • a process for substituting the product of the array a and the array b into the array c is described.
  • the 10th to 12th lines of the behavior description 450 describe another for loop statement that repeats 4 times when the value of the local variable i is between 0 and less than 4.
  • the eleventh line describes a process of adding the value of the array c to the local variable d.
  • the 14th line of the operation description 450 describes a process of outputting and ending the value of the variable d obtained by the function accumulate process.
  • FIG. 5 shows the details of the step (step S02) of extracting the degeneration parameters in the flow of FIG.
  • step S31 If the description of the operation description file opened in step S31 is the last, the process ends and the process proceeds to step S38 to close the operation description file. If the description is not the last, the process proceeds to step S32 and the operation description is set to 1. Read a line.
  • step S33 If the description line read in step S33 is the last line, the process proceeds to step S37 to check the next line. If it is not the last line, the token is read in step S34.
  • step S35 If the token read in step S35 does not match the predetermined parameter, the process proceeds to step S33 to check the next line. If the token matches, the parameter is added to the parameter list in step S36. The process proceeds to step S33 to check whether there is a next token in the behavior description. In this way, the flow of FIG. 5 is repeated until the end of the behavioral description.
  • FIG. 6 shows an example of the parameter list created in step S36 of FIG.
  • Each column of the parameter list 462 represents a line number (Line), a classification (Category), a type (Type), a name (Name), and a size (Size) in order from the left.
  • FIG. 7 shows details of the step (step S06) for changing the degeneration parameter in the flow of FIG.
  • step S40 a determination result indicating how far the degenerate circuit deviates from the constraint condition with respect to the standard circuit is read.
  • step S41 As a result of reading the determination result, if it is not worse than the previous determination result in step S41, the process proceeds to step S44 to change the previous parameter, but if it is worse than the previous determination result, step S42 To return to the original value of the parameter and then change to the value of another parameter by changing to step S43, or change to the value of another parameter without changing to step S42 and to step S43. Perform the change process.
  • the changed content is output to the behavioral synthesis description in step S45.
  • FIG. 8 shows an example of the behavioral description changed by the flow of FIG.
  • int16 indicates a 16-bit signed integer type.
  • int3 indicates a 3-bit signed integer type.
  • the behavior description 451 in FIG. 8 is a location where int64 in the first line is int32, a location where int32 is int16, and a location where int64 is in the second row.
  • Int32 the part that was int64 on the 3rd line is iint32, the part that was int32 on the 4th line is int3, and the part that was the for loop statement from the 6th line to the 8th line is the 6th line to the 9th line
  • Each part is a sequential processing statement.
  • FIG. 9 shows details of the step (step S05) for determining whether or not the degenerate circuit result satisfies the constraint condition based on the standard circuit result in the flow of FIG.
  • the constraint condition 402 includes an operation speed constraint 411, an area constraint 414, and an accuracy constraint 417.
  • the standard circuit result 407 includes standard performance 412, standard area 415, and standard accuracy 418.
  • the degeneration circuit result 408 includes a degeneration performance 413, a degeneration area 416, and a degeneration accuracy 419.
  • step S21 it is determined how far the degenerate performance deviates from the allowable range of the standard performance from the operation speed constraint 411, the standard performance 412, and the degeneration performance 413.
  • step S22 the operation speed is determined. If it is not within the allowable range of the constraint 411, the flow is terminated and the process returns to the circuit generation again.
  • step S23 it is determined how far the degenerate area deviates from the allowable range of the standard area from the area constraint 414, standard area 415, and degenerated area 416, and if it is not the allowable range of the area constraint 414 in step S24 The flow is terminated and the process returns to circuit generation again.
  • step S25 it is determined from the accuracy constraint 417, standard accuracy 418, and degeneration accuracy 419 how much the degeneracy accuracy deviates from the standard accuracy allowable range, and in step S26 if the accuracy constraint 417 is not within the allowable range. The flow is terminated and the process returns to circuit generation again.
  • FIG. 10 shows an example of a GUI (Graphical User Interface) displayed on the display device 291 (shown in FIG. 11) of the circuit generation device in the present embodiment.
  • GUI Graphic User Interface
  • the window 470 in FIG. 10 displays information on standard circuits, degenerate circuits, and constraint conditions in the circuit generation device.
  • the horizontal axis indicates the bit width
  • the vertical axis indicates the operation speed
  • the restriction line 471 is located in the middle of the operation speed axis.
  • the standard result 472 of the operation speed of the standard circuit with 32 bits obtained by the circuit generation device is plotted on the graph.
  • the reduction result 473 of the operation speed of the reduction circuit when reduced to 30 bits is displayed on the graph.
  • the degeneration result 474 of the operation speed of the degeneration circuit when reduced to 24 bits, the degeneration result 475 of the operation speed of the degeneration circuit when reduced to 20 bits are displayed, and the degeneration results 473, 474 and 475 are collectively A reduction result list 476 is displayed.
  • the predicted degeneration 477 in this case indicates that it is expected to fall below the constraint line 471.
  • FIG. 11 shows an example when the circuit generation apparatus according to the present embodiment is applied to the development environment of the control system.
  • a computer 290 and a display device 291 in FIG. 11 constitute a circuit generation device 200 in this embodiment.
  • Memory writers 260 and 261 are connected to the computer 290, and the memory writers 260 and 261 are connected to the control system 1 via ports 250 and 251, respectively.
  • the standard circuit description 403 generated by the circuit generation device 200 is written to the control system 1 from the memory writer 260 is the standard circuit C (66), and the degenerate circuit description 404 generated by the circuit generation device 200 is used. Is written into the control system 1 from the memory writer 261 is the degeneration circuit C (68).
  • FIG 11 shows an example in which an error occurs in the standard circuit C (66) in the FPGA (62) and the standard circuit C (66) becomes inoperable.
  • the degeneration circuit C (63) corresponding to the standard circuit C (66) is enabled by the switching control signals 81 and 80 from the system control unit 6 by the control output 103 from the standard circuit C (66) in which the error has occurred.
  • control output 103 from the standard circuit C (66) where the error has occurred is not output as the control output 107 outside the control system 1, but the control output 111 of the degeneration circuit C (68) is output as the control output 107. .
  • the standard function and the degeneration function can be implemented at low cost in the control system 1 in which the standard function and the degeneration function are realized by hardware.
  • the designer can check the degree of realization of the degeneration function with respect to the standard function by the display device 291 one by one, if the degeneration function is likely to have unintended performance, the design can be changed in advance, and the degeneration function can be It becomes possible to reduce the design man-hours for mounting.
  • circuit generating apparatus that generates hardware (circuit description) that realizes a standard function and hardware (degenerate circuit description) that realizes a degenerate function from a single operation description has been described.
  • the degeneration function is implemented by software.
  • a software generation apparatus that generates a software description (standard software description) that realizes a standard function and a software description (degenerate software description) that realizes a reduced function from a single operation description will be described.
  • FIG. 12 shows an example of the operation flow of the software generation apparatus in the present embodiment.
  • the circuit generation apparatus in the present embodiment replaces the function for generating the standard circuit description with the function for generating the standard software description, and is degenerate. The difference is that the function for generating a circuit description is replaced with a function for generating a degenerate software description.
  • FIG. 13 shows an example in which the software generation apparatus according to the present embodiment is applied to the development environment of the control system.
  • FIG. 13 shows a part in which the standard circuit description is changed to the standard software description, a part in which the reduced circuit description is changed to the reduced software description, and an FPGA (62) as compared with the first embodiment (shown in FIG. 11).
  • the part which changed to the multi-core system is different from the part which changed the FPGA (63) to the lockstep core system.
  • the computer 290 and the display device 291 in FIG. 13 constitute a software generation device 201 in this embodiment.
  • the four cores 10, 11, 12, and 13 have a multi-core configuration.
  • the core 10 is connected to the memory 50, and the software of the core 10 is arranged in the memory 50 for processing.
  • the core 11 is connected to the memory 51
  • the core 12 is connected to the memory 52
  • the core 13 is connected to the memory 53.
  • the software A (30) is arranged in the memories 50 and 51 and performs multi-core operation with the cores 10 and 11.
  • the software B (31) is arranged only in the memory 52 and operates on the core 12
  • the software C (32) is arranged only in the memory 53 and operates on the core 13.
  • cores 10, 11, 12, and 13, memories 50, 51, 52, and 53, software A (30), software B (31), and software C (32) are collectively referred to as a multi-core system 2 here.
  • the cores 20 and 21 of the control system 1A constitute a lock step (Lock-Step, LS). That is, the cores 20 and 21 share the memory 60 and operate the software P (34) in the core 21.
  • lockstep core system 3 This cores 20 and 21, memory 60, and software P (34) are collectively referred to as a lockstep core system 3 here.
  • the system control unit 6 shown in FIG. 13 includes the control output 100 from the core 10, the control output 101 from the core 11, the control output 102 from the core 12, the control output 103 from the core 13, the control output 111 from the core 20, and the core 21.
  • Control signal 110 to core 10 reset signal 70 to core 10, reset signal 71 to core 11, reset signal 72 to core 12, reset signal 73 to core 13, and switching control signal 81 to core 20.
  • the switching control signal 80 is output to the core 21, and the control outputs 104, 105, 106, 107, and 113 are output to the outside of the control system 1A.
  • the standard software description 405 generated by the software generation device 201 is written to the control system 1A from the memory writer 260 is the software C (32), and the degeneration generated by the software generation device 201 in the present embodiment.
  • the software description 406 written from the memory writer 261 to the control system 1A is the degenerate software C (35).
  • control system 1A of FIG. 13 an example in which an error occurs in the core 13 in the multi-core system 2 and the software C (32) becomes inoperable is shown.
  • the cores 20 and 21 are switched from the lockstep operation mode to the multi-core operation mode by the switching control signals 81 and 80 from the system control unit 6, and correspond to the software C (32).
  • Degenerate software C (35) is arranged in the memory 60.
  • control output 103 from the core 13 in which the error has occurred is not output as the control output 107 outside the control system 1A, and the control output 111 of the core 20 in which the degenerate software C (35) is operating is used as the control output 107. Output.
  • the standard function and the degeneration function can be implemented at low cost in the control system 1A in which the standard function and the degeneration function are realized by software.
  • FIG. 14 shows an example of the operation flow of the circuit generation device in the present embodiment.
  • the circuit generation device in this embodiment is different from the circuit generation device (shown in FIG. 1) in the first embodiment in that the function for generating the degenerate circuit description is replaced with the function for generating the degenerate software description. ing.
  • FIG. 15 shows an example when the circuit generation apparatus according to the present embodiment is applied to the development environment of the control system.
  • FIG. 15 is different from the first embodiment (shown in FIG. 11) in that the portion where the reduced circuit description is changed to the reduced software description is different from the portion where the FPGA (63) is changed to the lockstep core system. Yes.
  • the computer 290 and the display device 291 in FIG. 13 constitute the circuit generation device 202 in this embodiment.
  • the FPGA (62) of the control system 1B includes a standard circuit A (64), a standard circuit B (65), and a standard circuit C (66).
  • the standard circuit description 403 generated by the circuit generation device 202 is written to the control system 1B from the memory writer 260 is the standard circuit C (66), which is generated by the circuit generation device 202 in this embodiment.
  • the reduced software description 406 is written from the memory writer 261 to the control system 1B is the reduced software C (35).
  • control system 1B of FIG. 15 shows an example in which an error occurs in the standard circuit C (66) in the FPGA (62) and the standard circuit C (66) becomes inoperable.
  • the cores 20 and 21 are switched from the lockstep operation mode to the multi-core operation mode by the switching control signals 81 and 80 from the system control unit 6, and the standard circuit C ( 66), the degenerate software C (35) corresponding to 66) is arranged in the memory 60.
  • control output 103 from the standard circuit C (66) in which the error has occurred is not output to the outside of the control system 1B as the control output 107, and the control output 111 of the core 20 in which the degenerate software C (35) is operating is output. Output as control output 107.
  • the standard function and the degeneration function can be implemented at low cost in the control system 1B that realizes the standard function by hardware and the degeneration function by software. Become. In other words, the standard function and degeneration function of the system can be implemented regardless of hardware and software, so it is low for a board on which a combination of an FPGA and a microcontroller is mounted, or a device in which the FPGA and CPU are made into a 1-chip. It becomes possible to implement standard functions and degenerate functions in the cost.
  • FIG. 16 shows an example of the operation flow of the software generation apparatus in this embodiment.
  • the software generation apparatus according to the present embodiment is different from the software generation apparatus according to the second embodiment in that a function for generating a degenerate software description is replaced with a function for generating a degenerate circuit description.
  • FIG. 17 shows an example in which the software generation apparatus according to the present embodiment is applied to a control system development environment.
  • FIG. 17 differs from the second embodiment (shown in FIG. 13) in the portion where the degenerate software description is changed to the degenerate circuit description and the portion where the lockstep core system is changed to FPGA.
  • a computer 290 and a display device 291 in FIG. 17 constitute a software generation device 203 in this embodiment.
  • the FPGA (63) of the control system 1C includes a circuit P (67) and a degeneration circuit C (68).
  • the standard software description 405 generated by the software generation device 203 is written to the control system 1C from the memory writer 260 is the software C (32), and the degeneration generated by the software generation device 203 in this embodiment.
  • the circuit description 404 written from the memory writer 261 to the control system 1C is the degeneration circuit C (68).
  • control system 1C of FIG. 11 an example in which an error occurs in the core 13 in the multi-core system 2 and the software C (32) becomes inoperable is shown.
  • the degeneration circuit C (68) corresponding to the software C (32) is enabled by the switching control signals 81 and 80 from the system control unit 6 by the control output 103 from the core 13 in which the error has occurred.
  • control output 103 from the core 13 in which the error has occurred is not output as the control output 107 outside the control system 1C, but the control output 111 of the degeneration circuit C (68) is output as the control output 107.
  • the standard function and the degeneration function can be implemented at low cost in the control system 1C that realizes the standard function by software and the degeneration function by hardware. Become. That is, it is possible to mount the standard function and the degenerate function at a low cost even on a board on which a combination of an FPGA and a microcontroller is mounted, or on a device in which the FPGA and the CPU are 1-Chip.
  • FIG. 18 shows an example of the operation flow of the circuit generation device in the present embodiment. Compared with the operation flow in the first embodiment (shown in FIG. 1), the degeneration is performed in step S02 and step S10. The flow for extracting pragmas is different.
  • the circuit generator of this embodiment uses, for example, a pragma as shown in FIG.
  • pragma list 463 shown in FIG. 19 there are two examples of pragmas with tags of type and pragma name.
  • the type is high-reliability and the pragma name is pragma HLS reliable, and the type is degenerate and the pragma name is pragma HLS degenerate.
  • the behavioral description 450 in FIG. 20 is the same as the behavioral description 450 described in FIG. 4, but FIG. .
  • the behavior description 452 in FIG. 21 describes the function name accumulate_reliable related to the function name accumulate on the first line of the behavior description 450 on the first line, and the function name with the pragma name whose type is reliable on the second line. #Pragma HLS reliable accumulate; With this behavioral description 452 alone, it is possible to behaviorally synthesize a circuit whose function name accumulate defined in the behavioral description 450 is highly reliable.
  • the behavioral description 450 in FIG. 22 is the same as the behavioral description 450 described with reference to FIG. 4.
  • FIG. 23 shows an example of the behavioral description described using a degenerate pragma for the behavioral description 450.
  • the behavior description 453 of FIG. 23 describes the function name accumulate_generate related to the function name accumulate on the first line of the behavior description 450 on the first line, and the function name with the pragma name of the type degenerate on the second line. A certain #pragma HLS degenerate accumulate is described. With this behavioral description 453 alone, a circuit in which the function name accumulate defined in the behavioral description 450 is degenerated can be behaviorally synthesized. Note that, as shown in FIG. 24, the constraint condition (operation speed, area, accuracy) of the degeneration circuit may be specified by an argument of a pragma whose type is degeneration.
  • circuit generation device by preparing a dedicated pragma for generating a circuit, a designer can explicitly design a highly reliable circuit, a degenerate circuit, and the like.
  • FIG. 25 shows an example of the operation flow of the circuit generation apparatus in the present embodiment. Compared with the operation flow in the first embodiment (shown in FIG. 1), verification support information is added at the end of the flow. The difference is that the part to be generated is added.
  • step S05 after a degenerate circuit that satisfies the constraint conditions is generated, verification support information is generated in step S12, and verification support information 410 is output.
  • the verification support information 410 is information in a text file format used when determining whether the function of the degenerate circuit description 404 is compatible or valid with the function of the standard circuit description 403, and is commercially available. Used as input to other simulation tools.
  • the designer can easily design a degenerate circuit, and the design man-hour when designing a highly reliable system is reduced. It becomes possible to do.
  • the function of generating verification support information described in the present embodiment can be similarly implemented in a software generation apparatus.
  • FIGS. 26 and 27 show an example in which the circuit generation device 200 (shown in FIG. 11) in the first embodiment is applied to a system design tool.
  • a window 480 shown in FIG. 26 is an example of a GUI of a design tool used for circuit design.
  • a window 480 and a window 490 described later are displayed on the display device 291 (shown in FIG. 1) of the circuit generation device 200.
  • a menu button 481 at the top of the window 480 is clicked, a menu window 482 is opened, and there is a menu for setting a degenerate circuit specification.
  • the operation speed, area, and accuracy of the standard circuit are all set to 100, and the operation speed of the degeneration circuit is set to 95 or more, the area is set to 80 or less, and the accuracy is set to 75 or more. ing.
  • circuit generation device 200 by applying the circuit generation device 200 to a development tool in system design, a designer can easily design a degenerate circuit, and shorten the design man-hour when designing a highly reliable system. Is possible.
  • FIG. 28 shows an example in which the standard circuit and the degenerate circuit generated by the circuit generation device 200 (shown in FIG. 11) in the first embodiment are mounted on an in-vehicle system.
  • the interior of the automobile 500 is configured by connecting a plurality of electronic control units (Electronic Control Unit, ECU).
  • ECU Electronic Control Unit
  • the camera 501 is connected to the camera ECU (511)
  • the steering 502 is connected to the steering ECU (512)
  • the motor 503 is connected to the motor ECU (513)
  • Each ECU of the steer ECU (512) and the motor ECU (513) is connected to the integrated ECU (514), and performs a cooperative operation to perform control as an automobile.
  • the degeneration circuit C (68) in the integrated ECU (514) is operated instead of the standard circuit C (66) in the steering ECU (512).
  • the minimum operation that the steering ECU (512) was responsible for is continued, and the rotation of the front wheels 504 and the rear wheels 505 is continued or stopped according to the surrounding situation, thereby ensuring the safe operation of the automobile 500 as a whole. To do.
  • circuit generation device 200 As described above, by applying the circuit generation device 200 to the in-vehicle system, even when an error occurs in a part of the ECU constituting the automobile, a system that maintains safety while performing a degenerate operation as a whole automobile can be easily and lowly performed. It can be realized at cost.
  • FIG. 29 shows an example in which the standard circuit and the degenerate circuit generated by the circuit generation device 200 (shown in FIG. 11) in the first embodiment are mounted in the industrial control system.
  • the industrial control system includes a computer 600 that performs overall control of the system, a control controller 601 that is controlled by the computer 600, a programmable logic controller 602 that controls the control device 604, and a programmable logic controller 603 that controls the control device 605.
  • 601 and programmable logic controllers 602 and 603 are connected via a control network 606, respectively.
  • the degeneration circuit C (68) is replaced by the control controller 601 via the control network 606 instead of the standard circuit C (66) operating by the programmable logic controller 602.
  • the minimum operation that the programmable logic controller 602 is responsible for is continued, and the operation of the control device 604 is continued or safely stopped, thereby ensuring a safe operation for the entire industrial control system.
  • circuit generation device 200 by applying the circuit generation device 200 to an industrial control system, a system that maintains safety while performing a degenerate operation as a whole system even when an error occurs in some controllers that constitute the industrial control system. It can be realized easily and at low cost.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of a certain embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of a certain embodiment.
  • degenerate circuit result 410 ... verification support information, 470, 480, 490 ... window, 481 ... menu Button, 482 ... Menu window, 500 ... Automobile, 501 ... Camera, 502 ... Steer, 503 ... Motor, 504 ... Front wheel, 505 ... Rear wheel, 511 ... Camera ECU, 512 ... Steer ECU, 513 ... Motor ECU, 514 ... Integration ECU, 601 ... control controller, 602, 603 ... programmable logic controller, 604, 605 ... control equipment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することを可能とする回路生成装置及びソフトウェア生成装置を提供する。 システムの動作記述401に基づいて回路記述403を生成する第1の動作合成機能S03を備えた回路生成装置において、前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能S02と、前記縮退用パラメタの値を変更する縮退用パラメタ変更機能S06と、前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述404を生成する第2の動作合成機能S04と、前記縮退回路記述の性能が前記回路記述を基準とした制約条件を満たすか否かを判定する判定機能S05とを備え、前記判定機能で前記縮退回路記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第2の動作合成機能を実行する。

Description

回路生成装置及びソフトウェア生成装置
 本発明は、回路生成装置及びソフトウェア生成装置に関する。
 半導体プロセスの微細化に伴い、CPU(Central Processing Unit、中央演算処理装置)の高性能化や、RAM(Randam Access Memory、メモリ)及びFPGA(Field Programmable Gate Array、フィールドプログラマブルゲートアレイ)などの高速・大容量化が可能になってきた。
 これら半導体デバイスの進歩により、特に産業分野や自動車分野においては従来では成し得なかった様々な機能を実現するための取り組みが始まっている。例えば産業分野では現実世界に分散して配置した大量の装置から稼働データを収集して仮想世界上で分析し、より良い制御出力を現実世界へフィードバックさせるIoT(Internet of Things)への取り組みが盛んである。また自動車分野ではAI(Artificial Intelligence、人工知能)を自動車の制御装置に組込むことで、自動車システムに認識機能と制御機能を持たせて自動運転を実現しようとするための取り組みが行われている。
 このような産業システムや自動車システムにおいて、機能が高度化しシステムが複雑化していく場合に課題となるのは安全性と信頼性の確保である。特に人命が関わるシステムにおいて、システムの一部で異常や故障が発生した場合にその影響がシステム全体に波及して想定通りの制御ができなくなり、その結果人命が損なわれるようなシステムは許容されない。
 そのためこのようなシステムでは異常や故障が発生したことを検出し対策できる仕組みにすることが必要であり、一般的にはシステムを多重化することでシステムの一部で異常や故障が発生してもシステム全体が致命的にならないような仕組みが採られる。
 しかし、安全性や信頼性の観点でシステムを多重化するとコストが増加するため、例えば自動車のように量産性が重要視されるシステムにおいて冗長化によるコスト増加は好ましくない。そのため、標準機能を実現する部分を実装した上で、異常や故障の発生時には安全性を担保する最低限の機能を実現する縮退機能を実現する部分を実装するのが効果的な場合がある。
 しかしそのような場合においては、標準機能を作成する工数に加えて縮退機能を別途作成したり検証したりする工数がかかり、コストや設計期間の面で課題となる。
 本技術分野の背景技術として、例えば特許文献1には、集積回路上に実装される回路の動作が記述された動作レベル記述と制約条件とに基づいて、当該動作レベル記述に記述されている動作を実現するとともに当該制約条件を満たす回路を表現する中間レベル記述を生成する生成手段と、前記生成手段により生成された中間レベル記述を解析して、当該中間レベル記述のループ構造を特定する特定手段と、前記特定手段により特定されたループ構造と同じループ構造を有するいずれかの中間レベル記述について、シミュレーション済みであるか否かを判別する判別手段と、前記判別手段によりシミュレーション済みではないと判別された場合、前記生成手段により生成された中間レベル記述により表現される回路の動作をシミュレーションし、当該中間レベル記述に記述されている各処理を実行するのに要する個別実行サイクル数を求めるとともに、当該中間レベル記述に記述されている全ての処理を実行するのに要する総実行サイクル数を求める計測手段と、前記計測手段により求められた個別実行サイクル数と、前記特定手段により特定されたループ構造とを対応付けて記憶する記憶手段と、前記判別手段によりシミュレーション済みであると判別された場合、前記特定手段により特定されたループ構造と同じループ構造に対応付けられて前記記憶手段に記憶されている個別実行サイクル数に基づいて、前記生成手段により生成された中間レベル記述の総実行サイクル数を求める計算手段と、を備える動作合成装置の例が記載されている。
WO2011/007640号公報
 ところで、動作記述から中間レベルのループ構造を特定する従来の動作合成装置について、本発明者が検討した結果、以下のようなことが明らかとなった。
 特許文献1の例では、動作記述の中からループ構造を抽出してループ部分の実行サイクル性能を最適化する合成制約を探索する点が特徴として記載されているが、もとの動作記述から縮退機能を自動的に抽出するような内容については言及されておらず、本発明の課題である標準機能に加えて縮退機能を作成する際に工数が増大する点に対して活用することが困難であるという問題があった。
 本発明は、上記課題に鑑みてなされたものであり、その目的は、産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することを可能とする回路生成装置及びソフトウェア生成装置を提供することにある。
 上記目的を達成するために、本発明は、システムの動作記述に基づいて回路記述又はソフト記述を生成する第1の動作合成機能を備えた回路生成装置又はソフトウェア生成装置において、前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能と、前記縮退用パラメタの値を変更する縮退用パラメタ変更機能と、前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述又は縮退ソフト記述を生成する第2の動作合成機能と、前記縮退回路記述又は前記縮退ソフト記述の性能が前記回路記述又は前記ソフト記述を基準とした制約条件を満たすか否かを判定する判定機能とを備え、前記判定機能によって前記縮退回路記述又は前記ソフト記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第2の動作合成機能を実行するものとする。
 本発明によれば、産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することが可能になる。
本発明の第1の実施例における回路生成装置の動作の一例を示すフローチャートである。 図1のフローにおける制約条件の一例を示す図である。 図1のフローにおける制約条件の他の例を示す図である。 図1のフローにおける動作記述の一例を示す図である。 図1のフローにおける、縮退用パラメタを抽出するステップの詳細を示すフローチャートである。 図4のフローによって抽出されたパラメタの一覧を示す図である。 図1のフローにおける、縮退用パラメタを変更するステップの詳細を示すフローチャートである。 図7のフローによって変更された動作記述の一例を示す図である。 図1のフローにおける、縮退回路結果が標準回路結果を基準とした制約条件を満たすか否かを判定するステップの詳細を示すフローチャートである。 本発明の第1の実施例における回路生成装置のディスプレイ装置に表示されるGUI(Graphical User Interface)の一例を示す図である。 本発明の第1の実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示す図である。 本発明の第2の実施例におけるソフトウェア生成装置の動作の一例を示すフローチャートである。 本発明の第2の実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示す図である。 本発明の第3の実施例における回路生成装置の動作の一例を示すフローチャートである。 本発明の第3の実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示す図である。 本発明の第4の実施例におけるソフトウェア生成装置の動作の一例を示すフローチャートである。 本発明の第4の実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示す図である。 本発明の第5の実施例における回路生成装置の動作の一例を示すフローチャートである 本発明の第5の実施例における回路生成装置で使用するプラグマの一覧を示す図である。 図4に示したものと同じ動作記述である。 図20に示した動作記述に対し、タイプが高信頼のプラグマを使用した動作記述の一例を示す図ある。 図4に示したものと同じ動作記述である。 図22に示した動作記述に対し、タイプが縮退のプラグマを使用した動作記述の一例を示したものである。 図22に示した動作記述に対し、タイプが縮退のプラグマを使用した動作記述の他の例を示したものである。 本発明の第6の実施例における回路生成装置の動作の一例を示すフローチャートである。 本発明の第1の実施例における回路生成装置のディスプレイ装置に表示されるGUIの一例を示す図である。 本発明の第1の実施例における回路生成装置のディスプレイ装置に表示されるGUIの一例を示す図である。 本発明の第1の実施例における回路生成装置で生成した標準回路及び縮回路を車載システムに実装した場合の一例を示す図である。 本発明の第1の実施例における回路生成装置で生成した標準回路及び縮回路を産業制御システムに実装した場合の一例を示す図である。
 以下、本発明の実施例を、図面を用いて説明する。なお以下の説明では、システムの通常動作中に標準機能を実現する回路を標準回路、その設計記述を標準回路記述と呼び、標準機能を実現するソフトウェアを標準ソフト、その設計記述を標準ソフト記述と呼ぶ。またシステムで異常や故障が発生したときに縮退機能を実現する回路を縮退回路、その設計記述を縮退回路記述と呼び、縮退機能を実現するソフトウェアを縮退ソフト、その設計記述を縮退ソフト記述と呼ぶ。
 本発明の第1の実施例について、図1から図11を用いて説明する。
 図1は、本実施例における回路生成装置の動作の一例を示すフローチャートである。
 ステップS01から開始し、設計者は実装するシステムの動作記述401と、実装する縮退回路の目安となる制約条件402を用意する。
 ステップS03の動作合成によって、動作記述401から標準回路記述403と標準回路結果407が出力される。
 一方、ステップS02の縮退用パラメタ抽出を介したステップS04の動作合成によって、動作記述401から縮退回路記述404と縮退回路結果408が出力される。
 図1の回路生成装置のフローにより得られた縮退回路記述404と縮退回路結果408は、ステップS05にて標準回路記述403と標準回路結果407に対する制約条件402の許容範囲内であるかどうかが評価される。その結果、制約を満たした場合はステップS07に遷移して動作フローは終了となるが、制約を満たしていない場合はステップS06に遷移して縮退用パラメタ変更を実施し、ステップS04からステップS05までの動作フローを繰り返す。
 図2は、図1のフローにおける制約条件402の一例を示したものである。
 図2は、標準回路の動作速度(MHz)、回路面積(Area)、精度(Accuracy)をそれぞれ100に設定した上で、縮退回路の動作速度を標準回路の85%、回路面積を50%、精度を75%というように割合で表記したものである。
 一方、図3は、標準回路の動作速度、回路面積、精度の絶対値に対して縮退回路の動作速度、面積、精度も絶対値で表記したものであり、各項目に対して異なる単位を設定している。このように、縮退回路の制約条件は様々な形式で設定することができる。また縮退回路の制約条件を設定するフォーマットは、表形式でも、テキスト形式でも、カンマ区切りの形式などでもよい。
 図4は、図1のフローにおける動作記述401の一例を示したものである。
 図4に示した動作記述450の表記において、int32は32ビットの符号付き整数型であることを示す。同様にint64は64ビットの符号付き整数型であることを示す。
 動作記述450の1行目では64ビットの関数accumulateを定義している。この関数は、32ビットで配列のサイズが4の変数a、bをそれぞれ入力とする。
 動作記述450の2行目では、関数accumulate内でローカルに使用する、64ビットで配列のサイズが4の変数cを定義している。
 動作記述450の3行目と4行目では、関数accumulate内でローカルに使用する、64ビットの変数dと32ビットの変数iをそれぞれ定義している。
 動作記述450の6行目から8行目では、ローカル変数iの値が0から4未満の間で4回繰り返すforループ文を記述している。7行目において配列aと配列bの積を配列cに代入する処理を記述している。
 動作記述450の10行目から12行目では、ローカル変数iの値が0から4未満の間で4回繰り返す別のforループ文を記述している。11行目において配列cの値をローカル変数dに加算する処理を記述している。
 動作記述450の14行目では、関数accumulateの処理で得られた変数dの値を出力して終了する処理を記述している。
 図5は、図1のフローにおける、縮退用パラメタを抽出するステップ(ステップS02)の詳細を示したものであるである。
 ステップS30にて動作記述ファイルをオープンする。
 ステップS31にてオープンした動作記述ファイルの記述が最後であった場合は終了となりステップS38に遷移して動作記述ファイルをクローズするが、記述が最後でない場合はステップS32へ遷移して動作記述を1行読み込む。
 ステップS33にて読み込んだ記述1行が行の最後であった場合は次の行を調べるためステップS37へ遷移するが、行の最後でない場合はステップS34でトークンを読み込む。
 ステップS35にて読み込んだトークンが予め決められたパラメタと一致していない場合は次の行を調べるためステップS33へ遷移するが、パラメタと一致した場合はステップS36にてパラメタ一覧表へ追加し、ステップS33へ遷移して動作記述の次のトークンがあるか調べる。このようにして、動作記述の最後になるまで図5のフローを繰り返す。
 図6は、図5のステップS36で作成するパラメタ一覧表の一例を示したものである。
 パラメタ一覧表462の各列は、左から順に行番号(Line)、分類(Category)、型(Type)、名前(Name)、大きさ(Size)を表す。
 このパラメタ一覧表462は図4に示した動作記述450に対応しており、動作記述450の1行目(Line=1)に、出力(Category=output)する64ビット型(Type=int64)の関数名accumulate(Name=accumulate)が大きさ1(Size=1)であることを示しており、これらは動作記述450からステップS02の縮退用パラメタ抽出によって抽出されたものである。
 同様に、パラメタ一覧表462は動作記述450の1行目(Line=1)に、入力(Category=input)する32ビット型(Type=int32)の変数名a(Name=a)が配列サイズ4(Size=4)であることを示しており、これらも動作記述450からステップS02の縮退用パラメタ抽出によって抽出されたものである。以下、パラメタ一覧表462の他の行についても同様である。
 図7は、図1のフローにおける、縮退用パラメタを変更するステップ(ステップS06)の詳細を示したものである。
 ステップS40にて縮退回路が標準回路を基準とした制約条件からどの程度乖離しているかを示した判定結果を読み込む。
 判定結果を読み込んだ結果、ステップS41にて前回の判定結果より悪化していなければ、ステップS44に遷移して前回のパラメタを変更するが、前回の判定結果より悪化している場合は、ステップS42に遷移してパラメタの値を元に戻した上でステップS43に遷移して別のパラメタの値を変更し、又はステップS42には遷移せずにステップS43に遷移して別のパラメタの値を変更する処理を行う。
 パラメタの変更が終わったらステップS45にて変更内容を動作合成記述に出力する。
 図8は、図7のフローによって変更された動作記述の一例を示したものである。
 図8に示した動作記述451の表記において、int16は16ビットの符号付き整数型であることを示す。同様にint3は3ビットの符号付き整数型であることを示す。
 図8の動作記述451は、図4に示した動作記述450と比較して、1行目のint64だった箇所がint32に、int32だった箇所がint16に、2行目のint64だった箇所がint32に、3行目のint64だった箇所がiint32に、4行目のint32だった箇所がint3に、6行目から8行目のforループ文だった箇所が6行目から9行目の逐次型処理文になっている部分がそれぞれ異なっている。
 図9は、図1のフローにおける、縮退回路結果が標準回路結果を基準とした制約条件を満たすか否かを判定するステップ(ステップS05)の詳細を示したものである。
 図9のフローの例において、制約条件402には、動作速度制約411、面積制約414、精度制約417が含まれる。
 また、標準回路結果407には、標準性能412、標準面積415、標準精度418が含まれる。
 また、縮退回路結果408には、縮退性能413、縮退面積416、縮退精度419が含まれる。
 図9のフローの例ではまずステップS21にて動作速度制約411、標準性能412、縮退性能413から縮退性能が標準性能の許容範囲からどの程度乖離しているかを判定し、ステップS22にて動作速度制約411の許容範囲内でなかった場合はフローを終了して再び回路生成に戻る。
 ステップS23にて面積制約414、標準面積415、縮退面積416から縮退面積が標準面積の許容範囲からどの程度乖離しているかを判定し、ステップS24にて面積制約414の許容範囲でなかった場合はフローを終了して再び回路生成に戻る。
 ステップS25にて精度制約417、標準精度418、縮退精度419から縮退精度が標準精度の許容範囲からどの程度乖離しているかを判定し、ステップS26にて精度制約417の許容範囲でなかった場合はフローを終了して再び回路生成に戻る。
 ステップS22,S24,S26のいずれにおいても制約条件の許容範囲であった場合はこのときの縮退回路記述と縮退回路結果を使用することとし、フローを終了する。
 また図9では動作速度、面積、精度の順で判定する例を示したが、判定の順番はこの限りではない。
 図10は、本実施例における回路生成装置のディスプレイ装置291(図11に示す)に表示されるGUI(Graphical User Interface)の一例を示したものである。
 図10のウィンドウ470は、回路生成装置における標準回路、縮退回路、制約条件の情報を表示する。
 このウィンドウ470の例が示すグラフでは、横軸にビット幅、縦軸に動作速度をとり、動作速度の軸の途中に制約ライン471がある。
 回路生成装置によって得られた32ビットでの標準回路の動作速度の標準結果472がグラフ上にプロットされている。
 一方、30ビットに減らした場合の縮退回路の動作速度の縮退結果473がグラフ上に表示されている。同様に、24ビットに減らした場合の縮退回路の動作速度の縮退結果474、20ビットに減らした場合の縮退回路の動作速度の縮退結果475が表示され、縮退結果473,474,475はまとめて縮退結果一覧476として表示されている。
 このウィンドウ470の例ではビット幅を30ビット、24ビット、20ビットと小さくしていった範囲での縮退回路はいずれも制約ライン471を上回っているが、次の16ビットで縮退回路を構成する場合の縮退予想477は制約ライン471を下回る見込みであることを示している。
 また図10の例ではビット幅と動作速度の関係性をGUIに表示した例を示したが、内容はこの限りではなく、ほかのパラメタや制約との関係性をGUIに表示してもよい。
 図11は、本実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図11のコンピュータ290とディスプレイ装置291は、本実施例における回路生成装置200を構成している。コンピュータ290には、メモリライタ260,261が接続されており、メモリライタ260,261は、それぞれポート250,251を介して制御システム1と接続している。
 図11の例では、回路生成装置200で生成した標準回路記述403をメモリライタ260から制御システム1に書き込んだものが標準回路C(66)であり、回路生成装置200で生成した縮退回路記述404をメモリライタ261から制御システム1に書き込んだものが縮退回路C(68)である。
 またこの図11の制御システム1では、FPGA(62)内の標準回路C(66)でエラーが発生し標準回路C(66)が動作不可になった例を示している。
 エラーが発生した標準回路C(66)からの制御出力103により、システム制御部6からの切り替え制御信号81、80により標準回路C(66)に対応した縮退回路C(63)が有効になる。
 このとき、エラーが発生した標準回路C(66)からの制御出力103は制御システム1の外部に制御出力107として出力せず、縮退回路C(68)の制御出力111を制御出力107として出力する。
 このように、本実施例における回路生成装置200では、標準機能及び縮退機能がハードウェアで実現される制御システム1において、標準機能と縮退機能を低コストで実装することが可能になる。
 また、ディスプレイ装置291によって標準機能に対する縮退機能の実現度を設計者が逐一GUIで確認できるため、縮退機能が意図しない性能になりそうな場合は事前に設計を変更することができ、縮退機能を実装するための設計工数を削減することが可能になる。
 本発明の第2の実施例について、図12及び図13を用いて説明する。
 第1の実施例では、単一の動作記述から標準機能を実現するハードウェア(回路記述)と縮退機能を実現するハードウェア(縮退回路記述)を生成する回路生成装置について説明したが、標準機能及び縮退機能がソフトウェアで実装される場合がある。本実施例では、単一の動作記述から標準機能を実現するソフト記述(標準ソフト記述)と縮退機能を実現するソフト記述(縮退ソフト記述)とを生成するソフトウェア生成装置について説明する。
 図12は、本実施例におけるソフトウェア生成装置の動作フローの一例を示したものである。本実施例における回路生成装置は、第1の実施例における動作フロー(図1に示す)と比較して、標準回路記述を生成する機能を標準ソフト記述を生成する機能に置き換えた点と、縮退回路記述を生成する機能を縮退ソフト記述を生成する機能に置き換えた点とで異なっている。
 図13は、本実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図13は、第1の実施例(図11に示す)と比較して、標準回路記述を標準ソフト記述に変更した部分と、縮退回路記述を縮退ソフト記述に変更した部分と、FPGA(62)をマルチコアシステムに変更した部分と、FPGA(63)をロックステップコアシステムに変更した部分とが異なっている。図13のコンピュータ290とディスプレイ装置291は、本実施例におけるソフトウェア生成装置201を構成している。
 制御システム1Aは、コア10,11,12,13の4つのコアがマルチコア構成を採っている。
 コア10はメモリ50と接続しメモリ50にコア10のソフトを配置して処理を行う。同様にコア11はメモリ51と、コア12はメモリ52と、コア13はメモリ53とそれぞれ接続しそれぞれのソフトをメモリに配置して処理を行う。
 図13の例では、ソフトA(30)はメモリ50,51に配置されてコア10,11でマルチコア動作する。一方、ソフトB(31)はメモリ52にのみ配置されてコア12で動作し、同様にソフトC(32)もメモリ53のみに配置されてコア13で動作する。
 これらのコア10,11,12,13、メモリ50,51,52,53、ソフトA(30)、ソフトB(31)、ソフトC(32)を纏めてここではマルチコアシステム2とする。
 制御システム1Aのコア20,21は、ロックステップ(Lock-Step、LS)を構成している。すなわち、コア20,21はメモリ60を共有し、コア21でソフトP(34)を動作させる。
 これらのコア20,21、メモリ60、ソフトP(34)を纏めてここではロックステップコアシステム3とする。
 更に、図13に示したシステム制御部6は、コア10から制御出力100、コア11から制御出力101、コア12から制御出力102、コア13から制御出力103、コア20から制御出力111、コア21から制御出力110をそれぞれ入力とし、コア10に対しリセット信号70、コア11に対しリセット信号71、コア12に対しリセット信号72、コア13に対しリセット信号73、コア20に対し切り替え制御信号81、コア21に対し切り替え制御信号80をそれぞれ出力し、更に制御出力104,105,106,107,113を制御システム1A外部へ出力する。
 図13の例では、ソフトウェア生成装置201で生成した標準ソフト記述405をメモリライタ260から制御システム1Aに書き込んだものがソフトC(32)であり、本実施例におけるソフトウェア生成装置201で生成した縮退ソフト記述406をメモリライタ261から制御システム1Aに書き込んだものが縮退ソフトC(35)である。
 またこの図13の制御システム1Aでは、マルチコアシステム2内のコア13でエラーが発生しソフトC(32)が動作不可になった例を示している。
 エラーが発生したコア13からの制御出力103により、システム制御部6からの切り替え制御信号81,80によりコア20,21はロックステップ動作モードからマルチコア動作モードに切り替わり、ソフトC(32)に対応した縮退ソフトC(35)がメモリ60に配置される。
 このとき、エラーが発生したコア13からの制御出力103は制御システム1Aの外部に制御出力107として出力せず、縮退ソフトC(35)が動作中のコア20の制御出力111を制御出力107として出力する。
 このように、本実施例におけるソフトウェア生成装置201では、標準機能及び縮退機能がソフトウェアで実現される制御システム1Aにおいて、標準機能と縮退機能を低コストで実装することが可能になる。
 本発明の第3の実施例について、図14及び図15を用いて説明する。
 図14は、本実施例における回路生成装置の動作フローの一例を示したものである。本実施例における回路生成装置は、第1の実施例における回路生成装置(図1に示す)と比較して、縮退回路記述を生成する機能を縮退ソフト記述を生成する機能に置き換えた点で異なっている。
 図15は、本実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図15は、第1の実施例(図11に示す)と比較して、縮退回路記述を縮退ソフト記述に変更した部分と、FPGA(63)をロックステップコアシステムに変更した部分とが異なっている。図13のコンピュータ290とディスプレイ装置291は、本実施例における回路生成装置202を構成している。
 制御システム1BのFPGA(62)は、標準回路A(64)、標準回路B(65)、標準回路C(66)から成る。
 図15の例では、回路生成装置202で生成した標準回路記述403をメモリライタ260から制御システム1Bに書き込んだものが標準回路C(66)であり、本実施例における回路生成装置202で生成した縮退ソフト記述406をメモリライタ261から制御システム1Bに書き込んだものが縮退ソフトC(35)である。
 またこの図15の制御システム1Bでは、FPGA(62)内の標準回路C(66)でエラーが発生し標準回路C(66)が動作不可になった例を示している。
 エラーが発生した標準回路C(66)からの制御出力103により、システム制御部6からの切り替え制御信号81,80によりコア20,21はロックステップ動作モードからマルチコア動作モードに切り替わり、標準回路C(66)に対応した縮退ソフトC(35)がメモリ60に配置される。
 このとき、エラーが発生した標準回路C(66)からの制御出力103は制御システム1Bの外部に制御出力107として出力せず、縮退ソフトC(35)が動作中のコア20の制御出力111を制御出力107として出力する。
 このように、本実施例における回路生成装置202では、標準機能をハードウェアで実現しかつ縮退機能をソフトウェアで実現する制御システム1Bにおいて、標準機能と縮退機能を低コストで実装することが可能になる。すなわち、システムの標準機能と縮退機能をハードウェアとソフトウェアを問わずに実装できるため、FPGAとマイクロコントローラを組み合わせて実装した基板や、FPGAとCPUが1-Chip化したデバイスなどに対しても低コストに標準機能と縮退機能を実装することが可能になる。
 本発明の第4の実施例について、図16及び図17を用いて説明する。
 図16は、本実施例におけるソフトウェア生成装置の動作フローの一例を示したものである。本実施例におけるソフト生成装置は、第2の実施例におけるソフトウェア生成装置と比較して、縮退ソフト記述を生成する機能を縮退回路記述を生成する機能に置き換えた点で異なっている。
 図17は、本実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図17は、第2の実施例(図13に示す)と比較して、縮退ソフト記述を縮退回路記述に変更した部分と、ロックステップコアシステムをFPGAに変更した部分とが異なっている。図17のコンピュータ290とディスプレイ装置291は、本実施例におけるソフトウェア生成装置203を構成している。
 制御システム1CのFPGA(63)は、回路P(67)と縮退回路C(68)から成る。
 図17の例では、ソフトウェア生成装置203で生成した標準ソフト記述405をメモリライタ260から制御システム1Cに書き込んだものがソフトC(32)であり、本実施例におけるソフトウェア生成装置203で生成した縮退回路記述404をメモリライタ261から制御システム1Cに書き込んだものが縮退回路C(68)である。
 またこの図11の制御システム1Cでは、マルチコアシステム2内のコア13でエラーが発生しソフトC(32)が動作不可になった例を示している。
 エラーが発生したコア13からの制御出力103により、システム制御部6からの切り替え制御信号81,80によりソフトC(32)に対応した縮退回路C(68)が有効になる。
 このとき、エラーが発生したコア13からの制御出力103は制御システム1Cの外部に制御出力107として出力せず、縮退回路C(68)の制御出力111を制御出力107として出力する。
 このように、本実施例におけるソフトウェア生成装置203では、標準機能をソフトウェアで実現しかつ縮退機能をハードウェアで実現する制御システム1Cにおいて、標準機能と縮退機能を低コストで実装することが可能になる。すなわち、FPGAとマイクロコントローラを組み合わせて実装した基板や、FPGAとCPUが1-Chip化したデバイスなどに対しても低コストに標準機能と縮退機能を実装することが可能になる。
 本発明の第5の実施例について、図18から図24を用いて説明する。
 図18は、本実施例における回路生成装置の動作フローの一例を示したものであり、第1の実施例における動作フロー(図1に示す)と比較して、ステップS02ステップS10にて縮退用プラグマを抽出するフローが異なっている。
 ステップS10で縮退用プラグマ抽出を実行するために、本実施例の回路生成装置では例えば図19に示すようなプラグマを使用する。
 図19に示したプラグマ一覧表463には、タイプとプラグマ名のタグが付いた2つのプラグマの例がある。タイプが高信頼でプラグマ名がpragma HLS reliableと、タイプが縮退でプラグマ名がpragma HLS degenerateである。
 図20の動作記述450は図4で説明した動作記述450と同じものであるが、この動作記述450に対し、タイプが高信頼のプラグマを使用して記述した動作記述の一例が図21である。
 図21の動作記述452は、動作記述450の1行目の関数名accumulateに関連した関数名accumulate_reliableを1行目に記載し、2行目にはタイプが高信頼のプラグマ名ともとの関数名である#pragma HLS reliable accumulate;を記載している。この動作記述452だけで、動作記述450で定義した関数名accumurateを高信頼化した回路を動作合成できる。
 図22の動作記述450も図4で説明した動作記述450と同じものであるが、この動作記述450に対し、タイプが縮退のプラグマを使用して記述した動作記述の一例が図23である。
 図23の動作記述453は、動作記述450の1行目の関数名accumulateに関連した関数名accumulate_degenerateを1行目に記載し、2行目にはタイプが縮退のプラグマ名ともとの関数名である#pragma HLS degenerate accumulate;を記載している。この動作記述453だけで、動作記述450で定義した関数名accumurateを縮退した回路を動作合成できる。なお、図24に示すように、タイプが縮退のプラグマの引数で縮退回路の制約条件(動作速度、面積、精度)を指定しても良い。
 このように、本実施例における回路生成装置では、回路を生成するための専用プラグマを用意することで、設計者が明示的に高信頼回路や縮退回路などの設計を行うことが可能になる。
 本発明の第6の実施例について、図25を用いて説明する。
 図25は、本実施例における回路生成装置の動作フローの一例を示したものであり、第1の実施例における動作フロー(図1に示す)と比較して、フローの最後に検証支援情報を生成する部分を追加した点が異なっている。
 ステップS05において、制約条件を満たす縮退回路が生成された後、ステップS12にて検証支援情報を生成し、検証支援情報410を出力する。
 この検証支援情報410は、縮退回路記述404の機能が標準回路記述403の機能と互換性もしくは妥当性を持っているかどうかをシミュレーションにて判定する際に使用するテキストファイル形式の情報であり、市販のシミュレーションツールなどへの入力として使用する。
 このように、本実施例における回路生成装置では、検証支援情報を生成することで、設計者が容易に縮退回路の設計を行うことができ、高信頼なシステムを設計する際の設計工数を短縮することが可能になる。なお、本実施例で説明した検証支援情報を生成する機能は、ソフトウェア生成装置にも同様に実装することが可能である。
 本発明の第7の実施例について、図26及び図27を用いて説明する。
 図26及び図27は、第1の実施例における回路生成装置200(図11に示す)をシステム設計ツールに適用した場合の一例を示したものである。
 図26に示したウィンドウ480は、回路設計で使用する設計ツールのGUIの一例である。ウィンドウ480及び後述するウィンドウ490は、回路生成装置200のディスプレイ装置291(図1に示す)に表示される。
 ウィンドウ480の上部にあるメニューボタン481をクリックするとメニューウィンドウ482が開き、ここでは縮退回路仕様設定のメニューがある。
 この縮退回路仕様設定のメニューをクリックすると図27に示したようなウィンドウ490が開き、これは縮退回路の仕様設定で使用するGUIの一例である。
 このウィンドウ490の例では、標準回路の動作速度、面積、精度をいずれも100に設定した上で、縮退回路の動作速度を95以上、面積を80以下、精度を75以上にすることを設定している。
 このように、回路生成装置200をシステム設計における開発ツールに適用することで、設計者が容易に縮退回路の設計を行うことができ、高信頼なシステムを設計する際の設計工数を短縮することが可能になる。
 本発明の第8の実施例について、図28を用いて説明する。
 図28は、第1の実施例における回路生成装置200(図11に示す)で生成した標準回路及び縮退回路を車載システムに実装した場合の一例を示したものである。
 自動車500の内部は複数の電子制御ユニット(Electronic Control Unit、ECU)を接続した形で構成している。
 この自動車500では、カメラ501がカメラECU(511)と接続し、ステア502がステアECU(512)と接続し、モーター503がモーターECU(513)と接続しており、さらにカメラECU(511)、ステアECU(512)、モーターECU(513)の各ECUはそれぞれ統合ECU(514)と接続し、協調動作することで自動車としての制御を行う。
 この構成において、例えばステアECU(512)でエラーが発生した場合、ステアECU(512)内にある標準回路C(66)に代わり、統合ECU(514)内の縮退回路C(68)を動作させることで、ステアECU(512)が担っていた最低限の動作を継続し、周囲の状況に応じて前輪504と後輪505の回転を継続もしくは停止させることで自動車500全体としては安全動作を担保する。
 このように、回路生成装置200を車載システムに適用することで、自動車を構成するECUの一部にエラーが発生した場合でも、自動車全体として縮退動作をしながら安全性を保つシステムを容易かつ低コストに実現することが可能になる。
 本発明の第9の実施例について、図29を用いて説明する。
 図29は、第1の実施例における回路生成装置200(図11に示す)で生成した標準回路及び縮退回路を産業制御システムに実装した場合の一例を示したものである。
 この産業制御システムは、システムを統括制御するコンピュータ600、コンピュータ600によって制御する制御コントローラ601、制御機器604を制御するプログラマブルロジックコントローラ602、制御機器605を制御するプログラマブルロジックコントローラ603で構成し、制御コントローラ601、プログラマブルロジックコントローラ602,603はそれぞれ制御ネットワーク606を介して接続している。
 この構成において、例えばプログラマブルロジックコントローラ602でエラーが発生した場合、プログラマブルロジックコントローラ602で動作する標準回路C(66)に代えて、制御ネットワーク606を介して制御コントローラ601で縮退回路C(68)を動作させることで、プログラマブルロジックコントローラ602が担っていた最低限の動作を継続し、制御機器604の動作を継続もしくは安全に停止させることで、産業制御システム全体としては安全動作を担保する。
 このように、回路生成装置200を産業制御システムに適用することで、産業制御システムを構成する一部のコントローラにエラーが発生した場合でも、システム全体として縮退動作をしながら安全性を保つシステムを容易かつ低コストに実現することが可能になる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 1,1A,1B,1C…制御システム、2…マルチコアシステム、3…ロックステップコアシステム、10,11,12,13,20,21…コア、50,51,52,53,60…メモリ、62,63…FPGA(フィールドプログラマブルゲートアレイ)、200,202…回路生成装置、201,203…ソフトウェア生成装置、260,261…メモリライタ、290,600…コンピュータ、291…ディスプレイ装置、401,450,451,452,453…動作記述、402…制約条件、403…標準回路記述、404…縮退回路記述、405…標準ソフト記述、406…縮退ソフト記述、407…標準回路結果、408…縮退回路結果、410…検証支援情報、470,480,490…ウィンドウ、481…メニューボタン、482…メニューウィンドウ、500…自動車、501…カメラ、502…ステア、503…モーター、504…前輪、505…後輪、511…カメラECU、512…ステアECU、513…モーターECU、514…統合ECU、601…制御コントローラ、602,603…プログラマブルロジックコントローラ、604,605…制御機器。

Claims (7)

  1.  システムの動作記述に基づいて回路記述又はソフト記述を生成する第1の動作合成機能を備えた回路生成装置又はソフトウェア生成装置において、
     前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能と、
     前記縮退用パラメタの値を変更する縮退用パラメタ変更機能と、
     前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述又は縮退ソフト記述を生成する第2の動作合成機能と、
     前記縮退回路記述又は前記縮退ソフト記述の性能が前記回路記述又は前記ソフト記述を基準とした制約条件を満たすか否かを判定する判定機能とを備え、
     前記判定機能で前記縮退回路記述又は前記ソフト記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第2の動作合成機能を実行する
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  2.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     前記制約条件は、動作速度、回路面積、精度の少なくとも1つを含む
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  3.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     前記縮退用パラメタ抽出機能は、前記動作記述を1行ずつ読み込み、前記動作記述の最後に至るまでに前記縮退用パラメタが含まれていればパラメタ一覧表に追加する機能を有する
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  4.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     前記縮退用パラメタ変更機能は、前記縮退回路記述又は前記縮退ソフト記述の性能が前記制約条件を満たさない場合に、前記性能が前記制約条件からどの程度乖離しているかを判定し、前記縮退回路記述又は前記縮退ソフト記述の性能が前記制約条件を満たさず、かつ前記制約条件からの乖離が前回よりも大きくなった場合に、縮退用パラメタの値を前回の値に戻した上で別の縮退用パラメタの値を変更するか、又は縮退用パラメタの値を前回の値に戻すことなく別の縮退用パラメタの値を変更する
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  5.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     前記動作記述から縮退用プラグマを抽出する縮退用プラグマ抽出機能を有し、
     前記縮退用プラグマ抽出機能によって前記動作記述から前記縮退用プラグマが抽出された場合に前記第2の動作合成機能を実行する
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  6.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     前記判定機能を実行した後に前記縮退回路記述又は前記縮退ソフト記述の検証支援情報を生成する検証支援情報生成機能を備えた
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
  7.  請求項1に記載の回路生成装置又はソフトウェア生成装置において、
     ディスプレイ装置を更に備え、
     前記ディスプレイ装置は、前記制約条件と、前記回路記述又は前記ソフト記述の性能と、前記縮退回路記述又は前記縮退ソフト記述の性能とを表示する
     ことを特徴とする回路生成装置又はソフトウェア生成装置。
PCT/JP2018/008318 2018-03-05 2018-03-05 回路生成装置及びソフトウェア生成装置 WO2019171428A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2018/008318 WO2019171428A1 (ja) 2018-03-05 2018-03-05 回路生成装置及びソフトウェア生成装置
US16/755,705 US11232245B2 (en) 2018-03-05 2018-03-05 Circuit generation device and software generation device
JP2020504492A JP6850395B2 (ja) 2018-03-05 2018-03-05 回路生成装置及びソフトウェア生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/008318 WO2019171428A1 (ja) 2018-03-05 2018-03-05 回路生成装置及びソフトウェア生成装置

Publications (1)

Publication Number Publication Date
WO2019171428A1 true WO2019171428A1 (ja) 2019-09-12

Family

ID=67846492

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/008318 WO2019171428A1 (ja) 2018-03-05 2018-03-05 回路生成装置及びソフトウェア生成装置

Country Status (3)

Country Link
US (1) US11232245B2 (ja)
JP (1) JP6850395B2 (ja)
WO (1) WO2019171428A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010238054A (ja) * 2009-03-31 2010-10-21 Mitsubishi Electric Corp 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム
WO2011007640A1 (ja) * 2009-07-15 2011-01-20 日本電気株式会社 動作合成装置、動作合成方法、ならびに、記録媒体
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002354008A (ja) * 2001-05-23 2002-12-06 Mitsubishi Electric Corp 縮退コード自動生成回路
JP4239008B2 (ja) * 2004-07-08 2009-03-18 日本電気株式会社 情報処理方法、情報処理装置およびプログラム
US8024715B2 (en) * 2006-06-29 2011-09-20 Intel Corporation Method and apparatus for detecting transient faults via dynamic binary translation
US8166427B1 (en) * 2007-03-09 2012-04-24 Altera Corporation Tracing and reporting registers removed during synthesis
US20170068764A1 (en) * 2014-04-07 2017-03-09 Mitsubishi Electric Corporation Circuit design device and circuit design program
JP6356726B2 (ja) * 2016-05-19 2018-07-11 ファナック株式会社 ラダープログラム解析装置
US10607039B1 (en) * 2017-11-27 2020-03-31 Cadence Design Systems, Inc. Constrained metric optimization of a system on chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010238054A (ja) * 2009-03-31 2010-10-21 Mitsubishi Electric Corp 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム
WO2011007640A1 (ja) * 2009-07-15 2011-01-20 日本電気株式会社 動作合成装置、動作合成方法、ならびに、記録媒体
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム

Also Published As

Publication number Publication date
US11232245B2 (en) 2022-01-25
JP6850395B2 (ja) 2021-03-31
JPWO2019171428A1 (ja) 2020-10-22
US20210200926A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
JP4749414B2 (ja) 組み込まれたシステムの実証方法
EP1825360A2 (en) Method and systems for anomaly detection
US20100333061A1 (en) Explicit state model checking of sl/sf models using the auto-generated code
Muller-Glaser et al. Multiparadigm modeling in embedded systems design
JP2014203314A (ja) Ecuシミュレーション装置
JP5714543B2 (ja) 自己監視機能を備えたコンピュータ、監視プログラム
US10860298B2 (en) Method and system for editing a block diagram model
CN111178512B (zh) 器件运行神经网络的测试方法及装置
CN111985055B (zh) 一种模型封装方法、装置及电子设备
US20050080593A1 (en) Model-based diagnostic interface
WO2019171428A1 (ja) 回路生成装置及びソフトウェア生成装置
US5966516A (en) Apparatus for defining properties in finite-state machines
Fabarisov et al. Model-based stochastic error propagation analysis for cyber-physical systems
Arifin et al. Hatley‐Pirbhai Control Flow Diagram with SysML for Early Validation
Wozniak et al. A guidance framework for the generation of implementation models in the automotive domain
CN114201937A (zh) 用于基于模型测试技术系统的方法、设备和计算机程序
Nechypurenko et al. Application of aspect-based modeling and weaving for complexity reduction in the development of automotive distributed realtime embedded system
Franco et al. Model-based functional safety for the embedded software of automobile power window system
US20130198709A1 (en) Verification Test Set and Test Bench Map Maintenance
Shaout et al. Automotive embedded systems-model based approach review.
Makartetskiy et al. An Overview of software-based support tools for ISO26262
KR102601979B1 (ko) 소프트웨어 프로그램을 검증하는 방법 및 장치
Shaout et al. Model based Approach for Automotive Embedded Systems
CN116362060B (zh) 一种系统仿真模型自动生成方法、装置及设备
JP7233611B2 (ja) 製造システム設計検証装置

Legal Events

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

Ref document number: 18908324

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020504492

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

Country of ref document: EP

Kind code of ref document: A1