WO2013175559A1 - 検証支援プログラム、検証支援方法、および検証支援装置 - Google Patents

検証支援プログラム、検証支援方法、および検証支援装置 Download PDF

Info

Publication number
WO2013175559A1
WO2013175559A1 PCT/JP2012/062970 JP2012062970W WO2013175559A1 WO 2013175559 A1 WO2013175559 A1 WO 2013175559A1 JP 2012062970 W JP2012062970 W JP 2012062970W WO 2013175559 A1 WO2013175559 A1 WO 2013175559A1
Authority
WO
WIPO (PCT)
Prior art keywords
verification
module
circuit
information
character string
Prior art date
Application number
PCT/JP2012/062970
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 JP2014516543A priority Critical patent/JPWO2013175559A1/ja
Priority to PCT/JP2012/062970 priority patent/WO2013175559A1/ja
Publication of WO2013175559A1 publication Critical patent/WO2013175559A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Definitions

  • the present invention relates to a verification support program, a verification support method, and a verification support apparatus.
  • a conventional technology is disclosed in which a macro change date and a verification date are compared, and a macro that has a newer change date is re-executed to verify the inside of the macro and the net connected to the macro. Further, there is disclosed a conventional technique in which a physical verification error displayed in the past is compared with an error that has been physically verified again, and only a portion having a difference is displayed.
  • the upper layer modules include the lower layer modules.
  • the change in the lower layer module may affect the connection relationship and operation of the upper layer module. Therefore, if only the lower-level module is verified, a verification failure may occur.
  • the present invention aims to improve verification accuracy.
  • circuit information of a circuit to be verified configured by a layered module group is acquired, and any module other than the highest layer among the module groups of the acquired circuit information is updated. It is determined whether or not the date and time is a date and time that is newer than the update date and time of the upper layer module of any one of the modules.
  • the module is updated to the update date and time of the module, and as a result of the change, a verification support program, a verification support method for determining a module whose update date and time is newer than the verification date and time of execution of the verification among the module group, a verification support method, And a verification support device is proposed.
  • FIG. 1 is an explanatory diagram illustrating an example of verification support by the verification support apparatus according to the present embodiment.
  • FIG. 2 is an explanatory diagram (part 1) illustrating a modification example of the verification result.
  • FIG. 3 is an explanatory diagram (part 2) of a modification example of the verification result.
  • FIG. 4 is a block diagram illustrating a hardware configuration example of the verification support apparatus.
  • FIG. 5 is a block diagram of a functional configuration example of the verification support apparatus 400 according to the first embodiment.
  • FIG. 6 is a circuit diagram showing an example of the old circuit 100a.
  • FIG. 7 is a circuit diagram showing an example of the current circuit 100b.
  • FIG. 8 is an explanatory diagram illustrating an example of a data structure serving as circuit information of the old circuit 100a.
  • FIG. 9 is an explanatory diagram showing an example of a data structure that is circuit information of the current circuit 100b.
  • FIG. 10 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800a of the old circuit 100a.
  • FIG. 11 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800b of the current circuit 100b.
  • FIG. 12 is an explanatory diagram showing a data structure example of the macro information M2 of the circuit information 800a of the old circuit 100a.
  • FIG. 13 is an explanatory diagram showing a data structure example of the macro information M2 of the circuit information 800b of the current circuit 100b.
  • FIG. 10 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800a of the old circuit 100a.
  • FIG. 11 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800b of the current circuit 100b.
  • FIG. 12 is an explanatory
  • FIG. 14 is an explanatory diagram illustrating a data structure example of the macro information M3 of the circuit information 800a and 800b of the old circuit 100a and the current circuit 100b.
  • FIG. 15 is an explanatory diagram illustrating an example of changing the update date and time.
  • FIG. 16 is an explanatory diagram showing an example of character string information of the old circuit 100a.
  • FIG. 17 is an explanatory diagram showing an example of character string information of the current circuit 100b.
  • FIG. 18 is an explanatory diagram illustrating an extraction example using the character string information L1a and the character string information L1b.
  • FIG. 19 is an explanatory diagram illustrating an extraction example using the character string information L2a and the character string information L2b.
  • FIG. 20 is a circuit diagram showing a verification target portion in the current circuit 100b.
  • FIG. 21 is a flowchart of an exemplary verification support processing procedure performed by the verification support apparatus 400 according to the first embodiment.
  • FIG. 22 is a flowchart illustrating a detailed processing procedure example of the verification candidate extraction process (step S2101) illustrated in FIG.
  • FIG. 23 is a flowchart showing a detailed processing procedure example of the character string conversion processing (step S2102) shown in FIG.
  • FIG. 24 is a flowchart showing a detailed processing procedure example of the difference extraction processing (step S2103) shown in FIG.
  • FIG. 25 is a flowchart showing a detailed processing procedure example of the verification target location setting processing (step S2104) shown in FIG.
  • FIG. 26 is a flowchart showing a detailed processing procedure example of the verification result correction process (step S2105) of the old circuit 100a shown in FIG.
  • FIG. 27 is a flowchart showing a detailed processing procedure example of the verification result generation processing (step S2106) of the current circuit 100b shown in FIG.
  • FIG. 28 is a block diagram of a functional configuration example of the verification support apparatus 400 according to the second embodiment.
  • FIG. 29 is an explanatory diagram of an example of logical compression.
  • FIG. 30 is an explanatory diagram illustrating a logical compression example of the module “topmod: TOP” in the first layer of the old circuit 100a.
  • FIG. 31 is an explanatory diagram illustrating a logical compression example of the module “topmod: TOP” in the first layer of the current circuit 100b.
  • FIG. 29 is an explanatory diagram of an example of logical compression.
  • FIG. 30 is an explanatory diagram illustrating a logical compression example of the module “topmod: TOP” in the first layer of the old circuit 100a.
  • FIG. 31 is an explanatory diagram illustrating a logical compression example of the module “topmod: TOP” in the first layer of the
  • FIG. 32 is an explanatory diagram showing a logical compression example of the first module “low1: LOW_A” in the second layer of the current circuit 100b.
  • FIG. 33 is an explanatory diagram of an example of character string information of the old circuit 100a.
  • FIG. 34 is an explanatory diagram showing an example of character string information of the current circuit 100b.
  • FIG. 35 is an explanatory diagram showing an extraction example using the character string information L3a and the character string information L3b.
  • FIG. 36 is an explanatory diagram showing an extraction example using the character string information L4a and the character string information L4b.
  • FIG. 37 is a flowchart of an exemplary verification support processing procedure performed by the verification support apparatus 400 according to the second embodiment.
  • FIG. 38 is a flowchart showing a detailed processing procedure example of the second character string conversion processing (step S3705) shown in FIG.
  • FIG. 39 is a flowchart illustrating a detailed processing procedure example of the second difference extraction processing (step S3706) illustrated in FIG.
  • the circuit to be verified is expressed by circuit information composed of hierarchized modules. By assembling the module group from the lower hierarchy to the upper hierarchy, circuit information of the verification target circuit is constructed.
  • a verification target circuit configured by a first hierarchy that is an upper hierarchy and a second hierarchy that is a lower hierarchy
  • the verification may be executed by the verification support apparatus or may be executed by a simulator outside the verification support apparatus.
  • the current circuit showing the current structure of the circuit to be verified and the old circuit showing the structure older than the current circuit will be described as an example, but if there is a difference in the update of both circuits, One need not be the current circuit.
  • FIG. 1 is an explanatory diagram illustrating an example of verification support by the verification support apparatus according to the present embodiment.
  • FIG. 1 shows an old circuit 100a and a current circuit 100b for the same circuit 100 to be verified.
  • “update date / time” in each hierarchy is the date / time when the module of that hierarchy was updated.
  • the “verification date / time” in each hierarchy is the date / time when the module of that hierarchy was verified.
  • the old circuit 100a is the verification target circuit 100 that has been updated to “2011/07/10” and verified to “2011/08/10”.
  • the current circuit 100b updates the first layer module “topmod: TOP” of the old circuit 100a to “2011/08/20”, and changes the second module first module “low1: LOW_A” of the old circuit 100a.
  • the verification target circuit 100 is updated to “2011/1510”.
  • the second module “low2: LOW_B” in the second layer of the old circuit 100a is not updated.
  • the verification support apparatus compares the update date / time of the lower layer module and the update date / time of the upper layer module, and if the update date / time of the lower layer module is newer, the update date / time of the upper layer module Is changed to the update date and time of the lower-level module.
  • the update date “2011/08/20” of the first layer module “topmod: TOP” is updated to the update date “2011/09” of the first module “low1: LOW_A” of the second layer. / 10 ".
  • the change in the lower layer module may affect the connection relationship and operation of the upper layer module that is the assembly destination.
  • the upper layer module as the assembly destination is also substantially updated. Therefore, it is possible to suppress omission of verification that occurs when only the lower-level module is verified.
  • the verification support apparatus compares the update date and time with the verification date and time for each module of the current circuit 100b.
  • the update date / time is newer, the verification support apparatus determines that the module with the new update date / time is to be checked because verification is not executed after the update.
  • the first layer module “topmod: TOP” and the second layer first module “low1: LOW_A” are to be checked.
  • the second module “low2: LOW_B” in the second layer is not checked.
  • the verification support apparatus compares the check target of the current circuit 100b with the module of the old circuit 100a for the same module, and extracts a difference.
  • the first layer module “topmod: TOP” and the second layer first module “low1: LOW_A” are compared between the current circuit 100 b and the old circuit 100 a.
  • the second module “low2: LOW_B” in the second layer is not compared because it is not checked.
  • a verification assistance apparatus makes the location traced to the back
  • FIG. 2 is an explanatory diagram (part 1) showing a modification example of the verification result.
  • the verification result V1 is a verification result before correction.
  • the verification result V1 is a verification result in the old circuit 100a.
  • the verification result is, for example, electronic data having a macro name item, a verification type item, a verification target item, and a verification content item, and the value of each item is stored for each macro.
  • the macro name item stores a macro name of a macro indicating a module.
  • the macro name is a name that identifies a module. For example, in the case of the module “topmod: TOP”, “topmod: TOP” is stored as the macro name.
  • the verification type is stored in the verification type item.
  • the verification type indicates the type of verification.
  • the verification type includes “shape”, “load”, and “logic”.
  • Shape means shape verification. In shape verification, the correctness of connection between a connection source circuit and a connection destination circuit is verified.
  • Load means load verification. In load verification, it is verified whether a load from a connection source circuit to a connection destination circuit is within an allowable range.
  • Logic means logic verification. In logic verification, correctness of a logical value output from a circuit is verified.
  • the verification target location item stores a character string that combines a circuit to be verified and a terminal. In FIG.
  • a character string before “.” Indicates a circuit name
  • a character string after “.” Indicates a terminal name.
  • “buf1.A” means the terminal A of the circuit buf1.
  • the verification content item stores verification content.
  • the verification content stores a character string indicating a verification rule in the verification type at the verification target location.
  • the verification result V10 is a verification result obtained by removing the verification target portion traced from the difference obtained in FIG. 1 from the verification result V1 in the old circuit 100a. That is, since the verification target part obtained in FIG. 1 needs to be re-verified, the verification support apparatus deletes it from the verification result V1. On the other hand, the verification support apparatus diverts the portions other than the verification target portions obtained in FIG. 1 without deleting them. Thereby, the efficiency of verification work can be achieved.
  • FIG. 3 is an explanatory diagram (part 2) showing a modification example of the verification result.
  • the verification result V2 is a verification result V2 obtained by adding the record R obtained by the verification of the verification target portion obtained in FIG. 1 to the verification result V10 after deletion.
  • the verification support apparatus can obtain the verification result V2 of the entire current circuit 100b.
  • FIG. 4 is a block diagram illustrating a hardware configuration example of the verification support apparatus.
  • the verification support apparatus 400 is a computer configured by connecting a processor 401, a storage device 402, an input device 403, an output device 404, and a communication device 405 to a bus 406.
  • the processor 401 controls the entire verification support apparatus 400. Further, the processor 401 executes various programs (OS (Operating System) and the verification support program according to the present embodiment) stored in the storage device 402, thereby reading data in the storage device 402 and executing results. Or the like is written in the storage device 402.
  • OS Operating System
  • the storage device 402 may be a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, a magnetic disk drive, or the like. Further, the storage device 402 becomes a work area of the processor 401. Further, the storage device 402 stores various programs (the OS and the verification support program of the present embodiment) and various data (including data obtained by executing each program).
  • the input device 403 is an interface for inputting various data by user operations such as a keyboard, a mouse, and a touch panel.
  • the output device 404 is an interface that outputs data in accordance with an instruction from the processor 401. Examples of the output device 404 include a display and a printer.
  • the communication device 405 is an interface that receives data from the outside via a network and transmits data to the outside.
  • FIG. 5 is a block diagram of a functional configuration example of the verification support apparatus 400 according to the first embodiment.
  • the verification support apparatus 400 includes an acquisition unit 501, a determination unit 502, a change unit 503, a determination unit 504, a specification unit 505, a conversion unit 506, an extraction unit 507, a setting unit 508, and a deletion unit 509. And an adding unit 510.
  • the acquisition unit 501, the determination unit 502, the change unit 503, the determination unit 504, the identification unit 505, the conversion unit 506, the extraction unit 507, the setting unit 508, the deletion unit 509, and the addition unit 510 are specifically illustrated in FIG.
  • the function is realized by causing the processor 401 to execute the program stored in the storage device 402 shown in FIG.
  • the acquisition unit 501 acquires circuit information of the verification target circuit 100 configured by a layered module group. Specifically, for example, the acquisition unit 501 acquires circuit information by reading from the storage device 402, receiving from an input device, or receiving from a communication device. The acquisition unit 501 acquires circuit information of the old circuit 100a and circuit information of the current circuit 100b illustrated in FIG. Here, the circuit information will be specifically described.
  • FIG. 6 is a circuit diagram showing an example of the old circuit 100a.
  • FIG. 7 is a circuit diagram showing an example of the current circuit 100b.
  • the first layer module “topmod: TOP” of the old circuit 100a and the current circuit 100b has input terminals IN1 to IN4, output terminals OUT1 and OUT2, buffers buf1: BUF, and macro ma4: MAC_C.
  • the module “topmod: TOP” in the first layer of the current circuit 100b has the input terminal IN5 and the inverter inv4: INV, but does not exist in the module “topmod: TOP” in the first layer of the old circuit 100a.
  • the first module “low1: LOW_A” in the second hierarchy of the old circuit 100a and the current circuit 100b includes input terminals I1, I2, output terminals O1, O2, NAND circuit nand1: NAND, macro ma1: MAC_A, and macro ma2: MAC_A.
  • the first module “low1: LOW_A” in the second layer of the current circuit 100b includes inverters inv1: INV to inv3: INV and a buffer buf2: BUF, but the first module “low1” in the second layer of the old circuit 100a. : LOW_A ”does not exist.
  • the second module “low2: LOW_B” in the second hierarchy of the old circuit 100a and the current circuit 100b has input terminals I1, I2, an output terminal O1, a NAND circuit nand2: NAND, and a macro ma3: MAC_B.
  • the second module “low2: LOW_B” in the second layer has the same configuration in the old circuit 100a and the current circuit 100b.
  • FIG. 8 is an explanatory diagram showing an example of a data structure that is circuit information of the old circuit 100a.
  • FIG. 9 is an explanatory diagram showing an example of a data structure that is circuit information of the current circuit 100b.
  • the circuit information 800a and 800b includes macro No. An item, a hierarchy item, a macro name item, an upper link item, an update date / time item, a verification date / time item, a macro information item, and a verification result item.
  • the value of each item is stored for each module as a macro.
  • a hierarchy number is stored.
  • the hierarchy number is a number that identifies the hierarchy of modules constituting the verification target circuit 100.
  • the macro name is stored in the macro name item.
  • the macro name is a name that identifies a module. For example, in the case of the module “topmod: TOP”, “topmod: TOP” is stored as the macro name.
  • the upper link is stored.
  • An upper link is a hierarchy number of an upper hierarchy of the macro. For example, macro No. In the record “2”, since the upper layer in which the first module “low1: LOW_A” of the second layer is incorporated is the first layer, “1” is stored as the upper link. For the highest layer, that is, the first layer module, there is no higher layer macro, so the macro No. indicating the first layer module “topmod: TOP” is displayed. In a record with “1”, “ ⁇ 1” is stored as the upper link.
  • the update date / time item stores the update date / time.
  • the verification support apparatus 400 updates the update date and time for the updated macro.
  • the verification support apparatus 400 acquires the update date / time from the external device and updates it with the acquired update date / time. Further, the verification support apparatus 400 may update the update date and time when the user operates the input device of the verification support apparatus 400.
  • the verification date / time item stores the verification date / time when the verification was executed.
  • the verification support apparatus 400 verifies the verification date and time with respect to the verified macro.
  • the verification support device 400 acquires the verification date and time from the external device and verifies the acquired verification date and time. Further, the verification support apparatus 400 may verify the verification date and time by the user operating the input device of the verification support apparatus 400.
  • Macro information is stored in the macro information item.
  • the macro information is information for specifying the structure of the macro, and includes, for example, information indicating a circuit constituting the inside of the macro and a connection relationship between the macro and the outside.
  • the macro information will be described later with reference to FIGS.
  • the verification result item stores a verification result or a pointer to the verification result.
  • the verification result V1 shown in FIGS. 2 and 3 or a pointer to the verification result V1 is stored.
  • FIG. 10 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800a of the old circuit 100a.
  • FIG. 11 is an explanatory diagram showing a data structure example of the macro information M1 of the circuit information 800b of the current circuit 100b.
  • FIG. 12 is an explanatory diagram showing a data structure example of the macro information M2 of the circuit information 800a of the old circuit 100a.
  • FIG. 13 is an explanatory diagram showing a data structure example of the macro information M2 of the circuit information 800b of the current circuit 100b.
  • FIG. 14 is an explanatory diagram illustrating a data structure example of the macro information M3 of the circuit information 800a and 800b of the old circuit 100a and the current circuit 100b.
  • the macro information M1 to M3 are the terminal numbers. There are items, own macro information items, and connection destination information items, and a value is stored for each item.
  • Terminal No. The item includes a terminal No. Is stored. Terminal No. Is a number assigned to a terminal specified by its own macro information and lower macro information.
  • the own macro information item information on terminals in the macro specified by the macro information is stored.
  • the own macro information item has an IO attribute item, an IO terminal item, and a terminal link item.
  • An IO attribute is stored in the IO attribute item.
  • the IO attribute is the terminal number.
  • the information indicating the attribute of the IO terminal specified by is stored.
  • An IO terminal is a terminal provided in a macro. For example, “IN” is stored if the IO terminal is an input terminal, and “OUT” is stored if the IO terminal is an output terminal.
  • An IO terminal name is stored in the IO terminal item.
  • the terminal link item stores the terminal link.
  • the terminal link is the terminal number of the terminal that is the link destination in the connection destination information. It is.
  • the input terminal IN2 is the buffer buf1: BUF input terminal buf1. Connected to A.
  • the macro information M1 of the old circuit 100a in FIG. The terminal link of the input terminal “IN2” of “2” is “5”. Therefore, the input terminal “IN2” is the terminal No. in the connection destination information.
  • the buffer “buf1: BUF” specified by “buf1: BUF”, the IO attribute “IN”, the IO terminal “A” of the record “5” is input. It can be seen that it is connected to A.
  • connection destination information item information indicating the connection destination of each IO terminal of the macro specified by the own macro information is stored.
  • the connection destination information item includes a connection destination item, an IO attribute item, an IO terminal item, and a terminal link item.
  • a macro name to be a connection destination is stored.
  • the connection partner of the connection destination corresponds to the macro in the connection destination item in addition to the own macro.
  • An IO attribute is stored in the IO attribute item.
  • the IO attribute is the terminal number.
  • the information indicating the attribute of the IO terminal specified by is stored.
  • An IO terminal is a terminal provided in a macro. For example, “IN” is stored if the IO terminal is an input terminal, and “OUT” is stored if the IO terminal is an output terminal.
  • An IO terminal name is stored in the IO terminal item.
  • the terminal link item stores the terminal link.
  • the terminal link is the terminal number of the terminal to be linked in the own macro information. It is. If the terminal link has a negative value, its absolute value is the terminal number of the IO terminal of its own macro information. Indicates. When the terminal link is a positive value, the terminal number of the IO terminal of the connection destination information. Indicates.
  • the buffer buf1 BUF input terminal buf1. A is connected to the input terminal IN2.
  • the terminal link of the input terminal “buf1.A” of “5” is “ ⁇ 2”. Therefore, the input terminal “buf1.A” has the terminal No. It can be seen that the input terminal IN2 specified by the IO terminal “IN2” of the record “2” is connected.
  • the buffer buf1 the output terminal buf1.
  • X is connected to the input terminal I2 of the first module “low1: LOW_A”.
  • the terminal link of the output terminal “buf1.X” of “6” is “2”. Therefore, the output terminal “buf1.X” has the terminal No. in the connection destination information. It can be seen that the first module “low1: LOW_A” of the record “2” is connected to the input terminal I2 specified by the IO terminal “I2”.
  • the determination unit 502 uses a date and time when the update date and time of any module other than the highest layer in the circuit information module group acquired by the acquisition unit 501 is newer than the update date and time of the upper layer module of any module. Judge whether there is.
  • the highest hierarchy is the first hierarchy.
  • the determination unit 502 updates the update date / time “2011.08.20” of the first layer module “topmod: TOP” and the update date / time “1: LOW1: LOW_A” of the second layer. Compared to 2011.09.10. Then, the determination unit 502 determines whether or not the update date / time “2011.09.10” of the first module “low1: LOW_A” in the second hierarchy is newer.
  • the determination unit 502 updates the update date “2011.08.20” of the first layer module “topmod: TOP” and the update date “2011.07.10” of the second layer “low2: LOW_B”. ". Then, the determination unit 502 determines whether or not the update date and time “2011.07.10” of the second module “low2: LOW_B” in the second hierarchy is newer.
  • the change unit 503 changes the update date / time of the upper layer module to the update date / time of any module. Specifically, for example, the update date / time “2011.09.10” of the first module “low1: LOW_A” in the second layer is updated to “2011.08.20” in the module “topmod: TOP” of the first layer. Newer date and time. Therefore, the changing unit 503 updates the update date “2011.08.20” of the first layer module “topmod: TOP” and the update date “2011.09.10” of the first module “low1: LOW_A” of the second layer. Change to
  • the change in the lower layer module may affect the connection and operation of the upper layer module that is the assembly destination. Therefore, by changing the update date / time of the upper layer module to the lower layer module, the upper layer module as the assembly destination is also substantially updated. Thereby, it is possible to suppress omission of verification that occurs when only the lower-level module is verified.
  • the update date “2011.08.20” of the module “topmod: TOP” in the first layer and the update date “2011.07.10” of the second module “low2: LOW_B” in the second layer are the first.
  • the update date “2011.08.20” of the module “topmod: TOP” in the hierarchy is the newer date. Therefore, the update date “2011.08.20” of the module “topmod: TOP” in the first layer is not changed to the update date “2011.07.10” of the second module “low2: LOW_B” in the second layer.
  • FIG. 15 is an explanatory diagram showing an example of changing the update date and time.
  • the macro No. The update date / time of the record “1” is changed from “2011.08.20” to “2011.09.10”.
  • the determination unit 504 determines, as a verification candidate module, a module whose update date / time is newer than the verification date / time when the verification is performed, as a result of the change by the change unit 503. Specifically, for example, the determination unit 504 compares the update date / time and the verification date / time for each module in the circuit information 800b of the current circuit 100b. Then, the determination unit 504 determines a module whose update date / time is newer than the verification date / time as a verification candidate module.
  • the verification candidate module is a module to be checked in FIG. Specifically, for example, the determination unit 504 sets a flag indicating a verification candidate in a record that is a verification candidate module in the circuit information 800b of the current circuit 100b.
  • the first layer module “topmod: TOP” and the second layer first module “low1: LOW_A” in the current circuit 100b are verification candidate modules.
  • the second module “low2: LOW_B” in the second layer is not verified.
  • verification candidates that have expanded due to a change in the update date and time of the upper hierarchy can be suppressed, and modules that are not affected even if they are not verified can be excluded from verification targets.
  • the identifying unit 505 identifies the comparison target module, which is the same identification information as the verification candidate module determined by the determination unit 504, from the old module group hierarchized in the old circuit information of the verification target circuit 100.
  • the old circuit information is circuit information 800a of the old circuit 100a.
  • the specifying unit 505 for example, has the same identification information as the verification candidate module “topmod: TOP” in the current circuit 100b, that is, the same macro No.
  • the module “topmod: TOP” in the first layer of the old circuit 100a that is “1” is specified as the comparison target module.
  • the specifying unit 505 has the same identification information as the verification candidate module “low1: LOW_A” in the current circuit 100b, that is, the same macro No.
  • the first module “low1: LOW_A” in the second layer of the old circuit 100a that is “2” is specified as the comparison target module.
  • the extraction unit 507 extracts a difference between the verification candidate module and the comparison target module specified by the specifying unit 505. Specifically, for example, the extraction unit 507 compares the circuit information 800a of the old circuit 100a and the circuit information 800b of the current circuit 100b, and does not exist in the comparison target module but exists in the verification candidate module. A circuit that is in the verification candidate module but not in the comparison target module is extracted as a difference. When extracting the difference, it is preferable to execute the conversion into a character string by the conversion unit 506 because it takes time for the arithmetic processing when circuit information is compared.
  • the conversion unit 506 converts the verification candidate module into the first character string information indicating the connection relation between the circuits in the verification candidate module, and converts the comparison target module into the connection relation between the circuits in the comparison target module. It converts into the 2nd character string information shown.
  • the character string conversion which is the conversion to the character string information will be described.
  • the character string conversion is executed using macro information corresponding to the verification candidate module and the comparison target module among the macro information shown in FIGS.
  • the conversion unit 506 identifies the record of the connection destination information by following the terminal link for each record of the own macro information. Further, the conversion unit 506 identifies the connection destination information record by tracing the terminal link for each connection destination information record.
  • the character string information is generated by combining the link source terminal name and the link destination terminal name.
  • the character string information is expressed as “aaa.bbb_ccc.ddd” as an example.
  • “Aaa” is the instance name of the circuit on the driver side that is the link source
  • “bbb” is the terminal name on the driver side
  • “ccc” is the instance name of the circuit on the receiver side that is the link destination
  • “ddd” is the terminal of the link destination Name.
  • the character string corresponding to “aaa” is the instance name “topmod” of “topmod: TOP”.
  • the character string corresponding to “bbb” is “IN1” of “topmod: TOP”.
  • the conversion unit 506 displays the terminal No. in the connection destination information.
  • the input terminal I1 of “low1: LOW_A” is specified. Therefore, the character string corresponding to “ccc” is the instance name “low1” of “low1: LOW_A”.
  • the character string corresponding to “ddd” is “I1” of “low1: LOW_A”. Thereby, the character string data “topmod.IN1_low1.I1” is obtained.
  • connection destination information of “2” is the input terminal I2 of “low1: LOW_A”.
  • link destination is the buffer buf1: BUF on the driver side
  • character string conversion is not executed. That is, in the connection destination information, the record having the IO attribute “IN” is not selected because it is on the driver side.
  • the connection destination information of “3” is the output terminal O1 of “low1: LOW_A”. Therefore, the character string corresponding to “aaa” is the instance name “low1” of “low1: LOW_A”. The character string corresponding to “bbb” is “O1” of “low1: LOW_A”.
  • the conversion unit 506 displays the terminal No. in the connection destination information.
  • the input terminal A of “ma4: MAC_C” is specified as the terminal of “7”. Therefore, the character string corresponding to “ccc” is the instance name “ma4” of “ma4: MAC_C”.
  • the character string corresponding to “ddd” is “A” in “ma4: MAC_C”. Thereby, the character string data “low1.O1_ma4.A” is obtained.
  • FIG. 16 is an explanatory diagram showing an example of character string information of the old circuit 100a.
  • the character string information L1a of “topmod: TOP” is character string information converted from the macro information M1 of FIG.
  • the character string information L2a of “low1: LOW_A” is character string information converted from the macro information M2 of FIG.
  • FIG. 17 is an explanatory diagram showing an example of character string information of the current circuit 100b.
  • the character string information L1b of “topmod: TOP” is character string information converted from the macro information M1 in FIG.
  • the character string information L2b of “low1: LOW_A” is character string information converted from the macro information M2 of FIG.
  • the extraction unit 507 extracts a difference between the first character string information converted by the conversion unit 506 and the second character string information. Specifically, in the same module, the extraction unit 507 compares the character string information obtained from the current circuit 100b with the character string information obtained from the old circuit 100a, and extracts a difference.
  • FIG. 18 is an explanatory diagram showing an extraction example using the character string information L1a and the character string information L1b.
  • character string data different from the character string information L1a is “topmod.IN5_inv4.A” and “inv4.X_ma4.C”. Therefore, the extraction unit 507 extracts the instance names “inv4” and “ma4” indicating the circuit from the different character string data “topmod.IN5_inv4.A” and “inv4.X_ma4.C” as differences.
  • FIG. 19 is an explanatory diagram showing an extraction example using the character string information L2a and the character string information L2b.
  • character string data different from the character string information L2a are “nand1.X_inv1.A”, “nand1.X_buf.A”, “buf2.X_inv3.A”, “inv1.X_inv2. A ”,“ inv2.X_ma1.A ”,“ inv3.X_ma2.A ”. Therefore, the extraction unit 507 includes the instance names “nand1”, “inv1”, “buf”, “buf2”, “inv3”, “inv2”, “ma1”, and “Ma2” is extracted as a difference.
  • the setting unit 508 sets the verification target portion of the verification target circuit 100 in the circuit information by tracing to the output side of the verification target circuit 100 in the circuit information based on the difference extracted by the extraction unit 507. Specifically, the setting unit 508 sets a verification target location in the current circuit 100b by tracing from the circuit that is the difference in the current circuit 100b to the output side, that is, the signal propagation direction.
  • FIG. 20 is a circuit diagram showing a verification target portion in the current circuit 100b.
  • a circuit group surrounded by a dotted line is a verification target portion.
  • the verification target portion includes the difference extracted in FIGS. 18 and 19 and a circuit traced from the difference to the output side. The verification efficiency can be improved by performing verification again by limiting to the verification target portions set in this way.
  • the deletion unit 509 deletes the verification information corresponding to the verification target location set by the setting unit 508 from the verification result of the verification target circuit 100 based on the old circuit 100a. Specifically, for example, as illustrated in FIG. 2, the deletion unit 509 deletes the record including the verification target portion from the verification result V1 of the old circuit 100a and sets the result as the verification result V10.
  • the addition unit 510 adds the verification result based on the verification target location to the verification result after deletion by the deletion unit 509. Specifically, for example, as illustrated in FIG. 3, the adding unit 510 generates the verification result V2 by adding the verification result R based on the verification target location to the verification result V10 after deletion.
  • FIG. 21 is a flowchart of an exemplary verification support processing procedure performed by the verification support apparatus 400 according to the first embodiment.
  • the verification support apparatus 400 includes a verification candidate extraction process (step S2101), a character string conversion process (step S2102), a difference extraction process (step S2103), a verification target location setting process (step S2104), and a verification result correction process for the old circuit 100a. (Step S2105), verification result generation processing (Step S2106) of the current circuit 100b is executed.
  • FIG. 22 is a flowchart showing a detailed processing procedure example of the verification candidate extraction process (step S2101) shown in FIG.
  • the verification support apparatus 400 determines whether there is a module in the (i-1) th layer with respect to the selected module (step S2205). If there is no module on the i-1th layer (step S2205: NO), the process returns to step S2203. On the other hand, if there is a module in the i-1th layer (step S2205: Yes), the verification support apparatus 400 determines whether the update date / time of the selected module is newer than the update date / time of the module in the i-1th layer. (Step S2206). If not new (step S2206: NO), the process returns to step S2203.
  • step S2206 Yes
  • step S2209: Yes the verification support apparatus 400 extracts an unextracted module (step S2210). Then, the verification support apparatus 400 determines whether or not the update date and time is newer than the verification date and time in the extraction module (step S2211). If it is new (step S2211: Yes), the verification support apparatus 400 determines the extraction module as a verification candidate module (step S2212), and returns to step S2209. On the other hand, if it is not new (step S2211: NO), the process returns to step S2209. If there is no unextracted module in step S2209 (step S2209: No), the verification candidate extraction process (step S2101) ends.
  • FIG. 23 is a flowchart showing a detailed processing procedure example of the character string conversion processing (step S2102) shown in FIG.
  • the verification support apparatus 400 determines whether there is an unselected module in the verification candidate module group (step S2301). When there is an unselected module (step S2301: Yes), the verification support apparatus 400 selects an unselected module (step S2302). Then, the verification support apparatus 400 determines whether or not there is a pair of an unselected driver-side instance name and terminal name in the selection module (step S2303).
  • step S2303 If there is a pair of driver-side instance name and terminal name that has not been selected (step S2303: Yes), the verification support apparatus 400 selects a pair of driver-side instance name and terminal name that has not been selected (step S2304). The verification support apparatus 400 traces the terminal link of the selected driver-side instance name and terminal name set (step S2305), and acquires the receiver-side instance name and terminal name set (step S2306).
  • step S2307 the verification support apparatus 400 generates character string data using the selected driver-side instance name and terminal name pair and the acquired receiver-side instance name and terminal name pair (step S2307), and returns to step S2303.
  • step S2303 if there is no unselected driver-side instance name and terminal name pair (step S2303: No), the process returns to step S2301.
  • step S2301 determines whether there is an unselected module having the same identification information as the verification target module from the module group of the old circuit 100a. Judgment is made (step S2308). When there is an unselected module (step S2308: Yes), the verification support apparatus 400 selects the unselected module as a comparison target module (step S2309). Then, the verification support apparatus 400 determines whether or not there is a pair of an unselected driver side instance name and terminal name in the comparison target module (step S2310).
  • step S2310 When there is an unselected driver side instance name and terminal name pair (step S2310: Yes), the verification support apparatus 400 selects an unselected driver side instance name and terminal name pair (step S2311). The verification support apparatus 400 traces the terminal link of the selected driver-side instance name and terminal name set (step S2312), and acquires the receiver-side instance name and terminal name set (step S2313). Thereafter, the verification support apparatus 400 generates character string data using the selected driver-side instance name and terminal name pair and the acquired receiver-side instance name and terminal name pair (step S2314), and returns to step S2310.
  • step S2310 if there is no unselected driver-side instance name and terminal name pair (step S2310: No), the process returns to step S2308. If there is no unselected module in step S2308 (step S2308: No), the character string conversion process (step S2102) ends. Thereby, character string information is generated for each of the verification candidate module of the current circuit 100b and the comparison target module of the old circuit 100a.
  • FIG. 24 is a flowchart showing a detailed processing procedure example of the difference extraction processing (step S2103) shown in FIG.
  • the verification support apparatus 400 determines whether there is character string information of the current circuit 100b that has not been selected (step S2401). If there is character string information on the unselected current circuit 100b (step S2401: Yes), the verification support apparatus 400 selects character string information on the unselected current circuit 100b (step S2402). Next, the verification support apparatus 400 acquires character string information of the old circuit 100a corresponding to the character string information of the selected current circuit 100b (step S2403).
  • the verification support apparatus 400 determines whether there is unselected character string data in the character string information of the selected current circuit 100b (step S2404). When there is unselected character string data (step S2404: Yes), the verification support apparatus 400 selects one unselected character string data (step S2405). The verification support apparatus 400 determines whether the selected character string data is in the character string information of the old circuit 100a acquired in step S2403 (step S2406). Here, it is determined whether or not there is character string data that completely matches.
  • step S2406: Yes If the selected character string data is in the character string information of the old circuit 100a acquired in step S2403 (step S2406: Yes), the process returns to step S2404. On the other hand, if not present (step S2406: NO), the verification support apparatus 400 temporarily stores the selected character string data in the storage device 402 (step S2407), and returns to step S2404. If there is no unselected character string data in step S2404 (step S2404: No), the verification support apparatus 400 determines whether there is the selected character string data stored in step S2407 (step S2408).
  • step S2408: Yes If there is stored selected character string data (step S2408: Yes), the verification support apparatus 400 extracts the instance name of the circuit that becomes a difference from the selected character string data and stores it in the storage device 402 (step S2409). . Then, the process returns to step S2401. On the other hand, if there is no stored selected character string data (step S2408: No), the process returns to step S2401. In step S2401, if there is no character string information of the unselected current circuit 100b (step S2401: No), the difference extraction process (step S2103) ends.
  • FIG. 25 is a flowchart showing a detailed processing procedure example of the verification target location setting process (step S2104) shown in FIG.
  • the verification support apparatus 400 determines whether there is an unselected difference from the differences extracted in the difference extraction process (step S2103) (step S2501). If there is an unselected difference (step S2501: Yes), the verification support apparatus 400 selects an unselected difference (step S2502), and traces from the selected difference in the current circuit 100b to the output terminal (step S2503). Then, the verification support apparatus 400 adds the selected difference and the instance passed through the trace to the verification target location (step S2504). Then, the process returns to step S2501. If there is no unselected difference in step S2501 (step S2501: No), the verification target location setting process (step S2104) ends.
  • FIG. 26 is a flowchart showing a detailed processing procedure example of the verification result correction process (step S2105) of the old circuit 100a shown in FIG.
  • the verification support apparatus 400 acquires the verification result V1 of the old circuit 100a (step S2601), and deletes the verification information including the verification target portion from the verification result V1 of the old circuit 100a (step S2602).
  • the verification assistance apparatus 400 outputs the verification result V10 after deletion (step S2603).
  • Examples of the output format include storage in the storage device 402, display output and print output from the output device 404, and transmission from the communication device 405. Thereby, the verification result correction process (step S2105) of the old circuit 100a is completed.
  • FIG. 27 is a flowchart showing a detailed processing procedure example of the verification result generation processing (step S2106) of the current circuit 100b shown in FIG.
  • the verification support apparatus 400 acquires the verification result of the verification target part (step S2701).
  • the verification support apparatus 400 adds the verification result of the verification target location to the verification result V10 after deleting the old circuit 100a (step S2702).
  • a verification result V2 of the current circuit 100b is generated.
  • the verification assistance apparatus 400 outputs the verification result V2 after addition (step S2703).
  • Examples of the output format include storage in the storage device 402, display output and print output from the output device 404, and transmission from the communication device 405. Thereby, the verification result generation process (step S2106) of the current circuit 100b is completed.
  • the upper layer module as the assembly destination is also substantially updated. Therefore, it is possible to suppress omission of verification that occurs when only the lower-level module is verified.
  • modules that do not have an effect even if they are not verified can be excluded from the verification range expanded by changing the update date and time of the upper hierarchy. As a result, the verification speed can be increased.
  • the circuit information into simple character string data consisting of the driver-side instance name and terminal name and the receiver-side instance name and terminal name, the information necessary for differential extraction can be obtained, and the differential extraction speeded up. Can be achieved.
  • the verification information can be used as it is for a module that has not been changed. Further, since the verification can be performed on the verification target portion, the waste of the verification process can be reduced and the speed of the verification process can be increased. Further, the verification result of the current circuit 100b can be obtained simply by adding the verification result obtained by the verification of the verification target portion to the verification result after deleting the old circuit 100a. Therefore, the efficiency of the verification result generation process of the current circuit 100b can be improved.
  • the verification support apparatus 400 performs logic compression on each of the module including the difference in the module group of the current circuit 100b and the module of the old circuit 100a having the same identification information as the module. .
  • the logic configuration simplifies the circuit configuration of the module compared to before the logic compression. For example, when two inverters are added in series, the configuration is substantially the same as when no circuit is added by logical compression. Therefore, the accuracy of difference extraction is improved by comparing the modules after logical compression.
  • FIG. 28 is a block diagram of a functional configuration example of the verification support apparatus 400 according to the second embodiment.
  • a compression unit 2800 is added to the verification support apparatus 400 according to the first embodiment.
  • the compression unit 2800 realizes its function by causing the processor 401 to execute a program stored in the storage device 402 illustrated in FIG. 4, for example. Since the functional configuration other than the compression unit 2800 is the same as that of the first embodiment, the same reference numerals are given, and only functions related to the compression unit 2800 will be described.
  • the compression unit 2800 logically compresses the verification candidate module and the comparison target module from which the difference is extracted by the extraction unit 507, respectively.
  • the circuit information is also updated after the logical compression.
  • logical compression an example of logical compression will be described.
  • FIG. 29 is an explanatory diagram showing an example of logical compression.
  • the compression unit 2800 for example, a logical compression pattern as shown in FIG. 29 is stored, and when the corresponding logical compression pattern is in the verification candidate module or the comparison target module from which the difference is extracted, logical compression is executed. To do. Further, the compression unit 2800 may perform logical compression by performing a logical operation on the circuit configuration in the module.
  • FIG. 30 is an explanatory diagram showing a logical compression example of the module “topmod: TOP” in the first layer of the old circuit 100a.
  • the module “topmod: TOP” in the first layer of the old circuit 100a before logical compression is a module 3001
  • the module “topmod: TOP” in the first layer of the old circuit 100a after logical compression is a module 3002.
  • the buffer buf1: BUF in the module 3001 is deleted by logical compression and becomes the module 3002.
  • FIG. 31 is an explanatory diagram showing an example of logical compression of the first layer module “topmod: TOP” of the current circuit 100b.
  • the module “topmod: TOP” of the first layer of the current circuit 100b before logical compression is a module 3101
  • the module “topmod: TOP” of the first circuit of the current circuit 100b after logical compression is a module 3102.
  • the buffer buf1: BUF of the module 3101 is deleted by logical compression and becomes the module 3102.
  • FIG. 32 is an explanatory diagram showing a logical compression example of the first module “low1: LOW_A” in the second layer of the current circuit 100b.
  • the first module “low1: LOW_A” in the second layer of the current circuit 100b before logical compression is referred to as a module 3201
  • the first module “low1: LOW_A” in the second layer of the current circuit 100b after logical compression is used.
  • a module 3202 is assumed.
  • the buffer buf2: BUF of the module 3201 is deleted by the logical compression
  • the inverters inv1: INV and inv2: INV of the module 3201 are deleted by the logical compression to become the module 3202.
  • the conversion unit 506 converts the module after logical compression into character string information.
  • the conversion process itself is the same as that of the first embodiment, except that the conversion target is changed to a module after logical compression.
  • FIG. 33 is an explanatory diagram showing an example of character string information of the old circuit 100a.
  • the character string information L3a of “topmod: TOP” is character string information converted from the macro information after logical compression of the macro information M1 in FIG.
  • the character string information L4a of “low1: LOW_A” is character string information converted from the macro information after logical compression of the macro information M2 in FIG.
  • FIG. 34 is an explanatory diagram showing an example of character string information of the current circuit 100b.
  • the character string information L3b of “topmod: TOP” is character string information converted from the macro information after logical compression of the macro information M1 in FIG.
  • the character string information L4b of “low1: LOW_A” is character string information converted from the macro information after the logical compression of the macro information M2 in FIG.
  • FIG. 35 is an explanatory diagram showing an example of extraction using character string information L3a and character string information L3b.
  • character string data different from the character string information L3a is “topmod.IN5_inv4.A” and “inv4.X_ma4.C”. Therefore, the extraction unit 507 extracts the instance names “inv4” and “ma4” indicating the circuit from the different character string data “topmod.IN5_inv4.A” and “inv4.X_ma4.C” as differences.
  • the extraction unit 507 extracts the instance names “inv4” and “ma4” indicating the circuit from the different character string data “topmod.IN5_inv4.A” and “inv4.X_ma4.C” as differences.
  • the efficiency of the difference extraction can be improved.
  • FIG. 36 is an explanatory diagram showing an extraction example using the character string information L4a and the character string information L4b.
  • character string data different from the character string information L4a is “nand1.X_inv3.A” and “inv3.X_ma2.A”. Therefore, the extraction unit 507 extracts the instance names “nand1”, “inv3”, and “ma2” indicating the circuit from the different character string data as differences.
  • the efficiency of the difference extraction can be improved.
  • FIG. 37 is a flowchart of an exemplary verification support processing procedure performed by the verification support apparatus 400 according to the second embodiment.
  • the verification support apparatus 400 includes a verification candidate extraction process (step S3701), a first character string conversion process (step S3702), a first difference extraction process (step S3703), a logical compression process (step S3704) by the compression unit 2800, Second character string conversion processing (step S3705), second difference extraction processing (step S3706), verification target location setting processing (step S3707), verification result correction processing of old circuit 100a (step S3708), current circuit 100b Verification result generation processing (step S3709) is executed.
  • step S3701 Since the verification candidate extraction process (step S3701) is the same process as the verification candidate extraction process (step S2101), the description thereof is omitted. Since the first character string conversion process (step S3702) is the same process as the character string conversion process (step S2102), description thereof is omitted. Since the first difference extraction process (step S3703) is the same process as the difference extraction process (step S2103), the description thereof is omitted. Since the verification target location setting process (step S3707) is the same as the verification target location setting process (step S2104), the description thereof is omitted. Since the verification result correction process (step S3708) of the old circuit 100a is the same process as the verification result correction process (step S2105) of the old circuit 100a, description thereof is omitted. Since the verification result generation process (step S3709) of the current circuit 100b is the same process as the verification result generation process (step S2106) of the current circuit 100b, description thereof is omitted.
  • FIG. 38 is a flowchart showing a detailed processing procedure example of the second character string conversion processing (step S3705) shown in FIG.
  • the verification support apparatus 400 determines whether or not there is an unselected module in the logically compressed verification candidate module group (step S3801). If there is an unselected logically compressed module (step S3801: YES), the verification support apparatus 400 selects an unselected logically compressed module (step S3802). Then, the verification support apparatus 400 determines whether or not there is a pair of an unselected driver side instance name and terminal name in the selected logically compressed module (step S3803).
  • step S3803 If there is a pair of driver-side instance name and terminal name that has not been selected (step S3803: Yes), the verification support apparatus 400 selects a pair of driver-side instance name and terminal name that has not been selected (step S3804). The verification support apparatus 400 traces the terminal link of the selected driver-side instance name and terminal name set (step S3805), and acquires the receiver-side instance name and terminal name set (step S3806).
  • step S3807 the verification support apparatus 400 generates character string data using the selected combination of the driver-side instance name and terminal name and the acquired combination of the receiver-side instance name and terminal name (step S3807), and returns to step S3803.
  • step S3803 if there is no unselected driver-side instance name and terminal name pair (step S3803: No), the process returns to step S3801.
  • step S3801 if there is no unselected logically compressed module (step S3801: No), the verification support apparatus 400 has not selected the same identification information as the verification target module from the logically compressed module group of the old circuit 100a. It is determined whether there is any logically compressed module (step S3808). When there is an unselected logically compressed module (step S3808: Yes), the verification support apparatus 400 selects an unselected logically compressed module as a comparison target module (step S3809). Then, the verification support apparatus 400 determines whether or not there is a pair of an unselected driver-side instance name and terminal name in the comparison target module (step S3810).
  • step S3810 If there is a pair of an unselected driver side instance name and terminal name (step S3810: Yes), the verification support apparatus 400 selects a pair of an unselected driver side instance name and terminal name (step S3811). The verification support apparatus 400 traces the terminal link of the selected driver-side instance name and terminal name set (step S3812), and acquires the receiver-side instance name and terminal name set (step S3813). Thereafter, the verification support apparatus 400 generates character string data using the selected set of the driver side instance name and terminal name and the acquired set of the receiver side instance name and terminal name (step S3814), and returns to step S3810.
  • step S3810 if there is no unselected driver-side instance name and terminal name pair (step S3810: No), the process returns to step S3808.
  • step S3808 if there is no unselected logically compressed module (step S3808: No), the second character string conversion process (step S3705) ends. Thereby, after logical compression, character string information is generated for each of the verification candidate module of the current circuit 100b and the comparison target module of the old circuit 100a.
  • FIG. 39 is a flowchart showing a detailed processing procedure example of the second difference extraction processing (step S3706) shown in FIG.
  • the verification support apparatus 400 determines whether there is character string conversion information of the unselected logically compressed current circuit 100b (step S3901). If there is character string information of the unselected logically compressed current circuit 100b (step S3901: Yes), the verification support apparatus 400 selects character string information of the unselected logically compressed current circuit 100b (step S3901: Yes). Step S3902). Next, the verification support apparatus 400 acquires the character string information of the old circuit 100a that has been logically compressed and corresponds to the character string information of the selected current circuit 100b (step S3903).
  • the verification support apparatus 400 determines whether there is unselected character string data in the character string information of the selected logically compressed current circuit 100b (step S3904). If there is unselected character string data (step S3904: Yes), the verification support apparatus 400 selects one non-selected character string data (step S3905). Then, the verification support apparatus 400 determines whether or not the selected character string data is in the character string information of the old circuit 100a after logical compression acquired in step S3903 (step S3906). Here, it is determined whether or not there is character string data that completely matches.
  • step S3906 If the selected character string data is in the character string information of the logically compressed old circuit 100a acquired in step S3903 (step S3906: YES), the process returns to step S3904. On the other hand, if not present (step S3906: NO), the verification support apparatus 400 temporarily stores the selected character string data in the storage device 402 (step S3907), and returns to step S3904. If there is no unselected character string data in step S3904 (step S3904: No), the verification support apparatus 400 determines whether there is the selected character string data stored in step S3907 (step S3908).
  • step S3908: Yes If there is stored selected character string data (step S3908: Yes), the verification support apparatus 400 extracts the instance name of the circuit that becomes a difference from the selected character string data and stores it in the storage device 402 (step S3909). . Then, the process returns to step S3901. On the other hand, if there is no stored selected character string data (step S3908: No), the process returns to step S3901. In step S3901, when there is no character string information of the unselected logically compressed current circuit 100b (step S3901: No), the second difference extraction process (step S3716) ends.
  • the circuit configuration of the module is simplified by logical compression compared with that before logical compression. Therefore, it is possible to increase the accuracy of the difference extraction by comparing the modules after logical compression. Further, since the amount of difference to be extracted is suppressed by logical compression, the amount of trace at the verification target portion is also reduced. Therefore, the tracing process can be speeded up. In addition, since the amount of difference is suppressed, the number of verification target locations is equal to or less than the number of verification target locations in the first embodiment. Therefore, the efficiency of the verification work can be improved by suppressing the verification range.
  • the upper layer module as the assembly destination is substantially updated by changing the update date / time of the upper layer module to the lower layer module. To do. Thereby, it is possible to suppress omission of verification that occurs when only the lower-level module is verified.
  • modules that do not have an effect even if they are not verified can be excluded from the verification range expanded by changing the update date and time of the upper hierarchy. As a result, the verification speed can be increased.
  • the circuit information into simple character string data consisting of the driver-side instance name and terminal name and the receiver-side instance name and terminal name, the information necessary for differential extraction can be obtained, and the differential extraction speeded up. Can be achieved.
  • the verification information can be used as it is for a module that has not been changed. Further, since the verification can be performed on the verification target portion, the waste of the verification process can be reduced and the speed of the verification process can be increased. Further, the verification result of the current circuit 100b can be obtained simply by adding the verification result obtained by the verification of the verification target portion to the verification result after deleting the old circuit 100a. Therefore, the efficiency of the verification result generation process of the current circuit 100b can be improved.

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

 検証支援装置(400)は、下位階層のモジュールの更新日時とその上位階層のモジュールの更新日時を比較して、下位階層のモジュールの更新日時の方が新しい場合は、上位階層のモジュールの更新日時を下位階層のモジュールの更新日時に変更する。検証支援装置(400)は、現回路(100b)のモジュールごとに、更新日時と検証日時を比較する。更新日時の方が新しい場合、検証支援装置(400)は、更新後に検証が実行されていないことになるため、更新日時の方が新しいモジュールをチェック対象に決定する。そして、検証支援装置(400)は、同一モジュールについて、現回路(100b)のチェック対象と旧回路(100a)のモジュールとを比較して、差分を抽出する。

