For EDA software, it seems that it takes just as much effort to develop a methodology to use the software, as writing the tool itself. Ask any CAD group or design group that has to develop their own methodology and you can quickly gauge the many challenges in building a flow for your favorite EDA tool.
Why is it so hard to build and maintain a working flow? There are many reasons. First of all, EDA tools change. Updates, revisions, bug fixes etc - all these change the way the tool is used, sometimes incrementally, or sometimes in a drastic way. Secondly, every design is unique in at least a couple of ways. Design requirements (whether it's a low power design, or a 32nm design that needs advanced node capabilities, or both) dictate the necessity of steps needed in the design flow.
EDA companies have all tried to create flow wrappers that cater for every design (similar to a makefile system), but there are challenges in that too - with unique design requirements in each design, as well as ever-changing use models, creating an all-encompassing design methodology system is difficult.
One thing that EDI System has done is not to focus on creating a comprehensive flow wrapper, but a set of "Foundation Flows" that act as a baseline for user-customizable flow scripts. These Foundation Flows are based on a specific need, e.g. a Timing Closure Foundation Flow, or Low Power Foundation Flow, and contain a set of commands that are usually used by designers, in the order they are usually done. Foundation flows are available starting EDI System 8.1.
In your design environment today, how is the issue of flows handled? Is there a central group that handles flow-related issues for design groups? Do you use a makefile system? Or do design teams build their own custom flow for each project? Most importantly, do you think flow management should be provided by the tool? Sound off in the comments section!
Wei Lii Tan
Cadence Design Systems