The invention generally relates to optimization of a set of assertions for computerized circuit design verification using a measure of assertion density, and more particularly to an improved system and method for measuring assertion density.
As part of the verification process for circuit design, it is useful to use assertions. Assertions are Boolean expressions reflecting the constraints on the circuit's outputs. During a simulation testing the functionality of a circuit, assertions may detect defects whose effects are not necessarily propagated to a primary output. Effective use of assertions implies that a set of assertions is sufficient to cover the functionality of the circuit logic as defined by the register-transfer level (RTL). It is further useful to define an assertion density metric, to ensure that a set of assertions sufficiently covers the functionality of the circuit logic.
There are two primary methods of measuring assertion density. The first is known as Cone of Influence (COI). In this method the assertion is defined by the number of logic gates affected, and it is desired that the assertion will effect a large as possible number of logic gates. A cone is thus defined with a tip originating at the output and a base at the first available register. The second method is known as Minimal Sequential Depth (MSD). MSD uses COI; however, the MSD is defined by the number of registers within the cone. It is desired to have a high as possible COI and low as possible MSD. The higher the COI or lower the MSD, the better the assertion is. It is of note that both methods are syntax-based and do not reflect functionality.
It is therefore further noted that the prior art does not provide an effective way of measurement of assertion density which is required in order to satisfactorily ascertain that a circuit is well-enough covered. Providing such a method within a system for design and verification of integrated circuit would be advantageous.
A computerized method is provided for determining assertion density, which is then used in a method to optimize generation of assertions for verifying an integrated circuit (IC) design, such that the set of assertions will have an assertion density measure that exceeds a predetermined threshold value for efficient design verification. Measurement of assertion density begins by receiving a register-transfer language (RTL) description of an integrated circuit. From this RTL description a set of predicates (Ci) is computed. A set of assertions that has been generated is next received and a first value for the number of predicates which are satisfiable on the set of assertions with RTL as base is computed. Likewise a set of simulation traces is received and a second value for the number of predicates which are satisfiable on the simulation traces is computed. A figure of merit for assertion density is then determined based on predetermined criteria respective of those two values.
The computation of assertion density may be repeated for other received sets of assertions until the figure of merit for assertion density meets predetermined criteria for one of the sets. Also, one or more graphs of the number of predicates which are satisfiable on the various received sets of assertions and of the number of predicates which are satisfiable on the simulation traces may be plotted.
An effective measurement of the assertion density is required to satisfy that a circuit has been rigorously tested. An attempt is made to reach as close as possible to an ideal figure of merit for assertion density given a set of assertion. A register-transfer level (RTL) description of an integrated circuit (IC) is used to compute a set of predicates. Then, determination is made as to the number of predicates that are satisfiable on the given set of assertions received respective of the RTL description. Thereafter receiving simulation traces for the RTL and computing the number of predicates satisfiable on the simulation traces. A figure of merit is then determined responsive of the number of predicates computed and achieving a value which is below a predetermined threshold. The progress of such iterations can also be graphically presented to a user, for example on a screen of a development tool.
Reference is now made to
Reference is now made to exemplary and non-limiting
To implement the assertion generation and optimization method using an improved measure of assertion density in accord with the invention, a computer system comprises a processing unit, an input/output (I/O) interface coupled to the processing unit, and a memory containing software instructions that when executed by the processing unit receive a register-transfer language (RTL) description of an integrated circuit via the I/O interface, compute a set of predicates from that received RTL description, generate or receive a set of assertions, compute a first value respective of the number of predicates which are satisfiable on the set of assertions with the RTL description as base, receive a set of simulation traces, compute a second value respective of the number of predicates which are satisfiable on the simulation traces, determine a figure of merit for assertion density based upon predetermined criteria respective of the first and second values, and as needed repeat the computations with other generated or received sets of assertions until a predetermined assertion density threshold is achieved with one of them.
Hence, the principles of the invention may be implemented as hardware, firmware, software tangibly embodied in computer readable and non-transient media, or any combination thereof, including but not limited to a CAD system and software products thereof, the software designed to execute on an appropriate apparatus for execution of the plurality of instructions that are contained in the software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit and/or display unit.
Number | Name | Date | Kind |
---|---|---|---|
6117180 | Dave et al. | Sep 2000 | A |
6591402 | Chandra et al. | Jul 2003 | B1 |
6591403 | Bass et al. | Jul 2003 | B1 |
7210066 | Mandava et al. | Apr 2007 | B2 |
7243090 | Kinshalin et al. | Jul 2007 | B2 |
7281185 | Maoz et al. | Oct 2007 | B2 |
7458046 | Ghosh et al. | Nov 2008 | B2 |
7493247 | Memmi | Feb 2009 | B2 |
7685547 | Gupta et al. | Mar 2010 | B1 |
7788615 | Baumgartner et al. | Aug 2010 | B2 |
7844929 | Chaturvedula et al. | Nov 2010 | B2 |
7865339 | Rushby et al. | Jan 2011 | B2 |
7900181 | Hekmatpour et al. | Mar 2011 | B2 |
8042078 | Paruthi et al. | Oct 2011 | B2 |
8121825 | Jain et al. | Feb 2012 | B2 |
8244516 | Arbel et al. | Aug 2012 | B2 |
8271253 | Ward | Sep 2012 | B2 |
8413088 | Armbruster et al. | Apr 2013 | B1 |
20060268724 | Viswanath et al. | Nov 2006 | A1 |
20060282807 | Ivancic et al. | Dec 2006 | A1 |
20080072196 | Hekmatpour et al. | Mar 2008 | A1 |
20080104556 | Yamada | May 2008 | A1 |
20090125290 | Chatterjee et al. | May 2009 | A1 |
20090172529 | Jas et al. | Jul 2009 | A1 |
20100070937 | Nishide | Mar 2010 | A1 |
20100088257 | Lu et al. | Apr 2010 | A1 |
20100269078 | Dsouza | Oct 2010 | A1 |
20110173592 | Elnozahy et al. | Jul 2011 | A1 |
20120123763 | Jain et al. | May 2012 | A1 |
20130019216 | Vasudevan et al. | Jan 2013 | A1 |
20130019217 | Brinkmann | Jan 2013 | A1 |
Entry |
---|
Thesis on information and system engineering C42, by Maksim Jenihhin, “Simulation-Based Hardward Verification with High-Level Decision Diagrams”, for doctoral degree Dec. 8, 2008, Tallinn University of Technology, 156 pages. |
Number | Date | Country | |
---|---|---|---|
20140250414 A1 | Sep 2014 | US |