Articles

Agile Process

UVM Is Not A Methodology

The title may seem a little controversial, but the article isn’t. The UVM is getting a lot of attention as the latest new technology aimed at increasing productivity in functional verification. It builds on the best from a number of verification worlds and minds and contains a tremendous amount of detail and expertise. But does it actually qualify as a methodology? This article identifies the limitations of the UVM with ideas for how organizations can embrace it most effectively.

Neil Johnson – Principal Consultant, XtremeEDA


Agile Transformation in Function Verification – Part I

Originally published in Mentor Graphics Verification Horizons, Volume 6, Issue 2, June 2010.

The potential for agile for methods in IC development is large. Though agile philosophy suggests the benefits of an agile approach are most profound when applied across an entire team, reality often dictates that new techniques and approaches are proven on a smaller scale before being released for team wide application.

This article is the first in a two part series that describes how a functional verification team may benefit from and employ agile planning and development techniques while paving the way for use in RTL design and ultimately, team wide adoption.

Bryan Morris – Senior Staff Verification Engineer, Exar Corporation
Neil Johnson – Principal Consultant, XtremeEDA


Operation Basic Sanity: A Faster Way To Sane Hardware

You’ve written your test plan, defined–and re-defined–your coverage model, architected your verification environment, coded your environment, wrote your first test, used that test to debug your own code and resolve the first serious issues with your design. Time has passed and after months of effort, you finally–finally–have your first packet through. It doesn’t matter that it’s the simplest packet possible or that it barely qualifies as being part of a real use case, this packet is special because it means that this week you get to report real progress: you put a packet in and you got a packet out.

This article aims to reinforce the importance of the basic sanity milestone with an approach to building a sane design faster. The most significant characteristic of the approach is that it requires no new tools nor does it depend on state-of-the-art languages, verification libraries or techniques. Teams do the things they’ve always done. All that changes is when they do them.

Neil Johnson – Principal Consultant, XtremeEDA


Realizing EDA360 with Agile Development

EDA360: The Way Forward for Electonic Design and Silicon Realization–A New Approach To Faster, Better, and More Profitable Silicon, both released in 2010 by Cadence Design Systems, posted some lofty goals for the EDA industry. Discussed and debated thoroughly, the overarching themes of these papers is a fundamental shift in how EDA tools and semiconductors are developed.

While the EDA360 vision could prove to be a critical motivator in the transformation of the EDA and semiconductor industries, it is just that: a vision. To realize that vision, a team needs proven process and methods. The goal of this article is to show how agile development principles can enable realization the EDA360 vision.

Neil Johnson – Principal Consultant, XtremeEDA


Agile IC Development with Kanban

This paper describes a project management approach called “Kanban” being used successfully in software development today. Using Kanban, a team’s complete process is drawn on a board. Queues are created on the board to indicate steps in the entire development flow. Tasks are added to the first queue and progress to the last queue as each step is completed.

The success of this technique is largely due to its simplicity, ability to visualize a team’s process, and adaptability to changing conditions. By visualizing the flow it allows the team to look at the process, identify bottlenecks and optimize the entire flow on a continuous basis – rather than at pre-ordained times defined by management.

We provide details for the Kanban process and illustrate how it can be effectively adapted into an IC development flow. We’ll show that Kanban is ideally suited to a multi-disciplinary team that ASIC/FPGA projects require.

Bryan Morris – VP Engineering, XtremeEDA
Neil Johnson – Principal Consultant, XtremeEDA


Why Agile is a Good Fit For ASIC and FPGA Development

Adapted from: “A Giant Baby Step Forward: Agile Techniques for Hardware Design” SNUG Boston 2009

ASIC and FPGA development are intensely detail oriented processes that present many technical challenges. While advancement in EDA technologies has been essential in keeping pace with these technical challenges, there has yet to be true innovation to address the dynamic project circumstances, team aspects and interdisciplinary nature of ASIC development… until now.

Neil Johnson – Principal Consultant, XtremeEDA
Bryan Morris – VP Engineering, XtremeEDA


Agile Transformation in IC Development

Originally published in Mentor Graphics Verification Horizons, Volume 6, Issue 1, February 2010.

There are opportunities for positive transformation in any IC de-velopment team. While people and process related initiatives can have a tremendous complementary impact to the technical advancements already occurring in IC development, their value is often overlooked. Technology driven advancements such as coverage driven verification and the proliferation of OVM as a functional verification platform have been critical to keeping pace with exploding design size and complexity. However the difference between success and failure will frequently depend on how effectively people can embrace these new technologies, and what processes are put in place to ensure their optimal use. The technology itself is rarely the decisive factor for a successful or failed product delivery.

In the world of Agile software development delivering value to a customer is the primary objective, and teamwork and efficient processes are the essential components. This article identifies the characteristics common to effective agile development teams, and how a team that embraces these characteristics–in combination with using cutting edge technology–can accelerate their schedule, improve their product quality, and increase customer and employee satisfaction.

Neil Johnson – Principal Consultant, XtremeEDA
Bryan Morris – VP Engineering, XtremeEDA


