The present invention adds capabilities to a Hardware Verification Language
(HVL) which facilitate the monitoring of a device under test (DUT). The
HVL language supports Object-Oriented Programming (or OOP). Within this
OOP framework, the present invention provides a monitoring facility
comprised of three main stages: i) Coverage Definitions, ii) Coverage
Instantiation and Triggering and iii) Coverage Feedback. A coverage
definition is very similar to an OOP class definition, but does not
contain methods or variables. Instead, the basic purpose of a coverage
definition is to declare "monitor bins" in terms of a state variable.
Essentially, each monitor bin declaration has a unique bin name which is
associated with a particular behavior of the state variable and the unique
bin name is used to record the state variable's behavior. Instantiation of
a coverage definition produces a coverage instance. Two key instantiation
parameters are: an actual state variable that is to be monitored by the
instance and a trigger expression which determines when the state variable
of the instance is to be monitored. Instantiating means that a concurrent,
non-terminating, "coverage instance process" is also forked off. The
"foreground" thread of control which forked off the coverage instance
process may continue to operate and subject a DUT to stimuli. The DUT's
responses to such stimuli may be monitored by the coverage instance
process and stored as data associated with the coverage instance. The same
foreground thread of control subjecting the DUT to stimuli can also query
the resulting state of the coverage instance's data. This ability to query
a coverage instance's data make possible "closed loop" testing since the
foreground thread of control can subsequently alter further stimuli
generated for the DUT based upon the results of its query.
De onderhavige uitvinding voegt mogelijkheden aan een Taal van de Controle van de Hardware (toe HVL) die het toezicht op een apparaat in onderzoek vergemakkelijken (DUT). De taal HVL steunt Object-Oriented Programmering (of OOP). Binnen dit kader OOP, verstrekt de onderhavige uitvinding een controlefaciliteit die van drie belangrijke stadia wordt samengesteld: I) De Definities van de dekking, de Konkretisering van de Dekking ii) en het Teweegbrengen en de Terugkoppeling van de Dekking iii). Een dekkingsdefinitie is zeer gelijkaardig aan een OOP klassendefinitie, maar bevat methodes of geen variabelen. In plaats daarvan, het basisdoel van een dekkingsdefinitie is "monitorbakken" in termen van een staatsvariabele te verklaren. Hoofdzakelijk, heeft elke verklaring van de monitorbak een unieke baknaam die met een bepaald gedrag van de staatsvariabele wordt geassocieerd en de unieke baknaam wordt gebruikt om het gedrag van de staatsvariabele te registreren. De konkretisering van een dekkingsdefinitie veroorzaakt een dekkingsinstantie. Twee zeer belangrijke konkretiseringsparameters zijn: een daadwerkelijke staatsvariabele die door de instantie en een trekkeruitdrukking moet worden gecontroleerd die bepaalt wanneer de staatsvariabele van de instantie moet worden gecontroleerd. Het concretiseren betekent dat gezamenlijk, niet-eindigend, "het proces van de dekkingsinstantie" weg ook vertakt is. De "voorgrond" draad van controle die zich van het proces vertakte van de dekkingsinstantie kan blijven een DUT in werking stellen en onderwerpen aan stimuli. De reacties van DUT op dergelijke stimuli kunnen door het proces van de dekkingsinstantie worden gecontroleerd en als gegevens worden opgeslagen verbonden aan de dekkingsinstantie. De zelfde voorgronddraad die van controle DUT onderwerpt aan stimuli kan de resulterende staat van de gegevens van de dekkingsinstantie ook vragen. Deze capaciteit om de gegevens van een dekkingsinstantie te vragen maakt mogelijke "gesloten lijn" testend aangezien de voorgronddraad van controle verdere stimuli kan later veranderen die voor DUT worden geproduceerd die op de resultaten van zijn vraag wordt gebaseerd.