Browse Prior Art Database

Automated Modular ECO Flow

IP.com Disclosure Number: IPCOM000204675D
Publication Date: 2011-Mar-09
Document File: 7 page(s) / 676K

Publishing Venue

The IP.com Prior Art Database

Abstract

Engineering Change Orders (ECO) refer to changes introduced to a design during the design cycle when most of the quality metrics in terms of routability, timing, etc. have already been met. ECOs can be classified as pre and post mask ECOs. A pre-mask ECO is a change that occurs when the design has passed the synthesis stage and post-layout activities like placement, clock tree synthesis and routing are being performed. On the other hand, a post-mask ECO is required when the design has been taped-out and a late enhancement request is put forward by the customer or a bug is identified during post-silicon validation. ECOs are a necessity as they have several advantages over the default flow in terms of lower fabrication cost with metal only changes and shorter design time as opposed to re-running the complete flow.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 42% of the total text.

 Automated Modular ECO Flow

Engineering Change Orders (ECO) refer to changes introduced to a design during the design cycle when most of the quality metrics in terms of routability, timing, etc. have already been met. ECOs can be classified as pre and post mask ECOs. A pre-mask ECO is a change that occurs when the design has passed the synthesis stage and post-layout activities like placement, clock tree synthesis and routing are being performed.  On the other hand, a post-mask ECO is required when the design has been taped-out and a late enhancement request is put forward by the customer or a bug is identified during post-silicon validation. ECOs are a necessity as they have several advantages over the default flow in terms of lower fabrication cost with metal only changes and shorter design time as opposed to re-running the complete flow.

Here we discuss the challenges faced during the logical implementation of pre-mask ECOs between netlists at two different design stages and also suggest an Automated Modular ECO flow.

ECO is the insertion of logic directly into the netlist late in the design cycle. An ECO is a preferred choice as it saves time by avoiding the need for full logic synthesis.

                           

                             Fig. 1. Design with bugs to be fixed in netlist

Typically, ECOs are done manually.  The challenges faced in the implementation of manual ECOs are: 

•      The netlist has to be traced manually to identify the logic affected by the change, the netlist is then edited to integrate the changes across the hierarchies. The changes made need to be verified to make sure exactly what needs to change gets changed and nothing more.

•      The process is time and resource consuming and as is done manually is prone to errors, this results in a number of iterations of logical equivalence checks and new logic implementation.

•      Also the change is not implemented just once but in various netlists at different levels of abstraction, that are in existence at that point in the design cycle.

•      Another issue with manual implementation is that it gets increasingly difficult to trace the change and the corresponding node with increased level of optimization in the netlist.

•      Hence, an Automated ECO flow is required to implement complex ecos in shorter span of time

•      ECOs usually occur inside an IP /module so a modular ECO flow is required to save runtime and minimize the logic regeneration complexity. 

A modular ECO is the most suitable solution but it has a number of challenges in the implementation these challenges are because of multiple boundary optimizations steps which make individual module non-equivalent whereas the module merged in chip top is equivalent. Different cases of boundary optimization are:

Case 1.  Boundary Optimization: Inverter Push/Pull across hierarchies – Here, inverters are pushed inside or outside a hierarchy making its sub-ports i...