4 Features You Need to Optimize Design Reuse
Design reuse can expedite system-on-chip (SoC) and IC design and development. But managing the increasingly large number of digital assets is difficult. It creates a need for stronger collaboration between internal and external resources.
A powerful design version control system is the best way to bring teams together and enhance productivity. Using a cross-platform versioning tool ensures all stakeholders can collaborate:
- Hardware, software, and manufacturing engineers
- Engineering IS/IT professionals.
- Business managers.
- Quality personnel, and more.
When considering which design version control system to use, there are four critical features your engineers and designers need.
Support for Code + Design Reuse
EDA systems and software development tools use a variety of file formats at different stages during the design process. Then these files are compiled to be delivered 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 more file types to be able to maximize design reuse.
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.
Deliver Files Quickly
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.
Having a version control system that performs file operations in parallel decreases time waiting around for assets.
With this type of system, files go into a thread to move across the pipeline. As a thread becomes free, the versioning system grabs the next file in the list. This is called parallel threading. Using the same scenario, an engineer can start copying the 10GB file, and the other threads continue to process new files. This dramatically improves performance and design reuse.
Connect Remote Developers and Designers
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 a network between these locations. This enables code and design reuse across teams.
With some systems, there can be a large number of files on individual engineering workstations to support active work in progress. If one developer wants to reuse components from a similar project stored on another workstation, it gets complicated. If they are using Git-based version control, they would need an entire repository to get one file.
To maximize code and design reuse, you need to be able to reuse all digital assets. Often entire projects are 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. And designs are on an entire other system.
Using Advanced Replication Technology
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 operations can 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.
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?
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, you need strong and granular permissions.
What Your Code and Semiconductor Design Software Needs
When considering version control systems, look for one with strong access control and support for multi-factor authentication (MFA). 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.
You also will want to limit user access to individual files, not just repos or folders. Your system admin or team lead should o set up file-level permissions. This protects not only your IP from being stolen, but also from being accidentally deleted or changed.
Semiconductor Design Reuse
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, Helix Core is the best version control software for you. It helps teams conquer challenges by providing one depot for all digital assets, securely connects remote teams, and provides granular permissions to secure what matters to you most.
Find out why 9 of the top 10 semiconductor companies, including Samsung and NVIDIA, chose Helix Core.