Method, system, and program product for automated verification of gating logic using formal verification
First Claim
1. A method of verifying gating rules comprising the steps of generating a testbench hardware design language code from a design source hardware design language code, and building a formal verification model comprising the testbench hardware design language code and a hardware design language for a design under test to provide to a design verification tool, by the steps as follows:
- (I) generating the testbench hardware design language code from the design source hardware design language code by the steps as follows;
a. identifying interface signals requiring gating verification, including denoting registers and/or latches that are asserted to remain stable from a design source;
b. identifying each component to be independently verified using the design source and an assertion that registers and latches within a component will remain stable during gating;
c. extracting a list of interfaces, registers, and latches from each component;
d. generating a testbench, said testbench driving a formal verification step utilizing the list of interfaces, registers, and latches from each component as an input to produce the testbench, the testbench having automated rules to verify assertions regarding latch stability;
e. compiling the testbench to form a verification model; and
(II) building a formal verification model comprising the testbench hardware design language code and the hardware design language for the design under test for provision thereof to a design verification tool, by the steps as follows;
f. executing a formal verification process to determine that all latches and registers asserted to remain stable under a gating condition are stable, including attempting to produce a counter example, illustrating how a particular latch can change state while its associated fence signal is being applied; and
g. if counter examples exist, repetitively updating the design source to fix an error until the design source completes the formal verification process without any counter examples, else characterizing that the verification process is complete and all identified interfaces are concluded to be properly gated.
6 Assignments
0 Petitions
Accused Products
Abstract
Automated verification methodology parsing scripts auto generate testbench hardware design language, such as VHDL or Verilog, from the design source VHDL or Verilog. A formal verification model is then built comprising the testbench VHDL and the design under test. The resulting design verification tool then provides proofs and counterexamples for all of the rules, e.g., auto-generated rules, in the testbench.
-
Citations
17 Claims
-
1. A method of verifying gating rules comprising the steps of generating a testbench hardware design language code from a design source hardware design language code, and building a formal verification model comprising the testbench hardware design language code and a hardware design language for a design under test to provide to a design verification tool, by the steps as follows:
-
(I) generating the testbench hardware design language code from the design source hardware design language code by the steps as follows; a. identifying interface signals requiring gating verification, including denoting registers and/or latches that are asserted to remain stable from a design source; b. identifying each component to be independently verified using the design source and an assertion that registers and latches within a component will remain stable during gating; c. extracting a list of interfaces, registers, and latches from each component; d. generating a testbench, said testbench driving a formal verification step utilizing the list of interfaces, registers, and latches from each component as an input to produce the testbench, the testbench having automated rules to verify assertions regarding latch stability; e. compiling the testbench to form a verification model; and (II) building a formal verification model comprising the testbench hardware design language code and the hardware design language for the design under test for provision thereof to a design verification tool, by the steps as follows; f. executing a formal verification process to determine that all latches and registers asserted to remain stable under a gating condition are stable, including attempting to produce a counter example, illustrating how a particular latch can change state while its associated fence signal is being applied; and g. if counter examples exist, repetitively updating the design source to fix an error until the design source completes the formal verification process without any counter examples, else characterizing that the verification process is complete and all identified interfaces are concluded to be properly gated. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for testing a multi-domain microelectronic circuit, said circuit having built in self testing circuitry, said system being adapted to generate a testbench hardware design language code from a design source hardware design language code, and to build a formal verification model comprising the testbench hardware design language code and a hardware design language for a design under test to provide to a design verification tool by a method comprising the steps as follows:
-
(I) generating testbench hardware design language code from the design source hardware design language code by the steps as follows; a. identifying interface signals requiring gating verification, including denoting registers and/or latches that are asserted to remain stable from a design source; b. identifying each component to be independently verified using the design source and an overall assertion that all registers and latches within a component will remain stable during gating, c. extracting a list of interfaces, registers and latches from each component; d. generating a testbench, said testbench driving a formal verification step utilizing the list of interfaces, registers and latches from each component as an input to produce the testbench, said testbench having automated rules to verify assertions regarding latch stability; e. compiling the testbench to form a verification model; and (II) building a formal verification model comprising the testbench hardware design language code and the hardware design language for the design under test for provision thereof to a design verification tool by the steps as follows; f. executing a formal verification process to determine that all latches and registers asserted to remain stable under a gating condition are stable, including attempting to produce a counter example illustrating how a particular latch can change state while its associated fence signal is being applied; and g. if counter examples exist, repetitively updating the design source to fix an error until the design source completes the formal verification process without any counterexamples, else characterizing that the verification is complete and all identified interfaces are concluded to be properly gated. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A program product comprising:
-
a computer program storage device for storing a computer program which when executed by a processor causes the processor to configure and control a system for testing a multi-domain microelectronic circuit with said circuit having built-in self testing circuitry, said system being adapted to generate a testbench hardware design language code from a design source hardware design language code, and to build a formal verification model comprising the testbench hardware design language code and the hardware design language for a design under test for provision thereof to provide to a design verification tool by the method of as follows; (I) generating testbench hardware design language code from a design source hardware design language code by; a. identifying interface signals requiring gating verification, including denoting registers and/or latches that are asserted to remain stable from a design source; b. identifying each component to be independently verified using the design source and an overall assertion that all registers and latches within a component will remain stable during gating; c. extracting a list of interfaces, registers, and latches from each component; d. generating a testbench, said testbench driving a formal verification step utilizing the list of interfaces, registers, and latches from each component as an input to produce the testbench, the testbench having automated rules to verify assertions regarding latch stability; and e. compiling the testbench to form a verification model; and (II) building a formal verification model comprising the testbench hardware design language code and the hardware design language for the design under test for provision thereof to a design verification tool by the steps as follows; f. executing a formal verification process to determine that all latches and registers asserted to remain stable under a gating condition are stable, including attempting to produce a counter example illustrating how a particular latch can change state while its associated fence signal is being applied; and g. if counter examples exist, repetitively updating the design source to fix an error until the design source completes the formal verification process without any counter examples, else characterizing that the verification process is complete and all identified interfaces are concluded to be properly gated. - View Dependent Claims (14, 15, 16, 17)
-
Specification