Framework for multiple-engine based verification tools for integrated circuits

   
   

A design verification system comprising a set of modular verification engines invoked by a framework that manages the control flow between the engines. The framework receives a verification problem from an application and attempts to solve it by instantiating one or more engine in a customizable sequence or set of sequences. Each verification engine is configured to achieve a specific verification objective and may be coded against a common API to facilitate exchange of information between the engines. The verification engines may include reduction engines, which attempt to simplify a problem by modifying it or decomposing it, and decision engines, which attempt to solve problems that are passed to them. As a verification problem is passed from one engine to the next, the engine may alter the verification problem such that a decision engine at the end of the sequence may receive a verification problem that is simpler to solve than the original problem specified by the system user. If the decision engine is able to solve a problem by determining a state or sequence of states that produces a specified value on a specified node of the design, the engine passes the determined sequence to the engine that invoked it in the form of a counterexample trace after modifying it to "undo" whatever effect it may have had on the problem. The engines may also learn facts, such as a lighthouse that serves as an aid to solving the verification problem, and pass these facts to the other engines.

Un sistema di verifica di disegno che contiene un insieme i motori modulari di verifica invocati da una struttura che controlla il flusso di controllo fra i motori. La struttura riceve un problema di verifica da un'applicazione e tenta di risolverla instantiating uno o più motore in una sequenza o in un insieme customizable delle sequenze. Ogni motore di verifica è configurato per realizzare una verifica specifica obiettiva e può essere codificato contro un api comune per facilitare lo scambio di informazioni fra i motori. I motori di verifica possono includere i motori di riduzione, che tentano di facilitare un problema modificandolo o decomponendolo ed i motori di decisione, che tentano di risolvere i problemi che sono passati loro. Mentre un problema di verifica è passato da un motore al seguente, il motore può alterare il problema di verifica tali che un motore di decisione alla conclusione della sequenza può ricevere un problema di verifica che è più semplice risolvere che il problema originale specificato dall'utente del sistema. Se il motore di decisione può risolvere un problema determinando un dichiarare o la sequenza di dichiara che produce un valore specificato su un nodo specificato del disegno, il motore passa la sequenza risoluta al motore che la ha invocata sotto forma d'una traccia di contro-esempio dopo la modificazione esso "undo" che cosa effetto può avere sul problema. I motori possono anche imparare i fatti, quale un faro che serve da sussidio a risolvere il problema di verifica e passano questi fatti agli altri motori.

 
Web www.patentalert.com

< Method and apparatus for a mobile multimedia java framework

< Cross-process common system resource data sharing

> Computer-based automatic document formatting method

> Method and system for a timing based logic entry

~ 00102