Synopsys Logo
    HELPING YOU DESIGN THE CHIP INSIDE


DESIGN IMPLEMENTATION
VERIFICATION
INTELLECTUAL PROPERTY
DFM/TCAD
DESIGN SERVICES
Arrow NEWSROOM
Arrow PLATFORM & RELEASES
Arrow PUBLICATIONS
Arrow CUSTOMER EDUCATION

Arrow SOLVNET
Arrow SEARCH FOR IP
Arrow SVP CAFE
Arrow SNUG

Success Stories

Synopsys & ECI Telecom

Formal Verification of a Complex Networking Chipset with Formality

PDF Icon

"Without Formality in the design process, we estimate that we would have spent at least a further 4-6 weeks on each ASIC in simulation and verification. Formality has been a critical part of our rigorous approach to the verification process for these three complex, high-performance ASIC’s."

Assaf Sagir, Verification Specialist
ECI Telecom's Network Systems Group


Solution

  • Formality®

Benefits

  • Reduced simulation and verification by 4-6 weeks
  • Elimination of functional errors
  • Reduced script development time to automate the verification process
  • Easy integration into synthesis flow


ECI Telecom is a world leader in integrated network solutions. Built on a solid foundation of customer commitment and technological excellence, ECI Telecom provides leading-edge digital telecommunications and data transmission systems to Network Service Providers around the globe. By deploying ECI Telecom’s "Do More" products in their telecommunications infrastructure, Service Providers can make their networks more competitive-offering everything from cost-effective expanded capacity and boosted performance to new profit-generating subscriber services.

Assaf Sagir is a formal verification specialist in the ASIC Research and Development Network Systems Group at ECI Telecom. Here, he describes the critical role that Synopsys’ Formality played in tackling the design of multiple ASIC’s for a complex SDH system.

The ASIC R&D team specializes in IC design for network equipment, in particular SDH products such as add-drop multiplexers and cross-connect switches. The customer for our most recent ASIC project was our own internal system design team, engaged on developing a new SDH product.

The project required the design of a chipset for this application that consisted of three complex ASIC’s-with even the smallest design in excess of 2-million gates. All the designs had clock speeds of well over 100MHz and featured multiple clocks, including high-speed clock recovery schemes. We were targeting Lucent Microelectronics’ 0.18-micron process technology.


Complexity and Schedules

Each ASIC design was started at a different time, with the aim of synchronizing delivery to the system engineers for integration into the final product. With a project duration of some 18 months and with scheduled tape-out dates all falling within three weeks of each other, the critical issue became keeping all the designs to the project timescale.

Failure of any of the devices would set the whole project back by at least two months.

Needless to say, we really wanted these devices to work to specification first time round. This was one of the most compelling reasons for considering the use of formal verification on the project. Adopting any new methodology on a large project represents a risk. In order to minimize this risk and the time associated with the change in methodology, we structured the project teams so that we had a mixture of dedicated designers on each project backed up by a number of methodology specialists floating between projects to provide specialist services. On average, over the life of the project we had around five dedicated designers per chip, with a total of five specialists overall in back-up roles. This turned out to be a successful strategy, demonstrated by the efficient use of Formality within the project on all three designs. After spending limited time learning the tool through experimentation on some of the ASIC modules and gaining a thorough understanding of the design flow issues, I tackled the formal verification of the first ASIC. I estimate we spent approximately five to six weeks in developing scripts to automate the verification process and actually running verification on the chip. For the second ASIC, this time fell to around four weeks and for the third to less than three weeks. This really demonstrated the value of gaining experience with the tool and new methodology.


Verification Process

Elimination of functional errors is so critical that we take a very thorough approach to simulation. Once the RTL for a module has been developed and simulated, it is handed off to another member of the design team who will take their own interpretation of the specification and run independent simulations on the block to ensure conformance to specification. Once all blocks have been integrated, we establish conformance of the reference design by running extensive simulations on the top-level RTL. Some 60-70 percent of the entire project is spent running simulations and verification.

In adopting Formality, we have replaced most-but not all-of our gate-level simulations. In adopting a new tool, it is very important to build confidence gradually.

