“The only sustainable advantage you can have over others is agility, that’s it.” (Jeff Bezos)
The best workflow is the one that has been working until it doesn’t. In their quest to tape-out the next design, SoC teams rely on their proven workflow to meet design constraints and project milestones. As often the case, design constraints or project milestones change during different phases of a workflow – this means prior workflows may be rendered obsolete by new technology nodes adding new challenges. That’s why many SoC teams have had to constantly tweak their workflows in order to meet their elusive tape-out milestones and constraints.
Agile was first introduced in the ‘90s (yes it’s been around for that long) to improve software development teams’ ability to respond to change, productivity, predictability, and quality. Since then, data from 25 years shows that Agile projects are nearly 2X more likely than Waterfall projects. Moreover, Agile has replaced Waterfall as project management of choice for software development, with more than 70% of companies using it. (Djurovic, 2020). It has built a strong support community such as Agile Alliance, a non-profit organization with over 72,000 members providing global resources for its members.
Unfortunately, the success of Agile in the hardware domain is much less heralded than in software. As Paul Cunningham suggested in his EE Times article “Agile Verification for SOC Design” agility trends in hardware are perceived to be limited likely because they are not explicitly labeled as such. Another likely reason is the fact that Agile started as a software development concept and the plethora of jargon such as Scrum, Kanban, Extreme Programming, FDD, Agile Manifesto, etc. can be intimidating to SoC teams that just want to tape out their projects ASAP—not to adopt seemingly academic software development concepts.
So, although a typical SoC workflow consists of multiple distinct tasks with short cycles relative to the project timeline, serves internal customers who expect flawless and timely handoff, uses IPs developed by different teams, needs multiple ECO flows to tape out, requires collaboration with many teams often in different geographies, and likely expected to meet with many plan changes, what we often hear is that Agile is not suitable for hardware development.
Instead of focusing on the potential benefit of Agile such as responsiveness to change, better project success rate, better collaboration, and better-quality deliverables, critics tend to focus on the differences between software and hardware projects as if adopting Agile were an all or nothing proposition. The truth of the matter is that adopting Agile is a journey that often starts small, driven by practical needs such as improving current processes that are no longer patchable.
With such a well-established track record in software development, focusing on the similarities and benefits of Agile for hardware development through incremental, practical steps seems like a good idea. The good news is, even in what appears to be very sequential with waterfall workflows for SoC design, there are opportunities for improvement by adopting Agile principles. The following figure depicts a typical high-level workflow for a worldwide SoC development team.
The front-end design team (1) is in US-West and uses soft IPs developed by a team in the US-Central region (3). The back-end design team is in India (2) and uses hard IPs developed by a team in Europe (4). Each team’s compute resources can be fully on-premises, entirely in the cloud, or using a hybrid on-premises/cloud configuration (5).
The front-end design team’s workflow goes through distinct phases such as design specification and modeling in HDL (Hardware Description Language), followed by a verification phase where functional simulation and formal verification are performed, followed by logic synthesis and testability. This design phase typically consists of running thousands of jobs in parallel, equally numerous but relatively small files, iterating through each of the phases before finally handing over to the back-end team, likely after running out of allocated time.
Although they typically must deal with much larger file sizes, including binary files, hard IPs, macros, and memories, the back-end team also must operate in iterative distinct phases. Physical design tasks such as floorplanning, place & route, and ECO (Engineering Change Order) are iterative in nature. Likewise, parasitic extraction, DRC/LVS (Design Rule Checks/Layout Vs. Schematic), timing ECO, power and signal integrity analysis typically must be done multiple times prior to the signoff phase.
Keeping in mind that each of the IP teams likely will have its own iterative workflows, and each team can be in different locations, it’s not hard to imagine that a common design and collaboration platform with features to help make iterations and changes safe and easy, naturally scalable through cloud computing, and integrated with productivity tools to help fuse teams together can be very beneficial as a foundation of a practical Agile SoC workflow.
This is where HCM (Hardware Configuration Management) platforms come into the picture. HCM has been around for a while and many SoC design teams are already using it in their projects. However, instead of using its full potential to improve the team’s agility, HCM may just be relegated to a specific task such as creating a Bill of Materials (BoM), or revision control. This is a pity because leading HCM platforms will continue to advance in response to the latest technology needs and every new release brings features that make them increasingly suitable for a first step towards adopting Agile in an SoC workflow. Consider the following figure.
Using the same high-level SoC workflow example previously mentioned, the figure depicts an Agile-friendly HCM platform. The platform offers code, documentation, and graphics review capability through integration with Review Board, a widely popular review collaboration tool (1). Integration with open-source automation tools such as Jenkins allows the platform to easily be used to drive iterative tasks (2). It connects to SCM tools such as Git, Perforce, and Subversion to allow the use and management of IPs created in the SCM tool’s repository (3). To leverage cloud computing and enable virtually unlimited horizontal scalability the platform is well supported by top cloud providers with the flexibility to be deployed fully in the cloud, on-premises, or in hybrid mode (4). Finally, the platform also connects to popular issue tracking tools so that any issue found during design can be automatically reported and tracked (5).
As with software, adopting Agile requires more than just tools; however, tools that automate processes consistently interpret it for all team members, are conducive to frequent changes and workflow improvements, and encourage collaboration, which goes a long way in helping adoption. It has been said that without the right tools adopting Agile can feel like driving a race car on a dirt road—sooner or later the driver will blame the car.
An Agile-friendly HCM platform such as Cliosoft SOS is an ideal first step to a practical Agile SoC workflow as it will ensure a positive adoption experience. Key characteristics include:
- Built from the ground-up for hardware designers instead of bolted on top of an SCM built for software development purposes. A native HCM platform is built with hardware designers in mind and key features friendly to hardware design practices such as:
A Efficiently handles all the data types and sizes present in an SoC design from millions of small text or binary files to GB size files, layout blocks, composites, etc.
B Ability to configure design phases into project views, and the flexibility to easily support branching and merging of projects and files when needed
C Can easily tag/label data to communicate design state readiness, and facilitate iterations during various SoC workflow phases such as design, verification, and test
D Can group (abstract) objects into composites to allow hierarchical data management
E Secure yet flexible work area configuration supports checkout based and writable work area use models under full ACL control
- Comprehensive CLI suitable for all phases of SoC design, and intuitive GUI developed with simplicity and ease of use in mind for GUI centric design tasks and to accelerate adoption
- Integration with tools from major EDA vendors to further minimize user ramp-up time
- Integration with leading tools for automation such as Jenkins to orchestrate various tasks such as simulation and test, and Review Board code and document review collaboration tool
- Integration with popular Issue Tracking tools such as Bugzilla, Jira, Redmine and TRAC to automatically log/report issues from the design management platform
- Connection to other SCM tools such as Git, Perforce, and Subversion to enable working with blocks and IP stored in diverse repositories and manage the entire design in progress
- Ability to scale from managing activities for a co-located team of few people to a worldwide organization with multiple teams and hundreds of members collaborating on projects
- Horizontal scalability to improve compute efficiency through cloud computing. Supports hybrid and full cloud deployments with major cloud computing providers
- Continuous improvements such as “sparsely populating” work areas allowing users to instantaneously populate it and significantly reduce disks and inodes usage, ability to programmatically configure projects conducive to process automation
In addition to ease of adoption by SoC team members, these characteristics help ease Agile adoption by offering practical benefits for the workflow. In other words, although how they are deployed together matters in building an Agile SoC workflow, each of them will bring practical benefits to the project.
Jeff Bezos of Amazon once said “In today’s era of volatility, there is no other way but to re-invent. The only sustainable advantage you can have over others is agility, that’s it…” This line of thought resulted in Amazon’s Day 1 principles on being agile that have guided the company for over two decades. It took Amazon over 3 years to reach full SoC development in the cloud since the acquisition of Annapurna Labs in 2015. Although Amazon owns cloud infrastructure, this transformation did not happen overnight.
Adopting Agile for SoC design may seem daunting. However, as with everything else, taking the first step is critical. A practical Agile SoC workflow can be achieved using a leading HCM platform such as Cliosoft SOS by deploying pertinent features and enhanced by regularly upgrading to the latest release to benefit from improvements. So why wait?