Ace Verification Homepage

Services

Courses

Reference Materials

GLOSSARY : 'e' Language

 

The “e” language was the first commercially available HVL. It was created by Yoav Hollander and Amos Noy.  The concept originated as an attempt to formalize the specification language; in theory an engineer could write the Spec in the ‘e’ language (e for English) and then run the specification with the “Specman” tool and verify that the design meets specification.

In practice, we develop a “specification” and “simulation environment” separately and thus need to verify that both the design meets specification and that the simulation environment meets the specification.

The e language was the first language to incorporate a constrained-random generator, stimulus engine, and checker capabilities into one tool.  This gave the users the ability to write their whole testbench in one language. Before the e language users had to create random data in one tool, drive it with additional modules (usually in the HDL) and post-process their results in order to check the execution was correct.

The e language also brought to life the concept of Aspect Oriented Programming (AOP). This gives ‘e’ users the ability to extend code to add in additional constraints, functionality or to override functionality. Differing from object oriented, Aspect oriented allows users to extend the functionality for only certain “aspects” of the base class.

Let’s see the following example:

struct packet {

     direction : [RX, TX];   // Enumerated types

     pkt_kind : [IP, IPX];  

     print_me() is { out(“I am an “, pkt_kind, “ packet”); };

};   

 

// Extends the functionality for all RX packets

extend RX packet {

      print_me() is also { out(“I am also an RX packet”); };

};

 

// Overrides the functionality for all IP packets.

extend IP packet {

      print_me() is only { out(“I am an IP packet”);

};

 

Results:

   An IPX TX packet will print “I am an IPX packet”

   An IPX RX packet will print “I am an IPX packet” “I am also an RX packet”

   Both IP packets will print: “I am an IP packet”

 

 

The 'e' language is in the process of becoming an ieee standard, though nobody is really sure what the impact of that is on the industry, if at all.

 

 

 

If you discover any factual mistakes please refer them to: glossary@aceverification.com  

 

 


Design right. Verify right. Ace Verification


About Us | Careers | Contact Us
Copyright © 2004 Ace Verification Corp. All rights reserved.