null
July 31, 2018

4 Must-Have Version Control Features for Semiconductor Design and Development

Embedded Systems
Version Control

The increasing number of digital assets created and software used during system-on-chip (SoC) and IC design, as well as the parallel activities of integration and development of the intellectual property (IP), brings a great need for stronger collaboration between internal and external resources.

A powerful version control system is the best way to enhance productivity and reduce risk. And a cross-platform versioning tool ensures all stakeholders can collaborate: hardware, software, and manufacturing engineers; engineering IS/IT professionals; business managers; quality personnel, and others involved in the design and integration process.

When considering which version control system to use, there are four critical features your engineers and designers need.

Support for All File Types and Sizes

EDA systems and software development tools use a variety of file formats at different stages during the design process and the journey to manufacturing. There are invariably many file versions that must be managed. This includes work in progress and approved files that may need to be kept indefinitely. 

Some of the files are text, but others are binary. Since most version control systems are only capable of handling source code and text-only assets, a versioning tool must support binary assets to be truly useful.

This capability provides chipmakers with an immutable single source of truth for the entire electronics development and design process. When a system securely versions design files (i.e., analog and digital) and software files for tape-outs, all changes are tracked, traceable, and compliant.

Parallel Threading for Concurrent Operations

One of the biggest performance bottlenecks during chip design and development is the movement of files. This can happen when fetching the files to an engineer’s workstation or when they’re submitted back to the version control system.

Consider this common scenario. You need to make edits to a set of Cadence Virtuoso design files and begin to pull them from the versioning platform. There are 1,000 little files and one gigantic 10GB file. In the traditional mode, you'd happily chug along until you hit that giant file. Now you're stuck waiting on that one 10GB file to finish before the rest of your files.

To mitigate this, the version control system should perform file operations in parallel. Each file goes into a thread to move across the pipeline.  As a thread becomes free, the versioning system grabs the next file in the list. This means that when you start copying the 10GB file, the other threads continue to process new files. This dramatically improves performance.

Advanced Replication Technology

Let’s say you have four offices located in Boston, Vancouver, Boise, and Taipei. And each location has 40 engineers. Your first task in building your network is to size the wide area network pipes between these locations.  Let’s say your headquarters are in Vancouver and that’s where you want to manage your IP.

With some systems, there can be a large number of files on individual engineering workstations to support active work in progress. I am working in the Boise office, and I want to reuse components from a similar project stored on the master server in Vancouver. If I’m using Git-based version control, I will need to copy down an entire repository full of design assets.

Thankfully, I don’t need the entire project. The entire project is too big to fit into a single repo. Git limits the number of files in a repo and overall repo size. Remember that 10GB file?  It can’t even be stored in Git. Indeed, if I do need the entire project, it will require even more copying.

The components I need will consume about 100GB of storage on my machine.  Ten of us in the office are going to work on this together.  Each of us must copy down the entire 100GB to our individual workstations. Now, multiply that times four offices. And then try to calculate the requirements for storing multiple versions of work in progress, which will also be necessary.

Not only does it take a long time to copy a terabyte of data over the WAN, but it’s also a lot of data storage on individual workstations.

There is a third problem. Even if the files are small, there are tens of thousands of files in a typical semiconductor project.  As their version history grows, the performance of Git operations will be negatively impacted.  As a result, the system will slow down unacceptably.

Instead of copying files from a server to individual workstations, you should look for a version control system that supports advanced replication technology. This provides high-performance, local access to versioned files for remote teams in each office.  Perforce offers its own advanced replication technology called federated architecture.

In Vancouver, you would deploy a master server. It’s the primary asset repository that stores the canonical archives and permanent metadata. This is the “single source of truth” we talked about earlier.

Then, in each remote office, the replicating servers intelligently replicate the required assets for the engineers in each remote office. To achieve high performance, replicating servers process read-only operations and operations that only write to the local data.

Advanced Security Features

How important is your intellectual property to the future of your company? Semiconductor and electronic systems customers uniformly tell us it is the lifeblood of the company and their competitive advantage in the marketplace.  

If all your major enterprise software is secured behind state-of-art protection technology, shouldn’t your IP be afforded the same protection?

In the example above, we’ve copied 100s of GB of IPs to a large number of engineering workstations across the world.  With most version control systems, all you need is a username and password to copy down an entire repo from the command line.  This is a security concern.

Considering 40 percent of organizations have experienced a ransomware attack in the last year, according to a study by Malwarebytes, you need strong and granular permissions. Usernames and passwords can be shared, and sometimes busy people can be careless about “minor security details”.

When considering version control systems, look for one with strong access control and support for multi-factor authentication (MFA).

When it comes to access control, you may want to limit user access to individual files, not just repos or folders. You’ll want your system admin or team lead to be able to set up file-level permissions. This protects not only your IP from being stolen, but also from being accidentally deleted or changed.

MFA is the easiest and most popular way to secure enterprise users and their data. When implemented, it provides greater assurance than a password to confirm that users accessing your systems are who they say they are. MFA has become popular in the enterprise – securing mission critical transactional and financial systems, email, and other corporate IT systems.

Summary

Now you have a good sense of what is needed in a version control system to manage design files, source code, and other digital assets that go into developing SoC.

If you are currently using Subversion, CVS, Clearcase,  or a legacy system, Perforce has a great path forward. We offer experienced professional services to help you preserve and access the history of your IP, while achieving the great benefits we’ve discussed here. 

Find out why 8 of the top 10 semiconductor companies, including Samsung and NVIDIA, trust Perforce for version control.