Previous Section Next Section

B.1 History of e

The history of the e language is rich with stories of seemingly insurmountable challenges, incredible innovations, magnificent triumphs, and an untold number of everyday successes. Specman Elite, and the e language it is based upon, represent that history in many, many ways. The strength of the e language for functional verification has fueled its rapid adoption and has driven the commercial success of Verisity Design, Inc. As you might expect, the histories of e and Verisity are intertwined and are based upon the direct verification experiences of their forefathers. Quite commonly, the most innovative Electronic Design Automation (EDA) tools are invented by engineers who use them for their own success, and the stories behind e and Verisity show how important this can be for the health of the industry.

The e language was invented by the founder and CTO of Verisity, Yoav Hollander. It came into being at a time that Yoav was providing verification consulting for leading edge companies in his home country of Israel. While performing this work, he was frustrated by the fact that his efforts to create a verification environment were lost when he moved to a new project. Each environment was custom developed and not reusable. By the early '80s Yoav and his team were creating innovative verification environments using random test generation and repeatable generation of tests for several of their projects. By 1992 an early version of the e language and a prototype of Specman Elite were in experimental use at National Semiconductor and Digital Equipment Corporation. Verisity was formed (initially as InSpec) in late 1995 in order to bring Specman Elite to market. Specman Elite was introduced to the market during the Design Automation Conference of 1996.

Yoav drew from his extensive software experience and exposure to powerful languages such as SmallTalk, Eiffel, Perl, C++, as well as the CobaltBlue and DeltaBlue constraint languages. His goals for meeting the requirements of functional verification led him to Aspect-Oriented Programming (AOP), a level of extensibility beyond Object Oriented Programming. AOP allows for the explicit extension and changing of very base building blocks of a verification environment hierarchy. This was important to enable the specification of a basic verification environment and the creation of specific tests which drove the verification environment in various unique ways. Thus AOP is one of the building block concepts of the e language. The building blocks of the e language remain the same today as at its inception: test generation, results checking, and coverage measurement.

The language itself is strongly typed, by use of a simple inheritance scheme. It is pointer free and has built in garbage collection capabilities for managing memory usage. There is a familiar regular expression syntax, as well as more comprehensive built in list types and operations. The layering scheme of the language provides the AOP abilities.

As Yoav and Verisity expanded the reach of Specman Elite to more customers, a verification community formed around the concepts of constraint-driven test generation. The importance of an expressive specification language and strong algorithm led to several generations of technological advancements. For example, the third generation constraint solver was completed in 1997. It supported multidirectional constraints, enabling the declarative nature of e as it is used today. This close collaboration with customers created a de facto standardization of the e language and the rapid adoption of Specman Elite.

This broadening of the user base led to many layers of innovation. Verisity's large research and development team extended Specman Elite's abilities, building unified behavior of methods and processes, and multithreading evaluation. Temporal language, assertions, and events were introduced for more concise expressions. Coverage capabilities were added to enable verification teams to plan and measure a design's readiness for tapeout.

By 1999 Verisity supported a rapidly growing list of third-party verification tool integrations. The demand for efficient interaction between tools led to the introduction of units to the e language and the beginning of a project to define and deliver an External Simulator Interface (ESI). The ESI makes supporting and adding simulator integrations much more efficient, and because it is a public interface, it enables outside parties to do that work.

The Verisity user community continued its rapid growth during this time, especially as the design community began to create increasingly complex System-on-Chips (SoCs), which stressed older verification technologies far beyond their inherent limitations. The sharing of intellectual property between projects and companies, which has made SOC design so successful, also introduced verification challenges which drove Verisity to define a functional verification methodology to support these advanced requirements. In 2002, this effort resulted in the e Reuse Methodology, or eRM, culminating many staff-years of cooperative effort with customers and verification consultants. At this time Verisity also invented the concept of e Verification Components, or eVCs. An eVC is a verification application that is built by means of the eRM technology, perhaps by Verisity, by a third party, or by an end user. An eVC encapsulates all of the essential functional components needed to verify that a device is compliant with a protocol, including generation, checking, and functional coverage, into a single entity that can be simply added to a verification environment with a simple command.

These same trends in design complexity drove the need to support system level verification requirements. Support for hardware accelerators became crucial for Verisity's largest customers. To facilitate this, a synthesizeable subset of the e language was defined, which enables higher frequency verification environment constructs to be accelerated along with the design. The addition of ports was a direct result of the work to accelerate verification environments.

Now more than ever, functional verification is critical to the successful delivery of high-quality electronics. Not only have chips increased in size and complexity, but system and embedded software verification are becoming crucial for product viability. The work to innovate methodology and technology to address the seemingly intractable challenges of functional verification still continues at Verisity. The e language and Specman Elite continue to lead the way, enabling first-pass success for its users.

Previous Section Next Section