Description

検証支援プログラム、検証支援方法、および検証支援装置
 本発明は、検証支援プログラム、検証支援方法、および検証支援装置に関する。
 マクロの変更日時と検証日時とを比較し、変更日時の方が新しいマクロについて、マクロの内部およびマクロに接続しているネットの検証を再実行する従来技術が開示されている。また、過去に表示した物理検証エラーと再度物理検証したエラーとを比較して、差分のあった箇所のみを表示する従来技術が開示されている。
特開平9-153072号公報 特開平3-250263号公報
 開発においては、下位階層のモジュールを組み上げて上位階層を構築するため、上位階層のモジュールには下位階層のモジュールが含まれることになる。そして、下位階層のモジュールに変更が生じた場合、下位階層のモジュールの変更が上位階層のモジュールの接続関係や動作に影響を与える場合がある。したがって、下位階層のモジュールのみ検証をおこなうと検証漏れが発生することがある。
 本発明は、検証精度の向上を図ることを目的とする。
 本発明の一側面によれば、階層化されたモジュール群により構成される検証対象回路の回路情報を取得し、取得された回路情報のモジュール群のうち最上位階層以外のいずれかのモジュールの更新日時が、前記いずれかのモジュールの上位階層のモジュールの更新日時よりも新しい日時であるか否かを判断し、新しい日時であると判断された場合、前記上位階層のモジュールの更新日時を前記いずれかのモジュールの更新日時に変更し、変更された結果、前記モジュール群のうち、検証を実行した検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する検証支援プログラム、検証支援方法、および検証支援装置が提案される。
 本発明の一側面によれば、検証効率の向上を図ることができるという効果を奏する。
