A new approach to hardware design project management

Editor’s Note:Generally speaking I (Max the Magnificent) have to say that I am a typical engineer in that I would rather be doing the nitty-gritty design as opposed to dorking around with project management systems and suchlike. Having said this, I fully appreciate the importance of the management side of things.

While I was at DAC 2011, I met up with the folks atMethodics, and I was very impressed with what they showed me. So much so, in fact, that I asked them to write about it… which brings us to this article in which they first describe the problems with existing electronics design product management scenarios. Next, they discuss how they have enhanced their ProjectIC solution to address a new wave of needs in complex IC environments…IntroductionData management has always been a pesky ‘background’ problem for IC designers, who usually found ways to stitch together reasonably effective solutions. In the beginning there were files and directories, and developers would version data by maintaining copies with unique names. Later, this was replaced by RCS/CVS simplistic file versioning. Over the years, next-generation DM (data management) and CM (configuration management) tools such as Perforce, Subversion, ClearCase, and Git have emerged that improve performance and reliability. These tools added a layer of abstraction over the file versioning problem.

As organizations evolved and (with Moore’s Law) designs exploded in complexity and size, many were forced to resort to multi-site design. File-counts grew, file-sizes expanded, and multiple DM repositories and even multiple DM tools were often used on a single project. Today, many design organizations struggle to keep project-data organized properly and communicate change effectively. Finally, exacerbating the situation, companies suffered from poor or no permission management strategy, bad performance, inconsistent data management systems, and spiraling disk/network resource requirements. There was no single way to control, measure, or manage the situation.

To solve this problem, some companies have developed proprietary solutions to parts of the problem. Others have tried to integrate enterprise PLM (Project Life-cycle Management) systems, but have suffered from the complexity of those environments and the amount of time required to integrate them into the existing design flows.

What is needed is a tool focused on improving the design environment from the designers and integrators perspective while providing concise management tools for the IT specialist and project manager: a top-down solution that promotes designer best practices, and provides a collaborative platform for the next generation of IP management solutions.

A platform for true SoC design managementBecause of the demands described above – file-size/count, multi-site and overall complexity – there is fairly long list of ‘must haves’ for the next generation of design management solutions, including:

The ability to handle multiple DM/CM databases (this is more common now as organizations merge and consolidate, and software/hardware teams move to a common DM database. It is also essential during the transition between DM’s).

A single place for allThe ideal solution would provide a single place for all stakeholders in the project team. Typical usage models include the following:

IT Support – Review permissions and incorporate them at the site level, check on new project request and leverage the available usage data in capacity planning.

With all of this in mind, Methodics has enhanced its ProjectIC solution to address a new wave of needs in complex IC environments. In addition to the critical DM needs, there is a focus on enhanced levels of efficiency such as:

Hierarchical permission management from the project and repositories to the file level

Caching and pre-fetching in a usage based targeted environment.

Built in use model management using project-constructors that control the environment including repository management and user/project directory locations.

A single integrated management console providing detailed information on the activity, issues and control in a project.

A view into company design activity for project and portfolio management.

The use of the latest in modern Web technology such as Python, Django and MySQL while providing API access to proprietary corporate databases and data warehouses.

Transparent issue management. Each owner/stakeholder in the design chain is identified in the central catalog with formal channel for communicating issues

Best practicesAs design teams grow and companies merge and reorganize defining best practices across teams and design sites has become difficult. This requires a diverse approach that includes features such as:

Constructors – the use of constructors define the locations of IP, projects and shared areas as part of the project setup. With these in place, users find it easier to create and manage their data in a consistent fashion and the system can easily find existing data based on legacy rules.

Release and Integration – While the system does not require the adoption of a more formal release and integration process it makes moving to such a process much easier.

Performance optimization – this can be achieved by taking many of the standard network techniques and formalizes them in a single point tool. These include using shared work spaces, local replication etc.

Repeatability and immutable definitions – ProjectIC is focused on repeatable project workspace generation and a key aspect of this is the ability to define immutable project definitions that can be shared across all users.

ProjectIC componentsProjectIC contains the following components:

SoC Portal – This is the central cockpit into the system. It provides access to all of the project create, project management and project tracking capabilities along with state of the art web collaboration tools.

SoC Assembly Engine – This is the user client that assembles the actual project environment on the target platform base on the projects definition or Bill of Material (BOM).

The SoC PortalThe SoC Portal is a virtual meeting place for all designers. It supports all of the latest communication form you would expect from a modern collaboration system including Wiki’s, Blogs, News Feeds and message management. It also supports task assignment and defect tracking with integrations to Jira, Trac, Bugzilla. It has been developed specifically to meet the needs of hardware and software designers working together on complex projects across large geographic locations. Let’s not forget it is also a complete functional catalog for all of your IP building blocks whether hardware or software based and allows for a sophisticated reporting on everything from IP usage and quality metrics to project readiness.

