ESL And FPGAs

Where the system-level approach is useful in programmable logic and where it doesn’t work.

popularity

By Jon McDonald
I’ve been struggling to come up with a good way of answering a recent question: “Do ESL approaches provide benefits for FPGA design?” I have an initial gut answer that’s somewhat unsatisfactory. Thinking through the subject I can see ways of looking at the question and getting both a “yes” and a “no,” but that’s probably an indication my thinking is not yet clear enough to reach an answer.

I’ve tried to come up with a metaphor to this question that would help in thinking about the possibilities, but I haven’t had any success. What it really comes down to is that the question is incomplete. I believe that often techniques applied to one area of thinking can provide benefit for other unrelated areas, but when we try to move knowledge from one specific area to another we need a clear understanding of what we are trying to accomplish. In a general sense, it would be hard to believe that some benefit for FPGA design could not be derived from ESL approaches. But what are we trying to accomplish? Fundamentally, ESL is focused on a somewhat more abstract view of the system—what and how. What does it needs to do? How should it be done? What constraints need to be met? How do you meet those constraints? What performance and power characteristics are required? And how can these requirements be met?

With ESL approaches we are trying to determine what a system should do and how that system should be implemented before we commit to the implementation. In my thinking a project starts with what and how. Only after we know what and how, can we implement the solution to satisfy the need.

With this flow of reasoning ESL approaches do not apply to the implementation of the FPGA design, but they do apply to what the FPGA needs to do and how the FPGA should do it. For example, to determine if we use more parallel hardware resources or fewer faster resources to process some data we could create an ESL model that would allow us to quickly explore different potential performance, size, power implementations of a function and that function’s use in the system. ESL techniques can help us understand the implications of our implementation decisions before we commit to the implementation, but the ESL techniques are not changing the details of the implementation process.

The answer, I believe, is that ESL approaches do help us determine what our FPGA should be doing and architecturally how it should be done, but the detailed implementation of a design does not gain great benefit from ESL approaches.

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