図1は、本実施の形態にかかる検証支援装置による検証支援例を示す説明図である。 図2は、検証結果の修正例を示す説明図(その1)である。 図3は、検証結果の修正例を示す説明図(その2)である。 図4は、検証支援装置のハードウェア構成例を示すブロック図である。 図5は、実施の形態1にかかる検証支援装置400の機能的構成例を示すブロック図である。 図6は、旧回路100aの一例を示す回路図である。 図7は、現回路100bの一例を示す回路図である。 図8は、旧回路100aの回路情報となるデータ構造例を示す説明図である。 図9は、現回路100bの回路情報となるデータ構造例を示す説明図である。 図10は、旧回路100aの回路情報800aのマクロ情報M1のデータ構造例を示す説明図である。 図11は、現回路100bの回路情報800bのマクロ情報M1のデータ構造例を示す説明図である。 図12は、旧回路100aの回路情報800aのマクロ情報M2のデータ構造例を示す説明図である。 図13は、現回路100bの回路情報800bのマクロ情報M2のデータ構造例を示す説明図である。 図14は、旧回路100aおよび現回路100bの回路情報800a,800bのマクロ情報M3のデータ構造例を示す説明図である。 図15は、更新日時の変更例を示す説明図である。 図16は、旧回路100aの文字列化情報の一例を示す説明図である。 図17は、現回路100bの文字列化情報の一例を示す説明図である。 図18は、文字列化情報L1aと文字列化情報L1bとを用いた抽出例を示す説明図である。 図19は、文字列化情報L2aと文字列化情報L2bとを用いた抽出例を示す説明図である。 図20は、現回路100bでの検証対象箇所を示す回路図である。 図21は、実施の形態1にかかる検証支援装置400による検証支援処理手順例を示すフローチャートである。 図22は、図21に示した検証候補抽出処理(ステップS2101)の詳細な処理手順例を示すフローチャートである。 図23は、図21に示した文字列化処理(ステップS2102)の詳細な処理手順例を示すフローチャートである。 図24は、図21に示した差分抽出処理(ステップS2103)の詳細な処理手順例を示すフローチャートである。 図25は、図21に示した検証対象箇所設定処理(ステップS2104)の詳細な処理手順例を示すフローチャートである。 図26は、図21に示した旧回路100aの検証結果修正処理(ステップS2105)の詳細な処理手順例を示すフローチャートである。 図27は、図21に示した現回路100bの検証結果生成処理(ステップS2106)の詳細な処理手順例を示すフローチャートである。 図28は、実施の形態2にかかる検証支援装置400の機能的構成例を示すブロック図である。 図29は、論理圧縮例を示す説明図である。 図30は、旧回路100aの第1階層のモジュール「topmod:TOP」の論理圧縮例を示す説明図である。 図31は、現回路100bの第1階層のモジュール「topmod:TOP」の論理圧縮例を示す説明図である。 図32は、現回路100bの第2階層の第1モジュール「low1:LOW_A」の論理圧縮例を示す説明図である。 図33は、旧回路100aの文字列化情報の一例を示す説明図である。 図34は、現回路100bの文字列化情報の一例を示す説明図である。 図35は、文字列化情報L3aと文字列化情報L3bとを用いた抽出例を示す説明図である。 図36は、文字列化情報L4aと文字列化情報L4bとを用いた抽出例を示す説明図である。 図37は、実施の形態2にかかる検証支援装置400による検証支援処理手順例を示すフローチャートである。 図38は、図37に示した第2の文字列化処理(ステップS3705)の詳細な処理手順例を示すフローチャートである。 図39は、図37に示した第2の差分抽出処理(ステップS3706)の詳細な処理手順例を示すフローチャートである。
 以下に添付図面を参照して、この発明にかかる検証支援プログラム、検証支援方法、および検証支援装置の実施の形態を詳細に説明する。検証対象回路は、階層化されたモジュール群で構成された回路情報により表現される。モジュール群の下位階層から上位階層に組み上げることにより、検証対象回路の回路情報が構築される。
 以下、本実施の形態では、上位階層である第1階層とその下位階層である第2階層により構成された検証対象回路を例に挙げて説明する。なお、検証は、検証支援装置で実行してもよく、検証支援装置外のシミュレータで実行してもよい。また、本実施の形態では、検証対象回路の現在の構造を示す現回路と、現回路よりも古い構造を示す旧回路を例に挙げて説明するが、両回路の更新に差があれば、一方が現回路である必要はない。
