WO2023233616A1 - Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit - Google Patents
Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit Download PDFInfo
- Publication number
- WO2023233616A1 WO2023233616A1 PCT/JP2022/022468 JP2022022468W WO2023233616A1 WO 2023233616 A1 WO2023233616 A1 WO 2023233616A1 JP 2022022468 W JP2022022468 W JP 2022022468W WO 2023233616 A1 WO2023233616 A1 WO 2023233616A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- test
- functional block
- verification
- determination table
- verification system
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012360 testing method Methods 0.000 claims abstract description 208
- 238000012795 verification Methods 0.000 claims description 303
- 238000013461 design Methods 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 24
- 238000004088 simulation Methods 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000005856 abnormality Effects 0.000 abstract 1
- 239000004065 semiconductor Substances 0.000 description 64
- 230000006870 function Effects 0.000 description 56
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 24
- 239000000284 extract Substances 0.000 description 16
- 238000000605 extraction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
Definitions
- the present disclosure relates to logic circuit verification technology, and more specifically, to speeding up logic circuit verification.
- LSI Large Scale Integration
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- a logic circuit simulator is used to verify the consistency of logic circuits included in the semiconductor.
- Patent Document 1 discloses a circuit simulation device and method.
- the device and method require ⁇ writing in advance a non-verification block information description indicating the conditions for a non-verification block in the test bench information, or preparing simulation results performed in advance and activation conditions for each module.
- the unverified block information search means automatically detects the unverified blocks in the target circuit, and describes the unverified blocks with at least the minimum information including input/output terminal information.
- circuit information for resource-saving simulation that is described as a module as a dummy block and performing verification using this circuit information for resource-saving simulation, verification work can be performed with high efficiency while performing verification with high validity. (See [Summary]).
- Patent Document 1 According to the technology disclosed in Patent Document 1, it is necessary to manually set conditions for blocks that are not subject to verification in logic circuit simulation, and the user is required to understand the operation of the logic circuit in detail. Ta. Therefore, there are problems in that the number of engineers who can perform logic circuit simulations is limited, or the learning cost for logic circuit simulations becomes high. Therefore, there is a need for a technique that allows even users who are not familiar with the operation of logic circuits to stop unnecessary functional blocks and execute logic circuit simulations at high speed.
- the present disclosure has been made in view of the above-mentioned background, and in one aspect, the purpose is to enable even users who are not familiar with the operation of logic circuits to stop unnecessary functional blocks and perform logic operations.
- the objective is to provide technology that allows circuit simulation to be executed at high speed.
- a method for verifying a logic circuit includes the steps of extracting clock signals and reset signals input to each of multiple functional blocks included in a logic circuit, referencing a test bench, and testing multiple functional blocks using the test bench. a step of referring to a stopability determination table that stores information indicating whether each of the function blocks can be stopped; and one or more functional blocks that do not affect the operation of the functional block to be verified according to the information obtained from the stopability determination table. and performing a test of the functional block to be verified based on the test bench.
- FIG. 1 is a diagram illustrating an example of the configuration of a semiconductor 100 that can be verified by a verification system 200 according to the present embodiment.
- FIG. 2 is a diagram showing an example of the hardware configuration of a verification system 200 according to the present embodiment.
- 3 is a diagram showing an example of a functional block table 300.
- FIG. 4 is a diagram showing an example of a test bench 400.
- FIG. 5 is a diagram showing an example of a stop target table 500.
- FIG. 6 is a diagram showing an example of a first stopability determination table 600.
- FIG. 7 is a diagram illustrating an example of a second stopability determination table 700.
- FIG. 2 is a diagram illustrating an example of a procedure for verifying a logic circuit (semiconductor) by the verification system 200.
- FIG. 5 is a diagram illustrating an example of a procedure for extracting a clock and a reset signal for each functional block 110.
- FIG. FIG. 3 is a diagram illustrating an example of a procedure of trial processing. It is a figure which shows an example of the result of trial processing.
- 5 is a diagram illustrating an example of criteria for determining whether an input signal affects a functional block 110.
- FIG. 13 is a diagram illustrating an example of a list 1300 indicating the presence or absence of changes in input signals of all functional blocks 110 included in a semiconductor to be verified.
- FIG. 14 is a diagram showing an example of a trial result file 1400.
- FIG. 1 is a diagram showing an example of the configuration of a semiconductor 100 that can be verified by the verification system 200 (see FIG. 2) according to this embodiment.
- the verification system 200 can perform operation verification of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an NPU (Neural Processing Unit), or any other semiconductor.
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- NPU Neurological Processing Unit
- the semiconductor 100 includes one or more functional blocks 110 and one or more interconnects 120.
- One or more functional blocks 110 may be connected to each other via wiring 120.
- the functional block 110 is a group of circuits for realizing a certain function.
- a "logic circuit” refers to the entire configuration of a semiconductor (for example, the semiconductor 100), each functional block included in the semiconductor (for example, the functional blocks 110 (funcA to funcG)), an AND circuit, an OR circuit, a NAND circuit. It includes minimum unit logic circuits such as, or a combination thereof. Therefore, it can be said that the functional block 110 is included in the logic circuit (semiconductor 100). It can also be said that the functional block 110 is composed of one or more logic circuits (AND circuit, OR circuit, NAND circuit, etc.).
- logic circuit simulation may also be referred to as “logic circuit (semiconductor) verification or test, or functional block verification or test.”
- semiconductor verification or functional block verification also includes simulating the operation of one or more logic circuits included in a semiconductor. Further, from now on, when referring to individual functional blocks shown in FIG. 1 etc., they will be described as funcA to funcG, and when these functional blocks are collectively referred to as functional block 110.
- the wiring 120 propagates signals generated within the semiconductor 100.
- the wiring 120 outputs a signal inside the semiconductor 120 to the outside, inputs a signal from the outside into the semiconductor 120, or inputs an output signal of one functional block 110 to another functional block 110.
- the arrow on the wiring 120 indicates the direction of the signal.
- each functional block 110 is connected to other functional blocks 110 via wiring 120. Further, each functional block 110 may cooperate to execute one process. Therefore, for example, when verifying the operation of funcA, it is necessary to also verify the operation of other functional blocks 110 that may affect the operation of funcA.
- funcB, funcD, funcF, and funcG output signals directly to funcA, which may affect the processing and operation of funcA.
- funcB outputs a signal to funcA via funcG, which may affect the processing and operation of funcA.
- funcE outputs a signal to funcD, which may affect the processing and operation of funcD.
- funcE can affect the processing and behavior of funcA.
- the verification system 200 analyzes the design specifications or verification specifications, or executes a test in auto mode in advance to reduce the influence of other functional blocks 110 on the functional block 110 to be verified. The presence or absence can be determined.
- the influence of a certain functional block 110 on the functional block 110 to be verified means that a change in the output signal of a certain functional block 110 causes a change in the internal processing of the functional block 110 to be verified, and A change in the output signal includes a change in the output signal of the functional block 110 to be verified.
- test bench 400 (see FIG. 4) is used to verify the inside of the semiconductor 100.
- a "test bench” is a configuration file for verifying whether a logic circuit operates according to specifications. For example, it includes settings for input signals used in simulation.
- the verification system 200 verifies the operation of each functional block 110 with reference to the test bench 400.
- the verification system 200 generates an input signal to the input pin of the semiconductor 100 or an input signal to each functional block 110 based on the description of the test bench 400, and simulates the operation of each functional block 110.
- the verification system 200 determines that the semiconductor 100 is normal if the operation (output signal) of each functional block 110 in the simulation is in accordance with the specifications.
- test bench 400 may be created for each function or specification to be verified, and one or more test benches 400 may exist. Therefore, when a design change occurs in a semiconductor under development, the verification system 200 needs to perform verification again using a plurality of test benches 400.
- the verification system 200 may use one or more test benches 400 to verify the operation of each functional block 110 included in the semiconductor 100.
- the functions mounted on semiconductors have continued to increase and become more complex. Therefore, the execution time of simulations for verifying each function (functional block) of a semiconductor continues to increase.
- the verification system 200 needs to perform the verification of the functional block 110 again using the plurality of test benches 400.
- a test is executed by operating all the functional blocks 110 every time a semiconductor design is changed, a huge amount of time will be spent verifying the operation of the semiconductor, which may cause a delay in the development schedule.
- the verification system 200 speeds up the simulation (operation verification of the functional block 110) by stopping the operation of the functional block that does not affect the operation of the functional block to be verified.
- the verification system 200 transmits a clock signal to one or more functional blocks 110 that does not affect the operation of the functional block 110 to be verified (that is, does not affect the test). By stopping the reset signal, the operation of one or more functional blocks 110 that does not affect the operation of the functional block 110 to be verified is stopped.
- stopping the clock signal and reset signal to a certain functional block 110 includes changing the clock signal and the reset signal so that the certain functional block 110 is in a stopped state. For example, assume that a certain functional block 110 operates with a reset signal (LOW) and stops with a reset signal (HIGH). In this case, “stopping the reset signal to a certain functional block 110” means making the reset signal HIGH (that is, stopping the supply of the reset signal (LOW) that operates a certain functional block 110). .
- the verification system 200 extracts a clock signal and a reset signal that are input to each of the plurality of functional blocks 110 included in the logic circuit.
- the verification system 200 refers to the test bench 400, and further refers to a stopability determination table that stores information indicating whether each of the plurality of functional blocks 110 can be stopped in a test using the test bench 400.
- the verification system 200 stops the clock signal and reset signal to one or more functional blocks 110 that do not affect the operation of the functional block 110 to be verified according to the information obtained from the stopability determination table, and the test bench 400 A test of the functional block 110 to be verified is executed based on the following.
- stopability determination table includes the “first stoppability determination table (see FIG. 6)", the “second stoppability determination table (see FIG. 7)", or both. .
- the first stopability determination table, the second stopability determination table, and the trial result file (see FIG. 14) may be collectively referred to as the stopability determination table.
- FIG. 2 is a diagram showing an example of the hardware configuration of verification system 200 according to this embodiment.
- the hardware configuration of verification system 200 will be described with reference to FIG. 2.
- the configuration of software executed by the verification system 200 will also be described.
- the term "system” includes a configuration consisting of one or more devices, a server, a virtual machine or container built in a cloud environment, or a configuration consisting of at least a portion of these.
- the verification system 200 may be used by a user by being connected to input/output devices such as a display and a keyboard.
- the verification system 200 may provide various functions to the user as a cloud service or a web application via a network. In this case, the user may use the functionality of the verification system 200 via a browser or client software installed on his or her terminal.
- the verification system 200 includes a processor 201, a memory 202, a storage 203, an external device IF (Interface) 204, an input IF 205, an output IF 206, and a communication IF 207 as main hardware configurations. These configurations are interconnected by an internal bus 208.
- the processor 201 can execute programs for realizing various functions of the verification system 200.
- Processor 201 is configured, for example, by at least one integrated circuit.
- the integrated circuit may be configured by, for example, at least one CPU, at least one GPU, at least one FPGA, at least one ASIC, or a combination thereof.
- the memory 202 stores programs executed by the processor 201 and data referenced by the processor 201.
- the memory 202 may be implemented by DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or the like.
- the storage 203 is a non-volatile memory and may store programs executed by the processor 201 and data referenced by the processor 201. In that case, the processor 201 executes the program read from the storage 203 to the memory 202 and refers to the data read from the storage 203 to the memory 202.
- the storage 203 is a HDD (Hard Disk Drive), an SSD (Solid State Drive), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), or a flash memory. may be realized by .
- the external device IF 204 can be connected to any external device such as a printer, scanner, or external HDD.
- the external device IF 204 may be realized by a USB (Universal Serial Bus) terminal or the like.
- the input IF 205 can be connected to any input device such as a keyboard, mouse, touch pad, or game pad.
- the input IF 205 may be realized by a USB terminal, a PS/2 terminal, a Bluetooth (registered trademark) module, or the like.
- the output IF 206 can be connected to any output device such as a cathode ray tube display, a liquid crystal display, or an organic EL (Electro-Luminescence) display.
- the output IF 206 may be realized by a USB terminal, a D-sub terminal, a DVI (Digital Visual Interface) terminal, an HDMI (registered trademark) (High-Definition Multimedia Interface) terminal, or the like.
- the communication IF 207 is connected to other devices via a wired network or a wireless network.
- the communication IF 207 may be realized by a wired LAN (Local Area Network) port, a Wi-Fi (registered trademark) (Wireless Fidelity) module, or the like.
- the communication IF 207 may transmit and receive data using communication protocols such as TCP/IP (Transmission Control Protocol/Internet Protocol) and UDP (User Datagram Protocol).
- the simulator 210 is software for verifying the semiconductor 100 (logic circuit) and is stored in the storage 203.
- the processor 201 can implement various functions described with reference to FIGS. 3 to 14 by reading the simulator 210 from the storage 203 to the memory 202 and executing the simulator 210.
- simulator 210 may be implemented as hardware.
- the simulator 210 includes a signal extraction section 211, a test bench acquisition section 212, a stopability determination section 213, and a test execution section 214 as main functional components.
- the signal extraction unit 211 extracts the clock signal and reset signal (or the source or path of the signal) provided to each functional block 110. Extracting the clock signal and reset signal may include determining the wiring 120 that supplies the clock signal to each functional block 110 and the wiring 120 that supplies the reset signal to each functional block 110. Furthermore, extracting the clock signal and the reset signal may include specifying the location where various signals are cut off to each functional block 110 in the semiconductor 100 (logic circuit).
- the signal extraction unit 211 stores information on the extracted clock signal and reset signal in the functional block table 300 (see FIG. 3). Function block table 300 is stored in storage 203.
- the signal extraction unit 211 extracts the clock signal and reset signal (or the source or path of the signal) provided to each functional block 110 by analyzing a code written in a hardware description language. good.
- Code 220 is an example of a code in a hardware description language. An example of the analysis procedure of the signal extraction unit 211 will be described with reference to the code 220.
- the signal extraction unit 211 can analyze the code 220 and determine that "CLK", which only appears in the always statement, is a clock signal. Further, the signal extraction unit 211 can determine that (rstl) appearing in both the always syntax and the begin/end syntax is a reset signal.
- the signal extraction unit 211 extracts the clock signal and reset signal provided to each functional block 110 by reading the source code stored in the storage 203.
- the test bench acquisition unit 212 reads the test bench 400 from the storage 203. Further, the test bench acquisition unit 212 outputs the test information read from the test bench 400 and the test execution request to the test execution unit 214. Note that the user may store one or more test benches 400 in the storage 203 in advance via the external device IF 204, input IF 205, communication IF 207, or the like.
- the stoppage determination unit 213 analyzes the test execution log when the test bench 400 is executed.
- the stopability determining unit 213 determines whether an input signal from one or more other functional blocks 110 to a certain functional block 110 has an influence on an output signal of a certain functional block 110, based on the analysis result of the execution log. Determine whether or not.
- the stoppage determination unit 213 writes information about other function blocks 110 into the first stopability determination table 600 or the second stopability determination table 700 when verifying the operation of a certain function block 110. Stores information for determining whether to stop.
- test benches 400A, 400B, 400C, 400D, 400E, and 400F there are test benches 400A, 400B, 400C, 400D, 400E, and 400F.
- the test execution unit 214 uses the test bench 400A to verify the operation of a certain functional block 110.
- the stopability determination unit 213 can determine which other function blocks 110 can be stopped (does not affect the test) when verifying the operation of a certain function block 110 using the test bench 400A.
- the stoppability determining unit 213 may determine which other functional blocks 110 cannot be stopped (affecting the test).
- the stoppage determination unit 213 stores the determination result in either the first stoppage determination table 600 or the second stoppage determination table 700 based on the contents of the test bench 400 used. Note that the first stopability determination table 600 and the second stopability determination table 700 are stored in the storage 203. When executing trial processing, which will be described later, the stoppage determination unit 213 stores the determination result in a trial result file 1400 (see FIG. 14).
- the test execution unit 214 executes the function block 110 based on the test information and the test execution request, the function block table 300, the first stopability determination table 600, the second stopability determination table 700, or the trial result file 1400. Execute the test (operation verification).
- the test execution unit 214 can execute a test based on the test bench 400 by referring to the test information. Furthermore, the test execution unit 214 identifies one or more functional blocks 110 that can be stopped during test execution by referring to the first stopability determination table 600, the second stopability determination table 700, or the trial result file 1400. can be determined. Furthermore, by referring to the function block table 300, the test execution unit 214 determines the clock signal and reset signal to one or more function blocks 110 that can be stopped during test execution, and stops these signals. , one or more stoppable functional blocks 110 may be stopped during test execution.
- the test execution unit 214 uses the test information and test execution information. Based on the request, a test (operation verification) of the functional block 110 may be performed. That is, the test execution unit 214 may execute the test without stopping one or more functional blocks 110 that can be stopped during test execution.
- each setting information shown in FIGS. 3 to 7 may be expressed as a table in a relational database, or in other formats such as CSV (Comma Separated Value) or JSON (JavaScript (registered trademark) Object Notation). It may be expressed in any data format.
- CSV Common Separated Value
- JSON JavaScript (registered trademark) Object Notation
- FIG. 3 is a diagram showing an example of a functional block table 300. An example of the configuration of the functional block table 300 will be described with reference to FIG. 3.
- the functional block table 300 stores information on the clock pin and reset pin of each functional block 110.
- the functional block table 300 includes a functional block name item 301, a module name item 302, a clock pin item 303, and a reset pin item 304 as main items.
- the functional block name item 301 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 301.
- the module name item 302 indicates the function (module) that each functional block 110 realizes.
- a plurality of functional blocks 110 may cooperate to realize one module.
- a single functional block 110 may implement one module.
- the clock pin item 303 indicates the clock signal input port in each functional block 110 or the wiring 120 connected to the input port.
- each functional block 110 includes a plurality of ports (pins), and receives a clock signal from one of the plurality of ports (clock pin).
- the reset pin item 304 indicates the reset signal input port in each functional block 110 or the wiring 120 connected to the input port.
- each functional block 110 includes a plurality of ports (pins), and a reset signal is inputted from one of the plurality of ports (reset pin).
- each functional block 110 may be reset when the signal on the reset pin goes from 1 (HIGH) to 0 (LOW). In other aspects, each functional block 110 may be reset when the signal on the reset pin goes from 0 (LOW) to 1 (HIGH).
- the verification system 200 can determine the clock pin and reset pin of the functional block 110 to be stopped by referring to the functional block table 300. Furthermore, when stopping the functional block 110 on a module-by-module basis, the verification system 200 can determine the clock pin and reset pin that correspond to the module name item 302 of the module to be stopped.
- FIG. 4 is a diagram showing an example of a test bench 400. An example of the configuration of the test bench 400 will be described with reference to FIG. 4.
- the test bench 400 is a configuration file for verifying whether the logic circuit operates according to specifications.
- the test bench 400 is prepared by the user before performing the operation verification (simulation) of the functional block 110.
- the user inputs the created test bench 400 into the verification system 200.
- the user may create the test bench 400 using any means such as a test bench editor provided by the verification system 200.
- verification system 200 may automatically generate some settings for test bench 400.
- the test bench 400 includes, as main items, a verification target item 401, a control mode item 402, a manual mode setting item 403, a spec mode setting item 404, and a verification mode item 405. Note that the test bench 400 may include arbitrary information such as signals input to each functional block 110 in addition to the items shown in FIG.
- the verification target item 401 indicates the functional block 110 to be verified.
- funcA is designated as the functional block 110 to be verified.
- the control mode item 402 indicates the control mode of verification (test) executed by the verification system 200.
- the control modes include manual mode, auto mode, and high-speed control OFF mode.
- the manual mode is a mode in which a test (verification) of the functional block 110 to be verified is executed according to the description of a specification document created in advance by the user.
- the specifications include design specifications created from a design perspective and verification specifications created from a verification perspective.
- the verification system 200 stops other functional blocks 110 that do not affect the functional block 110 to be verified during the test, according to the description of the analyzed specification. If manual is selected in the control mode item 402, the verification system 200 selects the type of manual mode based on the manual mode setting item 403.
- the auto mode is a mode in which operation verification of the functional block 110 to be verified is automatically performed.
- the verification system 200 determines whether the operation of the functional block 110 to be verified will be affected based on the execution log of the trial process, the execution log of the acceleration control OFF mode, or the execution log of the manual mode, which will be described later with reference to FIG. It may be determined that the functional block 110 is not present.
- the functional block 110 to be verified is selected based on information obtained from the execution log of the verification process executed in advance (list information of functional blocks 110 that does not affect the operation of the functional block 110 to be verified). Run the test.
- the auto mode can be said to be a mode in which the execution log of a test once executed is used to stop the functional blocks 110 that do not affect the operation of the functional block 110 to be verified in the second and subsequent tests.
- the user can appropriately test each functional block 110 even if the user does not have sufficient knowledge of the semiconductor 100.
- the speed-up control OFF mode is a mode in which a test is performed without stopping all functional blocks 110.
- the verification system 200 obtains a test execution log, and from the log selects a functional block 110 that does not affect the operation of the functional block 110 to be verified. You may judge. Further, the verification system 200 may register the determination result in the first stopability determination table 600 or the second stopability determination table 700.
- the manual mode setting item 403 is an item for selecting the type of manual mode.
- the manual mode includes a specification mode (SPEC) and a verification mode (VERIFICATION).
- SPEC mode is a test based on design specifications.
- the verification system 200 Based on the selection of the spec mode, the verification system 200 refers to the first stoppage determination table 600 and stops the function blocks 110 that do not affect the operation of the function block 110 to be verified during the test. let In addition, based on the selection of the verification mode, the verification system 200 refers to the second stopability determination table 700 and determines which functions do not affect the operation of the functional block 110 to be verified during the test. Block 110 is stopped.
- the spec mode setting item 404 is a setting used when spec mode is selected in the manual mode setting item 403.
- the specification mode setting item 404 is set to one of a plurality of operation modes created based on design specifications.
- the verification mode item 405 is a setting used when verification mode is selected in the manual mode setting item 403.
- the verification mode item 405 is set to one of a plurality of operation modes created based on the verification specifications.
- FIG. 5 is a diagram showing an example of a stop target table 500.
- the stop target table 500 includes information on whether each functional block 110 can be stopped for each verification mode.
- the verification system 200 may refer to the stop target table 500 to determine which functional blocks 110 can be stopped (which are permitted to be stopped during testing).
- the verification system 200 stops the functional blocks 110 that are permitted to be stopped during the test, for example, based on the stopability determination table.
- the stop target table 500 includes, as main items, a functional block name item 501, a manual mode setting item 502, and an auto mode setting item 503.
- the functional block name item 501 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 301.
- the manual mode setting item 502 indicates whether each functional block 110 can be stopped in the manual mode.
- funcA is non-target in manual mode.
- funcB to funcG can be stopped (target) in manual mode.
- the auto mode setting item 503 indicates whether each functional block 110 can be stopped in the manual mode.
- funcA to funcG are stoppable (target) in auto mode.
- the verification system 200 may receive a setting input for the suspension target table 500 from the user before executing the test.
- the user may set the functional block 110 that must be operated in manual mode to be unstoppable.
- the verification system 200 may automatically input settings into the auto mode setting item 503 or automatically update the auto mode setting item 503.
- FIG. 6 is a diagram showing an example of the first stopability determination table 600.
- the first stopability determination table 600 includes a functional block name item 601 and a design specification mode item 610 as main items.
- the design specification mode item 610 includes six design specification modes (specA to specF).
- the first stoppage determination table 600 is a table created from the viewpoint of design specifications.
- the verification system 200 analyzes the design specification input into the verification system 200 by the user, and generates or updates the first stopability determination table 600. More specifically, the verification system 200 determines whether the output signal of a certain function block 110 is different from that of another function based on information such as the wiring connection relationship of each function block 110 and the signal input/output direction described in the design specifications. It may be determined whether block 110 is affected.
- the verification system 200 may analyze multiple design specifications to determine whether each functional block 110 can be stopped. For example, suppose that a design specification is created for each function (corresponding to each of specA to specF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze each design specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of specA to specF).
- the verification system 200 may determine whether each functional block 110 can be stopped by analyzing a single design specification in which specifications for a plurality of functions are described. For example, assume that a single design specification document that describes specifications for all functions (corresponding to each of specA to specF) to be implemented in the semiconductor 100 is created. In this case, the verification system 200 can analyze the single design specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of specA to specF).
- design specification may be data expressed in text data, HTML (Hyper Text Markup Language) data, XML (Extensible Markup Language) data, or any other format.
- HTML Hyper Text Markup Language
- XML Extensible Markup Language
- the verification system 200 may execute a test in auto mode and generate information to be stored in the first stopability determination table 600 from the execution log of the test. For example, assume that the test bench 400 is specified to test in spec mode (specA). It is also assumed that the first stopability determination table 600 does not have a specA column, or that the specA column is empty. In this case, the verification system 200 operates all functional blocks 110 according to the test bench 400 to execute the test. Then, the verification system 200 can generate stoppability information for each functional block 110 during test execution of specA from the execution log, and store the stoppability information in the specA column.
- specA spec mode
- the functional block name item 601 is a name for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 601.
- the design specification mode item 610 indicates whether each functional block 110 can be stopped in a test based on each design specification mode.
- specA which is one of the design specification modes
- funcA, funcC, funcF, and funcG must operate (cannot be stopped), and funcB, funcD, and funcE must not operate. Good (can be stopped).
- funcA and funcB when executing a test based on specB, which is one of the design specification modes, funcA and funcB must operate (cannot be stopped), and funcC, funcD, funcE, funcF, and funcG do not need to operate ( (can be stopped).
- the verification system 200 refers to the first stopability determination table 600 when a test in the spec mode and a design specification mode (specA to specG) used for the test are specified in the test bench 400. Then, it is possible to determine which functional blocks 110 can be stopped in the specified design specification mode.
- FIG. 7 is a diagram showing an example of the second stopability determination table 700.
- the second stopability determination table 700 includes a functional block name item 701 and a verification specification mode item 710 as main items.
- the verification specification mode item 710 includes six verification specification modes (verificationA to verificationF).
- the second stoppage determination table 700 is a table created from the viewpoint of verification specifications.
- the verification system 200 analyzes the verification specification input into the verification system 200 by the user, and generates or updates the second stoppage determination table 700. More specifically, the verification system 200 determines whether the output signal of a certain functional block 110 affects other functional blocks 110 based on the operational information (input/output signals, etc.) of each functional block 110 described in the verification specification. It can be determined whether the A design specification is a specification created by a designer based on design data, whereas a verification specification is a specification created by a person in charge of verification from the viewpoint of verification (testing). Note that the person who creates the design specifications or the verification specifications may be different from the person who uses the verification system 200.
- a person using the verification system 200 can use the functions of the verification system 200 to check the specifications of the semiconductor 100 (logic circuit), even if the person using the verification system 200 is not familiar with the specifications of the semiconductor 100 (logic circuit). Test execution of the semiconductor 100 can be accelerated.
- the verification system 200 may analyze a plurality of verification specifications to determine whether each functional block 110 can be stopped. For example, assume that a verification specification is created for each function (corresponding to each of verificationA to verificationF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze each verification specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of verificationA to verificationF).
- the verification system 200 may determine whether each functional block 110 can be stopped by analyzing a single verification specification that describes specifications for a plurality of functions. For example, assume that a single verification specification is created that describes specifications for all functions (corresponding to each of verificationA to verificationF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze the single verification specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of verificationA to verificationF).
- verification specification may be data expressed in text data, HTML data, XML data, or any other format.
- the verification system 200 may execute a test in auto mode and generate information to be stored in the second stopability determination table 700 from the execution log of the test.
- the test bench 400 is designated to test in verification mode (verificationA).
- the second stopability determination table 700 does not have a column for verificationA, or that the column for verificationA is empty.
- the verification system 200 operates all functional blocks 110 according to the test bench 400 to execute the test. Then, the verification system 200 can generate stoppability information for each functional block 110 during test execution of verificationA from the execution log, and store the stoppability information in the column of verificationA.
- the functional block name item 701 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 701.
- the verification specification mode item 710 indicates whether each functional block 110 can be stopped in a test based on each verification specification.
- funcA when executing a test based on verificationA, which is one of the verification specification modes, funcA must operate (cannot be stopped), and funcB, funcC, funcD, funcE, funcF, and funcG must not operate. Good (can be stopped).
- funcB when executing a test based on verificationB, which is one of the verification specification modes, funcB must operate (cannot be stopped), and funcA, funcC, funcD, funcE, funcF, and funcG do not need to operate ( (can be stopped).
- the verification system 200 refers to the second stopability determination table 700. By doing so, it is possible to determine which functional blocks 110 can be stopped in the specified verification specification mode.
- the verification system 200 refers to the test bench 400 to determine the test contents such as the functional block 110 to be verified, the test mode, and the input signals used for the test.
- the verification system 200 refers to the stop target table 500 to determine which functional blocks 110 can be stopped and which functional blocks 110 cannot be stopped.
- the stoppage information stored in the stoppage target table 500 indicates whether each functional block 110 specified by the user or the system can be stopped.
- the stoppage information stored in the first stopability determination table 600 and the second stopability determination table 700 determines whether or not it affects the test (the operation of the functional block 110 to be verified). shows.
- the verification system 200 refers to the first stoppability determination table 600 to identify the function blocks 110 that can be stopped during the spec mode test. Discern.
- the verification system 200 refers to the second stopability determination table 700 and determines which functions can be stopped during the test in the verification mode. Block 110 is determined.
- the verification system 200 refers to the functional block table 300 and determines the clock signal and reset signal (or clock pin and reset pin) of the functional block 110 that can be stopped during the test in the spec mode or the verification mode. .
- the verification system 200 can stop one or more function blocks 110 that are unnecessary for the test, thereby shortening the test time.
- the processor 201 may load a program for performing the processes shown in FIGS. 8 to 10 from the storage 203 into the memory 202, and execute the program.
- part or all of each process may be realized as a combination of circuit elements configured to perform each process.
- FIG. 8 is a diagram illustrating an example of a procedure for verifying a logic circuit (semiconductor) by the verification system 200.
- step S805 the verification system 200 reads the verification target circuit data.
- the verification target circuit data is code written in a hardware description language.
- the verification system 200 may acquire verification target circuit data via the external device IF 204, the input IF 205, or the communication IF 207.
- the verification system 200 may refer to verification target circuit data stored in the storage 203.
- step S810 the verification system 200 reads the test bench 400.
- the verification system 200 may read the test bench 400 stored in the storage 203 into the memory 202 and refer to it.
- step S815 the verification system 200 refers to the test bench 400 and determines whether the high-speed test function is ON or OFF.
- the high-speed test function is a function that stops functional blocks 110 that do not affect the operation of the functional blocks 110 to be verified during test execution. More specifically, the verification system 200 determines that the high-speed test function is OFF when the control mode item 402 is the high-speed control OFF mode. If the high-speed test function is ON, the verification system 200 moves control to step S825. If the high-speed test function is OFF, the verification system 200 moves control to step S820.
- step S820 the verification system 200 operates all functional blocks 110 to perform a test (simulation). Taking FIG. 1 as an example, the verification system 200 operates all the functional blocks 110 from funcA to funcG to test funcA, which is the functional block 110 to be verified.
- step S825 the verification system 200 executes extraction processing of the clock and reset signals of each functional block 110. Details of step S825 will be explained with reference to FIG. 9.
- the verification system 200 generates or refers to the functional block table 300 by executing the process of step S825.
- the verification system 200 refers to the test bench 400 and determines whether the control mode is manual mode (MANUAL) or automatic mode (AUTO). More specifically, verification system 200 determines that the control mode is manual mode when control mode item 402 is MANUAL. Furthermore, when the control mode item 402 is AUTO, the verification system 200 determines that the control mode is the auto mode. If the verification system 200 determines that the control mode is the manual mode, the verification system 200 moves control to step S835. When the verification system 200 determines that the control mode is the auto mode (that is, when the control mode is set not to use the stopability determination table), the verification system 200 moves control to step S850.
- the control mode is the auto mode (that is, when the control mode is set not to use the stopability determination table)
- step S835 the verification system 200 selects a table to be used for speed-up control in manual mode. More specifically, the verification system 200 selects the first stopability determination table 600 based on the fact that the manual mode setting item 403 is spec mode (SPEC). Furthermore, the verification system 200 selects the second stopability determination table 700 based on the fact that the manual mode setting item 403 is verification mode (VERIFICATION). When the verification system 200 selects the first stoppage determination table 600, the control moves to step S840. When the verification system 200 selects the second stoppability determination table 700, the verification system 200 moves control to step S845.
- SPEC spec mode
- VERIFICATION verification mode
- step S840 the verification system 200 executes a spec mode test based on the function block table 300 and the first stopability determination table 600. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
- the verification system 200 Taking the example of executing a specA test on funcA of the semiconductor 100, the verification system 200 refers to the specA column of the first stopability determination table 600 and determines whether funcB, funcD, and funcE can be stopped. It is determined that there is. Next, the verification system 200 refers to the function block table 300 and obtains information on the funcB, funcD, and funcE clock pins and reset pins. The verification system 200 stops the operations of funcB, funcD, and funcE based on the acquired clock pin and reset pin information.
- step S845 the verification system 200 executes a verification mode test based on the function block table 300 and the second stopability determination table 700. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
- the verification system 200 Taking the example of executing the verificationA test on funcA of the semiconductor 100, the verification system 200 refers to the verificationA column of the second stopability determination table 700, and tests funcB, funcC, funcD, funcE, funcF. , determines that funcG can be stopped. Next, the verification system 200 refers to the function block table 300 and obtains information on the clock pins and reset pins of funcB, funcC, funcD, funcE, funcF, and funcG. The verification system 200 stops the operations of funcB, funcC, funcD, funcE, funcF, and funcG based on the acquired clock pin and reset pin information.
- step S850 the verification system 200 executes trial processing.
- the trial process is a process of automatically determining which functional blocks 110 can be stopped based on the results of a test using the test bench 400. Details of the trial process will be explained with reference to FIG. 10.
- the verification system 200 can acquire information on the stoppable functional blocks 110 and save the information in the trial result file 1400. Verification system 200 may use the previously generated trial results file 1400 when running the test based on test bench 400 again.
- the verification system 200 may store information about the stoppable functional blocks 110 in the first stoppability determination table 600 or the second stoppability determination table 700.
- step S855 the verification system 200 executes an auto mode test based on the function block table 300 and the trial result file 1400. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
- the verification system 200 stores information about the stoppable functional blocks 110 in the first stoppability determination table 600 or the second stoppability determination table 700 in step S850.
- the verification system 200 may refer to the first stopability determination table 600 or the second stopability determination table 700 in step S855.
- FIG. 9 is a diagram illustrating an example of a procedure for extracting the clock and reset signals of each functional block 110. The process in FIG. 9 is executed as a subroutine of step S825.
- step S910 the verification system 200 reads the functional block table 300.
- the verification system 200 can read the functional block table 300 from the storage 203 to the memory 202 and refer to the functional block table 300.
- step S920 the verification system 200 determines whether the clock signal and reset signal have been stored in the functional block table 300. If the verification system 200 determines that the clock signal and reset signal have been stored in the functional block table 300 (YES in step S920), the verification system 200 ends the process and returns the control to the next step along with the data stored in the functional block table 300. Return to S825. Otherwise (NO in step S920), verification system 200 moves control to step S930.
- step S930 the verification system 200 extracts the clock signal. More specifically, the verification system 200 analyzes the verification target circuit data acquired in step S805, and obtains information on the clock signal (clock pin) of one functional block 110 defined in the verification target circuit data. Extract. For example, the verification system 200 can extract information about the clock signal (clock pin) of the functional block 110 from the verification target circuit data using the procedure described with reference to FIG. 2 .
- step S940 the verification system 200 extracts a reset signal. More specifically, the verification system 200 analyzes the verification target circuit data acquired in step S805, and obtains information on a reset signal (reset pin) of a certain functional block 110 defined in the verification target circuit data. Extract. For example, the verification system 200 can extract information about the reset signal (reset pin) of the functional block 110 from the verification target circuit data using the procedure described with reference to FIG. 2 .
- step S950 the verification system 200 determines whether the processes of step S930 and step S940 have been repeated for all the functional blocks 110. If the verification system 200 determines that the processes of steps S930 and S940 have been repeated for all functional blocks 110 (YES in step S950), control is transferred to step S960. Otherwise (NO in step S950), verification system 200 moves control to step S930.
- the verification system 200 may collectively extract information on clock signals (clock pins) of all functional blocks 110 defined in the verification target circuit data in step S930. Similarly, in step S940, the verification system 200 may extract information on reset signals (reset pins) of all functional blocks 110 defined in the verification target circuit data at once. In this case, the process of step S950 may not be executed.
- step S960 the verification system 200 stores information on the clock signal (clock pin) and reset signal (reset pin) of each functional block 110 in the functional block table 300. Additionally, the verification system 200 returns control to step S825 together with the data stored in the function block table 300.
- FIG. 10 is a diagram illustrating an example of the procedure of trial processing. The process in FIG. 10 is executed as a subroutine of step S850.
- step S1005 the verification system 200 determines whether the trial result file 1400 exists.
- the verification system 200 may store the past trial result file 1400 in the storage 203.
- the verification system 200 can refer to the storage 203 and determine whether there is a trial result file 1400 that can be used in the current test bench 400. If the verification system 200 determines that the trial result file 1400 exists (YES in step S1005), the verification system 200 moves control to step S1010. Otherwise (NO in step S1005), verification system 200 moves control to step S1015.
- step S1010 the verification system 200 reuses the past trial result file 1400 and executes the test.
- the verification system 200 leaves test execution logs in the memory 202 or storage 203.
- the verification system 200 may receive an operation to edit the past trial result file 1400 from the user. For example, when a user adds a new function to an existing circuit, by modifying a part of the past trial result file 1400 (such as changing whether or not some function blocks 110 can be stopped), the user can modify the past trial processing. The results can be used for this test.
- the verification system 200 when the verification system 200 stores the trial result in the first stoppability determination table 600 or the second stoppability determination table 700, the verification system 200 stores the trial results in the first stoppability determination table 600 or the second stoppability determination table 600
- the information included in the stoppage determination table 700 may be used as the past trial result file 1400.
- step S1015 the verification system 200 executes the test without using the past trial result file 1400.
- the verification system 200 may execute the test in the acceleration control OFF mode.
- the verification system 200 refers to the execution log to confirm and list changes in the input signals of all functional blocks 110.
- the verification system 200 generates a list 1300 (see FIG. 13).
- the list 1300 shows changes in the input signals of all the functional blocks 110 included in the semiconductor to be verified. Taking the semiconductor 100 as an example, the list 1300 includes information on changes in each of the input signals of funcA to funcG.
- step S1025 the verification system 200 checks the change in the input signal of the functional block 110 to be verified by referring to the list 1300 or by referring to the execution log.
- step S1030 the verification system 200 determines whether there is a change in the input signal of the functional block 110 (for example, funcA) to be verified.
- the verification system 200 determines that there is a change in the input signal of the functional block 110 to be verified (YES in step S1030)
- the verification system 200 moves control to step S1035. Otherwise (NO in step S1030), verification system 200 moves control to step S1050.
- step S1035 the verification system 200 determines whether a signal (input signal or output signal) of a certain functional block 110 affects the operation of the functional block 110 to be verified.
- verification system 200 selects one of the signals (or wires 120 carrying the signal) from list 1300 that is changing. Then, the verification system 200 determines whether the selected signal affects the operation of the functional block 110 to be verified.
- the verification system 200 identifies the selected signal as the functional block to be verified by referring to the line containing the selected signal and the output signal of the functional block 110 to be verified from the execution log of the trial process. It may be determined whether the operation of 110 is affected. Taking the semiconductor 100 as an example, the verification system 200 can determine that the output signal of funcC affects the operation of funcA (the functional block 110 to be verified).
- step S1050 When the verification system 200 determines that the signal of a certain functional block 110 affects the operation of the functional block 110 to be verified (YES in step S1035), the verification system 200 moves control to step S1040. Otherwise (NO in step S1035), verification system 200 moves control to step S1050.
- step S1040 the verification system 200 adds the function block 110 (a certain function block 110 in step S1035) to the unstoppable list.
- step S1045 the verification system 200 determines whether there is a signal that causes a change in the output signal of the functional block 110 registered in the unstoppable list in step S1040. For example, suppose that the output signal of funcC influences the operation of funcA (the output signal of funcA). In this case, the verification system 200 determines whether the input signal (upstream signal) to funcC affects the operation of funcC. The verification system 200 can make this determination by referring to the execution log of the trial process.
- step S1045 If the verification system 200 determines that there is a signal that causes a change in the output signal of the functional block 110 added to the unstoppable list in step S1040 (YES in step S1045), the verification system 200 moves control to step S1040. Otherwise (NO in step S1045), verification system 200 moves control to step S1050.
- the verification system 200 adds not only funcC but also the upstream functional block 110 to the unstoppable list.
- step S1050 the verification system 200 determines whether the processes from step S1030 onward have been executed for the number of changing input signals (in the functional block 110 to be verified). That is, the verification system 200 determines whether all signals that affect the operation (output signals) of the functional block 110 to be verified have been detected. If the verification system 200 determines that the processes from step S1030 onwards have been executed for the number of input signals that are changing (in the functional block 110 to be verified) (YES in step S1050), control is transferred to step S1055. . Otherwise (NO in step S1050), verification system 200 moves control to step S1030.
- step S1055 the verification system 200 stores the results of the trial process in the trial result file 1400 (stoppability determination table).
- the verification system 200 may store the results of the trial process in the first stopability determination table 600 or the second stopability determination table 700.
- FIG. 11 is a diagram showing an example of the results of trial processing.
- the verification system 200 determines that funcB, funcD, and funcE can be stopped in the test of funcA.
- funcB, funcD, and funcE can be stopped in the test of funcA.
- the first is a functional block 110 that does not affect the operation of the functional block 110 to be verified.
- funcB corresponds to a functional block 110 that does not affect the operation of the functional block 110 (funcA) to be verified.
- the output signal of funcB (the input signal to funcA) may change, the output signal of funcB does not affect the operation of funcA.
- the second is a functional block 110 whose output signal does not change.
- funcD corresponds to the functional block 110 whose output signal does not change.
- the output signal of funcD (the input signal to funcA) may change, the output signal of funcD does not affect the operation of funcA.
- FIG. 12 is a diagram illustrating an example of criteria for determining whether an input signal affects the functional block 110.
- the signal 1201 is a signal that does not change (the signal is always fixed at 0 (LOW) or 1 (HIGH)). Signal 1201 does not affect the operation of functional block 110 to be verified. Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1201 can be stopped. For example, funcD in FIG. 11 corresponds to the functional block 110 that outputs the signal 1201.
- the signal 1202 is a signal that may change but does not affect the operation of the functional block 110 to be verified.
- a signal that is not used inside the functional block 110 to be verified corresponds to the signal 1202.
- Signal 1202 also does not affect the operation of functional block 110 under verification. Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1202 can be stopped.
- funcB in FIG. 11 corresponds to the functional block 110 that outputs the signal 1202.
- the signal 1203 is a signal that changes and is used inside the functional block 110 to be verified (a signal that affects the operation of the functional block 110 to be verified). Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1203 cannot be stopped. For example, funcC, funcF, and funcG in FIG. 11 correspond to the functional block 110 that outputs the signal 1203.
- FIG. 13 is a diagram illustrating an example of a list 1300 indicating the presence or absence of changes in the input signals of all the functional blocks 110 included in the semiconductor to be verified.
- the verification system 200 creates a list 1300 from the execution log of the trial process. Taking the semiconductor 100 as an example, the verification system 200 allocates an identifier to each input signal of all the functional blocks 110 (funcA to funcG), and creates a list 1300 containing the identifier and the presence or absence of a state change of each input signal. to be recorded.
- Each signal recorded in the list 1300 is given a uniquely identifiable identifier such as signal 1, signal 2. Further, in the list 1300, information indicating the presence or absence of a change in each signal is recorded in association with the identifier of each signal.
- signal 1 is YES (signal change).
- signal 2 is NO (no signal change (fixed at 0)).
- signal 3 is NO (no signal change (fixed at 1)).
- FIG. 14 is a diagram showing an example of a trial result file 1400.
- the trial result file 1400 stores information indicating whether each functional block 110 can be stopped during test execution. More specifically, the trial result file 1400 stores information indicating whether each functional block 110 can be stopped in a test based on the test bench 400 referred to in the trial process. For example, assume that the test bench 400 includes settings for spec mode (specA). In this case, the trial result file 1400 stores information indicating whether each functional block 110 can be stopped in the spec mode (specA) test.
- funcA, funcC, funcF, and funcG are ON (cannot be stopped), and funcB, funcD, and funcE are OFF (can be stopped).
- the verification system 200 executes a test based on all test benches 400 (specA to specG, verificationA to verificationG, etc.) that have been input in advance to the verification system 200 in trial processing, and supports all test benches 400.
- a trial result file 1400 may be generated.
- Verification system 200 may use trial results file 1400 when re-running tests based on test bench 400.
- Verification system 200 may reuse trial results file 1400 when executing tests based on other test benches 400.
- the verification system 200 can accept editing of the trial result file 1400 from the user.
- the verification system 200 automatically determines whether each functional block 110 can be stopped during test execution by analyzing the design specifications, analyzing the verification specifications, or performing trial processing. can be determined. Thereby, the verification system 200 can speed up the test by stopping the functional blocks 110 that are unnecessary for the test.
- the user who executes the test can have the verification system 200 analyze various specifications prepared in advance by a designer or a person in charge of verification, without requiring any knowledge of the semiconductor 100 (logic circuit). You can easily speed up testing.
- the verification system 200 provides the user with a function to reuse the past trial result file 1400 for a new test. This allows the user to immediately speed up the test if there is a usable trial result file 1400. Furthermore, when there is a design change of the semiconductor 100, the user can also rewrite and use a part of the past trial result file 1400.
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)
- Tests Of Electronic Circuits (AREA)
Abstract
Provided is a technology with which it is possible for a user to stop an unnecessary function block and quickly execute a simulation of a logic circuit. This method for verifying whether or not there is an abnormality in a logic circuit includes: a step (S825) for extracting a clock signal and a resetting signal that are inputted to each of a plurality of function blocks included in a logic circuit; a step (S810) for referring to a test bench; s step for referring to a stoppability assessment table in which is stored information indicating whether each of the plurality of function blocks can be stopped within a test in which the test bench is used; and a step (S840, S845, S855) for stopping the clock signal and the resetting signal inputted to one or more function blocks that do not affect the activity of a function block being verified, in accordance with information acquired from the stoppability assessment table, and executing a test of the function block being verified based on the test bench.
Description
本開示は、論理回路の検証技術に関し、より特定的には、論理回路の検証の高速化に関する。
The present disclosure relates to logic circuit verification technology, and more specifically, to speeding up logic circuit verification.
大規模な論理回路を有するLSI(Large Scale Integration)等の半導体の製品開発には、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等が使用されることがある。いずれの場合においても、半導体が備える論理回路の整合性を検証するために、論理回路シミュレータが使用される。
In the development of semiconductor products such as LSI (Large Scale Integration) having large-scale logic circuits, ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), etc. are sometimes used. In either case, a logic circuit simulator is used to verify the consistency of logic circuits included in the semiconductor.
しかしながら、近年、半導体の大規模化が進んでおり、シミュレーション時間の増大が問題となっている。そのため、半導体の論理回路のシミュレーション時間を短縮するための技術が求められている。
However, in recent years, the scale of semiconductors has progressed, and an increase in simulation time has become a problem. Therefore, there is a need for a technique for shortening the simulation time of semiconductor logic circuits.
論理回路のシミュレーション時間を短縮する技術に関し、例えば、特開2006-185202号公報(特許文献1)は、回路のシミュレーション装置および方法を開示している。当該装置および方法は、「あらかじめテストベンチ情報に検証対象外ブロックとなる場合の条件を示す検証対象外ブロック情報記述を記述する、あるいは、あらかじめ行ったシミュレーション結果や各モジュールの活性化条件を準備することにより、検証対象外ブロック情報検索手段により対象となる回路のうちの検証対象外であるブロックを自動的に検出し、検証対象外ブロックを少なくとも入出力端子情報を含む最低限の情報を記述したダミーブロックとしてモジュール記述した省リソースシミュレーション用回路情報を生成し、この省リソースシミュレーション用回路情報を用いて検証を行うことにより、妥当性の高い検証を行いながら、検証作業を高効率で行う」というものである([要約]参照)。
Regarding technology for shortening the simulation time of logic circuits, for example, Japanese Patent Laid-Open No. 2006-185202 (Patent Document 1) discloses a circuit simulation device and method. The device and method require ``writing in advance a non-verification block information description indicating the conditions for a non-verification block in the test bench information, or preparing simulation results performed in advance and activation conditions for each module. By doing so, the unverified block information search means automatically detects the unverified blocks in the target circuit, and describes the unverified blocks with at least the minimum information including input/output terminal information. By generating circuit information for resource-saving simulation that is described as a module as a dummy block and performing verification using this circuit information for resource-saving simulation, verification work can be performed with high efficiency while performing verification with high validity. (See [Summary]).
特許文献1に開示された技術によると、論理回路シミュレーションにおいて検証対象外となるブロックの条件の設定作業等を手動で行う必要があり、ユーザは、論理回路の動作を詳細に理解する必要があった。そのため、論理回路シミュレーションを実行できる技術者が限られてしまう、もしくは、論理回路シミュレーションのための学習コストが高くなるという問題があった。したがって、論理回路の動作を熟知していないユーザであっても、不必要な機能ブロックを停止して論理回路のシミュレーションを高速に実行できるようにするための技術が必要とされている。
According to the technology disclosed in Patent Document 1, it is necessary to manually set conditions for blocks that are not subject to verification in logic circuit simulation, and the user is required to understand the operation of the logic circuit in detail. Ta. Therefore, there are problems in that the number of engineers who can perform logic circuit simulations is limited, or the learning cost for logic circuit simulations becomes high. Therefore, there is a need for a technique that allows even users who are not familiar with the operation of logic circuits to stop unnecessary functional blocks and execute logic circuit simulations at high speed.
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、論理回路の動作を熟知していないユーザであっても、不必要な機能ブロックを停止して論理回路のシミュレーションを高速に実行できるようにするための技術を提供することにある。
The present disclosure has been made in view of the above-mentioned background, and in one aspect, the purpose is to enable even users who are not familiar with the operation of logic circuits to stop unnecessary functional blocks and perform logic operations. The objective is to provide technology that allows circuit simulation to be executed at high speed.
ある実施の形態に従うと、論理回路の検証方法が提供される。検証方法は、論理回路に含まれる複数の機能ブロックの各々に入力されるクロック信号およびリセット信号を抽出するステップと、テストベンチを参照するステップと、テストベンチを使用したテストにおける、複数の機能ブロックの各々の停止可否を示す情報を格納する停止可否判別テーブルを参照するステップと、停止可否判別テーブルから取得した情報に応じて検証対象の機能ブロックの動作に影響を及ぼさない1つ以上の機能ブロックへのクロック信号およびリセット信号を停止し、テストベンチに基づく検証対象の機能ブロックのテストを実行するステップとを含む。
According to an embodiment, a method for verifying a logic circuit is provided. The verification method includes the steps of extracting clock signals and reset signals input to each of multiple functional blocks included in a logic circuit, referencing a test bench, and testing multiple functional blocks using the test bench. a step of referring to a stopability determination table that stores information indicating whether each of the function blocks can be stopped; and one or more functional blocks that do not affect the operation of the functional block to be verified according to the information obtained from the stopability determination table. and performing a test of the functional block to be verified based on the test bench.
ある実施の形態に従うと、論理回路の動作を熟知していないユーザであっても、不必要な機能ブロックを停止して論理回路のシミュレーションを高速に実行できる。
According to an embodiment, even a user who is not familiar with the operation of logic circuits can stop unnecessary functional blocks and execute logic circuit simulations at high speed.
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
These and other objects, features, aspects, and advantages of this disclosure will become apparent from the following detailed description of the disclosure, taken in conjunction with the accompanying drawings.
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
Hereinafter, embodiments of the technical idea according to the present disclosure will be described with reference to the drawings. In the following description, the same parts are given the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.
実施の形態1.
<A.論理回路の検証の概要>
図1は、本実施の形態に従う検証システム200(図2参照)が検証可能な半導体100の構成の一例を示す図である。図1を参照して、半導体100の構造、半導体100に含まれる論理回路のシミュレーション、および、論理回路のシミュレーションを行う場合の問題点について説明する。なお、検証システム200は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、NPU(Neural Processing Unit)またはその他の任意の半導体の動作検証を行い得る。Embodiment 1.
<A. Overview of logic circuit verification>
FIG. 1 is a diagram showing an example of the configuration of asemiconductor 100 that can be verified by the verification system 200 (see FIG. 2) according to this embodiment. With reference to FIG. 1, the structure of the semiconductor 100, simulation of a logic circuit included in the semiconductor 100, and problems when simulating the logic circuit will be described. Note that the verification system 200 can perform operation verification of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an NPU (Neural Processing Unit), or any other semiconductor.
<A.論理回路の検証の概要>
図1は、本実施の形態に従う検証システム200(図2参照)が検証可能な半導体100の構成の一例を示す図である。図1を参照して、半導体100の構造、半導体100に含まれる論理回路のシミュレーション、および、論理回路のシミュレーションを行う場合の問題点について説明する。なお、検証システム200は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、NPU(Neural Processing Unit)またはその他の任意の半導体の動作検証を行い得る。
<A. Overview of logic circuit verification>
FIG. 1 is a diagram showing an example of the configuration of a
(a.半導体の構成)
半導体100は、1つ以上の機能ブロック110と、1本以上の配線120とを備える。1つ以上の機能ブロック110は、相互に配線120を介して接続され得る。 (a. Structure of semiconductor)
Thesemiconductor 100 includes one or more functional blocks 110 and one or more interconnects 120. One or more functional blocks 110 may be connected to each other via wiring 120.
半導体100は、1つ以上の機能ブロック110と、1本以上の配線120とを備える。1つ以上の機能ブロック110は、相互に配線120を介して接続され得る。 (a. Structure of semiconductor)
The
機能ブロック110は、ある機能を実現するための回路のまとまりである。本明細書における「論理回路」とは、半導体(例えば、半導体100)の構成全体、半導体に含まれる各機能ブロック(例えば、機能ブロック110(funcA~funcG))、AND回路・OR回路・NAND回路等の最小単位の論理回路、または、これらの組合せを包含する。そのため、機能ブロック110は、論理回路(半導体100)に含まれているとも言える。また、機能ブロック110は、1つ以上の論理回路(AND回路・OR回路・NAND回路等)から構成されているとも言える。
The functional block 110 is a group of circuits for realizing a certain function. In this specification, a "logic circuit" refers to the entire configuration of a semiconductor (for example, the semiconductor 100), each functional block included in the semiconductor (for example, the functional blocks 110 (funcA to funcG)), an AND circuit, an OR circuit, a NAND circuit. It includes minimum unit logic circuits such as, or a combination thereof. Therefore, it can be said that the functional block 110 is included in the logic circuit (semiconductor 100). It can also be said that the functional block 110 is composed of one or more logic circuits (AND circuit, OR circuit, NAND circuit, etc.).
論理回路(半導体)のシミュレーションは、この機能ブロックの単位で実行される。また、論理回路のシミュレーションは、通常、半導体を構成する各論理回路が正常に動作するか否かを検証するために行われる。そのため、これ以降「論理回路のシミュレーション」を、「論理回路(半導体)の検証もしくはテスト、または、機能ブロックの検証もしくはテスト」と呼ぶこともある。「半導体の検証または機能ブロックの検証」は、半導体に含まれる1つ以上の論理回路の動作のシミュレートすることも包含する。また、これ以降、図1等に示される個別の機能ブロックについて示す場合は、funcA~funcGのように記載し、これらの機能ブロックを総称する場合は、機能ブロック110と呼ぶ。
The simulation of the logic circuit (semiconductor) is executed in units of this functional block. Furthermore, logic circuit simulation is usually performed to verify whether each logic circuit that constitutes a semiconductor operates normally. Therefore, hereinafter, "logic circuit simulation" may also be referred to as "logic circuit (semiconductor) verification or test, or functional block verification or test." "Semiconductor verification or functional block verification" also includes simulating the operation of one or more logic circuits included in a semiconductor. Further, from now on, when referring to individual functional blocks shown in FIG. 1 etc., they will be described as funcA to funcG, and when these functional blocks are collectively referred to as functional block 110.
配線120は、半導体100内で発生する信号を伝搬する。配線120は、半導体120内部の信号を外部に出力、外部からの信号を半導体120内部に入力、または、ある機能ブロック110の出力信号を他の機能ブロック110に入力する。配線120の矢印は、信号の向きを示す。
The wiring 120 propagates signals generated within the semiconductor 100. The wiring 120 outputs a signal inside the semiconductor 120 to the outside, inputs a signal from the outside into the semiconductor 120, or inputs an output signal of one functional block 110 to another functional block 110. The arrow on the wiring 120 indicates the direction of the signal.
図1に示されるように、各機能ブロック110は、配線120を介して、他の機能ブロック110に接続されている。また、各機能ブロック110は、連携して一つの処理を実行する場合もある。そのため、例えば、funcAの動作を検証する場合、funcAの動作に影響を及ぼす可能性がある他の機能ブロック110の動作も検証する必要がある。図1の例では、funcB, funcD, funcF, funcGは、funcAに直接信号を出力しており、funcAの処理および動作に影響を及ぼす可能性がある。funcBは、funcGを介してfuncAに信号を出力しており、funcAの処理および動作に影響を及ぼす可能性がある。また、funcEは、funcDに信号を出力しており、funcDの処理および動作に影響を及ぼす可能性がある。その結果として、funcEは、funcAの処理および動作に影響を及ぼす可能性がある。
As shown in FIG. 1, each functional block 110 is connected to other functional blocks 110 via wiring 120. Further, each functional block 110 may cooperate to execute one process. Therefore, for example, when verifying the operation of funcA, it is necessary to also verify the operation of other functional blocks 110 that may affect the operation of funcA. In the example of FIG. 1, funcB, funcD, funcF, and funcG output signals directly to funcA, which may affect the processing and operation of funcA. funcB outputs a signal to funcA via funcG, which may affect the processing and operation of funcA. Furthermore, funcE outputs a signal to funcD, which may affect the processing and operation of funcD. As a result, funcE can affect the processing and behavior of funcA.
ただし、funcB~funcGの各出力信号がfuncAの処理および動作に影響を及ぼさない可能性もある。そこで、検証システム200は、後述するように、設計仕様書もしくは検証仕様書を解析、または、オートモードでテストを予め実行することで、検証対象の機能ブロック110に対する他の機能ブロック110の影響の有無を判定し得る。
However, there is a possibility that each output signal of funcB to funcG does not affect the processing and operation of funcA. Therefore, as will be described later, the verification system 200 analyzes the design specifications or verification specifications, or executes a test in auto mode in advance to reduce the influence of other functional blocks 110 on the functional block 110 to be verified. The presence or absence can be determined.
なお、ある機能ブロック110による検証対象の機能ブロック110へ影響とは、ある機能ブロック110の出力信号の変化が検証対象の機能ブロック110の内部処理に変化をもたらすこと、および、ある機能ブロック110の出力信号の変化が検証対象の機能ブロック110の出力信号に変化をもたらすことを包含する。
Note that the influence of a certain functional block 110 on the functional block 110 to be verified means that a change in the output signal of a certain functional block 110 causes a change in the internal processing of the functional block 110 to be verified, and A change in the output signal includes a change in the output signal of the functional block 110 to be verified.
(b.機能ブロックのテスト)
半導体100内の検証には、テストベンチ400(図4参照)が使用される。「テストベンチ」とは、論理回路が仕様通りに動作するか否かを検証するための設定ファイルである。例えば、シミュレーションで使用する入力信号の設定を含む。 (b. Functional block test)
A test bench 400 (see FIG. 4) is used to verify the inside of thesemiconductor 100. A "test bench" is a configuration file for verifying whether a logic circuit operates according to specifications. For example, it includes settings for input signals used in simulation.
半導体100内の検証には、テストベンチ400(図4参照)が使用される。「テストベンチ」とは、論理回路が仕様通りに動作するか否かを検証するための設定ファイルである。例えば、シミュレーションで使用する入力信号の設定を含む。 (b. Functional block test)
A test bench 400 (see FIG. 4) is used to verify the inside of the
本実施の形態に従う検証システム200は、テストベンチ400を参照して、各機能ブロック110の動作を検証する。検証システム200は、テストベンチ400の記述に基づいて、半導体100の入力ピンへの入力信号または各機能ブロック110の入力信号を生成し、各機能ブロック110の動作をシミュレートする。検証システム200は、シミュレーションにおける各機能ブロック110の動作(出力信号)が仕様通りであれば、半導体100は正常であると判定する。
The verification system 200 according to this embodiment verifies the operation of each functional block 110 with reference to the test bench 400. The verification system 200 generates an input signal to the input pin of the semiconductor 100 or an input signal to each functional block 110 based on the description of the test bench 400, and simulates the operation of each functional block 110. The verification system 200 determines that the semiconductor 100 is normal if the operation (output signal) of each functional block 110 in the simulation is in accordance with the specifications.
なお、テストベンチ400は、検証する機能または仕様ごとに作成されることがあり、1つ以上のテストベンチ400が存在し得る。そのため、検証システム200は、開発中の半導体に設計変更が生じた場合、複数のテストベンチ400を用いた検証を再度実行する必要がある。
Note that the test bench 400 may be created for each function or specification to be verified, and one or more test benches 400 may exist. Therefore, when a design change occurs in a semiconductor under development, the verification system 200 needs to perform verification again using a plurality of test benches 400.
(c.機能ブロックの検証を行う場合の課題)
上記のように、検証システム200は、1つ以上のテストベンチ400を使用することで、半導体100が備える各機能ブロック110の動作検証を実行し得る。しかしながら、近年、半導体に搭載される機能は増加および複雑化し続けている。そのため、半導体の各機能(機能ブロック)の検証のためのシミュレーションの実行時間も増加し続けている。 (c. Issues when verifying functional blocks)
As described above, theverification system 200 may use one or more test benches 400 to verify the operation of each functional block 110 included in the semiconductor 100. However, in recent years, the functions mounted on semiconductors have continued to increase and become more complex. Therefore, the execution time of simulations for verifying each function (functional block) of a semiconductor continues to increase.
上記のように、検証システム200は、1つ以上のテストベンチ400を使用することで、半導体100が備える各機能ブロック110の動作検証を実行し得る。しかしながら、近年、半導体に搭載される機能は増加および複雑化し続けている。そのため、半導体の各機能(機能ブロック)の検証のためのシミュレーションの実行時間も増加し続けている。 (c. Issues when verifying functional blocks)
As described above, the
例えば、半導体100に設計変更が発生したとする。この場合、検証システム200は、複数のテストベンチ400を用いた機能ブロック110の検証を再度実行する必要がある。しかしながら、半導体の設計変更が発生するたびに、全ての機能ブロック110を動作させてテストを実行すると、半導体の動作検証に膨大な時間を費やしてしまい、開発スケジュールに遅れが生じる可能性がある。
For example, assume that a design change occurs in the semiconductor 100. In this case, the verification system 200 needs to perform the verification of the functional block 110 again using the plurality of test benches 400. However, if a test is executed by operating all the functional blocks 110 every time a semiconductor design is changed, a huge amount of time will be spent verifying the operation of the semiconductor, which may cause a delay in the development schedule.
そこで、本実施の形態に従う検証システム200は、検証対象の機能ブロックの動作に影響を及ぼさない機能ブロックの動作を停止させることで、シミュレーション(機能ブロック110の動作検証)を高速化する。
Therefore, the verification system 200 according to the present embodiment speeds up the simulation (operation verification of the functional block 110) by stopping the operation of the functional block that does not affect the operation of the functional block to be verified.
より具体的には、本実施の形態に従う検証システム200は、検証対象の機能ブロック110の動作に影響を及ぼさない(すなわち、テストに影響を及ぼさない)1つ以上の機能ブロック110へのクロック信号およびリセット信号を停止することで、検証対象の機能ブロック110の動作に影響を及ぼさない1つ以上の機能ブロック110の動作を停止させる。
More specifically, the verification system 200 according to the present embodiment transmits a clock signal to one or more functional blocks 110 that does not affect the operation of the functional block 110 to be verified (that is, does not affect the test). By stopping the reset signal, the operation of one or more functional blocks 110 that does not affect the operation of the functional block 110 to be verified is stopped.
なお、本明細書において、「ある機能ブロック110へのクロック信号およびリセット信号を停止する」ことは、ある機能ブロック110を停止状態にするように、クロック信号およびリセット信号を変更することを含む。例えば、ある機能ブロック110が、リセット信号(LOW)で動作し、リセット信号(HIGH)で停止するとする。この場合、「ある機能ブロック110へのリセット信号を停止する」とは、リセット信号をHIGHにする(すなわち、ある機能ブロック110を動作させるリセット信号(LOW)の供給を停止する)ことを意味する。
Note that in this specification, "stopping the clock signal and reset signal to a certain functional block 110" includes changing the clock signal and the reset signal so that the certain functional block 110 is in a stopped state. For example, assume that a certain functional block 110 operates with a reset signal (LOW) and stops with a reset signal (HIGH). In this case, "stopping the reset signal to a certain functional block 110" means making the reset signal HIGH (that is, stopping the supply of the reset signal (LOW) that operates a certain functional block 110). .
そのために、検証システム200は、論理回路に含まれる複数の機能ブロック110の各々に入力されるクロック信号およびリセット信号を抽出する。また、検証システム200は、テストベンチ400を参照し、さらに、テストベンチ400を使用したテストにおける複数の機能ブロック110の各々の停止可否を示す情報を格納する停止可否判別テーブルを参照する。検証システム200は、停止可否判別テーブルから取得した情報に応じて検証対象の機能ブロック110の動作に影響を及ぼさない1つ以上の機能ブロック110へのクロック信号およびリセット信号を停止し、テストベンチ400に基づく検証対象の機能ブロック110のテストを実行する。
To this end, the verification system 200 extracts a clock signal and a reset signal that are input to each of the plurality of functional blocks 110 included in the logic circuit. In addition, the verification system 200 refers to the test bench 400, and further refers to a stopability determination table that stores information indicating whether each of the plurality of functional blocks 110 can be stopped in a test using the test bench 400. The verification system 200 stops the clock signal and reset signal to one or more functional blocks 110 that do not affect the operation of the functional block 110 to be verified according to the information obtained from the stopability determination table, and the test bench 400 A test of the functional block 110 to be verified is executed based on the following.
なお、本明細書において「停止可否判別テーブル」は、「第1の停止可否判別テーブル(図6参照)」、「第2の停止可否判別テーブル(図7参照)」または、その両方を包含する。第1の停止可否判別テーブル、第2の停止可否判別テーブルおよびトライアル結果ファイル(図14参照)を総称して、停止可否判別テーブルと呼ぶこともある。
Note that in this specification, the "stoppability determination table" includes the "first stoppability determination table (see FIG. 6)", the "second stoppability determination table (see FIG. 7)", or both. . The first stopability determination table, the second stopability determination table, and the trial result file (see FIG. 14) may be collectively referred to as the stopability determination table.
<B.検証システムの構成>
図2は、本実施の形態に従う検証システム200のハードウェア構成の一例を示す図である。図2を参照して、検証システム200のハードウェア構成について説明する。また、検証システム200によって実行されるソフトウェアの構成についても説明する。 <B. Verification system configuration>
FIG. 2 is a diagram showing an example of the hardware configuration ofverification system 200 according to this embodiment. The hardware configuration of verification system 200 will be described with reference to FIG. 2. The configuration of software executed by the verification system 200 will also be described.
図2は、本実施の形態に従う検証システム200のハードウェア構成の一例を示す図である。図2を参照して、検証システム200のハードウェア構成について説明する。また、検証システム200によって実行されるソフトウェアの構成についても説明する。 <B. Verification system configuration>
FIG. 2 is a diagram showing an example of the hardware configuration of
本明細書において「システム」とは、1または複数の装置からなる構成、サーバ、クラウド環境に構築された仮想マシンもしくはコンテナ、または、これらの少なくとも一部からなる構成を包含する。ある局面において、検証システム200は、ディスプレイおよびキーボード等の入出力機器と接続されて、ユーザに使用されてもよい。他の局面において、検証システム200は、ネットワークを介して、クラウドサービスまたはウェブアプリケーションとして、ユーザに各種機能を提供してもよい。この場合、ユーザは、自身の端末にインストールされたブラウザまたはクライアントソフトウェアを介して、検証システム200の機能を使用し得る。
In this specification, the term "system" includes a configuration consisting of one or more devices, a server, a virtual machine or container built in a cloud environment, or a configuration consisting of at least a portion of these. In one aspect, the verification system 200 may be used by a user by being connected to input/output devices such as a display and a keyboard. In other aspects, the verification system 200 may provide various functions to the user as a cloud service or a web application via a network. In this case, the user may use the functionality of the verification system 200 via a browser or client software installed on his or her terminal.
検証システム200は、主なハードウェア構成として、プロセッサ201と、メモリ202と、ストレージ203と、外部機器IF(Interface)204と、入力IF205と、出力IF206と、通信IF207とを含む。これらの構成は、内部バス208により相互に接続される。
The verification system 200 includes a processor 201, a memory 202, a storage 203, an external device IF (Interface) 204, an input IF 205, an output IF 206, and a communication IF 207 as main hardware configurations. These configurations are interconnected by an internal bus 208.
プロセッサ201は、検証システム200の各種機能を実現するためのプログラムを実行し得る。プロセッサ201は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのFPGA、少なくとも1つのASICまたはこれらの組み合わせ等によって構成されてもよい。
The processor 201 can execute programs for realizing various functions of the verification system 200. Processor 201 is configured, for example, by at least one integrated circuit. The integrated circuit may be configured by, for example, at least one CPU, at least one GPU, at least one FPGA, at least one ASIC, or a combination thereof.
メモリ202は、プロセッサ201によって実行されるプログラムと、プロセッサ201によって参照されるデータとを格納する。ある局面において、メモリ202は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現されてもよい。
The memory 202 stores programs executed by the processor 201 and data referenced by the processor 201. In one aspect, the memory 202 may be implemented by DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or the like.
ストレージ203は、不揮発性メモリであり、プロセッサ201によって実行されるプログラムおよびプロセッサ201によって参照されるデータを格納してもよい。その場合、プロセッサ201は、ストレージ203からメモリ202に読み出されたプログラムを実行し、ストレージ203からメモリ202に読み出されたデータを参照する。ある局面において、ストレージ203は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリー等によって実現されてもよい。
The storage 203 is a non-volatile memory and may store programs executed by the processor 201 and data referenced by the processor 201. In that case, the processor 201 executes the program read from the storage 203 to the memory 202 and refers to the data read from the storage 203 to the memory 202. In one aspect, the storage 203 is a HDD (Hard Disk Drive), an SSD (Solid State Drive), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), or a flash memory. may be realized by .
外部機器IF204は、プリンター、スキャナーおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器IF204は、USB(Universal Serial Bus)端子等によって実現されてもよい。
The external device IF 204 can be connected to any external device such as a printer, scanner, or external HDD. In one aspect, the external device IF 204 may be realized by a USB (Universal Serial Bus) terminal or the like.
入力IF205は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力IF205は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。
The input IF 205 can be connected to any input device such as a keyboard, mouse, touch pad, or game pad. In one aspect, the input IF 205 may be realized by a USB terminal, a PS/2 terminal, a Bluetooth (registered trademark) module, or the like.
出力IF206は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力IF206は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。
The output IF 206 can be connected to any output device such as a cathode ray tube display, a liquid crystal display, or an organic EL (Electro-Luminescence) display. In one aspect, the output IF 206 may be realized by a USB terminal, a D-sub terminal, a DVI (Digital Visual Interface) terminal, an HDMI (registered trademark) (High-Definition Multimedia Interface) terminal, or the like.
通信IF207は、有線ネットワークまたは無線ネットワークを介して他の機器と接続される。ある局面において、通信IF207は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現されてもよい。他の局面において、通信IF207は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
The communication IF 207 is connected to other devices via a wired network or a wireless network. In one aspect, the communication IF 207 may be realized by a wired LAN (Local Area Network) port, a Wi-Fi (registered trademark) (Wireless Fidelity) module, or the like. In other aspects, the communication IF 207 may transmit and receive data using communication protocols such as TCP/IP (Transmission Control Protocol/Internet Protocol) and UDP (User Datagram Protocol).
シミュレータ210は、半導体100(論理回路)の検証用のソフトウェアであり、ストレージ203に格納される。プロセッサ201は、ストレージ203からメモリ202にシミュレータ210を読み出して、当該シミュレータ210を実行することにより、図3~図14を参照して説明される各種機能を実現し得る。ある局面において、シミュレータ210は、ハードウェアとして実現されてもよい。シミュレータ210は、主な機能構成として、信号抽出部211と、テストベンチ取得部212と、停止可否判定部213と、テスト実行部214とを備える。
The simulator 210 is software for verifying the semiconductor 100 (logic circuit) and is stored in the storage 203. The processor 201 can implement various functions described with reference to FIGS. 3 to 14 by reading the simulator 210 from the storage 203 to the memory 202 and executing the simulator 210. In some aspects, simulator 210 may be implemented as hardware. The simulator 210 includes a signal extraction section 211, a test bench acquisition section 212, a stopability determination section 213, and a test execution section 214 as main functional components.
信号抽出部211は、各機能ブロック110に提供されるクロック信号およびリセット信号(もしくはその信号の発生源、経路)を抽出する。クロック信号およびリセット信号の抽出は、各機能ブロック110にクロック信号を供給する配線120と、各機能ブロック110にリセット信号を供給する配線120とを判別することを含み得る。また、クロック信号およびリセット信号の抽出は、半導体100(論理回路)内の各機能ブロック110への各種信号の遮断場所を特定することを含み得る。信号抽出部211は、抽出したクロック信号およびリセット信号の情報を機能ブロックテーブル300(図3参照)に格納する。機能ブロックテーブル300は、ストレージ203に格納される。
The signal extraction unit 211 extracts the clock signal and reset signal (or the source or path of the signal) provided to each functional block 110. Extracting the clock signal and reset signal may include determining the wiring 120 that supplies the clock signal to each functional block 110 and the wiring 120 that supplies the reset signal to each functional block 110. Furthermore, extracting the clock signal and the reset signal may include specifying the location where various signals are cut off to each functional block 110 in the semiconductor 100 (logic circuit). The signal extraction unit 211 stores information on the extracted clock signal and reset signal in the functional block table 300 (see FIG. 3). Function block table 300 is stored in storage 203.
ある局面において、信号抽出部211は、ハードウェア記述言語によるコードを解析することで、各機能ブロック110に提供されるクロック信号およびリセット信号(もしくはその信号の発生源、経路)を抽出してもよい。コード220は、ハードウェア記述言語のコードの一例である。コード220を参照して、信号抽出部211の解析手順の一例について説明する。信号抽出部211は、コード220を解析し、always構文中にしか出現しない「CLK」をクロック信号であると判定し得る。また、信号抽出部211は、always構文およびbegin end構文の両方に出現する(rstl)をリセット信号であると判定し得る。
In one aspect, the signal extraction unit 211 extracts the clock signal and reset signal (or the source or path of the signal) provided to each functional block 110 by analyzing a code written in a hardware description language. good. Code 220 is an example of a code in a hardware description language. An example of the analysis procedure of the signal extraction unit 211 will be described with reference to the code 220. The signal extraction unit 211 can analyze the code 220 and determine that "CLK", which only appears in the always statement, is a clock signal. Further, the signal extraction unit 211 can determine that (rstl) appearing in both the always syntax and the begin/end syntax is a reset signal.
なお、ユーザは、外部機器IF204、入力IF205または通信IF207等を介して、予め動作検証を行うための半導体100のソースコードをストレージ203に保存し得る。信号抽出部211は、ストレージ203に保存されたソースコードを読み出すことで、各機能ブロック110に提供されるクロック信号およびリセット信号を抽出する。
Note that the user can store the source code of the semiconductor 100 for performing operation verification in advance in the storage 203 via the external device IF 204, input IF 205, communication IF 207, or the like. The signal extraction unit 211 extracts the clock signal and reset signal provided to each functional block 110 by reading the source code stored in the storage 203.
テストベンチ取得部212は、ストレージ203からテストベンチ400を読み出す。また、テストベンチ取得部212は、テストベンチ400から読み出したテスト情報およびテスト実行要求をテスト実行部214に出力する。なお、ユーザは、外部機器IF204、入力IF205または通信IF207等を介して、予め1つ以上のテストベンチ400をストレージ203に保存し得る。
The test bench acquisition unit 212 reads the test bench 400 from the storage 203. Further, the test bench acquisition unit 212 outputs the test information read from the test bench 400 and the test execution request to the test execution unit 214. Note that the user may store one or more test benches 400 in the storage 203 in advance via the external device IF 204, input IF 205, communication IF 207, or the like.
停止可否判定部213は、テストベンチ400の実行時に、テストの実行ログを解析する。停止可否判定部213は、実行ログの解析結果に基づいて、ある機能ブロック110の出力信号に対して、他の1つ以上の機能ブロック110からある機能ブロック110への入力信号が影響を及ぼすか否かを判定する。停止可否判定部213は、判定結果に基づいて、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に、ある機能ブロック110の動作検証を行うときに、他の機能ブロック110の停止可否を判定するための情報を格納する。
The stoppage determination unit 213 analyzes the test execution log when the test bench 400 is executed. The stopability determining unit 213 determines whether an input signal from one or more other functional blocks 110 to a certain functional block 110 has an influence on an output signal of a certain functional block 110, based on the analysis result of the execution log. Determine whether or not. Based on the determination result, the stoppage determination unit 213 writes information about other function blocks 110 into the first stopability determination table 600 or the second stopability determination table 700 when verifying the operation of a certain function block 110. Stores information for determining whether to stop.
より具体的には、テストベンチ400A,400B,400C,400D,400E,400Fがあるとする。そして、テスト実行部214がテストベンチ400Aを用いて、ある機能ブロック110の動作検証を実行したとする。この場合、停止可否判定部213は、テストベンチ400Aを用いてある機能ブロック110の動作検証をするときに停止可能な(テストに影響を及ぼさない)他の機能ブロック110を判定し得る。もしくは、停止可否判定部213は、テストベンチ400Aを用いてある機能ブロック110の動作検証をするときに停止不可能な(テストに影響を及ぼす)他の機能ブロック110を判定し得る。停止可否判定部213は、使用されたテストベンチ400の内容に基づいて、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700のいずれかに判定結果を格納する。なお、第1の停止可否判別テーブル600および第2の停止可否判別テーブル700は、ストレージ203に格納される。停止可否判定部213は、後述するトライアル処理を実行時には、トライアル結果ファイル1400(図14参照)に判定結果を格納する。
More specifically, it is assumed that there are test benches 400A, 400B, 400C, 400D, 400E, and 400F. Assume that the test execution unit 214 uses the test bench 400A to verify the operation of a certain functional block 110. In this case, the stopability determination unit 213 can determine which other function blocks 110 can be stopped (does not affect the test) when verifying the operation of a certain function block 110 using the test bench 400A. Alternatively, when verifying the operation of a certain functional block 110 using the test bench 400A, the stoppability determining unit 213 may determine which other functional blocks 110 cannot be stopped (affecting the test). The stoppage determination unit 213 stores the determination result in either the first stoppage determination table 600 or the second stoppage determination table 700 based on the contents of the test bench 400 used. Note that the first stopability determination table 600 and the second stopability determination table 700 are stored in the storage 203. When executing trial processing, which will be described later, the stoppage determination unit 213 stores the determination result in a trial result file 1400 (see FIG. 14).
テスト実行部214は、テスト情報およびテスト実行要求と、機能ブロックテーブル300と、第1の停止可否判別テーブル600、第2の停止可否判別テーブル700またはトライアル結果ファイル1400とに基づいて、機能ブロック110のテスト(動作検証)を実行する。
The test execution unit 214 executes the function block 110 based on the test information and the test execution request, the function block table 300, the first stopability determination table 600, the second stopability determination table 700, or the trial result file 1400. Execute the test (operation verification).
テスト実行部214は、テスト情報を参照することで、テストベンチ400に基づくテストを実行し得る。また、テスト実行部214は、第1の停止可否判別テーブル600、第2の停止可否判別テーブル700またはトライアル結果ファイル1400を参照することで、テスト実行時に停止可能な1つ以上の機能ブロック110を判定し得る。さらに、テスト実行部214は、機能ブロックテーブル300を参照することで、テスト実行時に停止可能な1つ以上の機能ブロック110へのクロック信号およびリセット信号を判別し、これらの信号を停止することで、テスト実行時に停止可能な1つ以上の機能ブロック110を停止させ得る。
The test execution unit 214 can execute a test based on the test bench 400 by referring to the test information. Furthermore, the test execution unit 214 identifies one or more functional blocks 110 that can be stopped during test execution by referring to the first stopability determination table 600, the second stopability determination table 700, or the trial result file 1400. can be determined. Furthermore, by referring to the function block table 300, the test execution unit 214 determines the clock signal and reset signal to one or more function blocks 110 that can be stopped during test execution, and stops these signals. , one or more stoppable functional blocks 110 may be stopped during test execution.
なお、使用されるテストベンチ400に対応する第1の停止可否判別テーブル600、第2の停止可否判別テーブル700またはトライアル結果ファイル1400の情報がない場合、テスト実行部214は、テスト情報およびテスト実行要求に基づいて、機能ブロック110のテスト(動作検証)を実行してもよい。すなわち、テスト実行部214は、テスト実行時に停止可能な1つ以上の機能ブロック110を停止させずに、テストを実行してもよい。
Note that if there is no information on the first stopability determination table 600, the second stopability determination table 700, or the trial result file 1400 corresponding to the test bench 400 used, the test execution unit 214 uses the test information and test execution information. Based on the request, a test (operation verification) of the functional block 110 may be performed. That is, the test execution unit 214 may execute the test without stopping one or more functional blocks 110 that can be stopped during test execution.
<C.検証処理に使用される設定情報>
次に、図3~図7を参照して、検証システム200が論理回路の検証に使用する設定情報について説明する。検証システム200は、図3~図7に示される各設定情報を参照することで、図8~図10のフローチャートに示される処理を実行し得る。 <C. Setting information used for verification process>
Next, setting information used by theverification system 200 to verify logic circuits will be described with reference to FIGS. 3 to 7. The verification system 200 can execute the processes shown in the flowcharts of FIGS. 8 to 10 by referring to each setting information shown in FIGS. 3 to 7.
次に、図3~図7を参照して、検証システム200が論理回路の検証に使用する設定情報について説明する。検証システム200は、図3~図7に示される各設定情報を参照することで、図8~図10のフローチャートに示される処理を実行し得る。 <C. Setting information used for verification process>
Next, setting information used by the
ある局面において、図3~図7に示される各設定情報は、リレーショナルデータベースのテーブルとして表現されてもよいし、CSV(Comma Separated Value)、JSON(JavaScript(登録商標) Object Notation)等の他の任意のデータ形式で表現されてもよい。
In a certain aspect, each setting information shown in FIGS. 3 to 7 may be expressed as a table in a relational database, or in other formats such as CSV (Comma Separated Value) or JSON (JavaScript (registered trademark) Object Notation). It may be expressed in any data format.
(a.各設定情報)
図3は、機能ブロックテーブル300の一例を示す図である。図3を参照して、機能ブロックテーブル300の構成の一例について説明する。 (a. Each setting information)
FIG. 3 is a diagram showing an example of a functional block table 300. An example of the configuration of the functional block table 300 will be described with reference to FIG. 3.
図3は、機能ブロックテーブル300の一例を示す図である。図3を参照して、機能ブロックテーブル300の構成の一例について説明する。 (a. Each setting information)
FIG. 3 is a diagram showing an example of a functional block table 300. An example of the configuration of the functional block table 300 will be described with reference to FIG. 3.
機能ブロックテーブル300は、各機能ブロック110のクロックピン、リセットピンの情報を格納する。機能ブロックテーブル300は、主な項目として、機能ブロック名項目301と、モジュール名項目302と、クロックピン項目303と、リセットピン項目304とを含む。
The functional block table 300 stores information on the clock pin and reset pin of each functional block 110. The functional block table 300 includes a functional block name item 301, a module name item 302, a clock pin item 303, and a reset pin item 304 as main items.
機能ブロック名項目301は、機能ブロック110を一意に識別するための名称または識別子である。半導体100を例に説明すると、funcA~funcGが機能ブロック名項目301に相当する。
The functional block name item 301 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 301.
モジュール名項目302は、各機能ブロック110が実現するための機能(モジュール)を示す。ある局面において、複数の機能ブロック110が連携して、1つのモジュールを実現してもよい。他の局面において、単一の機能ブロック110が、1つのモジュールを実現してもよい。
The module name item 302 indicates the function (module) that each functional block 110 realizes. In a certain aspect, a plurality of functional blocks 110 may cooperate to realize one module. In other aspects, a single functional block 110 may implement one module.
クロックピン項目303は、各機能ブロック110におけるクロック信号の入力ポート、または、当該入力ポートに接続される配線120を示す。各機能ブロック110を個別の半導体チップと見なしたとき、各機能ブロック110は、複数のポート(ピン)を備え、当該複数のポートの1つ(クロックピン)からクロック信号を入力される。
The clock pin item 303 indicates the clock signal input port in each functional block 110 or the wiring 120 connected to the input port. When each functional block 110 is considered as an individual semiconductor chip, each functional block 110 includes a plurality of ports (pins), and receives a clock signal from one of the plurality of ports (clock pin).
リセットピン項目304は、各機能ブロック110におけるリセット信号の入力ポート、または、当該入力ポートに接続される配線120を示す。各機能ブロック110を個別の半導体チップと見なしたとき、各機能ブロック110は、複数のポート(ピン)を備え、当該複数のポートの1つ(リセットピン)からリセット信号を入力される。ある局面において、各機能ブロック110は、リセットピンの信号が1(HIGH)から0(LOW)になった場合にリセットされてもよい。他の局面において、各機能ブロック110は、リセットピンの信号が0(LOW)から1(HIGH)になった場合にリセットされてもよい。
The reset pin item 304 indicates the reset signal input port in each functional block 110 or the wiring 120 connected to the input port. When each functional block 110 is considered as an individual semiconductor chip, each functional block 110 includes a plurality of ports (pins), and a reset signal is inputted from one of the plurality of ports (reset pin). In some aspects, each functional block 110 may be reset when the signal on the reset pin goes from 1 (HIGH) to 0 (LOW). In other aspects, each functional block 110 may be reset when the signal on the reset pin goes from 0 (LOW) to 1 (HIGH).
検証システム200は、機能ブロックテーブル300を参照することで、停止させたい機能ブロック110のクロックピンおよびリセットピンを判別し得る。さらに、検証システム200は、モジュール単位で機能ブロック110を停止させる場合、停止させたいモジュールのモジュール名項目302に対応するクロックピンおよびリセットピンを判別し得る。
The verification system 200 can determine the clock pin and reset pin of the functional block 110 to be stopped by referring to the functional block table 300. Furthermore, when stopping the functional block 110 on a module-by-module basis, the verification system 200 can determine the clock pin and reset pin that correspond to the module name item 302 of the module to be stopped.
図4は、テストベンチ400の一例を示す図である。図4を参照して、テストベンチ400の構成の一例について説明する。
FIG. 4 is a diagram showing an example of a test bench 400. An example of the configuration of the test bench 400 will be described with reference to FIG. 4.
テストベンチ400は、論理回路が仕様通りに動作するか否かを検証するための設定ファイルである。テストベンチ400は、機能ブロック110の動作検証(シミュレーション)の実行前に、ユーザによって用意される。ユーザは、作成したテストベンチ400を検証システム200に入力する。ある局面において、ユーザは、検証システム200が提供するテストベンチ用エディタ等の任意の手段を用いて、テストベンチ400を作成してもよい。他の局面において、検証システム200は、テストベンチ400の一部の設定を自動的に生成してもよい。
The test bench 400 is a configuration file for verifying whether the logic circuit operates according to specifications. The test bench 400 is prepared by the user before performing the operation verification (simulation) of the functional block 110. The user inputs the created test bench 400 into the verification system 200. In one aspect, the user may create the test bench 400 using any means such as a test bench editor provided by the verification system 200. In other aspects, verification system 200 may automatically generate some settings for test bench 400.
テストベンチ400は、主な項目として、検証対象項目401と、制御モード項目402と、マニュアルモードの設定項目403と、スペックモードの設定項目404と、ベリフィケーションモード項目405とを含む。なお、テストベンチ400は、図4に示される項目以外にも、各機能ブロック110に入力される信号等の任意の情報を含み得る。
The test bench 400 includes, as main items, a verification target item 401, a control mode item 402, a manual mode setting item 403, a spec mode setting item 404, and a verification mode item 405. Note that the test bench 400 may include arbitrary information such as signals input to each functional block 110 in addition to the items shown in FIG.
検証対象項目401は、検証対象となる機能ブロック110を示す。図4の例では、funcAが検証対象の機能ブロック110として指定されている。
The verification target item 401 indicates the functional block 110 to be verified. In the example of FIG. 4, funcA is designated as the functional block 110 to be verified.
制御モード項目402は、検証システム200が実行する検証(テスト)の制御モードを示す。制御モードは、マニュアルモード、オートモード、高速化制御OFFモードを含む。
The control mode item 402 indicates the control mode of verification (test) executed by the verification system 200. The control modes include manual mode, auto mode, and high-speed control OFF mode.
マニュアルモード(MANUAL)は、ユーザが予め作成した仕様書の記述に従って検証対象となる機能ブロック110のテスト(検証)を実行するモードである。仕様書は、設計の観点で作成された設計仕様書と、検証の観点で作成された検証仕様書とを含む。検証システム200は、マニュアルモードが選択された場合、解析した仕様書の記述に従って、テスト中に検証対象の機能ブロック110に影響を及ぼさない他の機能ブロック110を停止させる。制御モード項目402においてマニュアルが選択されている場合、検証システム200は、マニュアルモードの設定項目403に基づいて、マニュアルモードの種類を選択する。
The manual mode (MANUAL) is a mode in which a test (verification) of the functional block 110 to be verified is executed according to the description of a specification document created in advance by the user. The specifications include design specifications created from a design perspective and verification specifications created from a verification perspective. When the manual mode is selected, the verification system 200 stops other functional blocks 110 that do not affect the functional block 110 to be verified during the test, according to the description of the analyzed specification. If manual is selected in the control mode item 402, the verification system 200 selects the type of manual mode based on the manual mode setting item 403.
オートモード(AUTO)は、自動で検証対象の機能ブロック110の動作検証を実行するモードである。検証システム200は、図10を参照して後述するトライアル処理の実行ログ、高速化制御OFFモードの実行ログ、または、マニュアルモードでの実行ログから、検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を判定し得る。オートモードでは、事前に実行された検証処理の実行ログから得られた情報(検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110の一覧情報)に基づいて、検証対象の機能ブロック110のテストを実行する。すなわち、オートモードは、一度実行したテストの実行ログを用いて、2回目以降のテストにおいて、検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を停止させるモードであると言える。ユーザは、オートモードを使用することで、半導体100に対する知識が十分でない場合も、適切に各機能ブロック110をテストし得る。
The auto mode (AUTO) is a mode in which operation verification of the functional block 110 to be verified is automatically performed. The verification system 200 determines whether the operation of the functional block 110 to be verified will be affected based on the execution log of the trial process, the execution log of the acceleration control OFF mode, or the execution log of the manual mode, which will be described later with reference to FIG. It may be determined that the functional block 110 is not present. In the auto mode, the functional block 110 to be verified is selected based on information obtained from the execution log of the verification process executed in advance (list information of functional blocks 110 that does not affect the operation of the functional block 110 to be verified). Run the test. That is, the auto mode can be said to be a mode in which the execution log of a test once executed is used to stop the functional blocks 110 that do not affect the operation of the functional block 110 to be verified in the second and subsequent tests. By using the auto mode, the user can appropriately test each functional block 110 even if the user does not have sufficient knowledge of the semiconductor 100.
高速化制御OFFモード(OFF)は、全ての機能ブロック110を停止させずにテストを行うモードである。ある局面において、検証システム200は、高速か制御OFFモードが選択された場合に、テストの実行ログを取得し、当該ログから、検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を判定してもよい。また、検証システム200は、判定結果を、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に登録してもよい。
The speed-up control OFF mode (OFF) is a mode in which a test is performed without stopping all functional blocks 110. In one aspect, when the high speed or control OFF mode is selected, the verification system 200 obtains a test execution log, and from the log selects a functional block 110 that does not affect the operation of the functional block 110 to be verified. You may judge. Further, the verification system 200 may register the determination result in the first stopability determination table 600 or the second stopability determination table 700.
マニュアルモードの設定項目403は、マニュアルモードの種類を選択するための項目である。マニュアルモードには、スペックモード(SPEC)と、ベリフィケーションモード(VERIFICATION)とがある。スペックモードは、設計仕様書に基づくテストである。検証システム200は、スペックモードが選択されたことに基づいて、第1の停止可否判別テーブル600を参照して、テスト中に検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を停止させる。また、検証システム200は、ベリフィケーションモードが選択されたことに基づいて、第2の停止可否判別テーブル700を参照して、テスト中に検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を停止させる。
The manual mode setting item 403 is an item for selecting the type of manual mode. The manual mode includes a specification mode (SPEC) and a verification mode (VERIFICATION). Spec mode is a test based on design specifications. Based on the selection of the spec mode, the verification system 200 refers to the first stoppage determination table 600 and stops the function blocks 110 that do not affect the operation of the function block 110 to be verified during the test. let In addition, based on the selection of the verification mode, the verification system 200 refers to the second stopability determination table 700 and determines which functions do not affect the operation of the functional block 110 to be verified during the test. Block 110 is stopped.
スペックモードの設定項目404は、マニュアルモードの設定項目403においてスペックモードが選択された場合に使用される設定である。スペックモードの設定項目404は、設計仕様に基づいて作成された複数の動作モードのいずれかが設定される。
The spec mode setting item 404 is a setting used when spec mode is selected in the manual mode setting item 403. The specification mode setting item 404 is set to one of a plurality of operation modes created based on design specifications.
ベリフィケーションモード項目405は、マニュアルモードの設定項目403においてベリフィケーションモードが選択された場合に使用される設定である。ベリフィケーションモード項目405は、検証仕様に基づいて作成された複数の動作モードのいずれかが設定される。
The verification mode item 405 is a setting used when verification mode is selected in the manual mode setting item 403. The verification mode item 405 is set to one of a plurality of operation modes created based on the verification specifications.
図5は、停止対象テーブル500の一例を示す図である。図5を参照して、停止対象テーブル500の構成の一例について説明する。停止対象テーブル500は、検証モードごとに、各機能ブロック110が停止可能か否かの情報を含む。検証システム200は、停止対象テーブル500を参照し、停止可能な(テスト中に停止を許可されている)機能ブロック110を判別し得る。検証システム200は、例えば、停止可否判別テーブルに基づいて、テスト中に停止を許可されている機能ブロック110を停止する。
FIG. 5 is a diagram showing an example of a stop target table 500. An example of the configuration of the stop target table 500 will be described with reference to FIG. 5. The stop target table 500 includes information on whether each functional block 110 can be stopped for each verification mode. The verification system 200 may refer to the stop target table 500 to determine which functional blocks 110 can be stopped (which are permitted to be stopped during testing). The verification system 200 stops the functional blocks 110 that are permitted to be stopped during the test, for example, based on the stopability determination table.
停止対象テーブル500は、主な項目として、機能ブロック名項目501と、マニュアルモードの設定項目502と、オートモードの設定項目503とを含む。
The stop target table 500 includes, as main items, a functional block name item 501, a manual mode setting item 502, and an auto mode setting item 503.
機能ブロック名項目501は、機能ブロック110を一意に識別するための名称または識別子である。半導体100を例に説明すると、funcA~funcGが機能ブロック名項目301に相当する。
The functional block name item 501 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 301.
マニュアルモードの設定項目502は、マニュアルモードにおける各機能ブロック110の停止の可否を示す。図5の例では、funcAは、マニュアルモードにおいて、停止不可(non-target)である。逆に、funcB~funcGは、マニュアルモードにおいて、停止可能(target)である。
The manual mode setting item 502 indicates whether each functional block 110 can be stopped in the manual mode. In the example of FIG. 5, funcA is non-target in manual mode. Conversely, funcB to funcG can be stopped (target) in manual mode.
オートモードの設定項目503は、マニュアルモードにおける各機能ブロック110の停止の可否を示す。図5の例では、funcA~funcGは、オートモードにおいて、停止可能(target)である。
The auto mode setting item 503 indicates whether each functional block 110 can be stopped in the manual mode. In the example of FIG. 5, funcA to funcG are stoppable (target) in auto mode.
ある局面において、検証システム200は、テスト実行前に、ユーザから停止対象テーブル500の設定入力を受け付けてもよい。例えば、ユーザは、マニュアルモードにおいて必ず動作させておきたい機能ブロック110を停止不可に設定し得る。他の局面において、検証システム200は、オートモードの設定項目503に自動で設定を入力、または、オートモードの設定項目503を自動で更新してもよい。
In one aspect, the verification system 200 may receive a setting input for the suspension target table 500 from the user before executing the test. For example, the user may set the functional block 110 that must be operated in manual mode to be unstoppable. In other aspects, the verification system 200 may automatically input settings into the auto mode setting item 503 or automatically update the auto mode setting item 503.
図6は、第1の停止可否判別テーブル600の一例を示す図である。図6を参照して、第1の停止可否判別テーブル600の構成の一例について説明する。第1の停止可否判別テーブル600は、主な項目として、機能ブロック名項目601と、設計仕様モード項目610とを含む。図6の例では、設計仕様モード項目610は、6つの設計仕様モード(specA~specF)を含む。
FIG. 6 is a diagram showing an example of the first stopability determination table 600. An example of the configuration of the first stopability determination table 600 will be described with reference to FIG. 6. The first stopability determination table 600 includes a functional block name item 601 and a design specification mode item 610 as main items. In the example of FIG. 6, the design specification mode item 610 includes six design specification modes (specA to specF).
第1の停止可否判別テーブル600は、設計仕様の観点から作成されるテーブルである。検証システム200は、ユーザによって検証システム200に入力された設計仕様書を解析して、第1の停止可否判別テーブル600を生成または更新する。より具体的には、検証システム200は、設計仕様書に記述されている各機能ブロック110の配線の接続関係、信号の入出力方向等の情報から、ある機能ブロック110の出力信号が他の機能ブロック110に影響を及ぼすか否かを判定し得る。
The first stoppage determination table 600 is a table created from the viewpoint of design specifications. The verification system 200 analyzes the design specification input into the verification system 200 by the user, and generates or updates the first stopability determination table 600. More specifically, the verification system 200 determines whether the output signal of a certain function block 110 is different from that of another function based on information such as the wiring connection relationship of each function block 110 and the signal input/output direction described in the design specifications. It may be determined whether block 110 is affected.
ある局面において、検証システム200は、複数の設計仕様書を解析して、各機能ブロック110の停止可否を判定してもよい。例えば、半導体100に実装される機能ごと(specA~specFの各々に対応)に、設計仕様書が作成されたとする。この場合、検証システム200は、各設計仕様書を解析し、仕様ごとの各機能ブロック110の停止可否の情報(specA~specFの各々の列に対応)を抽出し得る。
In one aspect, the verification system 200 may analyze multiple design specifications to determine whether each functional block 110 can be stopped. For example, suppose that a design specification is created for each function (corresponding to each of specA to specF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze each design specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of specA to specF).
他の局面において、検証システム200は、複数の機能についての仕様が記載された単一の設計仕様書を解析して、各機能ブロック110の停止可否を判定してもよい。例えば、半導体100に実装される全ての機能(specA~specFの各々に対応)の仕様を記載した単一の設計仕様書が作成されたとする。この場合、検証システム200は、当該単一の設計仕様書を解析し、仕様ごとの各機能ブロック110の停止可否の情報(specA~specFの各々の列に対応)を抽出し得る。
In other aspects, the verification system 200 may determine whether each functional block 110 can be stopped by analyzing a single design specification in which specifications for a plurality of functions are described. For example, assume that a single design specification document that describes specifications for all functions (corresponding to each of specA to specF) to be implemented in the semiconductor 100 is created. In this case, the verification system 200 can analyze the single design specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of specA to specF).
なお、設計仕様書は、テキストデータ、HTML(Hyper Text Markup Language)データ、XML(Extensible Markup Language)データ、その他任意のフォーマットで表現されるデータであってもよい。
Note that the design specification may be data expressed in text data, HTML (Hyper Text Markup Language) data, XML (Extensible Markup Language) data, or any other format.
また、他の局面において、検証システム200は、オートモードでテストを実行し、当該テストの実行ログから、第1の停止可否判別テーブル600に格納する情報を生成してもよい。例えば、テストベンチ400に、スペックモード(specA)でのテストが指定されていたとする。また、第1の停止可否判別テーブル600にspecAの列がない、もしくは、specAの列が空であるとする。この場合、検証システム200は、テストベンチ400に従い、全ての機能ブロック110を動作させて、テストを実行する。そして、検証システム200は、実行ログから、specAのテスト実行時における各機能ブロック110の停止可否情報を生成して、当該停止可否情報をspecAの列に格納し得る。
In another aspect, the verification system 200 may execute a test in auto mode and generate information to be stored in the first stopability determination table 600 from the execution log of the test. For example, assume that the test bench 400 is specified to test in spec mode (specA). It is also assumed that the first stopability determination table 600 does not have a specA column, or that the specA column is empty. In this case, the verification system 200 operates all functional blocks 110 according to the test bench 400 to execute the test. Then, the verification system 200 can generate stoppability information for each functional block 110 during test execution of specA from the execution log, and store the stoppability information in the specA column.
機能ブロック名項目601は、機能ブロック110を一意に識別するための名称である。半導体100を例に説明すると、funcA~funcGが機能ブロック名項目601に相当する。
The functional block name item 601 is a name for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 601.
設計仕様モード項目610は、各設計仕様モードに基づくテストにおける各機能ブロック110の停止可否を示す。図6の例では、設計仕様モードの1つであるspecAに基づくテストの実行時には、funcA, funcC, funcF, funcGは動作する必要があり(停止不可)、funcB, funcD, funcEは動作しなくてもよい(停止可能)。同様に、設計仕様モードの1つであるspecBに基づくテストの実行時には、funcA, funcBは動作する必要があり(停止不可)、funcC, funcD, funcE, funcF, funcGは動作しなくてもよい(停止可能)。
The design specification mode item 610 indicates whether each functional block 110 can be stopped in a test based on each design specification mode. In the example in Figure 6, when executing a test based on specA, which is one of the design specification modes, funcA, funcC, funcF, and funcG must operate (cannot be stopped), and funcB, funcD, and funcE must not operate. Good (can be stopped). Similarly, when executing a test based on specB, which is one of the design specification modes, funcA and funcB must operate (cannot be stopped), and funcC, funcD, funcE, funcF, and funcG do not need to operate ( (can be stopped).
検証システム200は、テストベンチ400において、スペックモードでのテスト、および、テストに使用される設計仕様モード(specA~specG)が指定されていた場合、第1の停止可否判別テーブル600を参照することで、指定された設計仕様モードで停止可能な機能ブロック110を判別し得る。
The verification system 200 refers to the first stopability determination table 600 when a test in the spec mode and a design specification mode (specA to specG) used for the test are specified in the test bench 400. Then, it is possible to determine which functional blocks 110 can be stopped in the specified design specification mode.
図7は、第2の停止可否判別テーブル700の一例を示す図である。図7を参照して、第2の停止可否判別テーブル700の構成の一例について説明する。第2の停止可否判別テーブル700は、主な項目として、機能ブロック名項目701と、検証仕様モード項目710とを含む。図7の例では、検証仕様モード項目710は、6つの検証仕様モード(verificationA~verificationF)を含む。
FIG. 7 is a diagram showing an example of the second stopability determination table 700. An example of the configuration of the second stoppability determination table 700 will be described with reference to FIG. 7. The second stopability determination table 700 includes a functional block name item 701 and a verification specification mode item 710 as main items. In the example of FIG. 7, the verification specification mode item 710 includes six verification specification modes (verificationA to verificationF).
第2の停止可否判別テーブル700は、検証仕様の観点から作成されるテーブルである。検証システム200は、ユーザによって検証システム200に入力された検証仕様書を解析して、第2の停止可否判別テーブル700を生成または更新する。より具体的には、検証システム200は、検証仕様書に記述されている各機能ブロック110の動作情報(入出力信号等)等から、ある機能ブロック110の出力信号が他の機能ブロック110に影響を及ぼすか否かを判定し得る。設計仕様書は、設計者が設計データに基づいて作成する仕様書であるのに対して、検証仕様書は、検証担当者が、検証(テスト)の観点から作成する仕様書である。なお、設計仕様書または検証仕様書を作成する人物と、検証システム200を使用する人物とは別であってもよい。検証システム200に予め各仕様書が登録されていれば、検証システム200を使用する人物は、半導体100(論理回路)の仕様を熟知していなくても、検証システム200の機能を使用して当該半導体100のテストの実行を高速化し得る。
The second stoppage determination table 700 is a table created from the viewpoint of verification specifications. The verification system 200 analyzes the verification specification input into the verification system 200 by the user, and generates or updates the second stoppage determination table 700. More specifically, the verification system 200 determines whether the output signal of a certain functional block 110 affects other functional blocks 110 based on the operational information (input/output signals, etc.) of each functional block 110 described in the verification specification. It can be determined whether the A design specification is a specification created by a designer based on design data, whereas a verification specification is a specification created by a person in charge of verification from the viewpoint of verification (testing). Note that the person who creates the design specifications or the verification specifications may be different from the person who uses the verification system 200. If each specification is registered in the verification system 200 in advance, a person using the verification system 200 can use the functions of the verification system 200 to check the specifications of the semiconductor 100 (logic circuit), even if the person using the verification system 200 is not familiar with the specifications of the semiconductor 100 (logic circuit). Test execution of the semiconductor 100 can be accelerated.
ある局面において、検証システム200は、複数の検証仕様書を解析して、各機能ブロック110の停止可否を判定してもよい。例えば、半導体100に実装される機能ごと(verificationA~verificationFの各々に対応)に、検証仕様書が作成されたとする。この場合、検証システム200は、各検証仕様書を解析し、仕様ごとの各機能ブロック110の停止可否の情報(verificationA~verificationFの各々の列に対応)を抽出し得る。
In one aspect, the verification system 200 may analyze a plurality of verification specifications to determine whether each functional block 110 can be stopped. For example, assume that a verification specification is created for each function (corresponding to each of verificationA to verificationF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze each verification specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of verificationA to verificationF).
他の局面において、検証システム200は、複数の機能についての仕様が記載された単一の検証仕様書を解析して、各機能ブロック110の停止可否を判定してもよい。例えば、半導体100に実装される全ての機能(verificationA~verificationFの各々に対応)の仕様を記載した単一の検証仕様書が作成されたとする。この場合、検証システム200は、当該単一の検証仕様書を解析し、仕様ごとの各機能ブロック110の停止可否の情報(verificationA~verificationFの各々の列に対応)を抽出し得る。
In other aspects, the verification system 200 may determine whether each functional block 110 can be stopped by analyzing a single verification specification that describes specifications for a plurality of functions. For example, assume that a single verification specification is created that describes specifications for all functions (corresponding to each of verificationA to verificationF) to be implemented in the semiconductor 100. In this case, the verification system 200 can analyze the single verification specification and extract information on whether or not each functional block 110 can be stopped for each specification (corresponding to each column of verificationA to verificationF).
なお、検証仕様書は、テキストデータ、HTMLデータ、XMLデータ、その他任意のフォーマットで表現されるデータであってもよい。
Note that the verification specification may be data expressed in text data, HTML data, XML data, or any other format.
また、他の局面において、検証システム200は、オートモードでテストを実行し、当該テストの実行ログから、第2の停止可否判別テーブル700に格納する情報を生成してもよい。例えば、テストベンチ400に、ベリフィケーションモード(verificationA)でのテストが指定されていたとする。また、第2の停止可否判別テーブル700にverificationAの列がない、もしくは、verificationAの列が空であるとする。この場合、検証システム200は、テストベンチ400に従い、全ての機能ブロック110を動作させて、テストを実行する。そして、検証システム200は、実行ログから、verificationAのテスト実行時における各機能ブロック110の停止可否情報を生成して、当該停止可否情報をverificationAの列に格納し得る。
In another aspect, the verification system 200 may execute a test in auto mode and generate information to be stored in the second stopability determination table 700 from the execution log of the test. For example, assume that the test bench 400 is designated to test in verification mode (verificationA). It is also assumed that the second stopability determination table 700 does not have a column for verificationA, or that the column for verificationA is empty. In this case, the verification system 200 operates all functional blocks 110 according to the test bench 400 to execute the test. Then, the verification system 200 can generate stoppability information for each functional block 110 during test execution of verificationA from the execution log, and store the stoppability information in the column of verificationA.
機能ブロック名項目701は、機能ブロック110を一意に識別するための名称または識別子である。半導体100を例に説明すると、funcA~funcGが機能ブロック名項目701に相当する。
The functional block name item 701 is a name or identifier for uniquely identifying the functional block 110. Taking the semiconductor 100 as an example, funcA to funcG correspond to the functional block name item 701.
検証仕様モード項目710は、各検証仕様に基づくテストにおける各機能ブロック110の停止可否を示す。図7の例では、検証仕様モードの1つであるverificationAに基づくテストの実行時には、funcAは動作する必要があり(停止不可)、funcB, funcC, funcD, funcE, funcF, funcGは動作しなくてもよい(停止可能)。同様に、検証仕様モードの1つであるverificationBに基づくテストの実行時には、funcBは動作する必要があり(停止不可)、funcA, funcC, funcD, funcE, funcF, funcGは動作しなくてもよい(停止可能)。
The verification specification mode item 710 indicates whether each functional block 110 can be stopped in a test based on each verification specification. In the example in Figure 7, when executing a test based on verificationA, which is one of the verification specification modes, funcA must operate (cannot be stopped), and funcB, funcC, funcD, funcE, funcF, and funcG must not operate. Good (can be stopped). Similarly, when executing a test based on verificationB, which is one of the verification specification modes, funcB must operate (cannot be stopped), and funcA, funcC, funcD, funcE, funcF, and funcG do not need to operate ( (can be stopped).
検証システム200は、テストベンチ400において、ベリフィケーションモードでのテスト、および、テストに使用される検証仕様モード(verificationA~verificationG)が指定されていた場合、第2の停止可否判別テーブル700を参照することで、指定された検証仕様モードで停止可能な機能ブロック110を判別し得る。
If the test bench 400 specifies a test in verification mode and a verification specification mode (verificationA to verificationG) used for the test, the verification system 200 refers to the second stopability determination table 700. By doing so, it is possible to determine which functional blocks 110 can be stopped in the specified verification specification mode.
(b.各設定情報の使用手順の一例)
次に、検証システム200における典型的な、機能ブロックテーブル300、テストベンチ400、停止対象テーブル500、第1の停止可否判別テーブル600および第2の停止可否判別テーブル700の使用手順について説明する。なお、以下の各テーブルの使用手順は、一例であり、検証システム200は、任意の順で、または、同時並行的に各テーブルを参照してもよい。 (b. An example of the procedure for using each setting information)
Next, a typical procedure for using the function block table 300,test bench 400, stop target table 500, first stop possibility determination table 600, and second stop possibility determination table 700 in the verification system 200 will be described. Note that the procedure for using each table below is an example, and the verification system 200 may refer to each table in any order or concurrently.
次に、検証システム200における典型的な、機能ブロックテーブル300、テストベンチ400、停止対象テーブル500、第1の停止可否判別テーブル600および第2の停止可否判別テーブル700の使用手順について説明する。なお、以下の各テーブルの使用手順は、一例であり、検証システム200は、任意の順で、または、同時並行的に各テーブルを参照してもよい。 (b. An example of the procedure for using each setting information)
Next, a typical procedure for using the function block table 300,
まず、検証システム200は、テストベンチ400を参照することで、検証対象の機能ブロック110、テストモード、テストに使用する入力信号等のテスト内容を判別する。
First, the verification system 200 refers to the test bench 400 to determine the test contents such as the functional block 110 to be verified, the test mode, and the input signals used for the test.
次に、検証システム200は、停止対象テーブル500を参照することで、停止可能な機能ブロック110、停止不可の機能ブロック110を判別する。なお、停止対象テーブル500に格納されている停止可否情報は、ユーザまたはシステムによって指定された各機能ブロック110の停止の可否を示す。これに対して、第1の停止可否判別テーブル600および第2の停止可否判別テーブル700に格納されている停止可否情報は、テスト(検証対象の機能ブロック110の動作)に影響を及ぼすか否かを示す。
Next, the verification system 200 refers to the stop target table 500 to determine which functional blocks 110 can be stopped and which functional blocks 110 cannot be stopped. Note that the stoppage information stored in the stoppage target table 500 indicates whether each functional block 110 specified by the user or the system can be stopped. On the other hand, the stoppage information stored in the first stopability determination table 600 and the second stopability determination table 700 determines whether or not it affects the test (the operation of the functional block 110 to be verified). shows.
次に、検証システム200は、テストベンチ400でマニュアルモードとしてスペックモードが選択されていた場合、第1の停止可否判別テーブル600を参照して、スペックモードのテスト中に停止可能な機能ブロック110を判別する。または、検証システム200は、テストベンチ400でマニュアルモードとしてベリフィケーションモードが選択されていた場合、第2の停止可否判別テーブル700を参照して、ベリフィケーションモードのテスト中に停止可能な機能ブロック110を判別する。
Next, when the spec mode is selected as the manual mode on the test bench 400, the verification system 200 refers to the first stoppability determination table 600 to identify the function blocks 110 that can be stopped during the spec mode test. Discern. Alternatively, if the verification mode is selected as the manual mode in the test bench 400, the verification system 200 refers to the second stopability determination table 700 and determines which functions can be stopped during the test in the verification mode. Block 110 is determined.
次に、検証システム200は、機能ブロックテーブル300を参照し、スペックモードまたはベリフィケーションモードのテスト中に停止可能な機能ブロック110のクロック信号およびリセット信号(もしくはクロックピンおよびリセットピン)を判別する。
Next, the verification system 200 refers to the functional block table 300 and determines the clock signal and reset signal (or clock pin and reset pin) of the functional block 110 that can be stopped during the test in the spec mode or the verification mode. .
検証システム200は、停止可能な各機能ブロック110のクロック信号およびリセット信号をオフにすることで、テストに不要な1つ以上の機能ブロック110を停止させ、テスト時間を短縮し得る。
By turning off the clock signal and reset signal of each stoppable function block 110, the verification system 200 can stop one or more function blocks 110 that are unnecessary for the test, thereby shortening the test time.
<D.論理回路の検証処理>
次に、図8~図10を参照して、検証システム200の内部処理の手順の一例について説明する。ある局面において、プロセッサ201は、図8~図10の処理を行うためのプログラムをストレージ203からメモリ202に読み込んで、当該プログラムを実行してもよい。他の局面において、各処理の一部または全部は、各処理を実行するように構成された回路素子の組み合わせとしても実現され得る。 <D. Logic circuit verification process>
Next, an example of an internal processing procedure of theverification system 200 will be described with reference to FIGS. 8 to 10. In one aspect, the processor 201 may load a program for performing the processes shown in FIGS. 8 to 10 from the storage 203 into the memory 202, and execute the program. In other aspects, part or all of each process may be realized as a combination of circuit elements configured to perform each process.
次に、図8~図10を参照して、検証システム200の内部処理の手順の一例について説明する。ある局面において、プロセッサ201は、図8~図10の処理を行うためのプログラムをストレージ203からメモリ202に読み込んで、当該プログラムを実行してもよい。他の局面において、各処理の一部または全部は、各処理を実行するように構成された回路素子の組み合わせとしても実現され得る。 <D. Logic circuit verification process>
Next, an example of an internal processing procedure of the
図8は、検証システム200による論理回路(半導体)の検証処理の手順の一例を示す図である。
FIG. 8 is a diagram illustrating an example of a procedure for verifying a logic circuit (semiconductor) by the verification system 200.
ステップS805において、検証システム200は、検証対象回路データを読み込む。一例として、検証対象回路データは、ハードウェア記述言語によるコードである。ある局面において、検証システム200は、外部機器IF204、入力IF205または通信IF207を介して、検証対象回路データを取得し得る。または、検証システム200は、ストレージ203に格納された検証対象回路データを参照してもよい。
In step S805, the verification system 200 reads the verification target circuit data. As an example, the verification target circuit data is code written in a hardware description language. In one aspect, the verification system 200 may acquire verification target circuit data via the external device IF 204, the input IF 205, or the communication IF 207. Alternatively, the verification system 200 may refer to verification target circuit data stored in the storage 203.
ステップS810において、検証システム200は、テストベンチ400を読み込む。一例として、検証システム200は、ストレージ203に格納されたテストベンチ400をメモリ202に読み込んで参照し得る。
In step S810, the verification system 200 reads the test bench 400. As an example, the verification system 200 may read the test bench 400 stored in the storage 203 into the memory 202 and refer to it.
ステップS815において、検証システム200は、テストベンチ400を参照し、高速テスト機能がONであるかOFFであるかを判定する。高速テスト機能は、テスト実行時に検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110を停止させる機能である。より具体的には、検証システム200は、制御モード項目402が高速化制御OFFモードである場合、高速テスト機能がOFFであると判定する。検証システム200は、高速テスト機能がONである場合、制御をステップS825に移す。検証システム200は、高速テスト機能がOFFである場合、制御をステップS820に移す。
In step S815, the verification system 200 refers to the test bench 400 and determines whether the high-speed test function is ON or OFF. The high-speed test function is a function that stops functional blocks 110 that do not affect the operation of the functional blocks 110 to be verified during test execution. More specifically, the verification system 200 determines that the high-speed test function is OFF when the control mode item 402 is the high-speed control OFF mode. If the high-speed test function is ON, the verification system 200 moves control to step S825. If the high-speed test function is OFF, the verification system 200 moves control to step S820.
ステップS820において、検証システム200は、全ての機能ブロック110を動作させてテスト(シミュレーション)を実行する。図1を例に説明すると、検証システム200は、funcA~funcGの全ての機能ブロック110を動作させて、検証対象の機能ブロック110であるfuncAのテストを実行する。
In step S820, the verification system 200 operates all functional blocks 110 to perform a test (simulation). Taking FIG. 1 as an example, the verification system 200 operates all the functional blocks 110 from funcA to funcG to test funcA, which is the functional block 110 to be verified.
ステップS825において、検証システム200は、各機能ブロック110のクロックおよびリセット信号の抽出処理を実行する。ステップS825の詳細については、図9を参照して説明する。検証システム200は、ステップS825の処理を実行することで、機能ブロックテーブル300を生成または参照する。
In step S825, the verification system 200 executes extraction processing of the clock and reset signals of each functional block 110. Details of step S825 will be explained with reference to FIG. 9. The verification system 200 generates or refers to the functional block table 300 by executing the process of step S825.
ステップS830において、検証システム200は、テストベンチ400を参照し、制御モードがマニュアルモード(MANUAL)であるか、または、オートモード(AUTO)であるかを判定する。より具体的には、検証システム200は、制御モード項目402がMANUALである場合、制御モードはマニュアルモードであると判定する。また、検証システム200は、制御モード項目402がAUTOである場合、制御モードはオートモードであると判定する。検証システム200は、制御モードがマニュアルモードであると判定した場合、制御をステップS835に移す。検証システム200は、制御モードがオートモードであると判定した場合(すなわち、制御モードが停止可否判別テーブルを使用しない設定である場合)、制御をステップS850に移す。
In step S830, the verification system 200 refers to the test bench 400 and determines whether the control mode is manual mode (MANUAL) or automatic mode (AUTO). More specifically, verification system 200 determines that the control mode is manual mode when control mode item 402 is MANUAL. Furthermore, when the control mode item 402 is AUTO, the verification system 200 determines that the control mode is the auto mode. If the verification system 200 determines that the control mode is the manual mode, the verification system 200 moves control to step S835. When the verification system 200 determines that the control mode is the auto mode (that is, when the control mode is set not to use the stopability determination table), the verification system 200 moves control to step S850.
ステップS835において、検証システム200は、マニュアルモードにおいて高速化制御に使用するテーブルを選択する。より具体的には、検証システム200は、マニュアルモードの設定項目403がスペックモード(SPEC)であることに基づいて、第1の停止可否判別テーブル600を選択する。また、検証システム200は、マニュアルモードの設定項目403がベリフィケーションモード(VERIFICATION)であることに基づいて、第2の停止可否判別テーブル700を選択する。検証システム200は、第1の停止可否判別テーブル600を選択した場合、制御をステップS840に移す。検証システム200は、第2の停止可否判別テーブル700を選択した場合、制御をステップS845に移す。
In step S835, the verification system 200 selects a table to be used for speed-up control in manual mode. More specifically, the verification system 200 selects the first stopability determination table 600 based on the fact that the manual mode setting item 403 is spec mode (SPEC). Furthermore, the verification system 200 selects the second stopability determination table 700 based on the fact that the manual mode setting item 403 is verification mode (VERIFICATION). When the verification system 200 selects the first stoppage determination table 600, the control moves to step S840. When the verification system 200 selects the second stoppability determination table 700, the verification system 200 moves control to step S845.
ステップS840において、検証システム200は、機能ブロックテーブル300と、第1の停止可否判別テーブル600とに基づいて、スペックモードのテストを実行する。より具体的には、検証システム200は、検証対象の機能ブロック110の動作に影響を及ぼさない1つ以上の機能ブロック110へのクロック信号およびリセット信号を停止した状態で、テストを実行する。
In step S840, the verification system 200 executes a spec mode test based on the function block table 300 and the first stopability determination table 600. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
半導体100のfuncAに対してspecAのテストを実行することを例に説明すると、検証システム200は、第1の停止可否判別テーブル600のspecAの列を参照し、funcB、funcD、funcEを停止可能であると判定する。次に、検証システム200は、機能ブロックテーブル300を参照して、funcB、funcD、funcEクロックピンおよびリセットピンの情報を取得する。検証システム200は、取得したクロックピンおよびリセットピンの情報に基づいて、funcB、funcD、funcEの動作を停止させる。
Taking the example of executing a specA test on funcA of the semiconductor 100, the verification system 200 refers to the specA column of the first stopability determination table 600 and determines whether funcB, funcD, and funcE can be stopped. It is determined that there is. Next, the verification system 200 refers to the function block table 300 and obtains information on the funcB, funcD, and funcE clock pins and reset pins. The verification system 200 stops the operations of funcB, funcD, and funcE based on the acquired clock pin and reset pin information.
ステップS845において、検証システム200は、機能ブロックテーブル300と、第2の停止可否判別テーブル700とに基づいて、ベリフィケーションモードのテストを実行する。より具体的には、検証システム200は、検証対象の機能ブロック110の動作に影響を及ぼさない1つ以上の機能ブロック110へのクロック信号およびリセット信号を停止した状態で、テストを実行する。
In step S845, the verification system 200 executes a verification mode test based on the function block table 300 and the second stopability determination table 700. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
半導体100のfuncAに対してverificationAのテストを実行することを例に説明すると、検証システム200は、第2の停止可否判別テーブル700のverificationAの列を参照し、funcB、funcC、funcD、funcE、funcF、funcGを停止可能であると判定する。次に、検証システム200は、機能ブロックテーブル300を参照して、funcB、funcC、funcD、funcE、funcF、funcGのクロックピンおよびリセットピンの情報を取得する。検証システム200は、取得したクロックピンおよびリセットピンの情報に基づいて、funcB、funcC、funcD、funcE、funcF、funcGの動作を停止させる。
Taking the example of executing the verificationA test on funcA of the semiconductor 100, the verification system 200 refers to the verificationA column of the second stopability determination table 700, and tests funcB, funcC, funcD, funcE, funcF. , determines that funcG can be stopped. Next, the verification system 200 refers to the function block table 300 and obtains information on the clock pins and reset pins of funcB, funcC, funcD, funcE, funcF, and funcG. The verification system 200 stops the operations of funcB, funcC, funcD, funcE, funcF, and funcG based on the acquired clock pin and reset pin information.
ステップS850において、検証システム200は、トライアル処理を実行する。トライアル処理は、テストベンチ400を用いたテストの実行結果から、停止可能な機能ブロック110を自動的に判定する処理である。トライアル処理の詳細については、図10を参照して説明する。検証システム200は、ステップS850の処理を実行することで、停止可能な機能ブロック110の情報を取得し、当該情報をトライアル結果ファイル1400に保存し得る。検証システム200は、テストベンチ400に基づくテストを再度実行する際に、前回生成されたトライアル結果ファイル1400を使用し得る。ある局面において、検証システム200は、停止可能な機能ブロック110の情報を、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に格納してもよい。
In step S850, the verification system 200 executes trial processing. The trial process is a process of automatically determining which functional blocks 110 can be stopped based on the results of a test using the test bench 400. Details of the trial process will be explained with reference to FIG. 10. By executing the process of step S850, the verification system 200 can acquire information on the stoppable functional blocks 110 and save the information in the trial result file 1400. Verification system 200 may use the previously generated trial results file 1400 when running the test based on test bench 400 again. In one aspect, the verification system 200 may store information about the stoppable functional blocks 110 in the first stoppability determination table 600 or the second stoppability determination table 700.
ステップS855において、検証システム200は、機能ブロックテーブル300と、トライアル結果ファイル1400とに基づいて、オートモードのテストを実行する。より具体的には、検証システム200は、検証対象の機能ブロック110の動作に影響を及ぼさない1つ以上の機能ブロック110へのクロック信号およびリセット信号を停止した状態で、テストを実行する。
In step S855, the verification system 200 executes an auto mode test based on the function block table 300 and the trial result file 1400. More specifically, verification system 200 executes the test while stopping clock signals and reset signals to one or more functional blocks 110 that do not affect the operation of functional block 110 to be verified.
なお、検証システム200は、ステップS850にて、停止可能な機能ブロック110の情報を第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に格納したとする。この場合、検証システム200は、ステップS855にて、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700を参照してもよい。
It is assumed that the verification system 200 stores information about the stoppable functional blocks 110 in the first stoppability determination table 600 or the second stoppability determination table 700 in step S850. In this case, the verification system 200 may refer to the first stopability determination table 600 or the second stopability determination table 700 in step S855.
図9は、各機能ブロック110のクロックおよびリセット信号の抽出処理の手順の一例を示す図である。図9の処理は、ステップS825のサブルーチンとして実行される。
FIG. 9 is a diagram illustrating an example of a procedure for extracting the clock and reset signals of each functional block 110. The process in FIG. 9 is executed as a subroutine of step S825.
ステップS910において、検証システム200は、機能ブロックテーブル300を読み込む。検証システム200は、ストレージ203からメモリ202に機能ブロックテーブル300を読み出して、当該機能ブロックテーブル300を参照し得る。
In step S910, the verification system 200 reads the functional block table 300. The verification system 200 can read the functional block table 300 from the storage 203 to the memory 202 and refer to the functional block table 300.
ステップS920において、検証システム200は、機能ブロックテーブル300にクロック信号およびリセット信号が格納済か否かを判定する。検証システム200は、機能ブロックテーブル300にクロック信号およびリセット信号が格納済であると判定した場合(ステップS920にてYES)、処理を終了し、機能ブロックテーブル300に格納されたデータと共に制御をステップS825に戻す。そうでない場合(ステップS920にてNO)、検証システム200は、制御をステップS930に移す。
In step S920, the verification system 200 determines whether the clock signal and reset signal have been stored in the functional block table 300. If the verification system 200 determines that the clock signal and reset signal have been stored in the functional block table 300 (YES in step S920), the verification system 200 ends the process and returns the control to the next step along with the data stored in the functional block table 300. Return to S825. Otherwise (NO in step S920), verification system 200 moves control to step S930.
ステップS930において、検証システム200は、クロック信号を抽出する。より具体的には、検証システム200は、ステップS805にて取得した検証対象回路データを解析して、検証対象回路データ中で定義されるある1つの機能ブロック110のクロック信号(クロックピン)の情報を抽出する。例えば、検証システム200は、図2を参照して説明した手順で、検証対象回路データから、機能ブロック110のクロック信号(クロックピン)の情報を抽出し得る。
In step S930, the verification system 200 extracts the clock signal. More specifically, the verification system 200 analyzes the verification target circuit data acquired in step S805, and obtains information on the clock signal (clock pin) of one functional block 110 defined in the verification target circuit data. Extract. For example, the verification system 200 can extract information about the clock signal (clock pin) of the functional block 110 from the verification target circuit data using the procedure described with reference to FIG. 2 .
ステップS940において、検証システム200は、リセット信号を抽出する。より具体的には、検証システム200は、ステップS805にて取得した検証対象回路データを解析して、検証対象回路データ中で定義されるある1つの機能ブロック110のリセット信号(リセットピン)の情報を抽出する。例えば、検証システム200は、図2を参照して説明した手順で、検証対象回路データから、機能ブロック110のリセット信号(リセットピン)の情報を抽出し得る。
In step S940, the verification system 200 extracts a reset signal. More specifically, the verification system 200 analyzes the verification target circuit data acquired in step S805, and obtains information on a reset signal (reset pin) of a certain functional block 110 defined in the verification target circuit data. Extract. For example, the verification system 200 can extract information about the reset signal (reset pin) of the functional block 110 from the verification target circuit data using the procedure described with reference to FIG. 2 .
ステップS950において、検証システム200は、全ての機能ブロック110の数だけ、ステップS930およびステップS940の処理を繰り返したか否かを判定する。検証システム200は、全ての機能ブロック110の数だけ、ステップS930およびステップS940の処理を繰り返したと判定した場合(ステップS950にてYES)、制御をステップS960に移す。そうでない場合(ステップS950にてNO)、検証システム200は、制御をステップS930に移す。
In step S950, the verification system 200 determines whether the processes of step S930 and step S940 have been repeated for all the functional blocks 110. If the verification system 200 determines that the processes of steps S930 and S940 have been repeated for all functional blocks 110 (YES in step S950), control is transferred to step S960. Otherwise (NO in step S950), verification system 200 moves control to step S930.
ある局面において、検証システム200は、ステップS930にて、検証対象回路データ中で定義される全ての機能ブロック110のクロック信号(クロックピン)の情報をまとめて抽出してもよい。同様に、検証システム200は、ステップS940にて、検証対象回路データ中で定義される全ての機能ブロック110のリセット信号(リセットピン)の情報をまとめて抽出してもよい。この場合、ステップS950の処理は実行されなくてもよい。
In one aspect, the verification system 200 may collectively extract information on clock signals (clock pins) of all functional blocks 110 defined in the verification target circuit data in step S930. Similarly, in step S940, the verification system 200 may extract information on reset signals (reset pins) of all functional blocks 110 defined in the verification target circuit data at once. In this case, the process of step S950 may not be executed.
ステップS960において、検証システム200は、機能ブロックテーブル300に、各機能ブロック110のクロック信号(クロックピン)およびリセット信号(リセットピン)の情報を格納する。また、検証システム200は、機能ブロックテーブル300に格納されたデータと共に制御をステップS825に戻す。
In step S960, the verification system 200 stores information on the clock signal (clock pin) and reset signal (reset pin) of each functional block 110 in the functional block table 300. Additionally, the verification system 200 returns control to step S825 together with the data stored in the function block table 300.
図10は、トライアル処理の手順の一例を示す図である。図10の処理は、ステップS850のサブルーチンとして実行される。
FIG. 10 is a diagram illustrating an example of the procedure of trial processing. The process in FIG. 10 is executed as a subroutine of step S850.
ステップS1005において、検証システム200は、トライアル結果ファイル1400が存在するか否かを判定する。一例として、検証システム200は、過去のトライアル結果ファイル1400をストレージ203に格納しておいてもよい。この場合、検証システム200は、ストレージ203を参照し、今回のテストベンチ400に使用可能なトライアル結果ファイル1400が存在するか否かを判定し得る。検証システム200は、トライアル結果ファイル1400が存在すると判定した場合(ステップS1005にてYES)、制御をステップS1010に移す。そうでない場合(ステップS1005にてNO)、検証システム200は、制御をステップS1015に移す。
In step S1005, the verification system 200 determines whether the trial result file 1400 exists. As an example, the verification system 200 may store the past trial result file 1400 in the storage 203. In this case, the verification system 200 can refer to the storage 203 and determine whether there is a trial result file 1400 that can be used in the current test bench 400. If the verification system 200 determines that the trial result file 1400 exists (YES in step S1005), the verification system 200 moves control to step S1010. Otherwise (NO in step S1005), verification system 200 moves control to step S1015.
ステップS1010において、検証システム200は、過去のトライアル結果ファイル1400を再利用して、テストを実行する。検証システム200は、テストの実行ログをメモリ202またはストレージ203に残す。
In step S1010, the verification system 200 reuses the past trial result file 1400 and executes the test. The verification system 200 leaves test execution logs in the memory 202 or storage 203.
ある局面において、検証システム200は、過去のトライアル結果ファイル1400を編集する操作をユーザから受け付けてもよい。例えば、ユーザは、既存の回路に新しく機能を追加した場合に、過去のトライアル結果ファイル1400の一部を修正することで(一部の機能ブロック110の停止可否の変更等)、過去のトライアル処理結果を今回のテストに使用し得る。
In one aspect, the verification system 200 may receive an operation to edit the past trial result file 1400 from the user. For example, when a user adds a new function to an existing circuit, by modifying a part of the past trial result file 1400 (such as changing whether or not some function blocks 110 can be stopped), the user can modify the past trial processing. The results can be used for this test.
他の局面において、検証システム200は、検証システム200がトライアル結果を第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に格納した場合、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に含まれる情報を過去のトライアル結果ファイル1400として使用してもよい。
In another aspect, when the verification system 200 stores the trial result in the first stoppability determination table 600 or the second stoppability determination table 700, the verification system 200 stores the trial results in the first stoppability determination table 600 or the second stoppability determination table 600 The information included in the stoppage determination table 700 may be used as the past trial result file 1400.
ステップS1015において、検証システム200は、過去のトライアル結果ファイル1400を使用せずに、テストを実行する。一例として、検証システム200は、高速化制御OFFモードで、テストを実行してもよい。
In step S1015, the verification system 200 executes the test without using the past trial result file 1400. As an example, the verification system 200 may execute the test in the acceleration control OFF mode.
ステップS1020において、検証システム200は、実行ログを参照して、全ての機能ブロック110の入力信号の変化を確認してリスト化する。検証システム200は、一例として、リスト1300(図13参照)を生成する。リスト1300は、検証対象の半導体が備える全ての機能ブロック110の入力信号の変化を示す。半導体100を例に説明すると、リスト1300は、funcA~funcGの各々の入力信号の変化の情報を含む。
In step S1020, the verification system 200 refers to the execution log to confirm and list changes in the input signals of all functional blocks 110. As an example, the verification system 200 generates a list 1300 (see FIG. 13). The list 1300 shows changes in the input signals of all the functional blocks 110 included in the semiconductor to be verified. Taking the semiconductor 100 as an example, the list 1300 includes information on changes in each of the input signals of funcA to funcG.
ステップS1025において、検証システム200は、リスト1300を参照して、または、実行ログを参照して、検証対象の機能ブロック110の入力信号の変化を確認する。
In step S1025, the verification system 200 checks the change in the input signal of the functional block 110 to be verified by referring to the list 1300 or by referring to the execution log.
ステップS1030において、検証システム200は、検証対象の機能ブロック110(例えば、funcA)の入力信号の変化があるか否かを判定する。検証システム200は、検証対象の機能ブロック110の入力信号の変化があると判定した場合(ステップS1030にてYES)、制御をステップS1035に移す。そうでない場合(ステップS1030にてNO)、検証システム200は、制御をステップS1050に移す。
In step S1030, the verification system 200 determines whether there is a change in the input signal of the functional block 110 (for example, funcA) to be verified. When the verification system 200 determines that there is a change in the input signal of the functional block 110 to be verified (YES in step S1030), the verification system 200 moves control to step S1035. Otherwise (NO in step S1030), verification system 200 moves control to step S1050.
ステップS1035において、検証システム200は、ある機能ブロック110の信号(入力信号または出力信号)が、検証対象の機能ブロック110の動作に影響するか否かを判定する。一例として、検証システム200は、リスト1300の中から変化している信号(または信号を伝達する配線120)の1つを選択する。そして、検証システム200は、当該選択された信号が、検証対象の機能ブロック110の動作に影響するか否かを判定する。
In step S1035, the verification system 200 determines whether a signal (input signal or output signal) of a certain functional block 110 affects the operation of the functional block 110 to be verified. As an example, verification system 200 selects one of the signals (or wires 120 carrying the signal) from list 1300 that is changing. Then, the verification system 200 determines whether the selected signal affects the operation of the functional block 110 to be verified.
検証システム200は、トライアル処理の実行ログから、当該選択された信号が含まれる行、および、検証対象の機能ブロック110の出力信号を参照することで、当該選択された信号が検証対象の機能ブロック110の動作に影響するか否かを判定し得る。半導体100を例に説明すると、検証システム200は、funcCの出力信号が、funcA(検証対象の機能ブロック110)の動作に影響すると判定し得る。
The verification system 200 identifies the selected signal as the functional block to be verified by referring to the line containing the selected signal and the output signal of the functional block 110 to be verified from the execution log of the trial process. It may be determined whether the operation of 110 is affected. Taking the semiconductor 100 as an example, the verification system 200 can determine that the output signal of funcC affects the operation of funcA (the functional block 110 to be verified).
検証システム200は、ある機能ブロック110の信号が、検証対象の機能ブロック110の動作に影響すると判定した場合(ステップS1035にてYES)、制御をステップS1040に移す。そうでない場合(ステップS1035にてNO)、検証システム200は、制御をステップS1050に移す。
When the verification system 200 determines that the signal of a certain functional block 110 affects the operation of the functional block 110 to be verified (YES in step S1035), the verification system 200 moves control to step S1040. Otherwise (NO in step S1035), verification system 200 moves control to step S1050.
ステップS1040において、検証システム200は、停止不可リストに当該機能ブロック110(ステップS1035におけるある機能ブロック110)を追加する。
In step S1040, the verification system 200 adds the function block 110 (a certain function block 110 in step S1035) to the unstoppable list.
ステップS1045において、検証システム200は、ステップS1040にて停止不可リストの登録された機能ブロック110の出力信号を変化させる原因となる信号が存在するか否かを判定する。例えば、funcCの出力信号が、funcAの動作(funcAの出力信号)に影響を与えていたとする。この場合、検証システム200は、funcCへの入力信号(上流の信号)がfuncCの動作に影響を及ぼすか否かを判定する。検証システム200は、トライアル処理の実行ログを参照することで、当該判定を行い得る。
In step S1045, the verification system 200 determines whether there is a signal that causes a change in the output signal of the functional block 110 registered in the unstoppable list in step S1040. For example, suppose that the output signal of funcC influences the operation of funcA (the output signal of funcA). In this case, the verification system 200 determines whether the input signal (upstream signal) to funcC affects the operation of funcC. The verification system 200 can make this determination by referring to the execution log of the trial process.
検証システム200は、ステップS1040にて停止不可リストに追加された機能ブロック110の出力信号を変化させる原因となる信号が存在すると判定した場合(ステップS1045にてYES)、制御をステップS1040に移す。そうでない場合(ステップS1045にてNO)、検証システム200は、制御をステップS1050に移す。
If the verification system 200 determines that there is a signal that causes a change in the output signal of the functional block 110 added to the unstoppable list in step S1040 (YES in step S1045), the verification system 200 moves control to step S1040. Otherwise (NO in step S1045), verification system 200 moves control to step S1050.
例えば、funcCの上流の機能ブロック110の出力信号が、funcCの動作に影響を及ぼすとする。この場合、当該上流の機能ブロック110の出力信号は、間接的にfuncAの動作(funcAの出力信号)に影響を及ぼすことになる。よって、検証システム200は、funcCだけでなく当該上流の機能ブロック110も停止不可リストに追加する。
For example, assume that the output signal of the functional block 110 upstream of funcC affects the operation of funcC. In this case, the output signal of the upstream functional block 110 will indirectly affect the operation of funcA (the output signal of funcA). Therefore, the verification system 200 adds not only funcC but also the upstream functional block 110 to the unstoppable list.
ステップS1050において、検証システム200は、(検証対象の機能ブロック110における)変化している入力信号の本数分、ステップS1030以降の処理を実行したか否かを判定する。すなわち、検証システム200は、検証対象の機能ブロック110の動作(出力信号)に影響する信号を全て検出したか否かを判定する。検証システム200は、(検証対象の機能ブロック110における)変化している入力信号の本数分、ステップS1030以降の処理を実行したと判定した場合(ステップS1050にてYES)、制御をステップS1055に移す。そうでない場合(ステップS1050にてNO)、検証システム200は、制御をステップS1030に移す。
In step S1050, the verification system 200 determines whether the processes from step S1030 onward have been executed for the number of changing input signals (in the functional block 110 to be verified). That is, the verification system 200 determines whether all signals that affect the operation (output signals) of the functional block 110 to be verified have been detected. If the verification system 200 determines that the processes from step S1030 onwards have been executed for the number of input signals that are changing (in the functional block 110 to be verified) (YES in step S1050), control is transferred to step S1055. . Otherwise (NO in step S1050), verification system 200 moves control to step S1030.
ステップS1055において、検証システム200は、トライアル処理の結果をトライアル結果ファイル1400(停止可否判別テーブル)に格納する。ある局面において、検証システム200は、トライアル処理の結果を、第1の停止可否判別テーブル600または第2の停止可否判別テーブル700に格納してもよい。
In step S1055, the verification system 200 stores the results of the trial process in the trial result file 1400 (stoppability determination table). In one aspect, the verification system 200 may store the results of the trial process in the first stopability determination table 600 or the second stopability determination table 700.
<E.トライアル処理>
次に、トライアル処理における各機能ブロック110の停止可否の判定方法、および、トライアル処理中に生成されるリスト1300,トライアル結果ファイル1400について説明する。 <E. Trial processing>
Next, a method for determining whether eachfunctional block 110 can be stopped in trial processing, and a list 1300 and trial result file 1400 generated during trial processing will be described.
次に、トライアル処理における各機能ブロック110の停止可否の判定方法、および、トライアル処理中に生成されるリスト1300,トライアル結果ファイル1400について説明する。 <E. Trial processing>
Next, a method for determining whether each
図11は、トライアル処理の結果の一例を示す図である。図11の例では、検証システム200は、トライアル処理の結果、funcAのテストにおいて、funcB、funcD、funcEを停止可能であると判定している。大きく分けると、停止可能な機能ブロック110は、2種類存在する。
FIG. 11 is a diagram showing an example of the results of trial processing. In the example of FIG. 11, as a result of the trial process, the verification system 200 determines that funcB, funcD, and funcE can be stopped in the test of funcA. Broadly speaking, there are two types of functional blocks 110 that can be stopped.
1つ目は、検証対象の機能ブロック110の動作に影響を及ぼさない機能ブロック110である。図11の例では、funcBが、検証対象の機能ブロック110(funcA)の動作に影響を及ぼさない機能ブロック110に相当する。funcBの出力信号(funcAへの入力信号)は変化するかもしれないが、funcBの出力信号は、funcAの動作に影響を及ぼさない。
The first is a functional block 110 that does not affect the operation of the functional block 110 to be verified. In the example of FIG. 11, funcB corresponds to a functional block 110 that does not affect the operation of the functional block 110 (funcA) to be verified. Although the output signal of funcB (the input signal to funcA) may change, the output signal of funcB does not affect the operation of funcA.
2つ目は、出力信号が変化しない機能ブロック110である。図11の例では、funcDが、出力信号が変化しない機能ブロック110に相当する。funcDの出力信号(funcAへの入力信号)は変化するかもしれないが、funcDの出力信号は、funcAの動作に影響を及ぼさない。
The second is a functional block 110 whose output signal does not change. In the example of FIG. 11, funcD corresponds to the functional block 110 whose output signal does not change. Although the output signal of funcD (the input signal to funcA) may change, the output signal of funcD does not affect the operation of funcA.
また、funcB、funcD等の検証対象の機能ブロック110(funcA)の動作に影響を及ぼさない機能ブロック110の上流に位置する機能ブロック110(funcE等)も停止可能である。
Further, it is also possible to stop functional blocks 110 (such as funcE) located upstream of the functional block 110 that does not affect the operation of the functional block 110 (funcA) to be verified, such as funcB and funcD.
図12は、入力信号が機能ブロック110に影響を及ぼすか否かの判断基準の一例を示す図である。検証対象の機能ブロック110(funcA)に入力される信号は、信号1201,1202,1203の3種類が存在する。
FIG. 12 is a diagram illustrating an example of criteria for determining whether an input signal affects the functional block 110. There are three types of signals input to the functional block 110 (funcA) to be verified: signals 1201, 1202, and 1203.
信号1201は、変化のない信号(信号が常に0(LOW)または1(HIGH)で固定)である。信号1201は、検証対象の機能ブロック110の動作に影響を及ぼさない。そのため、検証システム200は、信号1201を出力する機能ブロック110は停止可能であると判定する。例えば、図11のfuncDは、信号1201を出力する機能ブロック110に相当する。
The signal 1201 is a signal that does not change (the signal is always fixed at 0 (LOW) or 1 (HIGH)). Signal 1201 does not affect the operation of functional block 110 to be verified. Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1201 can be stopped. For example, funcD in FIG. 11 corresponds to the functional block 110 that outputs the signal 1201.
信号1202は、変化するかもしれないが、検証対象の機能ブロック110の動作に影響を及ぼさない信号である。例えば、検証対象の機能ブロック110内部で使用されない信号等が信号1202に相当する。信号1202も、検証対象の機能ブロック110の動作に影響を及ぼさない。そのため、検証システム200は、信号1202を出力する機能ブロック110は停止可能であると判定する。例えば、図11のfuncBは、信号1202を出力する機能ブロック110に相当する。
The signal 1202 is a signal that may change but does not affect the operation of the functional block 110 to be verified. For example, a signal that is not used inside the functional block 110 to be verified corresponds to the signal 1202. Signal 1202 also does not affect the operation of functional block 110 under verification. Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1202 can be stopped. For example, funcB in FIG. 11 corresponds to the functional block 110 that outputs the signal 1202.
信号1203は、変化のある信号であり、かつ、検証対象の機能ブロック110内部で使用される信号(検証対象の機能ブロック110の動作に影響を及ぼす信号)である。そのため、検証システム200は、信号1203を出力する機能ブロック110は停止不可であると判定する。例えば、図11のfuncC, funcF, funcGは、信号1203を出力する機能ブロック110に相当する。
The signal 1203 is a signal that changes and is used inside the functional block 110 to be verified (a signal that affects the operation of the functional block 110 to be verified). Therefore, the verification system 200 determines that the functional block 110 that outputs the signal 1203 cannot be stopped. For example, funcC, funcF, and funcG in FIG. 11 correspond to the functional block 110 that outputs the signal 1203.
図13は、検証対象の半導体が備える全ての機能ブロック110の入力信号の変化の有無を示すリスト1300の一例を示す図である。検証システム200は、トライアル処理の実行ログからリスト1300を作成する。半導体100を例に説明すると、検証システム200は、全ての機能ブロック110(funcA~funcG)の各入力信号に対して識別子を割り振り、当該識別子と、各入力信号の状態変化の有無とをリスト1300に記録する。
FIG. 13 is a diagram illustrating an example of a list 1300 indicating the presence or absence of changes in the input signals of all the functional blocks 110 included in the semiconductor to be verified. The verification system 200 creates a list 1300 from the execution log of the trial process. Taking the semiconductor 100 as an example, the verification system 200 allocates an identifier to each input signal of all the functional blocks 110 (funcA to funcG), and creates a list 1300 containing the identifier and the presence or absence of a state change of each input signal. to be recorded.
リスト1300に記録される各信号には、signal 1, signal 2のように一意に識別可能な識別子が与えられる。また、リスト1300には、各信号の識別子と関連付けて各信号の変化の有無を示す情報が記録される。一例として、signal 1は、YES(信号変化あり)である。また、signal 2は、NO(信号変化なし(0で固定))である。また、signal 3は、NO(信号変化なし(1で固定))である。
Each signal recorded in the list 1300 is given a uniquely identifiable identifier such as signal 1, signal 2. Further, in the list 1300, information indicating the presence or absence of a change in each signal is recorded in association with the identifier of each signal. As an example, signal 1 is YES (signal change). Further, signal 2 is NO (no signal change (fixed at 0)). Further, signal 3 is NO (no signal change (fixed at 1)).
図14は、トライアル結果ファイル1400の一例を示す図である。トライアル結果ファイル1400は、テスト実行時に、各機能ブロック110が停止可能であるか否かを示す情報を格納する。より具体的には、トライアル結果ファイル1400は、トライアル処理で参照されたテストベンチ400に基づくテストにおける、各機能ブロック110が停止可能であるか否かを示す情報を格納する。例えば、テストベンチ400がスペックモード(specA)の設定を含むとする。この場合、トライアル結果ファイル1400は、スペックモード(specA)のテストにおいて、各機能ブロック110が停止可能であるか否かを示す情報を格納する。図14の例では、funcA、funcC、funcF、funcGがON(停止不可)であり、funcB、funcD、funcEがOFF(停止可能)である。
FIG. 14 is a diagram showing an example of a trial result file 1400. The trial result file 1400 stores information indicating whether each functional block 110 can be stopped during test execution. More specifically, the trial result file 1400 stores information indicating whether each functional block 110 can be stopped in a test based on the test bench 400 referred to in the trial process. For example, assume that the test bench 400 includes settings for spec mode (specA). In this case, the trial result file 1400 stores information indicating whether each functional block 110 can be stopped in the spec mode (specA) test. In the example of FIG. 14, funcA, funcC, funcF, and funcG are ON (cannot be stopped), and funcB, funcD, and funcE are OFF (can be stopped).
ある局面において、検証システム200は、トライアル処理において、検証システム200に予め入力された全てのテストベンチ400(specA~specG、verificationA~verificationG等)に基づくテストを実行し、全てのテストベンチ400に対応するトライアル結果ファイル1400を生成してもよい。検証システム200は、テストベンチ400に基づくテストを再度実行する際に、トライアル結果ファイル1400を使用し得る。検証システム200は、他のテストベンチ400に基づくテストを実行する際に、トライアル結果ファイル1400を流用し得る。その際、検証システム200は、ユーザから、トライアル結果ファイル1400の編集を受け付け得る。
In a certain aspect, the verification system 200 executes a test based on all test benches 400 (specA to specG, verificationA to verificationG, etc.) that have been input in advance to the verification system 200 in trial processing, and supports all test benches 400. A trial result file 1400 may be generated. Verification system 200 may use trial results file 1400 when re-running tests based on test bench 400. Verification system 200 may reuse trial results file 1400 when executing tests based on other test benches 400. At this time, the verification system 200 can accept editing of the trial result file 1400 from the user.
以上説明した通り、本実施の形態に従う検証システム200は、設計仕様書の解析、検証仕様書の解析またはトライアル処理を行うことで、自動的にテスト実行時に各機能ブロック110が停止可能か否かを判別し得る。これにより、検証システム200は、テストに不要な機能ブロック110を停止させることでテストを高速化し得る。
As explained above, the verification system 200 according to the present embodiment automatically determines whether each functional block 110 can be stopped during test execution by analyzing the design specifications, analyzing the verification specifications, or performing trial processing. can be determined. Thereby, the verification system 200 can speed up the test by stopping the functional blocks 110 that are unnecessary for the test.
また、テストを実行するユーザは、半導体100(論理回路)についての知識が不十分であっても、トライアル処理を使用することで容易にテストを高速化し得る。または、テストを実行するユーザは、設計者または検証責任者等が事前に作成した各種仕様書を検証システム200に解析させることによっても、半導体100(論理回路)についての知識を必要とせずに、容易にテストを高速化し得る。
Furthermore, even if the user executing the test has insufficient knowledge about the semiconductor 100 (logic circuit), he or she can easily speed up the test by using trial processing. Alternatively, the user who executes the test can have the verification system 200 analyze various specifications prepared in advance by a designer or a person in charge of verification, without requiring any knowledge of the semiconductor 100 (logic circuit). You can easily speed up testing.
また、検証システム200は、新たなテストに過去のトライアル結果ファイル1400を流用する機能をユーザに提供する。これにより、ユーザは、流用可能なトライアル結果ファイル1400がある場合、即座にテストを高速化し得る。さらに、ユーザは、半導体100の設計変更があった場合に、過去のトライアル結果ファイル1400の一部を書き換えて使用することもできる。
Additionally, the verification system 200 provides the user with a function to reuse the past trial result file 1400 for a new test. This allows the user to immediately speed up the test if there is a usable trial result file 1400. Furthermore, when there is a design change of the semiconductor 100, the user can also rewrite and use a part of the past trial result file 1400.
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
The embodiments disclosed this time should be considered to be illustrative in all respects and not restrictive. The scope of the present disclosure is indicated by the claims rather than the above description, and it is intended that all changes are included within the meaning and scope equivalent to the claims. Furthermore, the disclosures described in the embodiments and each modification are intended to be implemented alone or in combination to the extent possible.
100 半導体、110 機能ブロック、120 配線、200 検証システム、201 プロセッサ、202 メモリ、203 ストレージ、204 外部機器IF、205 入力IF、206 出力IF、207 通信IF、208 内部バス、210 シミュレータ、211 信号抽出部、212 テストベンチ取得部、213 停止可否判定部、214 テスト実行部、220 コード、300 機能ブロックテーブル、301,501,601,701 機能ブロック名項目、302 モジュール名項目、303 クロックピン項目、304 リセットピン項目、400,400A テストベンチ、401 検証対象項目、402 制御モード項目、403,502 マニュアルモードの設定項目、404 スペックモードの設定項目、405 ベリフィケーションモード項目、500 停止対象テーブル、503 オートモードの設定項目、600 第1の停止可否判別テーブル、610 設計仕様モード項目、700 第2の停止可否判別テーブル、710 検証仕様モード項目、900 情報処理装置、1201,1202,1203 信号、1300 リスト、1400 トライアル結果ファイル。
100 semiconductor, 110 functional block, 120 wiring, 200 verification system, 201 processor, 202 memory, 203 storage, 204 external device IF, 205 input IF, 206 output IF, 207 communication IF, 208 internal bus, 210 simulator, 211 Signal extraction Part, 212 Test bench acquisition part, 213 Stoppability judgment part, 214 Test execution part, 220 Code, 300 Function block table, 301, 501, 601, 701 Function block name item, 302 Module name item, 303 Clock pin item, 304 Reset pin item, 400, 400A test bench, 401 Verification target item, 402 Control mode item, 403, 502 Manual mode setting item, 404 Spec mode setting item, 405 Verification mode item, 500 Stop target table, 503 Auto Mode setting item, 600 First stopability determination table, 610 Design specification mode item, 700 Second stopability determination table, 710 Verification specification mode item, 900 Information processing device, 1201, 1202, 1203 Signal, 1300 List, 1400 Trial result file.
Claims (8)
- 論理回路の検証方法であって、
前記論理回路に含まれる複数の機能ブロックの各々に入力されるクロック信号およびリセット信号を抽出するステップと、
テストベンチを参照するステップと、
前記テストベンチを使用したテストにおける、前記複数の機能ブロックの各々の停止可否を示す情報を格納する停止可否判別テーブルを参照するステップと、
前記停止可否判別テーブルから取得した前記情報に応じて検証対象の機能ブロックの動作に影響を及ぼさない1つ以上の前記機能ブロックへの前記クロック信号および前記リセット信号を停止し、前記テストベンチに基づく前記検証対象の機能ブロックのテストを実行するステップとを含む、検証方法。 A method for verifying a logic circuit, the method comprising:
extracting a clock signal and a reset signal input to each of a plurality of functional blocks included in the logic circuit;
a step that references the testbench;
Referring to a stopability determination table that stores information indicating whether each of the plurality of functional blocks can be stopped in a test using the test bench;
The clock signal and the reset signal to one or more of the functional blocks that do not affect the operation of the functional block to be verified are stopped according to the information obtained from the stopability determination table, and the clock signal and the reset signal are stopped based on the test bench. and executing a test of the functional block to be verified. - 前記停止可否判別テーブルは、前記論理回路の設計仕様に基づいて判定された前記複数の機能ブロックの各々の停止可否を示す情報を格納する第1の停止可否判別テーブルを含み、
前記検証方法は、
前記論理回路の設計仕様書を読み込むステップと、
前記設計仕様書に記載された前記複数の機能ブロックの各々の相互の接続関係を抽出するステップと、
前記接続関係に基づいて前記第1の停止可否判別テーブルを更新するステップとをさらに含む、請求項1に記載の検証方法。 The stopability determination table includes a first stopability determination table that stores information indicating whether each of the plurality of functional blocks can be stopped, which is determined based on design specifications of the logic circuit;
The verification method is
reading a design specification for the logic circuit;
extracting mutual connection relationships of each of the plurality of functional blocks described in the design specification;
The verification method according to claim 1, further comprising: updating the first stoppage determination table based on the connection relationship. - 前記停止可否判別テーブルは、前記論理回路の検証仕様に基づいて判定された前記複数の機能ブロックの各々の停止可否を示す情報を格納する第2の停止可否判別テーブルを含み、
前記検証方法は、
前記論理回路の検証仕様書を読み込むステップと、
前記検証仕様書から、複数のテストの各々において検証対象となる1つ以上の前記機能ブロックの記述を抽出するステップと、
前記記述に基づいて、前記第2の停止可否判別テーブルを更新するステップとをさらに含む、請求項1に記載の検証方法。 The stopability determination table includes a second stoppage determination table that stores information indicating whether or not each of the plurality of functional blocks can be stopped, which is determined based on the verification specifications of the logic circuit;
The verification method is
reading a verification specification for the logic circuit;
extracting from the verification specification a description of one or more of the functional blocks to be verified in each of a plurality of tests;
The verification method according to claim 1, further comprising: updating the second stoppage determination table based on the description. - 前記テストベンチにて前記停止可否判別テーブルを使用しない設定がなされていることに基づいて、前記複数の機能ブロックの全てを使用するテストを実行するステップと、
前記複数の機能ブロックの全てを使用するテストの実行結果に基づいて、前記検証対象の機能ブロックの前記動作に影響を及ぼさない前記複数の機能ブロックを抽出するステップと、
前記検証対象の機能ブロックの前記動作に影響を及ぼさない前記複数の機能ブロックを、前記停止可否判別テーブルに新たに格納するステップとをさらに含む、請求項1に記載の検証方法。 executing a test that uses all of the plurality of functional blocks based on the fact that the test bench is set not to use the stopability determination table;
extracting the plurality of functional blocks that do not affect the operation of the functional block to be verified based on the execution result of a test using all of the plurality of functional blocks;
2. The verification method according to claim 1, further comprising the step of newly storing the plurality of functional blocks that do not affect the operation of the functional block to be verified in the stoppage determination table. - 前記テストベンチを再度実行する場合に、または、他のテストベンチを実行する場合に、前記停止可否判別テーブルに新たに登録された情報を参照するステップと、
前記停止可否判別テーブルに新たに登録された情報に基づいて、前記複数の機能ブロックの一部への前記クロック信号および前記リセット信号を停止するステップと、
前記他のテストベンチに基づくテストを実行するステップとをさらに備える、請求項4に記載の検証方法。 a step of referring to information newly registered in the stopability determination table when executing the test bench again or when executing another test bench;
stopping the clock signal and the reset signal to some of the plurality of functional blocks based on information newly registered in the stopability determination table;
5. The verification method according to claim 4, further comprising: executing a test based on the other test bench. - 前記他のテストベンチを実行する場合に、前記停止可否判別テーブルに新たに格納された情報を参照した後に、前記停止可否判別テーブルに新たに格納された情報の変更操作を受け付けるステップをさらに含む、請求項5に記載の検証方法。 When executing the other test bench, the method further includes the step of, after referring to the information newly stored in the stopability determination table, accepting an operation to change the information newly stored in the stopability determination table; The verification method according to claim 5.
- 請求項1~6のいずれかに記載の方法をコンピュータに実行させるための、プログラム。 A program for causing a computer to execute the method according to any one of claims 1 to 6.
- 請求項7に記載のプログラムを格納したストレージと、
前記プログラムを実行するためのプロセッサとを備える、検証システム。 A storage storing the program according to claim 7;
A verification system comprising: a processor for executing the program.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/022468 WO2023233616A1 (en) | 2022-06-02 | 2022-06-02 | Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit |
JP2024524101A JPWO2023233616A1 (en) | 2022-06-02 | 2022-06-02 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/022468 WO2023233616A1 (en) | 2022-06-02 | 2022-06-02 | Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023233616A1 true WO2023233616A1 (en) | 2023-12-07 |
Family
ID=89026169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/022468 WO2023233616A1 (en) | 2022-06-02 | 2022-06-02 | Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2023233616A1 (en) |
WO (1) | WO2023233616A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148863A (en) * | 1988-11-30 | 1990-06-07 | Matsushita Electron Corp | Semiconductor integrated circuit device |
JP2001155047A (en) * | 1999-11-26 | 2001-06-08 | Matsushita Electric Ind Co Ltd | Device and method for processing logic simulation |
JP2006048149A (en) * | 2004-07-30 | 2006-02-16 | Ricoh Co Ltd | Function verification device, test bench, model designed by hardware description language, simulator program and recording medium |
-
2022
- 2022-06-02 WO PCT/JP2022/022468 patent/WO2023233616A1/en unknown
- 2022-06-02 JP JP2024524101A patent/JPWO2023233616A1/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148863A (en) * | 1988-11-30 | 1990-06-07 | Matsushita Electron Corp | Semiconductor integrated circuit device |
JP2001155047A (en) * | 1999-11-26 | 2001-06-08 | Matsushita Electric Ind Co Ltd | Device and method for processing logic simulation |
JP2006048149A (en) * | 2004-07-30 | 2006-02-16 | Ricoh Co Ltd | Function verification device, test bench, model designed by hardware description language, simulator program and recording medium |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023233616A1 (en) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9449130B1 (en) | Methods, systems, and articles of manufacture for back annotating and visualizing parasitic models of electronic designs | |
US7996819B2 (en) | Generating functional test scripts | |
US8601436B2 (en) | Simulation-based interface testing automation system and method for robot software components | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
US10360310B2 (en) | Self-testing graphical component algorithm specification | |
US6754862B1 (en) | Gaining access to internal nodes in a PLD | |
US9881119B1 (en) | Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics | |
US10635555B2 (en) | Verifying a graph-based coherency verification tool | |
US8701084B1 (en) | Preview of auto-fix changes to software code | |
CN113138808B (en) | Integration method, device, computer equipment and storage medium | |
US20230048792A1 (en) | Verification of control coupling and data coupling analysis in software code | |
US9690681B1 (en) | Method and system for automatically generating executable system-level tests | |
US20160335171A1 (en) | Test automation modeling | |
JP6692289B2 (en) | Screen information generating device, screen information generating method, and program | |
US20150234978A1 (en) | Cell Internal Defect Diagnosis | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
WO2023233616A1 (en) | Method for verifying logic circuit, program for verifying logic circuit, and system for verifying logic circuit | |
US10380295B1 (en) | Methods, systems, and articles of manufacture for X-behavior verification of an electronic design | |
US20230237228A1 (en) | Computer readable recording medium with stored program and method of extracting parasitic parameters of a 3d ic thereof | |
CN112464636B (en) | Constraint file comparison method and device, electronic equipment and storage medium | |
US20230069588A1 (en) | Variant model-based compilation for analog simulation | |
CN111459483B (en) | Interface processing method and device | |
US10783307B1 (en) | System and method for power-grid aware simulation of an IC-package schematic | |
US11782682B2 (en) | Providing metric data for patterns usable in a modeling environment | |
WO2024216991A1 (en) | Code checker generation method and related system |
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: 22944897 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2024524101 Country of ref document: JP Kind code of ref document: A |