06 September 2010
What if Henry Ford was an fpga designer?
Over 100 years ago, when Henry Ford was conceiving a mass produced automobile, it was in an environment where cars were specified and built to order one by one. Each car was 'hand crafted' with the care and precision warranted by a fledgling auto market where society's elite were the only ones who could afford such a revolutionary contraption.
But in 1908, Henry Ford realised his dream of creating an automobile that was reasonably priced, reliable, efficient and produced en masse. His new manufacturing methods totally dominated the market and by 1918, half of all cars in America came from his factory. What Ford recognised was that by removing the dependence on hand craftsmanship and replacing it with well designed, interchangeable components that connected together in a standardised fashion, he could achieve the joint goals of creating a robust product that was fast (and cheap) to produce.
So if Henry Ford were still alive today and he decided to try his hand at fpga design, what might he think of current design methodologies? Would he applaud the influx of GUI based, high level design entry tools that let designers rapidly assemble complete systems using standardised ip blocks? Or instead, would he join the chorus of designers who are determined to maintain value around their hard fought, low level programming skills and argue that 'hand crafted code is more optimal than code produced by high level design entry tools'?
I would argue the former, but maybe my emotive language has already given my position away.
The fpga market is now 25 years old and has come a long way in that time. Bill Carter, designer of the first Xilinx fpga, recently gave an insight into what those early days were like. It's interesting to note that Xilinx's early marketing strategy was not to target the big name players because they knew that those companies had very long qualification processes. Instead of marketing to the 'Who's Who' companies, they targeted the 'Who are they?' companies. These were the technology guys who liked new things and would give them a shot. So Xilinx's initial customer base was niche product producers rather than established ones.
Some might argue that Xilinx still markets to a niche customer base and while this is true to some degree, there are now niches within niches. The networking market, which has bankrolled much of Xilinx's development, is a powerful lobby group demanding the sort of performance that can only come through hand crafted designs. But in its wake are emerging businesses for which fpga performance is now high enough and pricing levels affordable enough for the real challenge to be the speed with which products are designed and brought to market.
It is in this environment that applying Henry Ford's principles of using standardised, large scale building blocks makes sense. Using high level design tools means that niche design companies can rapidly assemble new designs which perform to spec without relying on hand crafted code. And high level design tools make fpgas more accessible to more designers who are not as versed in low level fpga programming skills but who still want to use fpgas.
So while the increasing use of high level design techniques in fpgas may not be true for every design, the ever diminishing price of fpgas and the ever improving performance certainly makes it true for many of them.
So if Henry Ford were an fpga designer, I suspect he'd gravitate to high level fpga design tools too.
Dr Marty Hauff, Altium.
Dr Marty Hauff