Home > Community > Blogs > Industry Insights > can agile software development methods help soc design
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Industry Insights blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Can Agile Software Development Methods Help SoC Design?

Comments(0)Filed under: ESL, SoC, verification, Industry Insights: ARM, EDA360, software, Johnson, Morris, Agile, XtremeEDA

Are you looking for an easier way to develop the right product for your target customer, on time and within budget? Perhaps it's time to learn something from the software world and apply "agile" software development methods to SoC design, according to Neil Johnson, principal consultant at design services provider XtremeEDA.

XtremeEDA is a member of the recently-formed Cadence System Realization Alliance. With offices in Ottawa, Vancouver, Montreal, and Austin, XtremeEDA is a major provider of design services and training for ASIC, FPGA, and SoC design and verification. The company focuses heavily on ESL modeling and functional verification.

This posting, however, is mostly about a web site launched by Johnson and Bryan Morris, a software industry veteran and long time colleague. Called Agile SoC, the site contains a number of articles showing how agile software development methods can be applied to all phases of IC design. Johnson sees a strong connection between these methods, some of which have been adopted at XtremeEDA, and EDA360.

What's Agile?

Since Johnson himself was unfamiliar with agile software development until he learned about it from Morris, I suspect many readers are in the same boat.  A Wikipedia entry defines agile software development as "a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams." The Agile SoC site has some good background in an article entitled "IC Development and the Agile Manifesto."

"Agile means adaptability," Johnson explained. "The whole thing is built on the premise that at the beginning of a project you don't really understand what you're building. You might be able to come up with a spec, but no matter how much effort is put into it, the spec isn't going to properly represent what your customer needs. Agile comes down to accepting there's going to be change and then building a framework that allows you to change and be flexible."

Hardware designers, Johnson said, have "tried to fool themselves into thinking they can go from specs to successful products with no hiccups," but it hasn't happened. "We think a lot of teams don't understand what their customers need, and success rates aren't as high as we want to believe they are in terms of cost, time to market and feature set."

Agile SoC Development

So how might agile software concepts apply to SoC development? According to Johnson, there are several ways:

  • Cross-functional teams that integrate hardware and software development, or, perhaps, combine design, verification and physical implementation. This way people are working together rather than "creating headaches for each other."
  • Incremental design and verification. "Do little bits at a time. Small increments create tight feedback and review cycles that help a team converge on a successful product. Incremental development is the alternative to the monolithic feature sets most teams push through their development process."
  • Teamwork and communication. Foster effective verbal communications rather than "sitting in cubes and writing emails."

An article by Johnson entitled "An Agile Approach to ESL Modeling" shows how agile methods can be employed in system-level design. It notes the importance of understanding customer value, and of refining system models when customer value inevitably changes. It talks about close collaboration with customers and about the value of cross-functional development teams that "work together to build a whole product." The article also notes that ESL modeling is a very suitable candidate for incremental development.

Johnson said that XtremeEDA has adopted some of the principles of agile SoC development, including incremental development, but is not overtly "waving the agile flag" in its customer engagements.

The EDA360 Connection

The agile SoC development concept "directly parallels" the EDA360 vision, according to Johnson. EDA360, he said, suggests "a thought process where things filter down from the top. You start work where it makes the most impact and then you get down to the details, as opposed to writing the detailed hardware first and then being locked into something. Agile development really ties into that."

What is XtremeEDA hoping to gain from the System Realization Alliance? "If there's collaboration between Cadence presenting the [EDA360] vision, and us helping customers realize the vision, that's a big thing for us as a services company," Johnson said. "If we can help people see what this means and then help them drive the process, that's fantastic."

Richard Goering


Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.