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 at Methodics, 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…
Data 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 management
Because 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:
A single place for all
- Increased performance to handle orders of magnitude increases in project data size.
- A modern, central collaborative vehicle for the project.
- Integration of the project development actitivy with project management organization.
- Improved, standardized and simplified IT management tasks related to multiple DM/CM spread across multiple design centers.
- Reduced overall IT costs related to networks, server load and disk utilization.
- 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).
The ideal solution would provide a single place for all stakeholders in the project team. Typical usage models include the following:
- Designers – Catalog new versions of IP, manage tasks, set up notifications, update blogs and manage defects.
- Integrators – Review new IP versions, verify changes to be included, close tasks and release new BOMs (Bills of Materials)
- Verification Engineers – To review new BOM, verify the tasks and defects are incorporated and communicate verification status.
- QA teams – to review verification results, track down faulty IP in BOM’s released or in production, create consolidated reports looking for common flaws.
- Manufacturing – Access to the correct BOM as defined by the integration team
- Project Management – To review current IP release, check BOM for completeness and update the project status.
- 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:
- Global integrated tracking across multiple DM systems and repositories
- Project communication leveraging the latest in web-based collaboration tools
- 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
As 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 contains the following components:
The SoC Portal
- 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).
- Remote Replication Daemons – These daemons manage remote IP data-caches that improve overall performance to the end user while reducing network traffic, server load and disk utilization.
The 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 Elements
In the SoC Portal the following key data objects are provided:
The SoC Assembly Engine – BuildIC
- 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.
One 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.
- Project hierarchy is managed using constructor rules defined templates
- Can fetch a specific BOM as defined in ProjectIC
- Can “prune” and fetch only parts of the BOM as required.
- 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
The ProjectIC SoC Portal includes state of the art collaboration tools:
BuildIC replication daemon
- 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)
- Defect creation and management – Manage/aggregate defects against catalog data elements (IPs, BOMs, Projects 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.
The 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.
Anyone 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 author
Simon 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]).