<検証支援例>
 図1は、本実施の形態にかかる検証支援装置による検証支援例を示す説明図である。図1では同一の検証対象回路100についての旧回路100aと現回路100bとを示している。図1において、各階層における「更新日時」とは、その階層のモジュールが更新された日時である。また、各階層における「検証日時」とは、その階層のモジュールの検証が実行された日時である。図1では、旧回路100aは、「2011/07/10」に更新され、「2011/08/10」に検証が実行された検証対象回路100である。また、現回路100bは、旧回路100aの第1階層のモジュール「topmod:TOP」を「2011/08/20」に更新し、旧回路100aの第2階層の第1モジュール「low1:LOW_A」を「2011/09/10」に更新した検証対象回路100である。旧回路100aの第2階層の第2モジュール「low2:LOW_B」は、更新されていない。
 (1)検証支援装置は、下位階層のモジュールの更新日時とその上位階層のモジュールの更新日時を比較して、下位階層のモジュールの更新日時の方が新しい場合は、上位階層のモジュールの更新日時を下位階層のモジュールの更新日時に変更する。図1では、現回路100bにおいて、第1階層のモジュール「topmod:TOP」の更新日時「2011/08/20」が、第2階層の第1モジュール「low1:LOW_A」の更新日時「2011/09/10」に変更される。下位階層のモジュールに変更が生じた場合、下位階層のモジュールの変更が組み上げ先となる上位階層のモジュールの接続関係や動作に影響を与える場合がある。
 したがって、上位階層のモジュールの更新日時を下位階層のモジュールに変更することにより、組み上げ先となる上位階層のモジュールも実質的に更新されたことにする。これにより、下位階層のモジュールのみ検証をおこなう場合に発生する検証漏れを抑制することができる。
 (2)つぎに、検証支援装置は、現回路100bのモジュールごとに、更新日時と検証日時を比較する。更新日時の方が新しい場合、検証支援装置は、更新後に検証が実行されていないことになるため、更新日時の方が新しいモジュールをチェック対象に決定する。図1では、第1階層のモジュール「topmod:TOP」と第2階層の第1モジュール「low1:LOW_A」がチェック対象となる。第2階層の第2モジュール「low2:LOW_B」はチェック対象外となる。これにより、上記(1)によるチェック対象の拡大を抑制することができ、検証しなくても影響のないモジュールをチェック対象外とすることができる。
 (3)そして、検証支援装置は、同一モジュールについて、現回路100bのチェック対象と旧回路100aのモジュールとを比較して、差分を抽出する。図1では、第1階層のモジュール「topmod:TOP」と第2階層の第1モジュール「low1:LOW_A」とが、現回路100bと旧回路100aとの間で比較される。第2階層の第2モジュール「low2:LOW_B」はチェック対象外であるため比較されない。これにより、無駄な比較処理を防止することができ、検証支援処理の高速化を図ることができる。そして、検証支援装置は、チェック対象のモジュールごとに、差分から後段にトレースした箇所を検証対象箇所とする。これにより、検証対象箇所について検証が実行される。
 図2は、検証結果の修正例を示す説明図(その1)である。検証結果V1は、修正前の検証結果である。検証結果V1は、旧回路100aでの検証結果である。検証結果は、一例として、マクロ名項目、検証種別項目、検証対象箇所項目、検証内容項目を有し、マクロごとに各項目の値が格納される電子データである。マクロ名項目には、モジュールを示すマクロのマクロ名が格納される。マクロ名とは、モジュールを特定する名称である。たとえば、モジュール「topmod:TOP」の場合、マクロ名として「topmod:TOP」が格納される。
 検証種別項目には、検証種別が格納される。検証種別は、検証の種類を示す。検証種別には、「形状」、「負荷」、「論理」がある。「形状」は形状検証を意味しており、形状検証では接続元回路と接続先回路との接続の正しさが検証される。「負荷」は負荷検証を意味しており、負荷検証では接続元回路から接続先回路に対する負荷が許容範囲内にあるかが検証される。「論理」は論理検証を意味しており、論理検証では回路から出力される論理値の正しさが検証される。検証対象箇所項目には、検証対象箇所となる回路と端子とを組み合わせた文字列が格納される。図2では、「.」の手前の文字列が回路名を指し、「.」以降の文字列が端子名を指す。たとえば、「buf1.A」は、回路buf1の端子Aを意味する。検証内容項目には、検証内容が格納される。検証内容には、検証対象箇所における検証種別での検証ルールを示す文字列が格納される。
 検証結果V10は、旧回路100aでの検証結果V1から、図1で得られた差分からトレースされた検証対象箇所を除いた検証結果である。すなわち、図1で得られた検証対象箇所については、再検証が必要であるため、検証支援装置は、検証結果V1から削除する。一方、図1で得られた検証対象箇所以外の箇所については、検証支援装置は、削除せずに流用する。これにより、検証作業の効率化を図ることができる。
 図3は、検証結果の修正例を示す説明図(その2)である。検証結果V2は、削除後の検証結果V10に、図1で得られた検証対象箇所の検証で得られたレコードRを追加した検証結果V2である。これにより、現回路100bの部分的な検証結果であるレコードRを検証結果V10に反映することで、検証支援装置は、現回路100b全体の検証結果V2を得ることができる。
