print

Software Development Principles Should be Applied to IC Design

The software design development environment has for many years been far more sophisticated than that of the hardware world. Tasks such as revision control, software configuration management (SCM), remote design team support, IP variant management, continuous integration, team collaboration, and code review have become standard fare to software developers, and a wide choice of tools and methodologies have been built to automate these activities.

In the chip design arena, hardware projects need version control and configuration management at least as much as a software project, and perhaps even more so given the high incremental cost of mask-set changes. Design reviews are just as important in the hardware world as code review is for software, and tapeouts would benefit from a way of rapidly determining the impact of a commit to the design repository in the same way that a continuous-build tool is important on a software project. Unfortunately, hardware designers have had very few tools compared to those available to software developers, and as a result have historically been forced to create flows in Perl and other scripting languages to solve what are essentially the same problems.

A few EDA vendors have tried to fill these gaps with "hardware-centric" implementations based on proprietary databases that leverage little, if any, of the technology available in the software world. But, with the size of the EDA user-base dwarfed by that of the software space, it seems to be a major mistake not to draw upon the well-debugged, stable software toolsets. Why, after all, re-invent the wheel when a more stable and evolved tool is already available?

All of this is particularly true in the design data management (DM) space, where the ability to maintain design data integrity across the development process can determine market success. The best possible design will not reach the market within budget or on time if data management allows incorrect or corrupt design data to propagate through the process.

Software developers have long used such tools as the Perforce Software SCM System and the Subversion version control system for revision-control/SCM activities. These tools include mechanisms for multi-site sharing of data and well-thought-out methodologies for managing IP variants across projects. Because design reuse is a core requirement in the software world, both Subversion and Perforce are well-equipped to facilitate it.

For hardware development, however, such tools have not existed. Data management has traditionally been performed at the local level, with the integrity of the design data managed where the design itself was done. But as the complexity of product designs has grown, so, too, has the number of stages and people involved in the product design process, and localized data management is being replaced by systems that try to collectively manage design data. This results in complex, often unwieldy systems, or collections of interconnected systems, to collect, log and control design data and pass it between the various design applications. It would seem to make great sense to adopt the existing software tools to deal with the hardware DM issues.

The Importance of Transparency and Openness
Given the various options available for SCM and revision control, the question of which option is appropriate to a hardware design environment is an important consideration. The solution is a hardware design DM tool, such as the Methodics VersIC, that adopts a transparent, modular architecture with a common user interface integrated into the customer’s choice of SCM backend. Ideally, Subversion and Perforce are integrated into the solution, which would also be able to support other SCM tools as well. The ability to communicate with the central data repository via streaming TCP/IP (Perforce) and stateful TCP/IP (Subversion) eliminates the notorious bottleneck created by the NFS (network file system) protocol. In addition, the use of "slave" repositories at the remote sites will minimize WAN latency.

Having a completely open and transparent interface to the SCM tool of choice is of tremendous value to the customer. For example, access to data will always be available through any of the native clients available with the SCM tool. In the Perforce environment, the P4 command line client is convenient, and the visual client (P4V) has a variety of automation features integrated into it that make it ideal for managing project and IP variants. In addition, a full set of Perforce Perl/Python/C APIs can be made available if custom access is required. With the Subversion tool, the widely used TortioseSVN windows visual client is available, as are the powerful PYSVN workbench and RapidSVN visual clients for the Unix environment.

In short, using a standard enterprise SCM tool in a hardware DM environment places a wide range of methodologies and alternative clients for project/IP management, project repository and user workspace management at the designer’s disposal. Using industry-standard SCM tools as the backend database also means that data is never locked into a proprietary system.

Beyond Using a Standard SCM Tool for a Hardware DM Backend
With a real SCM platform used for hardware design data, other standard software practices can be integrated into the IC design environment.

For example, the Methodics VersIC design data management tool incorporates a Visual Change Manager (VCM) toolkit that shows designers visually how layouts and schematics have changed between versions, and can confirm if the desired changes were implemented correctly. Additional capabilities include design review tools, continuous build methodologies and branching/merging functionality.

Summary
It can be seen that the hardware design world can gain significantly from leveraging the existing best practices and methodologies in software development environments. The key is to use a fully transparent client that manages the hardware data in a modern SCM database.

It is also apparent that accommodating the needs of hardware-centric designs requires a new model for tools that goes beyond the custom integrations, or adaptors, that have been created to manage design data from specific tools. An open and flexible approach to managing hardware design data and leveraging the best practices of software configuration management on a globally available platform is the optimum solution. Such an approach, as exemplified by the Methodics VersIC platform, provides a transparent interface to the SCM tool, and is architected so that companion industry-standard CM methodologies, such as design review, continuous integration, branching and merging, can be plugged in as needed to address specific demands.

With this infrastructure in place, perhaps hardware development teams can finally enjoy the level of sophistication the software development world takes for granted.

butler_headshot

Simon Butler is the CEO of Methodics (www.methodics-eda.com) He has 20 years of engineering experience designing ICs and developing EDA tools, and has held various technical lead and engineering management positions at High Level Design Systems (acquired by Cadence), Sandcraft, Cadence, Sabio Labs (acquired by Magma) and IC Methods. Simon co-founded Methodics in 2006.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Comments

Leave a Reply

Comment

Security Code: