PRODUCTS

The product, marketed under the name Zazz™, was developed with one goal in mind: increasing productivity for engineers adopting and utilizing Assertion Based Verification (ABV). Using Zazz to create and manage assertions ensures consistency of assertion use across a design team or company.

ABV’s full potential has not been realized because:

ZAZZ FROM ZOCALO TECH

Zazz addresses these issues via the following tool features:

Bird Dog

Identify Assertion Candidates

The key to using assertions effectively is the ability to determine which signals are critical and require validation of the signal state. Sometimes it is easy to identify these signals, as they may be ports or part of a signaling protocol. Often, however, the mere number of signals present in a design is overwhelming to an engineer tasked with adding assertions throughout the design process. Zazz analyzes the design code and provides the user with a prioritized list of signal candidates, allowing engineers to quickly begin creating assertions within the design. In prioritizing the list of signal candidates, Zazz highlights the important internal signals, which may be overlooked by engineers when adding assertions manually.

Once the target number of assertions is known via Bird Dog, management can scope the cost of adding assertions thereby reducing the open ended nature of ABV.

Visual SVA

Visual SVA is a graphical tool providing the ability to easily create, debug and manage assertions at any level of complexity without dealing with the difficulties of using the SVA language.

Create Assertions

Most engineers can learn to use simple SVA constructs with a short tutorial, a reference card, and a lot of practice, but the real power of SVAs is in using them to define richer, more complex constructs that convey the behavior of logic more precisely. This can only be accomplished when describing not only causality, within a single sequence of events (for example: this implies that), but also the concurrency between different events. Since SVA is expressed in a textual format, it is inherently difficult to convey and understand concurrency. The Visual SVA feature of Zazz shatters this barrier by allowing engineers to construct complex SVAs in a two-dimensional form, mimicking how engineers would diagram assertions on a whiteboard. In short, it allows engineers to write SVAs in “short-hand,” while Zazz handles the coding of the complex assertion, eliminating the need for an engineer to have the in-depth knowledge of SystemVerilog normally needed to do this level of code. The engineer can also use the short-hand Visual SVA to document the assertion within a verification plan or as a reminder of the true meaning of the assertion for future reference.

Figure 1 is an example of a typical Visual SVA completed code and an example of automatically generated SVA code shown in Figure 2.

VISUAL SVA CODE

SVA CODE EXAMPLE

Debug Assertions

Simply creating assertions doesn’t guarantee that the assertions are valid. As with all logic, assertions must be verified to ensure that they are properly coding the underlying rules or behavior within the logic. In fact, adding poorly-coded assertions (or assertions that too loosely describe behavior) can actually increase verification time since these may cause false-failures which most also be debugged. Usually assertions cannot be debugged until a testbench relative to the design has been created. However, Zazz’s Visual SVA creates an independent randomized testbench around each individual assertion, runs a quick simulation, and allows the user to see sets of valid waveforms that should conform to the assertion being debugged.

The resulting wave forms allow the user to almost immediately examine the output for the intended results. The randomized testbench and simulation is created by supporting and interfacing to any of the major EDA vendor simulator. A typical wave form display is shown in Figure 3.

WAVE FORM DISPLAY

While the waveforms cannot prove that the assertion is valid, they can visually close the loop between what the user intended to convey in the assertion and what the assertion actually conveys. It also enables users to identify potential coding issues within the assertion, such as multiple-start conditions or other behaviors that may slow simulation or cause unintended failures. This is yet another failsafe that allows for complex coding of SVAs without an in-depth knowledge of SystemVerilog on the part of the user. Zazz’s tolerant elaboration mode works seamlessly within this environment to enable designers to progress on their design blocks regardless of whether the entire design is complete.

Manage Assertions

Today, assertion use is primarily at the block level, added in-line as a permanent part of the design code. This is the easiest way to add assertions; however it is not a good practice.

Zazz addresses these issues by providing consistency across a design team or company for assertion use with capabilities that include:

Metrics

Metrics is an extension of Bird Dog providing the project team with an on-going progress report relative to the quantity and quality of the assertions added during the project versus the target.