<検証支援装置のハードウェア構成例>
 図4は、検証支援装置のハードウェア構成例を示すブロック図である。図4において、検証支援装置400は、プロセッサ401、記憶装置402、入力装置403、出力装置404、および通信装置405が、バス406に接続されて構成されるコンピュータである。
 プロセッサ401は、検証支援装置400の全体の制御を司る。また、プロセッサ401は、記憶装置402に記憶されている各種プログラム(OS(Operating System)や本実施の形態の検証支援プログラム)を実行することで、記憶装置402内のデータを読み出したり、実行結果となるデータを記憶装置402に書き込んだりする。
 記憶装置402は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、磁気ディスクドライブなどが採用される。また、記憶装置402は、プロセッサ401のワークエリアになる。また、記憶装置402は、各種プログラム(OSや本実施の形態の検証支援プログラム)や各種データ(各プログラムの実行により得られたデータを含む)を記憶する。
 入力装置403は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力をおこなうインターフェースである。出力装置404は、プロセッサ401の指示により、データを出力するインターフェースである。出力装置404には、ディスプレイやプリンタが挙げられる。通信装置405は、ネットワークを介して外部からデータを受信したり、外部にデータを送信したりするインターフェースである。
(実施の形態1)
<検証支援装置400の機能的構成例>
 図5は、実施の形態1にかかる検証支援装置400の機能的構成例を示すブロック図である。検証支援装置400は、取得部501と、判断部502と、変更部503と、決定部504と、特定部505と、変換部506と、抽出部507と、設定部508と、削除部509と、追加部510と、を有する。取得部501、判断部502、変更部503、決定部504、特定部505、変換部506、抽出部507、設定部508、削除部509、および追加部510は、具体的には、たとえば、図4に示した記憶装置402に記憶されたプログラムをプロセッサ401に実行させることにより、その機能を実現する。
 取得部501は、階層化されたモジュール群により構成される検証対象回路100の回路情報を取得する。具体的には、たとえば、取得部501は、記憶装置402から読み出したり、入力装置からの入力により受け付けたり、通信装置から受信することにより、回路情報を取得する。また、取得部501は、図1に示した旧回路100aの回路情報や現回路100bの回路情報を取得する。ここで、回路情報について具体的に説明する。
 図6は、旧回路100aの一例を示す回路図である。また、図7は、現回路100bの一例を示す回路図である。旧回路100aおよび現回路100bの第1階層のモジュール「topmod:TOP」は、入力端子IN1~IN4、出力端子OUT1,OUT2、バッファbuf1:BUF、およびマクロma4:MAC_Cを有する。現回路100bの第1階層のモジュール「topmod:TOP」には、入力端子IN5およびインバータinv4:INVが存在するが、旧回路100aの第1階層のモジュール「topmod:TOP」には、存在しない。
 旧回路100aおよび現回路100bの第2階層の第1モジュール「low1:LOW_A」は、入力端子I1,I2、出力端子O1,O2、NAND回路nand1:NAND、マクロma1:MAC_A、およびマクロma2:MAC_Aを有する。現回路100bの第2階層の第1モジュール「low1:LOW_A」には、インバータinv1:INV~inv3:INVおよびバッファbuf2:BUFが存在するが、旧回路100aの第2階層の第1モジュール「low1:LOW_A」には、存在しない。
 旧回路100aおよび現回路100bの第2階層の第2モジュール「low2:LOW_B」は、入力端子I1,I2、出力端子O1、NAND回路nand2:NAND、およびマクロma3:MAC_Bを有する。第2階層の第2モジュール「low2:LOW_B」は、旧回路100aと現回路100bとで同一構成である。
 図8は、旧回路100aの回路情報となるデータ構造例を示す説明図である。また、図9は、現回路100bの回路情報となるデータ構造例を示す説明図である。図8および図9において、回路情報800a,800bは、マクロNo.項目と、階層項目と、マクロ名項目と、上位リンク項目と、更新日時項目と、検証日時項目と、マクロ情報項目と、検証結果項目と、を有する。回路情報800a,800bには、マクロとなるモジュールごとに各項目の値が格納される。
 マクロNo.項目には、マクロNo.が格納される。マクロNo.とは、マクロを一意に特定する識別情報である。階層項目には、階層番号が格納される。階層番号とは、検証対象回路100を構成するモジュールの階層を特定する番号である。マクロ名項目には、マクロ名が格納される。マクロ名とは、モジュールを特定する名称である。たとえば、モジュール「topmod:TOP」の場合、マクロ名として「topmod:TOP」が格納される。
 上位リンク項目には、上位リンクが格納される。上位リンクとは、そのマクロの上位階層の階層番号である。たとえば、マクロNo.が「2」のレコードにおいて、第2階層の第1モジュール「low1:LOW_A」が組み込まれる上位階層は第1階層であるため、上位リンクとして「1」が格納される。最上位階層、すなわち、第1階層のモジュールについては、上位階層のマクロが存在しないため、第1階層のモジュール「topmod:TOP」を示すマクロNo.が「1」のレコードでは、上位リンクとして「-1」が格納される。
 更新日時項目には、更新日時が格納される。回路情報800a,800bの更新処理が検証支援装置400で実行できる場合には、検証支援装置400が、更新されたマクロに対して、更新日時を更新する。一方、回路情報800a,800bの更新処理が外部の装置で実行される場合には、検証支援装置400が、外部の装置から更新日時を取得して、取得した更新日時で更新する。また、検証支援装置400は、検証支援装置400の入力装置をユーザが操作することにより、更新日時を更新してもよい。
 検証日時項目には、検証が実行された検証日時が格納される。回路情報800a,800bの検証処理が検証支援装置400で実行できる場合には、検証支援装置400が、検証されたマクロに対して、検証日時を検証する。一方、回路情報800a,800bの検証処理が外部の装置で実行される場合には、検証支援装置400が、外部の装置から検証日時を取得して、取得した検証日時で検証する。また、検証支援装置400は、検証支援装置400の入力装置をユーザが操作することにより、検証日時を検証してもよい。
 マクロ情報項目には、マクロ情報が格納される。マクロ情報とは、マクロの構造を特定する情報であり、たとえば、マクロの内部を構成する回路やマクロとその外部との接続関係を示す情報が含まれる。マクロ情報については、図10~図14で後述する。検証結果項目には、検証結果または検証結果へのポインタが格納される。本例では、図2および図3に示した検証結果V1または検証結果V1へのポインタが格納される。
 図10は、旧回路100aの回路情報800aのマクロ情報M1のデータ構造例を示す説明図である。図11は、現回路100bの回路情報800bのマクロ情報M1のデータ構造例を示す説明図である。図12は、旧回路100aの回路情報800aのマクロ情報M2のデータ構造例を示す説明図である。図13は、現回路100bの回路情報800bのマクロ情報M2のデータ構造例を示す説明図である。図14は、旧回路100aおよび現回路100bの回路情報800a,800bのマクロ情報M3のデータ構造例を示す説明図である。
 図10~図14において、マクロ情報M1~M3は、端子No.項目と、自マクロ情報項目と、接続先情報項目と、を有し、項目ごとに値が格納される。端子No.項目には、端子No.が格納される。端子No.とは、自マクロ情報および下位マクロ情報で特定される端子に割当てられる番号である。自マクロ情報項目には、マクロ情報により特定されるマクロ内の端子の情報が格納される。具体的には、自マクロ情報項目は、IO属性項目と、IO端子項目と、端子リンク項目と、を有する。IO属性項目には、IO属性が格納される。IO属性とは、端子No.で特定されるIO端子の属性を示す情報が格納される。IO端子とは、マクロに設けられた端子である。たとえば、IO端子が入力端子であれば「IN」、出力端子であれば「OUT」が格納される。IO端子項目には、IO端子名が格納される。
 端子リンク項目には、端子リンクが格納される。端子リンクとは、接続先情報における、リンク先となる端子の端子No.である。図6の旧回路100aの回路情報において、入力端子IN2は、バッファbuf1:BUFの入力端子buf1.Aに接続される。図10の旧回路100aのマクロ情報M1では、端子No.「2」の入力端子「IN2」の端子リンクは「5」である。したがって、入力端子「IN2」は、接続先情報において、端子No.「5」のレコードの「buf1:BUF」、IO属性「IN」、IO端子「A」により特定されるバッファbuf1:BUFの入力端子buf1.Aに接続されることがわかる。
 また、接続先情報項目には、自マクロ情報で特定されるマクロの各IO端子の接続先を示す情報が格納される。具体的には、接続先情報項目は、接続先項目と、IO属性項目と、IO端子項目と、端子リンク項目と、を有する。接続先項目には、接続先となるマクロ名が格納される。接続先の接続相手は、自マクロのほか、接続先項目内のマクロも該当する。IO属性項目には、IO属性が格納される。IO属性とは、端子No.で特定されるIO端子の属性を示す情報が格納される。IO端子とは、マクロに設けられた端子である。たとえば、IO端子が入力端子であれば「IN」、出力端子であれば「OUT」が格納される。IO端子項目には、IO端子名が格納される。
 端子リンク項目には、端子リンクが格納される。端子リンクとは、自マクロ情報における、リンク先となる端子の端子No.である。端子リンクが負値の場合は、その絶対値が自マクロ情報のIO端子の端子No.を示す。端子リンクが正値の場合は、接続先情報のIO端子の端子No.を示す。
 図6の旧回路100aにおいて、バッファbuf1:BUFの入力端子buf1.Aは、入力端子IN2に接続される。図10の旧回路100aのマクロ情報M1では、端子No.「5」の入力端子「buf1.A」の端子リンクは「-2」である。したがって、入力端子「buf1.A」は、自マクロ情報において、端子No.「2」のレコードのIO端子「IN2」により特定される入力端子IN2に接続されることがわかる。
 また、図6の旧回路100aにおいて、バッファbuf1:BUFの出力端子buf1.Xは、第1モジュール「low1:LOW_A」の入力端子I2に接続される。図10の旧回路100aのマクロ情報M1では、端子No.「6」の出力端子「buf1.X」の端子リンクは「2」である。したがって、出力端子「buf1.X」は、接続先情報において、端子No.「2」のレコードの第1モジュール「low1:LOW_A」のIO端子「I2」により特定される入力端子I2に接続されることがわかる。図5に戻る。
 判断部502は、取得部501によって取得された回路情報のモジュール群のうち最上位階層以外のいずれかのモジュールの更新日時が、いずれかのモジュールの上位階層のモジュールの更新日時よりも新しい日時であるか否かを判断する。最上位階層とは、第1階層である。図9の現回路100bにおいて、判断部502は、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」と第2階層の第1モジュール「low1:LOW_A」の更新日時「2011.09.10」とを比較する。そして、判断部502は、第2階層の第1モジュール「low1:LOW_A」の更新日時「2011.09.10」の方が新しい日時か否かを判断する。
 同様に、判断部502は、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」と第2階層の第2モジュール「low2:LOW_B」の更新日時「2011.07.10」とを比較する。そして、判断部502は、第2階層の第2モジュール「low2:LOW_B」の更新日時「2011.07.10」の方が新しい日時か否かを判断する。
 変更部503は、判断部502によって新しい日時であると判断された場合、上位階層のモジュールの更新日時をいずれかのモジュールの更新日時に変更する。具体的には、たとえば、第2階層の第1モジュール「low1:LOW_A」の更新日時「2011.09.10」が第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」よりも新しい日時である。したがって、変更部503は、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」を、第2階層の第1モジュール「low1:LOW_A」の更新日時「2011.09.10」に変更する。
 下位階層のモジュールに変更が生じた場合、下位階層のモジュールの変更が組み上げ先となる上位階層のモジュールの接続関係や動作に影響を与える場合がある。したがって、上位階層のモジュールの更新日時を下位階層のモジュールに変更することにより、組み上げ先となる上位階層のモジュールも実質的に更新されたことにする。これにより、下位階層のモジュールのみ検証をおこなう場合に発生する検証漏れを抑制することができる。
 また、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」と第2階層の第2モジュール「low2:LOW_B」の更新日時「2011.07.10」とでは、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」の方が新しい日時である。したがって、第1階層のモジュール「topmod:TOP」の更新日時「2011.08.20」は、第2階層の第2モジュール「low2:LOW_B」の更新日時「2011.07.10」に変更されない。
 図15は、更新日時の変更例を示す説明図である。現回路100bの回路情報800bにおいて、マクロNo.「1」のレコードの更新日時が、「2011.08.20」から「2011.09.10」に変更される。図5に戻る。
 決定部504は、変更部503によって変更された結果、モジュール群のうち、検証を実行した検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する。具体的には、たとえば、決定部504は、現回路100bの回路情報800bにおいて、モジュールごとに、更新日時と検証日時とを比較する。そして、決定部504は、検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する。検証候補モジュールとは、図1のチェック対象となったモジュールである。具体的には、たとえば、決定部504は、現回路100bの回路情報800bにおいて検証候補モジュールとなるレコードに検証候補であることを示すフラグを設定する。本例では、現回路100bにおける第1階層のモジュール「topmod:TOP」と第2階層の第1モジュール「low1:LOW_A」が、検証候補モジュールとなる。
 一方、第2階層の第2モジュール「low2:LOW_B」は検証対象外となる。これにより、上位階層の更新日時の変更により拡大した検証候補を抑制することができ、検証しなくても影響のないモジュールを検証対象外とすることができる。
 特定部505は、決定部504によって決定された検証候補モジュールと同一識別情報である比較対象モジュールを、検証対象回路100の旧回路情報において階層化された旧モジュール群から特定する。旧回路情報とは、旧回路100aの回路情報800aである。特定部505は、具体的には、たとえば、現回路100b内の検証候補モジュール「topmod:TOP」と同一識別情報、すなわち、同一マクロNo.「1」である旧回路100aの第1階層のモジュール「topmod:TOP」を比較対象モジュールとして特定する。同様に、特定部505は、現回路100b内の検証候補モジュール「low1:LOW_A」と同一識別情報、すなわち、同一マクロNo.「2」である旧回路100aの第2階層の第1モジュール「low1:LOW_A」を比較対象モジュールとして特定する。
 抽出部507は、検証候補モジュールと特定部505によって特定された比較対象モジュールとの差分を抽出する。具体的には、たとえば、抽出部507は、旧回路100aの回路情報800aと現回路100bの回路情報800bとを比較して、比較対象モジュールにはなくて、検証候補モジュールには存在する回路や、検証候補モジュールにはあるが比較対象モジュールにはない回路を、差分として抽出する。差分を抽出する場合、回路情報同士を比較すると演算処理に時間がかかるため、変換部506による文字列化を実行するのが好ましい。
 変換部506は、検証候補モジュールを、検証候補モジュール内の回路間の接続関係を示す第1の文字列化情報に変換するとともに、比較対象モジュールを、比較対象モジュール内の回路間の接続関係を示す第2の文字列化情報に変換する。ここで文字列化情報への変換である文字列化について説明する。文字列化は、図10~図14に示したマクロ情報のうち、検証候補モジュールおよび比較対象モジュールに該当するマクロ情報を用いて実行される。
 変換部506は、自マクロ情報のレコードごとに端子リンクを辿ることにより、接続先情報のレコードを特定する。また、変換部506は、接続先情報のレコードごとに端子リンクを辿ることにより、接続先情報のレコードを特定する。そして、リンク元の端子名とリンク先の端子名とを結合することにより、文字列化情報が生成される。
 文字列化情報は、一例として「aaa.bbb_ccc.ddd」で表現される。「aaa」はリンク元であるドライバ側の回路のインスタンス名、「bbb」はドライバ側の端子名、「ccc」はリンク先であるレシーバ側の回路のインスタンス名、「ddd」はリンク先の端子名である。
 たとえば、図11の現回路100bのマクロ情報M1において、端子No.「1」の自マクロ情報は、「topmod:TOP」の入力端子IN1である。したがって、「aaa」に相当する文字列は、「topmod:TOP」のインスタンス名「topmod」である。また、「bbb」に相当する文字列は、「topmod:TOP」の「IN1」である。
 また、端子リンクは「1」であるため、変換部506は、接続先情報における端子No.「1」の端子として、「low1:LOW_A」の入力端子I1を特定する。したがって、「ccc」に相当する文字列は、「low1:LOW_A」のインスタンス名「low1」である。また、「ddd」に相当する文字列は、「low1:LOW_A」の「I1」である。これにより、文字列化データ「topmod.IN1_low1.I1」が得られる。
 また、図11の現回路100bのマクロ情報M1において、端子No.「2」の接続先情報は、「low1:LOW_A」の入力端子I2である。この場合、リンク先は、ドライバ側となるバッファbuf1:BUFであるため、文字列化は実行されない。すなわち、接続先情報において、IO属性が「IN」のレコードはドライバ側となるため選択されない。
 また、図11の現回路100bのマクロ情報M1において、端子No.「3」の接続先情報は、「low1:LOW_A」の出力端子O1である。したがって、「aaa」に相当する文字列は、「low1:LOW_A」のインスタンス名「low1」である。また、「bbb」に相当する文字列は、「low1:LOW_A」の「O1」である。
 また、端子リンクは「7」であるため、変換部506は、接続先情報における端子No.「7」の端子として、「ma4:MAC_C」の入力端子Aを特定する。したがって、「ccc」に相当する文字列は、「ma4:MAC_C」のインスタンス名「ma4」である。また、「ddd」に相当する文字列は、「ma4:MAC_C」の「A」である。これにより、文字列化データ「low1.O1_ma4.A」が得られる。
 図16は、旧回路100aの文字列化情報の一例を示す説明図である。図16において、「topmod:TOP」の文字列化情報L1aは、図10のマクロ情報M1から変換された文字列化情報である。また、「low1:LOW_A」の文字列化情報L2aは、図12のマクロ情報M2から変換された文字列化情報である。
 図17は、現回路100bの文字列化情報の一例を示す説明図である。図17において、「topmod:TOP」の文字列化情報L1bは、図11のマクロ情報M1から変換された文字列化情報である。また、「low1:LOW_A」の文字列化情報L2bは、図13のマクロ情報M2から変換された文字列化情報である。図5に戻る。
 変換部506により文字列化が実行された場合、抽出部507は、変換部506によって変換された第1の文字列化情報と第2の文字列化情報との差分を抽出する。具体的には、抽出部507は、同一モジュールにおいて、現回路100bから得られた文字列化情報と旧回路100aから得られた文字列化情報を比較して差分を抽出する。
 図18は、文字列化情報L1aと文字列化情報L1bとを用いた抽出例を示す説明図である。文字列化情報L1bのうち文字列化情報L1aと相違する文字列化データは、「topmod.IN5_inv4.A」および「inv4.X_ma4.C」である。したがって、抽出部507は、相違する文字列化データ「topmod.IN5_inv4.A」および「inv4.X_ma4.C」のうち回路を示すインスタンス名「inv4」および「ma4」を差分として抽出する。
 図19は、文字列化情報L2aと文字列化情報L2bとを用いた抽出例を示す説明図である。文字列化情報L2bのうち文字列化情報L2aと相違する文字列化データは、「nand1.X_inv1.A」,「nand1.X_buf.A」,「buf2.X_inv3.A」,「inv1.X_inv2.A」,「inv2.X_ma1.A」,「inv3.X_ma2.A」である。したがって、抽出部507は、これらの文字列化データのうち、回路を示すインスタンス名「nand1」,「inv1」,「buf」,「buf2」,「inv3」,「inv2」,「ma1」,および「ma2」を差分として抽出する。図5に戻る。
 設定部508は、抽出部507によって抽出された差分に基づいて回路情報における検証対象回路100の出力側にトレースすることにより、回路情報における検証対象回路100の検証対象箇所を設定する。具体的には、設定部508は、現回路100b内の差分となる回路から出力側、すなわち、信号の伝播方向にトレースすることにより、現回路100bにおいて検証対象箇所を設定する。
 図20は、現回路100bでの検証対象箇所を示す回路図である。図20において、点線で囲まれた回路群が検証対象箇所である。検証対象箇所には、図18および図19で抽出された差分と、当該差分から出力側にトレースされた回路が含まれる。このように設定された検証対象箇所に限定して、再度検証をおこなうことにより、検証効率の向上を図ることができる。図5に戻る。
 削除部509は、旧回路100aに基づく検証対象回路100の検証結果から、設定部508によって設定された検証対象箇所に該当する検証情報を削除する。具体的には、たとえば、削除部509は、図2に示したように、旧回路100aの検証結果V1から、検証対象箇所を含むレコードを削除して、検証結果V10とする。
 追加部510は、検証対象箇所に基づく検証結果を、削除部509による削除後の検証結果に追加する。具体的には、たとえば、追加部510は、図3に示したように、削除後の検証結果V10に、検証対象箇所に基づく検証結果Rを追加することにより、検証結果V2を生成する。
