Choosing The Right Kite

Different versions of similar tools may be the difference between a painful design and one that goes smoothly.


By Jon McDonald
At my 16-year-old son’s suggestion the two of us have been taking kite-surfing lessons. Last weekend part of the lesson covered the different kinds of kites, how they compare and reasons to use one versus another. One of the points made by the instructor was the need to have different kites for different conditions.

It’s such a simple concept, but one that was forgotten in an interaction I had recently. In this case the goal of the organization was to have one set of tools for embedded software development and hardware/software verification. No one was quite sure why this was a goal or what the benefits of this goal would be, but somehow it became a requirement for the organization. As a result of this goal we found ourselves having a number of circular conversations.

Focusing on the needs of the software developers led to certain capabilities that were important and a good approach to delivering those capabilities was reasonably apparent, but looking at the flow of the verification activities we identified different needs, requiring a different mix of capabilities. In addition, there was a concern that some users would have to use both the software IDE flow and the verification flow. As we cycled through focusing on each target flow we found ourselves cycling through potential solutions with no single solution satisfying both tasks requirements.

Back to my epiphany on the beach—different conditions and activities require different kites. Similarly, different engineering tasks require different tools. Now that sounds pretty obvious, and I don’t think anyone would disagree that different tools are needed for RTL design versus layout, but the challenge is seeing that different types of the same basic tool may be needed for different activities. To someone who isn’t trying to kite-surf, a kite is a kite is a kite, but when you are trying to use it in a specific situation with specific wind and water conditions one kite may be very different from another.

When applying ESL methodologies and tools it’s important to understand that there are many different tasks and that different tools will be used for different purposes, even for one application such as our software IDE we may use different tools at different times. We need to understand when and why this may be needed, making the appropriate selections to allow the task to be completed as gracefully as possible.

—Jon McDonald is a technical marketing engineer for the design and creation business at Mentor Graphics.