For this reason, and because formal verification supports such a critical part of our design process, we continued to run some gate-level simulations during the verification stages. In the future, as we gain more confidence in the tool and our ability to use it, we see gate-level simulation reducing further. Formality was used for both RTL-gate and gate-gate comparison as shown in Figure 1. Early in the design we used formal verification to validate the synthesis process. This was a quick process-we didn’t expect to find any problems, and in fact found none.

Nevertheless, verification of the synthesis process was very important in building confidence as the development progressed. We found that the real value of using Formality in the design flow was during the back-end stages of design. In order to meet the timing requirements, in the later design stages our own designers made manual changes to the netlist and our vendor, Lucent, performed layout-based optimizations. Formality proved to be of major benefit in verification of these changes.

Formality in the verification process

Figure 1 - Formality in the verification process


Back-end Bug Alert

At least one bug was discovered, introduced into a design when two sets of signals were disconnected and inadvertently switched before reconnection. Formality alerted us to this soon after the change was made so that we were able to correct it without any significant penalty.

This particular error would have taken a long time to discover using conventional simulation: it is quite possible we may not have discovered it until we tested the first samples..

It is not overstating the case to say that letting this error through would have been a catastrophic disaster, setting the project back at least two months, with significant cost implications.

Using scripts enabled us to develop an automated approach to verifying the netlist at very regular intervals during the backend design stages-such as after test insertion, and after timing optimizations performed either by the ECI design team or by Lucent. The TCL scripts were structured so that verification could be initiated at any point in the hierarchy- from standalone verification of lower-level blocks to complete verification from the top level.


Best Practice

Although much of the work with Formality was done at the shell level through scripts, we used the graphical user interface (GUI) to pinpoint any problems we found. Using scripts offers the best performance-in both speed and memory-enabling automation of repetitive tasks and providing control of overnight verification runs.

The Formality GUI offers an excellent way of pinpointing problems. For example, it shows a comparison of two sub-cones up to the failing point-and the patterns, or vectors, generated in the verification process that caused the comparison to fail. Use of the GUI really assisted our working practices. For example, when I discovered an inconsistency, I could sit with the designer in front of the GUI and we could interactively isolate the problem very efficiently. Some switch designs, although complex, contain elements of replicated functionality and so allow a modular approach to be taken to both design and verification. One design consisted of four instances of a block, each with a further three levels of hierarchy-consisting of 30 or 40 modules in total. Full verification of this design at the top level took in excess of 13 hours, and used a lot of memory. Once the main block had been verified, we could replace the instances with a "black box" representation.

This enabled us to verify the peripheral logic at the top level much more efficiently-reducing the run time to six to seven hours. This is an elegant solution to the verification time, but just add a word of caution here: it is essential to ensure that the black-box representation has identical behavior to the fully functional block that it replaces. We took a lot of care in checking the implementation design against the reference to ensure they were identical in behavior before substituting the black box.


Robust Verification

One of our main concerns in adopting Formality was that we were introducing a tool into the design flow that was checking the quality of other Synopsys tools-that is, Design Compiler synthesis. We were concerned that, if there was any overlap in the Synopsys development teams, or any code re-use, then there was a danger that Formality could be vulnerable to the same errors that Design Compiler might have introduced.

We were reassured to learn from Synopsys that the parsing block used in the Formality front-end was completely new technology, and that the new HDL reader was developed independently from other Synopsys tools, ensuring objective interpretation of HDL constructs. This was also demonstrated to us in a particular block, which a certain VHDL code style was interpreted slightly different by Design Compiler and Formality.


Summary

All three ASIC’s are currently being integrated into the system design. So far, all three have produced correct test results and work to specification. Without Formality in the design process, we estimate that we would have spent at least a further 4-6 weeks on each ASIC in simulation and verification. Formality also flagged a critical bug that was introduced as a result of manual optimization, which would probably not have been found using dynamic simulation alone. Formality has been a critical part of our rigorous approach to the verification process for these three complex, high-performance ASIC’s. We are highly likely to increase our usage of Formality on future projects.