| |
Violins gush from surround-sound speakers. Harp notes cascade from the unseen orchestra. Simulated “golden hour” light emanates from an animated sky as the cartoon sun falls behind scribbled hills. Cutesy woodland creatures with enormous eyes emerge from their burrows, nests, and perches to gather in the clearing in an incomprehensibly improbable commingling of predators and prey. Anthropomorphized and articulate animals belt out Broadwayesque showtunes as the colorful cast choreographs the grand finale – pulling tears from the eyes of innocents and tipping the eyes of the more worldly audience into a jaded roll. In feature-length animated movies, ecosystems are portrayed as happy, cooperative collaborations of life where the stark realities of the food chain never surface and the ugly truths of survival in the wilderness are swept away with happy music and gentle, fictitious characters. In fact, the whole scene reads a lot like a typical high-tech press release where two or more companies are cooperating to “strengthen the ecosystem” for a new FPGA platform. Eagles and bunnies are working peacefully together – making nice to bring us a set of capabilities that neither could manage on their own. In the real world, however, far from the fictional paradises of Disney and PR Newswire, life is a brutal fight for survival and supremacy. Those companies whose chips, software, boards and IP are always depicted playing nicely together to make your next design a snap would often be just as happy to put each other out of business rather than join forces and share your engineering budget. Nonetheless, cooperation is what makes the platform succeed, so unlikely alliances are formed almost daily – with levels of investment ranging from honest, long-term, deep-technical collaboration to a quick handshake and an OK on a joint press announcement – complete with custom quotes fabricated by PR firms and attributed to agreeable corporate executives. It is important, when choosing a platform for significant engineering development work, to be able to distinguish between healthy and unhealthy techno-ecosystems. While there is a strong bias among systems engineers to make important decisions like the selection of a platform-class FPGA by considering only the merits of the device itself, the robustness of the surrounding ecosystem is almost always more important than the small feature-deltas found in competing devices. Sure, in the fictitious “good old days” you just needed to pick the device with the most LUTs and the fastest Fmax, but today, with embedded processors, DSP blocks, memory, high-speed serial I/O, and a bevy of other bewildering features, the infrastructure required to design and deploy an FPGA can be expansive. For example, it isn’t enough for your FPGA to offer a big pile of multipliers waiting to do your arithmetic bidding. You need a suitable design flow for putting all that number-crunching horsepower to work. How will you create your DSP algorithm in the first place? Will you be prototyping and tuning your basic algorithm in MATLAB? That’s a good start, but those FPGA-based DSP blocks don’t do floating point. You’ll need some other tool to quantize your data, pick an appropriate fixed-point representation, test that the fidelity is still adequate, and so on. Once that’s done, you still have a behavioral description of your algorithm that’s far from fit for FPGA implementation. You’ll need more tools (and probably a lot of manual work) to get all that complex datapath manipulation into an efficient microarchitecture. Somewhere along the line, you’ll also need to get your design into an RTL representation suitable for simulation and synthesis. At this point, we’ve already pulled heavily from our ecosystem, and we haven’t even really chosen an FPGA yet. If your project is like most complex designs these days, the DSP acceleration we just described is only one small aspect of the engineering. Chances are, you’ll have an embedded computing system in there somewhere as well. You’ll need some kind of tool to help customize your configurable processor with all the right options, choose a bus or switch fabric that meets your needs, and bolt all that peripheral IP on in a way that works together. Speaking of peripheral IP, I hope you chose a platform that supports all the blocks you’ll be needing. If any of it is proprietary of encrypted, your ecosystem needs another whole layer to deal with handling of encrypted IP throughout all phases of the design process from evaluation and selection through simulation, customization, synthesis, and implementation. All that will just get the hardware part of your FPGA-based embedded system-on-chip going. Every embedded system needs software. Often, that brings with it a selection of operating systems, middleware, software IP and so forth. You’ll also need a suitable software development platform where your embedded software engineers can work either on evolving prototype hardware or on a virtual prototype that permits software development and debug. Of course, that means they’ll need an appropriate Interactive Development Environment (IDE) for the software development work. The point of all this is, of course, that in addition to the FPGA platform you choose for your system development, there is an enormous amount of other stuff required to get the job done. Design tools, operating systems, software, middleware, hardware and software IP, development boards, connectors, standards, reference designs, consultants – all work together to bring your project to fruition even though they’re all simultaneously warring in their respective competitive markets. Today, we often hear about new silicon platforms being launched, but it is rare that one of these makes it into widespread adoption. Even though a new technology may have compelling architectural advantages, the amassing of an ecosystem capable of putting it in a significant number of sockets is a daunting task – far beyond the means of even the most ambitious startups. The moral to that story is that venture capitalists are easier to convince than engineers about the viability of a new platform, and the importance of the surrounding ecosystem is much better understood by the latter than the former. So, welcome the happy little forest animals. Even though they may be attacking and eating each other in the wild and in the marketplace, they’ll eagerly work together to get your design running when it serves their interest. Remember that you’re choosing much more than a chip when you pick your platform – you’re choosing an entire ecosystem of cooperating capabilities. Be sure that every part of that decision is solid before you bet your design and your professional reputation. by Kevin Morris, FPGA and Structured ASIC Journal March 27, 2007
|
All
material on this site copyright © 2003-2007 techfocus media, inc.
All rights reserved. FPGA and Structured ASIC Journal Privacy Statement |