IC design is not getting any easier. With increased gate counts, higher clock speeds, smaller chip sizes and reduced power requirements, designers have a very difficult task. Today's virtual prototyping and chip-implementation tools are powerful and address several key deep-sub micron issues, but there remains a fundamental conundrum. Precise constraints on chip timing, upon which the design ultimately succeeds or fails, remain in a state of flux throughout the design cycle. False paths and multi-cycle paths are typically entered only in response to timing problems. As timing problems seriously manifest themselves only during place & route, this is late in the design cycle to be tweaking your fundamental timing goals. All of this results in extra timing closure iterations, the risk of silicon failure because of incorrect user-specified timing exceptions, chips that consume more area and power than they should, and a messy handoff from chip design to implementation teams. FishTail Design Automation has developed ground-breaking, patented technology to solve this problem, reducing design cycle time, reducing risk and improving design quality.
 

FishTail's constraint generation product, Focus, starts with the RTL description for a design. Focus generates a template clock definition file that specifies the ports and pins on the design on which clocks and generated clocks should be defined. The template constraint file also specifies input/output delays by establishing the clocks used to constrain paths to and from the ports on a design. A converter from sdc to xls and back allows users to view the template constraints in Excel, change clock names, periods, i/o budgets, scale values for different corners etc. Once the clock and i/o constraints are in place Focus is used to generate clock groups for the design. Focus analyzes the clock generation logic and the clock crossings on a design to establish which clocks are exclusive to each other, whether the clocks are logically or physically exclusive, whether clock sense commands are required to control clock propagation. With the correct clocks, i/o constraints, clock groups and clock senses in place a significant milestone on constraint quality is achieved in a matter of minutes or hours and well before any serious chip implementation work commences. Optionally, Focus can also be used to generate timing exceptions (false and multi-cycle path definitions). False paths generated by Focus result from the manner in which combinatorial control logic affects the flow of information on a chip. Multi-cycle paths generated by Focus result from the use of control logic to cause additional clock cycles to be inserted when propagating information from one register to another. All timing exceptions generated by Focus are delay-safe and so it is impossible under any circuit delay situation to propagate a glitch through a Focus generated false or multi-cycle path that will cause timing failure. Focus generated timing exceptions can be filtered using third-party synthesis or STA tools to yield a handful of timing-critical exceptions that will improve design timing, reduce area and power. Finally, Focus is used to merge multi-mode constraint files into a single super-mode constraint file. The objective being to cut P&R runtimes by half using the super-mode constraint file in P&R when compared to multi-mode P&R.

FishTail’s constraint verification product, Confirm, reads in the RTL and user-written design constraints. Confirm is a separate product from Focus and uses a separate body of code, different algorithms to verify design constraints. Confirm is first used to verify clock constraints (unclocked registers, missing or incorrect generated clock definitions, missing or incorrect clock groups, clock reconvergence, issues with clock propagation, etc.). Confirm also flags missing i/o constraints and conflicting case analysis values. Once the clock, case analysis and i/o constraints are clean Confirm is used to formally establish if all the paths constrained by a timing exception are indeed false or multi-cycle. Confirm only considers a timing exception to be correct if it is delay-safe. Confirm provides complete information on each timing exception, pointing out all the paths that are correctly constrained by a single exception and those that are incorrect. Users provide Confirm architectural information to take into account static configuration registers on a design and how they are programmed, or debug endpoints that do not need to meet timing, or SVA assertions that forbid certain combinations of signal values. The objective is to use Confirm to get to the milestone where all paths constrained by all exceptions are flagged as passing. When Confirm flags an issue a powerful HTML based debug environment is used to understand and resolve the issue. This HTML environment uses inter-process communication to display paths, waveforms and objects in graphical debugging environments like Verdi. Confirm also supports an assertion-based verification flow for timing exception verification. With this flow, Confirm is used to generate an assertion for an exception that does not pass formal proof. The assertion states the property that needs to be satisfied for a timing exception to be correct. The assertions generated by Confirm are imported into functional simulation tools and verified by running the RTL regressions for the design.

FishTail’s constraint management product, Refocus, is used to map the golden timing constraints for a design to gate-level netlists generated by each step of the implementation flow. The intent is to maintain a single repository of design constraints and to use Refocus to map these golden constraints to the netlist as it evolves through the chip-implementation flow. Refocus also maps gate-level constraints up to RTL, accounting for name changes and hierarchy flattening during the implementation flow. Refocus’s ability to bring gate-level signoff constraints up to RTL allows easy verification of signoff constraints against an RTL design representation. Refocus also promotes IP constraints to the chip-level, allowing IP designers to maintain a single standalone view of their constraints and have an automated tool generated a promoted representation for use at the chip-level. Finally, Refocus is used to establish equivalence between two different constraint files as applied to the same design, or the same constraint file applied to two different logically equivalent representations of the design. The SDC equivalence check capability in Refocus is useful to establish if the constraints applied to a post-route netlist constrain the design in the same way as the constraints applied to a pre-layout netlist.

For more information on FishTail products, please:

     •  Understand their value proposition.

     •  Review their application to chip implementation and verification flows.

     •  Download a white paper.



 


Copyright ©2011 FishTail Design Automation, All rights reserved