Basic Data ElementsIn the SoC Portal the following key data objects are provided:

Project – A project is a top level work item. A team works together on a project. A project can be as simple as a single block of Intellectual Property or IP or a collection of IP grouped together.

BOM or Bill of materials – A BOM is a list or specific versions of an IP that makes up a view of the project work items. Once a BOM has been created and committed to the catalog it must not be altered.

Libraries – These are collections of related IP. They provide the ability to defined global rules that are associated with a set or related IP such as permissions, repository root and related constructors used to relate best practices.

IP or Intellectual Property – IP is a general term used to represent a base building block. This IP might be one of the following: A hardware block such as an Opamp, memory or CPU; A software application to be included in the product; External IP such as technology libraries. IP is always associated with a project for organizational and security purposes but IP from one project might appear in multiple other projects.

Properties – Properties contain additional information that can be attached to any of the above data items. Properties allows for additional details to be stored in the catalog allowing additional features such as detailed searching, comparing and requirements tracking.

The SoC Assembly Engine – BuildICOne of the unique features of this system is the BuildIC client. The client communicates directly with the IP Catalog, the replication daemon and the end DM system optimizing disk utilization, network traffic and data fetches. This enables orders of magnitude improvement in performance even at remote data centers. Additionally, the architecture means that even remote design centers can enjoy similar performance to their local counterparts when the system is deployed. Some of the more interesting capabilities of BuildIC are:

The client can construct a user’s workspace from multiple DM databases and across multiple DM repositories around the world.

An initial workspace can be created in seconds, independent of size. New releases can be made with equal speed.

Takes advantage of pre-fetched data to expedite the delivery of IP and optimize access time, disk utilization and network traffic.

Allows for block by block customization if required

Users can upload the state of their workspace to ProjectIC as a new BOM.

Users can compare their workspace to any BOM in ProjectIC so they can decide if the changes are right for their needs.

Automatically tracks IP usage ensuring IP consumers are made aware of problems and new releases

Collaboration toolsThe ProjectIC SoC Portal includes state of the art collaboration tools:

Blog – Blogs can be created by users and associated as required to Portal elements. Blogs allows for a running discussion of changes and activities.

Wiki – Wiki’s allow for online edited and versioned documentation to be created and associated with all the major catalog data elements.

News feeds – All of the major objects in the system contain a complete change record. Users can connect to the news feeds of interest – eg: Follow the activity around a particular IP block (new releases available, forum comments etc)

Notification – As a user you can request notifications to changes through email or have them delivered as messages to your Portal account.

Communication Platform – Because ProjectIC tracks which users are using which IP versions (on which projects), communicating to users of a particular IP is trivial and can be done through the ProjectIC Soc Portal. Eg: Users of a buggy IP can be informed of a problem and encouraged to switch to the a new release.

BuildIC replication daemonThe BuildIC Replication Daemon is the remote site IP broker. It takes requests for new IP blocks from local users or from the SoC Portal and optimizes fetching the required data. Some of its capabilities include:

Parallelization of the fetch process. In a standard DM/CM environment a fetch is done from the top down. By performing the fetches in parallel the system can take advantage of handshaking and other network based bottlenecks.

Fetch once, use multiple times. This is a central theme to the system. Remote fetches to design data can be limited to a single fetch. Users can access design data immediately though a symbolic link or predefined environmental variables.

Immediate local update of Trunk/Latest blocks. For blocks on the mainline Trunk/Latest version the BuildIC Replication Daemon can handle updates to these kinds of shared areas whenever a change occurs in the repository

Integrated with LSF or SGE to allow improved batch based block fetching. This allows the IP delivery process to be distributed and managed by a standard queue system.

Integrated permission management to remote design center data caches. The use of data caches is somewhat standard practice but managing the permissions properly is usually overlooked exposing the company to unknown risks.

Remote update requests – A powerful capability of the system is to perform pre-fetch operations. Pre-fetching allows data to be distributed as soon as it is completed and integrated into a new BOM reducing or eliminating users remote end wait times.

ConclusionAnyone that has had to deal with multiple design centers, multiple DM/CM systems, the transition/consolidation of DM/CM systems and large-scale IP deployment will understand how a purpose-built system for complex IC design data management will solve many of these issues. To combat the problems of IP management, remote site performance, inconsistent deployment, IP reuse and designer collaboration, a new approach is required to deal with the complexity of today’s SoC challenges.