As Metrics elaborates the assertion populated design, it also counts the number of assertions touching each signal within the design. A summary of the number of assertions found at each level of the hierarchy is displayed in the module browser, and a count of how many assertions that touch each signal candidate is displayed in the candidate browser. As a result, engineers can quickly identify which modules and signals are in need of further assertions. Metrics also detects the quality of the assertions based on the density of the assertions within the design and their relationship to the candidate list and complexity. On a longer term basis, metric reports associated with completed designs provide a basis to measure the value of using assertions. As the company moves from ad-hoc use of assertions or to higher value assertions, Metrics provides a historical base to measure the effectiveness of this ABV growth path.

Migrate

For legacy designs that already have assertions, it is important to have a migration path to assure all assertions have a consistent structure compatible with Zazz. Migrate provides this capability by automatic conversion of legacy assertions to full compatibility with Zazz.

Examples of Migrate are provided in the following screen shots.

RENDERED ZAZZ VISUAL VIEW ON TOP

RENDERED ZAZZ VISUAL VIEW CONVERTED TO CODE FORMAT ON TOP

Zazz Infrastructure

User Interface

Zocalo considers ease of use a major factor in the acceptance of a software tool. EDA tool development has traditionally lacked this emphasis. Zocalo’s CTO has an “Apple like” zealot view on this issue based on all of the EDA tools that he has suffered with during his early career as a verification engineer. The designer’s perspective is provided by a consultant acknowledged as a top designer in the local area. To this end the Zazz GUI (graphic user interface) is based on the latest user interface capabilities. The priority is to assure the Zazz GUI provides the user with a highly positive experience with the application.

Ease of use is further emphasized by Rajiv Kumar (Vice President of Engineering at Real Intent, Inc) in his viewpoint article Imagining Verification Success. “EDA developers need to have a very active imagination. They need to imagine becoming their own end users. Sometimes they may become the designer, sometimes the verification engineer or perhaps even the design manager. This role play is essential for creating tools that will be embraced by the designers or else they are going to be just one-tool-wonders. For an EDA tool to become a regular tool in a designer’s tool chest, it needs to have a very high usability quotient, and a role play is essential for creating that”.

Zazz major user interface features include:

Design Database Support

Zazz is Linux–based and supports any mix of Verilog 1995, Verilog 2001 and SystemVerilog design files. Zazz is built on an advanced incremental parser/elaborator and design viewer. An existing design or new design can be read into Zazz and parsed, elaborated, and graphically displayed and modified with the user’s editor of choice without leaving Zazz. When a design is modified and saved, it is incrementally parsed and elaborated. The incremental feature, along with the built in modification monitoring provides fast update to the graphical display along with feedback on any errors.

Design Viewer

Zazz’s Design Viewer is not the typical design browser. The Design Viewer is an advanced design viewing, navigation, and modification monitoring application. When a design element is selected in the Design View, the Source panel displays the associated source code. This feature gives the user direct access to the RTL regardless of its location in the file system. Direct access can be a major time saver, especially for users not intimately familiar with the entire design file structure.

In addition to the standard design hierarchy browsing, Zazz provides a powerful regular expression (regex) search of various name spaces: Module, Instance, Binding, Interface, Task, and Function. For example, when the Module name space is selected with no regex expression, Zazz displays how many modules exist in the design and allows the user to step through them. With the Module name space selected and a search expression of “ram” is entered, Zazz displays how many module names end in “ram”. The user may step through the list, selecting each one in turn, with the Source panel displaying the RTL code.

The ability to find syntax or elaboration errors in real time plus the navigation features of searching the design file structure to locate files of interest for viewing and/or modification can save untold hours over the life of the project. The Log panel contains links to the errors and warnings encountered. Clicking on a link changes the Log panel to a view of the source file with the error highlighted. If the Edit File icon is clicked then an Editor panel is opened with the cursor close to where the error/warning occurred. Icons in the source view in the Log panel allow the user to step to the next or previous error/warning. The Zazz Design Viewer represents a major productivity advantage for the user even when assertions are not being used.

The ability to access these browsing capabilities without leaving the user’s editor makes the user want their own copy as opposed to sharing. The Design Viewer increases the “usability quotient” - and increases the probability that Zazz will “become a regular tool in a designer’s tool chest”.

Home |  White Paper |  Products |  News |  About Us |  Partners |  Contact Us |  Resources
Copyright © 2009 - 2010. All rights Reserved. Zocalo Tech, IncLegal Disclaimer Privacy Policy