<検証支援処理手順>
 図21は、実施の形態1にかかる検証支援装置400による検証支援処理手順例を示すフローチャートである。検証支援装置400は、検証候補抽出処理(ステップS2101)、文字列化処理(ステップS2102)、差分抽出処理(ステップS2103)、検証対象箇所設定処理(ステップS2104)、旧回路100aの検証結果修正処理(ステップS2105)、現回路100bの検証結果生成処理(ステップS2106)を実行する。
 図22は、図21に示した検証候補抽出処理(ステップS2101)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、階層番号のインデックスiをi=Nに設定する(ステップS2201)。Nは、現回路100bの最下層の階層番号である。検証支援装置400は、i=1であるか否か、すなわち、注目する階層が第1階層であるか否かを判断する(ステップS2202)。i=1でない場合(ステップS2202:No)、検証支援装置400は、第i階層において未選択モジュールがあるか否かを判断する(ステップS2203)。未選択モジュールがある場合(ステップS2203:Yes)、検証支援装置400は、第i階層の未選択モジュールを選択する(ステップS2204)。
 そして、検証支援装置400は、選択モジュールに対し第i-1階層のモジュールがあるか否かを判断する(ステップS2205)。第i-1階層のモジュールがない場合(ステップS2205:No)、ステップS2203に戻る。一方、第i-1階層のモジュールがある場合(ステップS2205:Yes)、検証支援装置400は、選択モジュールの更新日時が、第i-1階層のモジュールの更新日時よりも新しいか否かを判断する(ステップS2206)。新しくない場合(ステップS2206:No)、ステップS2203に戻る。
 一方、新しい場合(ステップS2206:Yes)、検証支援装置400は、第i-1階層のモジュールの更新日時を、選択モジュールの更新日時に変更する(ステップS2207)。そして、ステップS2203に戻る。ステップS2203において、第i階層の未選択モジュールがない場合(ステップS2203:No)、検証支援装置400は、iを1つデクリメントし(ステップS2208)、ステップS2202に戻る。ステップS2202において、i=1になった場合(ステップS2202:Yes)、検証支援装置400は、現回路100bのモジュール群から未抽出モジュールがあるか否かを判断する(ステップS2209)。
 未抽出モジュールがある場合(ステップS2209:Yes)、検証支援装置400は、未抽出モジュールを抽出する(ステップS2210)。そして、検証支援装置400は、抽出モジュールにおいて更新日時が検証日時より新しいか否かを判断する(ステップS2211)。新しい場合(ステップS2211:Yes)、検証支援装置400は、抽出モジュールを検証候補モジュールに決定して(ステップS2212)、ステップS2209に戻る。一方、新しくない場合(ステップS2211:No)、ステップS2209に戻る。ステップS2209において、未抽出モジュールがない場合(ステップS2209:No)、検証候補抽出処理(ステップS2101)が終了する。
 図23は、図21に示した文字列化処理(ステップS2102)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、検証候補モジュール群に未選択モジュールがあるか否かを判断する(ステップS2301)。未選択モジュールがある場合(ステップS2301:Yes)、検証支援装置400は、未選択モジュールを選択する(ステップS2302)。そして、検証支援装置400は、選択モジュールにおいて、未選択のドライバ側インスタンス名および端子名の組があるか否かを判断する(ステップS2303)。
 未選択のドライバ側インスタンス名および端子名の組がある場合(ステップS2303:Yes)、検証支援装置400は、未選択のドライバ側インスタンス名および端子名の組を選択する(ステップS2304)。そして、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組の端子リンクをトレースして(ステップS2305)、レシーバ側インスタンス名および端子名の組を取得する(ステップS2306)。
 このあと、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組と取得したレシーバ側インスタンス名および端子名の組で文字列化データを生成し(ステップS2307)、ステップS2303に戻る。また、ステップS2303において、未選択のドライバ側インスタンス名および端子名の組がない場合(ステップS2303:No)、ステップS2301に戻る。
 ステップS2301において、未選択モジュールがない場合(ステップS2301:No)、検証支援装置400は、旧回路100aのモジュール群の中から、検証対象モジュールと同一識別情報の未選択モジュールがあるか否かを判断する(ステップS2308)。未選択モジュールがある場合(ステップS2308:Yes)、検証支援装置400は、未選択モジュールを比較対象モジュールとして選択する(ステップS2309)。そして、検証支援装置400は、比較対象モジュールにおいて、未選択のドライバ側インスタンス名および端子名の組があるか否かを判断する(ステップS2310)。
 未選択のドライバ側インスタンス名および端子名の組がある場合(ステップS2310:Yes)、検証支援装置400は、未選択のドライバ側インスタンス名および端子名の組を選択する(ステップS2311)。そして、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組の端子リンクをトレースして(ステップS2312)、レシーバ側インスタンス名および端子名の組を取得する(ステップS2313)。このあと、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組と取得したレシーバ側インスタンス名および端子名の組で文字列化データを生成し(ステップS2314)、ステップS2310に戻る。
 また、ステップS2310において、未選択のドライバ側インスタンス名および端子名の組がない場合(ステップS2310:No)、ステップS2308に戻る。ステップS2308において、未選択モジュールがない場合(ステップS2308:No)、文字列化処理(ステップS2102)が終了する。これにより、現回路100bの検証候補モジュールと旧回路100aの比較対象モジュールのそれぞれについて文字列化情報が生成される。
 図24は、図21に示した差分抽出処理(ステップS2103)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、未選択の現回路100bの文字列化情報があるか否かを判断する(ステップS2401)。未選択の現回路100bの文字列化情報がある場合(ステップS2401:Yes)、検証支援装置400は、未選択の現回路100bの文字列化情報を選択する(ステップS2402)。つぎに、検証支援装置400は、選択した現回路100bの文字列化情報に対応する旧回路100aの文字列化情報を取得する(ステップS2403)。
 そして、検証支援装置400は、選択した現回路100bの文字列化情報に未選択の文字列化データがあるか否かを判断する(ステップS2404)。未選択の文字列化データがある場合(ステップS2404:Yes)、検証支援装置400は、未選択の文字列化データを1つ選択する(ステップS2405)。そして、検証支援装置400は、選択文字列化データが、ステップS2403で取得した旧回路100aの文字列化情報にあるか否かを判断する(ステップS2406)。ここでは完全一致する文字列化データがあるか否かを判断する。
 選択文字列化データが、ステップS2403で取得した旧回路100aの文字列化情報にある場合(ステップS2406:Yes)、ステップS2404に戻る。一方、ない場合(ステップS2406:No)、検証支援装置400は、選択文字列化データを記憶装置402に一時的に保存し(ステップS2407)、ステップS2404に戻る。ステップS2404において、未選択の文字列化データがない場合(ステップS2404:No)、検証支援装置400は、ステップS2407で保存した選択文字列化データがあるか否かを判断する(ステップS2408)。
 保存した選択文字列化データがある場合(ステップS2408:Yes)、検証支援装置400は、選択文字列化データから差分となる回路のインスタンス名を抽出して記憶装置402に保存する(ステップS2409)。そして、ステップS2401に戻る。一方、保存した選択文字列化データがない場合(ステップS2408:No)、ステップS2401に戻る。ステップS2401において、未選択の現回路100bの文字列化情報がない場合(ステップS2401:No)、差分抽出処理(ステップS2103)が終了する。
 図25は、図21に示した検証対象箇所設定処理(ステップS2104)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、差分抽出処理(ステップS2103)で抽出した差分から未選択の差分があるか否かを判断する(ステップS2501)。未選択の差分がある場合(ステップS2501:Yes)、検証支援装置400は、未選択の差分を選択し(ステップS2502)、現回路100bにおいて選択した差分から出力端子までトレースする(ステップS2503)。そして、検証支援装置400は、選択した差分およびトレースで通過したインスタンスを検証対象箇所に追加する(ステップS2504)。そして、ステップS2501に戻る。ステップS2501において、未選択の差分がない場合(ステップS2501:No)、検証対象箇所設定処理(ステップS2104)が終了する。
 図26は、図21に示した旧回路100aの検証結果修正処理(ステップS2105)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、旧回路100aの検証結果V1を取得して(ステップS2601)、旧回路100aの検証結果V1から検証対象箇所を含む検証情報を削除する(ステップS2602)。そして、検証支援装置400は、削除後の検証結果V10を出力する(ステップS2603)。出力形式としては、記憶装置402への保存、出力装置404からの表示出力や印刷出力、通信装置405からの送信が挙げられる。これにより、旧回路100aの検証結果修正処理(ステップS2105)が終了する。
 図27は、図21に示した現回路100bの検証結果生成処理(ステップS2106)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、検証対象箇所の検証結果を取得する(ステップS2701)。つぎに、検証支援装置400は、検証対象箇所の検証結果を旧回路100aの削除後の検証結果V10に追加する(ステップS2702)。これにより、現回路100bの検証結果V2が生成される。そして、検証支援装置400は、追加後の検証結果V2を出力する(ステップS2703)。出力形式としては、記憶装置402への保存、出力装置404からの表示出力や印刷出力、通信装置405からの送信が挙げられる。これにより、現回路100bの検証結果生成処理(ステップS2106)が終了する。
 このように、実施の形態1によれば、上位階層のモジュールの更新日時を下位階層のモジュールに変更することにより、組み上げ先となる上位階層のモジュールも実質的に更新されたことにする。これにより、下位階層のモジュールのみ検証をおこなう場合に発生する検証漏れを抑制することができる。
 また、上位階層の更新日時の変更により拡大した検証範囲から検証しなくても影響のないモジュールを除外することができる。これにより、検証速度の高速化を図ることができる。また、回路情報を、ドライバ側インスタンス名および端子名とレシーバ側インスタンス名および端子名という簡素な文字列化データとすることにより、差分抽出に必要な情報を得ることができ、差分抽出の高速化を図ることができる。
 また、旧回路100aの検証結果から検証対象箇所の検証情報だけを削除することにより、変更のないモジュールについては検証情報をそのまま流用することができる。また、検証対象箇所について検証を実行することができるため、検証処理の無駄を削減でき、検証処理の高速化を図ることができる。また、検証対象箇所の検証で得られた検証結果を、旧回路100aの削除後の検証結果に追加するだけで、現回路100bの検証結果を得ることができる。したがって、現回路100bの検証結果の生成処理の効率化を図ることができる。