About the authorSimon Butler is a graduate of the University of Manchester (UMIST) and has 20 years of engineering experience with IC's. His design/EDA background includes DSP/FFT processor core development, 64bit MIPS processor development, x86 methododology consultant, physical floorplanning EDA tools, mixed signal/analog layout EDA tools.

Simon held various technical lead and engineering management positions at High Level Design Systems (acquired by Cadence), Sandcraft, Cadence, and Sabio Labs (acquired by Magma). He founded IC Methods LLC in 2000 and co-founded Methodics in 2006.

If you found this article to be of interest, visit EDA Designline where – in addition to blogs on all sorts of "stuff" – you will find the latest and greatest design, technology, product, and news articles with regard to all aspects of Electronic Design Automation (EDA).

Also, you can obtain a highlights update delivered directly to your inbox by signing up for the EDA Designline weekly newsletter – just Click Here to request this newsletter using the Manage Newsletters tab (if you aren't already a member you'll be asked to register, but it's free and painless so don't let that stop you [grin]).

By the way: did anyone notice that IBM Rational provides a first-class integration of ClearCase with Cadence's Virtuoso since March this year? Might be more interesting to review that, rather than arguing about which is the better Perforce integration...

I'm sorry if we're boring you "Bryce" but we do have our facts straight and we have customers to validate it. Anyone that does their homework will find that there is not a single unique feature that IC Manage brings to the table other than their artificial Perforce pricing and an inflexible "their way or the highway" methodology.
The IC Manage solution amounts to a series of scripts layered over the top of p4 that have not kept up with the native Perforce functionality. This is evidenced by the fact that todays IC Manage customers are required to use an older version of the p4d server than is available from Perforce for "compatibility" reasons..
Anyway, I'd agree with you on at least one thing - lets let our customers successes and technology do the talking. Hijacking a competitor white paper on EE Times with anonymous "customer" postings is just poor form and frankly a little desperate..

I will repeat my previous statement.
Get your facts straight before commenting in public forums.
I'm not a shill for IC Manage - just a happy user who siwtched away from DesignSync - and will not be posting or reading anything further on this particular thread because it's become *even* more boring that it was when I first read the article.
Yawn.

We engage in regular benchmarks against IC Manage and this is consistently what our customers tell us is an important difference.
Generally, all the "improvements" IC Manage claim to add over vanilla Perforce were perhaps valid a few years ago but recent releases of Perforce have removed those differentiators. Commands such as p4replicate, p4broker are native Perforce commands that negate the need for the IC Manage wrappers and have the advantage of being supported by Perforce directly (and at $0 cost). HA/DR is now a trivial configuration with the 2010.2 release of Perforce, there's just no need to buy the (expensive) IC Manage scripts.
I'm kind of surprised IC Manage haven't written in to join this lively debate, but I guess they don't need to when they have loyal customers such as Shiv... err, I mean Bryce :)

Mr. Butler,
You are clearly misinformed and are continuing to spread disinformation and it does you no credit.
We have a single Perforce licensed server with a vanilla Perforce license and we use both Perforce and IC Manage clients in a single depot using the IC Manage Broker technology. We use p4, p4v, Eclipse as well as all the IC Manage tools.
Get your facts straight before commenting in public forums.
--Bryce

Actually this isn't FUD. IC Manage is a proprietary solution and the standard p4 clients just don't work. Users are required to purchase artificial annual licenses instead of the standard 1-time cost of a Perforce permanent key and and to enforce that IC Manage has disabled the p4 command line interface, the p4v visual client, IDE access, etc.
The Methodics approach is to license our client applications on a standard Perforce database. Digital (Verilog) designers can use the standard Perforce interface which means they can work for $0 in the same depots as the Cadence designers on the project.
Regarding the Perforce website, Methodics is a full integration partner with Perforce and has been for a number of years. We were listed as level 1 integrators on the website until recently and while its not clear why our listing was removed the cynics amongst us have suggested that it is related to (2) above..

[smcbutler]: the only native interface to Perforce btw
This is just FUD.
We use IC Manage with a single Perforce server for both our hardware guys and the vanilla Perforce software guys. Seems pretty "native" to me.
Anti-FUD:
1) Methodics doesn't even appear on the Perforce web site
2) The founder and president of Perforce is on the IC Manage board

Hi Kent, I believe hardware designers should be taking more advantage of software development methodologies and Agile techniques are a great example of that. This article was discussing our SoC development platform (ProjectIC/BuildIC) but our Cadence interface to Perforce and Subversion (we have the only commercially available interface to Subversion and the only native interface to Perforce btw) includes the ability to include state/progress information as the design. These can then be rolled into Burn-Down charts as part of the ProjectIC project dashboards.
I wrote a paper a few years ago discussing software methodologies in a hardware context. This is available at the Methodics website.