Back in August I wrote a short blog entry in which I pontificated on the term "embedded" as it applies to FPGAs. In that blog I concluded that the term is synonymous with "built-in," especially in the context of major FPGA features and functions (e.g. embedded DSPs, block memories and SERDES).
Shortly thereafter, a response appeared in Embedded.com that offered a different interpretation of the term. In that article, the folks at Embedded counter that "embedded" means a computer "whose end function is not to be a computer" (i.e. bringing software off the desk and into the device). Historically speaking, and to software and systems engineers, that is a crisp and accurate definition.
However, I think that both of our views are accurate, but in different arenas. Reading the responses to the Embedded.com article, it becomes clear that the article is speaking to a broader systems audience (who may or may not be designing with FPGAs). My blog, however, was to directed to a more specialized group: the FPGA designers themselves. The editor and I therefore use the term "embedded" differently for two distinct audiences. To me, this is apples and oranges, not "to-MAY-toes" and "to-MAH-toes."
There are two crossover points that illustrate this. The first point is the manner in which each audience views the FPGA. The typical Embedded.com reader will view an FPGA as an element in an "embedded" system. FPGA developers, on the other hand, use "embedded" features (IP) to bring higher levels of integration to their FPGA design. To the first audience, the FPGA is part of the system; to the latter audience, the FPGA is the system.
The second crossover point is the relationship between the processor and the term "embedded" itself. for Embedded.com's audience it could not be simpler: Processors are there quite by definition. For an FPGA designer, a processor is something that is itself embedded (witness Lattice's open source Mico32), along with all the other high level, embedded features. Indeed, a microprocessor might not even be present in the FPGA.
I'll close by revisiting the point from my previous blog: in FPGA geek-speak, "embedded" is a simple way to denote potentially high levels of complexity by means of built-in features. If the FPGA engineer wants to build a sophisticated, system-on-chip FPGA, embedded IP is the obvious way to do it.
While IP enables embedded SoC FPGA's, it does not complete the picture. In fact, it's just the tip of the iceberg for a very non-trivial task. For this reason, Lattice has gone well beyond the IP catalog itself to support customers with tools such as hard cores, soft cores, reference designs, evaluation boards and full-time tech support. Please see my earlier blog for more thoughts on this topic.
I encourage anyone reading this blog (especially the folks at Embedded.com) to respond with opinions and feedback via the "Comments" link at the bottom of this page.