Breaking Tradition in IC Development with Shared Code

The functional boundaries we impose on ourselves in IC development are a detriment to quality and productivity. This articles challenges the traditional structure and roles found in most IC development teams as well as the restrictions that many teams place on who writes and maintains code.

IC development is an energetic, dynamic and highly competitive industry with ever evolving technical standards and practices. Like many industries, however, even IC development teams with their high pressure, fast paced environments have traditions that are hard to abandon, even with evidence they may be holding us back.

Neil Johnson – Principal Consultant, XtremeEDA


An Agile Approach to ESL Modeling

Electronic system level (ESL) modeling holds a lot of potential for many IC development teams. For a variety of reasons, however, many teams fail to realize that potential. This article identifies characteristics common to effective agile development teams and how they can be embraced to redefine the process of ESL modeling.

Neil Johnson – Principal Consultant, XtremeEDA

Top-down ESL Design with Kanban

This article presents an interpretation of the modified V approach to ESL development proposed in the book ESL Models and their Applications by Brian Bailey and Grant Martin. The modified V approach is a top-down ESL design and verification flow where following system level design and validation, architecture, micro-architecture and detailed implementation are subsequently verified. The strength of the modified V approach is the priority given to early validation of the customer perspective relative to more traditional approaches. Kanban, a process tool used heavily in lean manufacturing and product development, is used to supplement the modified V approach as a means of mitigating the damages caused by large batch processing. The article makes the argument that in combination, the modified V approach with kanban is superior to current ESL best practices.

Neil Johnson – Principal Consultant, XtremeEDA


Adaptability Breeds Success in IP Development

This article proposes techniques used in agile software development and lean product development as a means of creating a responsive, highly adaptive IP development team that is driven by the needs of its customers. The article identifies an adaptive and successful IP development team as one that:

  • engages with customers early and often;
  • establishes a cycle for feedback; and
  • establishes a cycle for improvement.

Neil Johnson – Principal Consultant, XtremeEDA


Producing Deliverables Through Iterative Development

Adapted from: “A Giant Baby Step Forward: Agile Techniques for Hardware Design” SNUG Boston 2009

Iterative development is a key characteristic of most agile methodologies. This article provides a general introduction and reasoning behind using iterative development with the basics of how iterations are planned and executed.

Neil Johnson – Principal Consultant, XtremeEDA
Bryan Morris – VP Engineering, XtremeEDA


Extreme IC Design (xIC) For A/MS

IC design and manufacture are different activities that require different types of processes to be successful. This article puts forward some ideas of how A/MS design in particular can benefit from the adoption of agile techniques.

Barry Byford – AE Manager, Mentor Graphics


Agile People

Method is not A Methodology

Current functional verification methodologies like OVM and VMM have been critical in keeping pace with complexity in IC development. But are these technologies themselves the decisive factor when drawing the line between success and failure in functional verification? While the focus of functional verification and other aspects of IC development is generally dominated by technical challenges, teams are often overlooking the single most critical requirement for success: people.

Neil Johnson – Principal Consultant, XtremeEDA


Agile Teams: What Are They Good For?

In this opinion piece, I present my view of the characteristics of a high-performing SoC development team.  I then show how teams that adopt an Agile Methodology (for this article, I use the Scrum Framework), can achieve these characteristics.  For illustration (and humour) I contrast how a typical development methodology can hamper a team’s ability to achieve this high-performing state.

Bryan Morris – VP, Engineering, XtremeEDA


IC Development and the Agile Manifesto

This article is an introduction to the Manifesto for Agile Software Development. It highlights the core values of agile teams, how they guide software teams toward better software and how embracing the same values can help IC development teams build better hardware.

Neil Johnson – Principal Consultant, XtremeEDA


Agile Tools

A Continuous Integration System For ASIC Development

This article gives a simplified description of a continuous integration (CI) system that automatically performs the tasks of building, testing, and tagging the source code in an ASIC development environment.

Martin d’Anjou – ASIC Verification Engineer, Neterion Corp.

2 thoughts on “Articles

  1. Hi

    Interesting articles. I’m interested working on Requirement Driven Development (RDD) concept for UVM. Although the article regarding BDD and Verilog TB (University of Bremen) was great. Is there any open source project where one can play with requirement driven methodology for UVM testbenches (or partsof TB) generation ? I would like to start with a very simple Verilog code. Lets take a Verilog adder and write down all its functionalities as ‘requirements’ in simple English language. requirements can be formalized in Gherkins syntax also. Or may be in other snytax.
    Can you share your thoughts on this idea ? It would be great if you can give your opinion on this idea. Maybe some open source projects ?

    1. I’m not familiar with rdd. but since you mentioned gherkin… a few years ago I spent some time trying to see if I could have cucumber interoperate with a verilog sim via the dpi. That ended as good-in-theory-but because it started feeling like a lot of overhead. that’s as close as I’ve come to something like this. not to say it couldn’t be done, just that I didn’t get far enough to know for sure.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.