(実施の形態2)
 つぎに、実施の形態2について説明する。実施の形態2では、検証支援装置400は、差分を抽出したあと、現回路100bのモジュール群のうち差分を含むモジュールと当該モジュールと同一識別情報の旧回路100aのモジュールのそれぞれについて論理圧縮をおこなう。論理圧縮によりモジュールは論理圧縮前と比較して回路構成が簡素化される。たとえば、インバータを2段直列に追加した場合には、論理圧縮により実質的に回路が追加されていないのと同じ構成となる。したがって、論理圧縮後のモジュール同士を比較することにより、差分抽出の高精度化を図る。
 図28は、実施の形態2にかかる検証支援装置400の機能的構成例を示すブロック図である。実施の形態2では、実施の形態1にかかる検証支援装置400に、圧縮部2800が追加される。圧縮部2800は、具体的には、たとえば、図4に示した記憶装置402に記憶されたプログラムをプロセッサ401に実行させることにより、その機能を実現する。また、圧縮部2800以外の機能的構成は、実施の形態1と同一構成であるため、同一符号を付し、圧縮部2800と関連のある機能についてのみ説明する。
 圧縮部2800は、抽出部507によって差分が抽出された検証候補モジュールおよび比較対象モジュールをそれぞれ論理圧縮する。論理圧縮されたモジュールについては、回路情報も論理圧縮後に更新される。ここで、論理圧縮例について説明する。
 図29は、論理圧縮例を示す説明図である。圧縮部2800では、たとえば、図29に示したような論理圧縮パターンを記憶しておき、該当する論理圧縮パターンが、差分が抽出された検証候補モジュールや比較対象モジュールにある場合、論理圧縮を実行する。また、圧縮部2800は、モジュール内の回路構成について論理演算を実行することにより論理圧縮を実行してもよい。
 図30は、旧回路100aの第1階層のモジュール「topmod:TOP」の論理圧縮例を示す説明図である。図30において、論理圧縮前の旧回路100aの第1階層のモジュール「topmod:TOP」をモジュール3001とし、論理圧縮後の旧回路100aの第1階層のモジュール「topmod:TOP」をモジュール3002とする。モジュール3001のバッファbuf1:BUFは、論理圧縮により削除され、モジュール3002となる。
 図31は、現回路100bの第1階層のモジュール「topmod:TOP」の論理圧縮例を示す説明図である。図31において、論理圧縮前の現回路100bの第1階層のモジュール「topmod:TOP」をモジュール3101とし、論理圧縮後の現回路100bの第1階層のモジュール「topmod:TOP」をモジュール3102とする。モジュール3101のバッファbuf1:BUFは、論理圧縮により削除され、モジュール3102となる。
 図32は、現回路100bの第2階層の第1モジュール「low1:LOW_A」の論理圧縮例を示す説明図である。図32において、論理圧縮前の現回路100bの第2階層の第1モジュール「low1:LOW_A」をモジュール3201とし、論理圧縮後の現回路100bの第2階層の第1モジュール「low1:LOW_A」をモジュール3202とする。モジュール3201のバッファbuf2:BUFは、論理圧縮により削除され、また、モジュール3201のインバータinv1:INV,inv2:INVは、論理圧縮により削除され、モジュール3202となる。図28に戻る。
 図28において、変換部506は、論理圧縮後のモジュールを文字列化情報に変換する。変換対象が論理圧縮後のモジュールに変わるだけで、変換処理自体は実施の形態1と同一処理である。
 図33は、旧回路100aの文字列化情報の一例を示す説明図である。図33において、「topmod:TOP」の文字列化情報L3aは、図10のマクロ情報M1の論理圧縮後のマクロ情報から変換された文字列化情報である。また、「low1:LOW_A」の文字列化情報L4aは、図12のマクロ情報M2の論理圧縮後のマクロ情報から変換された文字列化情報である。
 図34は、現回路100bの文字列化情報の一例を示す説明図である。図34において、「topmod:TOP」の文字列化情報L3bは、図11のマクロ情報M1の論理圧縮後のマクロ情報から変換された文字列化情報である。また、「low1:LOW_A」の文字列化情報L4bは、図13のマクロ情報M2の論理圧縮後のマクロ情報から変換された文字列化情報である。
 図35は、文字列化情報L3aと文字列化情報L3bとを用いた抽出例を示す説明図である。文字列化情報L3bのうち文字列化情報L3aと相違する文字列化データは、「topmod.IN5_inv4.A」、および「inv4.X_ma4.C」である。したがって、抽出部507は、相違する文字列化データ「topmod.IN5_inv4.A」および「inv4.X_ma4.C」のうち回路を示すインスタンス名「inv4」および「ma4」を差分として抽出する。図18の差分抽出例と比較すると、論理圧縮により差分として抽出されるインスタンス名が絞り込まれるため、差分抽出の効率化を図ることができる。
 図36は、文字列化情報L4aと文字列化情報L4bとを用いた抽出例を示す説明図である。文字列化情報L4bのうち文字列化情報L4aと相違する文字列化データは、「nand1.X_inv3.A」,「inv3.X_ma2.A」である。したがって、抽出部507は、相違する文字列化データのうち、回路を示すインスタンス名「nand1」,「inv3」,および「ma2」を差分として抽出する。図19の差分抽出例と比較すると、論理圧縮により差分として抽出されるインスタンス名が絞り込まれるため、差分抽出の効率化を図ることができる。
