# E (llenguatge de verificació)

e és un llenguatge de verificació de maquinari (HVL) que està dissenyat per implementar bancs de prova de verificació altament flexibles i reutilitzables.

## Història

e va ser desenvolupat per primera vegada el 1992 a Israel per Yoav Hollander per al seu programari Specman. El 1995 va fundar una empresa, InSpec (més tard rebatejada Verisity), per comercialitzar el programari. El producte es va presentar a la Conferència d'automatització del disseny de 1996. Des de llavors, Cadence Design Systems ha adquirit Verisity.

## Característiques

Les principals característiques d'e són:
* Generació d'estímuls aleatoris i restringits
* Definició i recollida de mètriques de cobertura funcional
* Llenguatge temporal que es pot utilitzar per escriure afirmacions
* Llenguatge de programació orientat a aspectes amb capacitat de reflexió
* El llenguatge és DUT neutre, ja que podeu utilitzar un únic banc de proves per verificar un model SystemC/C++, un model RTL, un model de nivell de porta o fins i tot un DUT que resideix en una caixa d'acceleració de maquinari (utilitzant l'acceleració UVM per a la metodologia e )
* Pot crear codi altament reutilitzable, especialment quan el banc de proves està escrit seguint la Metodologia de verificació universal (UVM)
** Antigament coneguda com a Metodologia de reutilització electrònica (e RM)
** La biblioteca i la documentació de l'UVM es poden descarregar aquí: UVM World
El llenguatge e utilitza un enfocament de programació orientada a aspectes (AOP), que és una extensió de l'enfocament deprogramació orientada a objectes per abordar específicament les necessitats requerides en la verificació funcional. AOP és una característica clau que permet als usuaris connectar-se fàcilment amb funcionalitats addicionals al codi existent d'una manera no invasiva. Això permet una fàcil reutilització i manteniment del codi, cosa que és un gran benefici en el món del maquinari, on els dissenys s'ajusten contínuament per satisfer les demandes del mercat al llarg del cicle de vida del projecte. AOP també s'ocupa de les preocupacions transversals (funcions que tallen diverses seccions del codi) fàcilment, permetent als usuaris ampliar les instàncies específiques o totes d'una estructura concreta per afegir funcionalitats. Els usuaris poden ampliar diverses estructures per afegir funcionalitats relacionades amb una característica concreta i agrupar les extensions en un sol fitxer si ho desitgen, proporcionant una partició de fitxers més organitzada.

## Suport a la programació orientada a aspectes en e

El procés de verificació funcional requereix augmentar el nivell d'abstracció de qualsevol disseny sota prova (DUT) més enllà del nivell RTL. Aquesta necessitat requereix un llenguatge que sigui capaç d'encapsular dades i models, que estigui fàcilment disponible en llenguatges orientats a objectes. Per fer front a aquesta necessitat, s'ha dissenyat per ser un llenguatge orientat a objectes i, a més, s'ha augmentat amb mecanismes orientats a aspectes que faciliten no només escriure bancs de proves altament flexibles i reutilitzables, sinó que també ajuden els enginyers de verificació permetent pedaçar RTL descobert. errors sense haver de reescriure ni tocar cap de la base de codi ja existent.
La programació orientada a aspectes en e permet als enginyers de verificació estructurar el seu banc de proves en aspectes. Per tant, un objecte és la suma de tots els seus aspectes, que es poden distribuir en diversos fitxers. Les seccions següents il·lustren els mecanismes bàsics orientats a aspectes a e.

## Referències

* ↑ «1647-2019 - IEEE Standard for the Functional Verification Language e» (en anglès). [Consulta: 19 abril 2024].
* ↑ «Understanding the “e” verification language» (en anglès). [Consulta: 19 abril 2024].
* ↑ «e» (en anglès americà). [Consulta: 19 abril 2024].
* ↑ e as a Verification Language (en anglès). Boston, MA: Springer US, 2004, p. 81–101. DOI 10.1007/1-4020-8024-7_5. ISBN 978-1-4020-8024-1.