<検証支援処理手順>
 図37は、実施の形態2にかかる検証支援装置400による検証支援処理手順例を示すフローチャートである。検証支援装置400は、検証候補抽出処理(ステップS3701)、第1の文字列化処理(ステップS3702)、第1の差分抽出処理(ステップS3703)、圧縮部2800による論理圧縮処理(ステップS3704)、第2の文字列化処理(ステップS3705)、第2の差分抽出処理(ステップS3706)、検証対象箇所設定処理(ステップS3707)、旧回路100aの検証結果修正処理(ステップS3708)、現回路100bの検証結果生成処理(ステップS3709)を実行する。
 検証候補抽出処理(ステップS3701)は検証候補抽出処理(ステップS2101)と同一処理であるため説明を省略する。第1の文字列化処理(ステップS3702)は文字列化処理(ステップS2102)と同一処理であるため説明を省略する。第1の差分抽出処理(ステップS3703)は差分抽出処理(ステップS2103)と同一処理であるため説明を省略する。検証対象箇所設定処理(ステップS3707)は検証対象箇所設定処理(ステップS2104)と同一処理であるため説明を省略する。旧回路100aの検証結果修正処理(ステップS3708)は旧回路100aの検証結果修正処理(ステップS2105)と同一処理であるため説明を省略する。現回路100bの検証結果生成処理(ステップS3709)は現回路100bの検証結果生成処理(ステップS2106)と同一処理であるため説明を省略する。
 図38は、図37に示した第2の文字列化処理(ステップS3705)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、論理圧縮済みの検証候補モジュール群に未選択モジュールがあるか否かを判断する(ステップS3801)。未選択の論理圧縮済みモジュールがある場合(ステップS3801:Yes)、検証支援装置400は、未選択の論理圧縮済みモジュールを選択する(ステップS3802)。そして、検証支援装置400は、選択した論理圧縮済みモジュールにおいて、未選択のドライバ側インスタンス名および端子名の組があるか否かを判断する(ステップS3803)。
 未選択のドライバ側インスタンス名および端子名の組がある場合(ステップS3803:Yes)、検証支援装置400は、未選択のドライバ側インスタンス名および端子名の組を選択する(ステップS3804)。そして、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組の端子リンクをトレースして(ステップS3805)、レシーバ側インスタンス名および端子名の組を取得する(ステップS3806)。
 このあと、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組と取得したレシーバ側インスタンス名および端子名の組で文字列化データを生成し(ステップS3807)、ステップS3803に戻る。また、ステップS3803において、未選択のドライバ側インスタンス名および端子名の組がない場合(ステップS3803:No)、ステップS3801に戻る。
 ステップS3801において、未選択の論理圧縮済みモジュールがない場合(ステップS3801:No)、検証支援装置400は、旧回路100aの論理圧縮済みモジュール群の中から、検証対象モジュールと同一識別情報の未選択の論理圧縮済みモジュールがあるか否かを判断する(ステップS3808)。未選択の論理圧縮済みモジュールがある場合(ステップS3808:Yes)、検証支援装置400は、未選択の論理圧縮済みモジュールを比較対象モジュールとして選択する(ステップS3809)。そして、検証支援装置400は、比較対象モジュールにおいて、未選択のドライバ側インスタンス名および端子名の組があるか否かを判断する(ステップS3810)。
 未選択のドライバ側インスタンス名および端子名の組がある場合(ステップS3810:Yes)、検証支援装置400は、未選択のドライバ側インスタンス名および端子名の組を選択する(ステップS3811)。そして、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組の端子リンクをトレースして(ステップS3812)、レシーバ側インスタンス名および端子名の組を取得する(ステップS3813)。このあと、検証支援装置400は、選択したドライバ側インスタンス名および端子名の組と取得したレシーバ側インスタンス名および端子名の組で文字列化データを生成し(ステップS3814)、ステップS3810に戻る。
 また、ステップS3810において、未選択のドライバ側インスタンス名および端子名の組がない場合(ステップS3810:No)、ステップS3808に戻る。ステップS3808において、未選択の論理圧縮済みモジュールがない場合(ステップS3808:No)、第2の文字列化処理(ステップS3705)が終了する。これにより、論理圧縮後において、現回路100bの検証候補モジュールと旧回路100aの比較対象モジュールのそれぞれについて文字列化情報が生成される。
 図39は、図37に示した第2の差分抽出処理(ステップS3706)の詳細な処理手順例を示すフローチャートである。まず、検証支援装置400は、未選択の論理圧縮済みの現回路100bの文字列化情報があるか否かを判断する(ステップS3901)。未選択の論理圧縮済みの現回路100bの文字列化情報がある場合(ステップS3901:Yes)、検証支援装置400は、未選択の論理圧縮済みの現回路100bの文字列化情報を選択する(ステップS3902)。つぎに、検証支援装置400は、選択した現回路100bの文字列化情報に対応する論理圧縮済みの旧回路100aの文字列化情報を取得する(ステップS3903)。
 そして、検証支援装置400は、選択した論理圧縮済みの現回路100bの文字列化情報に未選択の文字列化データがあるか否かを判断する(ステップS3904)。未選択の文字列化データがある場合(ステップS3904:Yes)、検証支援装置400は、未選択の文字列化データを1つ選択する(ステップS3905)。そして、検証支援装置400は、選択文字列化データが、ステップS3903で取得した論理圧縮済みの旧回路100aの文字列化情報にあるか否かを判断する(ステップS3906)。ここでは完全一致する文字列化データがあるか否かを判断する。
 選択文字列化データが、ステップS3903で取得した論理圧縮済みの旧回路100aの文字列化情報にある場合(ステップS3906:Yes)、ステップS3904に戻る。一方、ない場合(ステップS3906:No)、検証支援装置400は、選択文字列化データを記憶装置402に一時的に保存し(ステップS3907)、ステップS3904に戻る。ステップS3904において、未選択の文字列化データがない場合(ステップS3904:No)、検証支援装置400は、ステップS3907で保存した選択文字列化データがあるか否かを判断する(ステップS3908)。
 保存した選択文字列化データがある場合(ステップS3908:Yes)、検証支援装置400は、選択文字列化データから差分となる回路のインスタンス名を抽出して記憶装置402に保存する(ステップS3909)。そして、ステップS3901に戻る。一方、保存した選択文字列化データがない場合(ステップS3908:No)、ステップS3901に戻る。ステップS3901において、未選択の論理圧縮済みの現回路100bの文字列化情報がない場合(ステップS3901:No)、第2の差分抽出処理(ステップS3716)が終了する。
 このように、実施の形態2によれば、差分を抽出したあと、論理圧縮によりモジュールは論理圧縮前と比較して回路構成が簡素化される。したがって、論理圧縮後のモジュール同士を比較することにより、差分抽出の高精度化を図ることができる。また、論理圧縮により、抽出される差分の量が抑制されるため、検証対象箇所のトレース量も削減される。したがって、トレース処理の高速化を図ることができる。また、差分の量が抑制されるため、検証対象箇所は、実施の形態1の検証対象箇所の個数以下となる。したがって、検証範囲の抑制により、検証作業の効率化を図ることができる。
 また、実施の形態2では、実施の形態1と同様、上位階層のモジュールの更新日時を下位階層のモジュールに変更することにより、組み上げ先となる上位階層のモジュールも実質的に更新されたことにする。これにより、下位階層のモジュールのみ検証をおこなう場合に発生する検証漏れを抑制することができる。
 また、上位階層の更新日時の変更により拡大した検証範囲から検証しなくても影響のないモジュールを除外することができる。これにより、検証速度の高速化を図ることができる。また、回路情報を、ドライバ側インスタンス名および端子名とレシーバ側インスタンス名および端子名という簡素な文字列化データとすることにより、差分抽出に必要な情報を得ることができ、差分抽出の高速化を図ることができる。
 また、旧回路100aの検証結果から検証対象箇所の検証情報だけを削除することにより、変更のないモジュールについては検証情報をそのまま流用することができる。また、検証対象箇所について検証を実行することができるため、検証処理の無駄を削減でき、検証処理の高速化を図ることができる。また、検証対象箇所の検証で得られた検証結果を、旧回路100aの削除後の検証結果に追加するだけで、現回路100bの検証結果を得ることができる。したがって、現回路100bの検証結果の生成処理の効率化を図ることができる。
100 検証対象回路
100a 旧回路
100b 現回路
400 検証支援装置
501 取得部
502 判断部
503 変更部
504 決定部
505 特定部
506 変換部
507 抽出部
508 設定部
509 削除部
510 追加部

Claims (10)

  1.  階層化されたモジュール群により構成される検証対象回路の回路情報を取得し、
     取得された前記回路情報のモジュール群のうち最上位階層以外のいずれかのモジュールの更新日時が、前記いずれかのモジュールの上位階層のモジュールの更新日時よりも新しい日時であるか否かを判断し、
     新しい日時であると判断された場合、前記上位階層のモジュールの更新日時を前記いずれかのモジュールの更新日時に変更し、
     変更された結果、前記モジュール群のうち、検証を実行した検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する、
     処理をコンピュータに実行させることを特徴とする検証支援プログラム。
  2.  決定された前記検証候補モジュールと同一識別情報である比較対象モジュールを、前記検証対象回路の旧回路情報において階層化された旧モジュール群から特定し、
     前記検証候補モジュールと特定された前記比較対象モジュールとの差分を抽出する、
     処理を前記コンピュータに実行させることを特徴とする請求項1に記載の検証支援プログラム。
  3.  前記検証候補モジュールを、前記検証候補モジュール内の回路間の接続関係を示す第1の文字列化情報に変換するとともに、前記比較対象モジュールを、前記比較対象モジュール内の回路間の接続関係を示す第2の文字列化情報に変換する処理を前記コンピュータに実行させ、
     前記差分を抽出する処理は、
     変換された前記第1の文字列化情報と前記第2の文字列化情報との差分を抽出することを特徴とする請求項2に記載の検証支援プログラム。
  4.  前記差分が抽出された前記検証候補モジュールおよび前記比較対象モジュールをそれぞれ論理圧縮する処理を前記コンピュータに実行させ、
     前記差分を抽出する処理は、
     前記論理圧縮後の検証候補モジュールと前記論理圧縮後の比較対象モジュールとの差分を抽出することを特徴とする請求項2に記載の検証支援プログラム。
  5.  前記差分が抽出された前記検証候補モジュールおよび前記比較対象モジュールをそれぞれ論理圧縮する処理を前記コンピュータに実行させ、
     前記文字列化情報に変換する処理は、
     前記論理圧縮後の検証候補モジュールを、前記論理圧縮後の検証候補モジュール内の回路間の接続関係を示す第3の文字列化情報に変換するとともに、前記論理圧縮後の比較対象モジュールを、前記論理圧縮後の比較対象モジュール内の回路間の接続関係を示す第4の文字列化情報に変換し、
     前記差分を抽出する処理は、
     変換された前記第3の文字列化情報と前記第4の文字列化情報との差分を抽出することを特徴とする請求項3に記載の検証支援プログラム。
  6.  前記差分に基づいて前記回路情報における前記検証対象回路の出力側にトレースすることにより、前記回路情報における前記検証対象回路の検証対象箇所を設定する処理を前記コンピュータに実行させることを特徴とする請求項2~5のいずれか一つに記載の検証支援プログラム。
  7.  前記旧回路情報に基づく前記検証対象回路の検証結果から、設定された前記検証対象箇所に該当する情報を削除する処理を前記コンピュータに実行させることを特徴とする請求項6に記載の検証支援プログラム。
  8.  前記検証対象箇所に基づく検証結果を、削除後の検証結果に追加する処理を前記コンピュータに実行させることを特徴とする請求項7に記載の検証支援プログラム。
  9.  コンピュータが、
     階層化されたモジュール群により構成される検証対象回路の回路情報を取得し、
     取得された前記回路情報のモジュール群のうち最上位階層以外のいずれかのモジュールの更新日時が、前記いずれかのモジュールの上位階層のモジュールの更新日時よりも新しい日時であるか否かを判断し、
     新しい日時であると判断された場合、前記上位階層のモジュールの更新日時を前記いずれかのモジュールの更新日時に変更し、
     変更された結果、前記モジュール群のうち、検証を実行した検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する、
     処理を実行することを特徴とする検証支援方法。
  10.  階層化されたモジュール群により構成される検証対象回路の回路情報を取得する取得部と、
     前記取得部によって取得された回路情報のモジュール群のうち最上位階層以外のいずれかのモジュールの更新日時が、前記いずれかのモジュールの上位階層のモジュールの更新日時よりも新しい日時であるか否かを判断する判断部と、
     前記判断部によって新しい日時であると判断された場合、前記上位階層のモジュールの更新日時を前記いずれかのモジュールの更新日時に変更する変更部と、
     前記変更部によって変更された結果、前記モジュール群のうち、検証を実行した検証日時よりも更新日時が新しいモジュールを、検証候補モジュールに決定する決定部と、
     を有することを特徴とする検証支援装置。
PCT/JP2012/062970 2012-05-21 2012-05-21 検証支援プログラム、検証支援方法、および検証支援装置 WO2013175559A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014516543A JPWO2013175559A1 (ja) 2012-05-21 2012-05-21 検証支援プログラム、検証支援方法、および検証支援装置
PCT/JP2012/062970 WO2013175559A1 (ja) 2012-05-21 2012-05-21 検証支援プログラム、検証支援方法、および検証支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/062970 WO2013175559A1 (ja) 2012-05-21 2012-05-21 検証支援プログラム、検証支援方法、および検証支援装置

Publications (1)

Publication Number Publication Date
WO2013175559A1 true WO2013175559A1 (ja) 2013-11-28

Family

ID=49623292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/062970 WO2013175559A1 (ja) 2012-05-21 2012-05-21 検証支援プログラム、検証支援方法、および検証支援装置

Country Status (2)

Country Link
JP (1) JPWO2013175559A1 (ja)
WO (1) WO2013175559A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04310185A (ja) * 1991-04-09 1992-11-02 Nec Corp 論理回路のテストパタン生成方式
JPH05298385A (ja) * 1992-04-16 1993-11-12 Fujitsu Ltd モジュール合成方式
JPH0973474A (ja) * 1995-09-05 1997-03-18 Fujitsu Ltd ネットリスト検証方法及び装置
JPH09153072A (ja) * 1995-11-29 1997-06-10 Nec Corp 回路データ検証方法
JP2008262337A (ja) * 2007-04-11 2008-10-30 Fujitsu Microelectronics Ltd 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04310185A (ja) * 1991-04-09 1992-11-02 Nec Corp 論理回路のテストパタン生成方式
JPH05298385A (ja) * 1992-04-16 1993-11-12 Fujitsu Ltd モジュール合成方式
JPH0973474A (ja) * 1995-09-05 1997-03-18 Fujitsu Ltd ネットリスト検証方法及び装置
JPH09153072A (ja) * 1995-11-29 1997-06-10 Nec Corp 回路データ検証方法
JP2008262337A (ja) * 2007-04-11 2008-10-30 Fujitsu Microelectronics Ltd 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体

Also Published As

Publication number Publication date
JPWO2013175559A1 (ja) 2016-01-12

Similar Documents

Publication Publication Date Title
JP5217390B2 (ja) 回路設計支援装置、回路設計支援方法および回路設計支援プログラム
CN101842789A (zh) 用于存储器抽象和使用该存储器抽象来验证的方法和装置
US8434036B2 (en) Arithmetic program conversion apparatus, arithmetic program conversion method, and program
JP2008165748A (ja) 回路設計支援装置、回路設計支援方法、回路設計支援プログラムおよびプリント基板の製造方法
JP2008165747A (ja) 回路設計支援装置、回路設計支援方法、回路設計支援プログラムおよびプリント基板の製造方法
JP2006301837A (ja) マクロ内配線を考慮したネットリストを用いて遅延計算を行う設計方法及びそのネットリストの作成プログラム
US8281269B2 (en) Method of semiconductor integrated circuit device and program
JP5699768B2 (ja) 回路シミュレーション方法および回路シミュレーション装置
CN107844678B (zh) 包含IP/Memory时序路径的spice仿真方法
US8510693B2 (en) Changing abstraction level of portion of circuit design during verification
JP2007264993A (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
WO2013175559A1 (ja) 検証支援プログラム、検証支援方法、および検証支援装置
CN109255104A (zh) 批文模板配置方法、装置、计算机设备及存储介质
US10796051B1 (en) Adaptive model interface for a plurality of EDA programs
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
CN112395268A (zh) 一种复杂条件规则的可视化配置方法和装置
CN110750956B (zh) 逻辑闸阶层验证方法以及验证系统
JP4918907B2 (ja) テストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法
US6877140B1 (en) Method and system for generating a schematic representing bus structures
CN117933156B (zh) 基于门级网表的毛刺功耗优化方法、电子设备和介质
JP7233611B2 (ja) 製造システム設計検証装置
CN117272918B (zh) 在gui界面中进行时钟树规则配置的方法及相关设备
JP5923052B2 (ja) 設計変更影響予測装置、方法、およびプログラム
KR102466551B1 (ko) 데이터 기록 방법, 장치 및 전자 기기
JP2002032427A (ja) Lsiの接続検証装置、接続検証方法および接続検証プログラムを記録した媒体

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014516543

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

Country of ref document: EP

Kind code of ref document: A1