Now, before you say "The boy's an idiot, of course there's a difference," perhaps you should hear me out and then tell me what you think...
Now, before you say “The boy’s an idiot, of course there’s a difference,” perhaps you should hear me out and then tell me what you think…
So here’s the thing. I personally have fairly strong views on this topic, but I posed this question to several folks last week while I was at DAC 2011, and I must admit to being a tad surprised by the various alternative perspectives with which I was presented.
Let’s start with my view of the world (which is obviously the correct one) and then we’ll see what other folks have to say. The following is the way in which I summarized the difference between ASICs, ASSPs, and SoCs in the most recent version of my book Bebop to the Boolean Boogie – An Unconventional Guide to Electronics (available from all fine bookstores [grin] – Click Here to see it on Amazon.com):
Generally speaking, an Application-Specific Integrated Circuit (ASIC) is a component that is designed by and/or used by a single company in a specific system. By comparison, an Application-Specific Standard Product (ASSP) is a more general-purpose device that is created using ASIC tools and technologies, but that is intended for use by multiple system design houses. Meanwhile, a System-on-Chip (SoC) is an ASIC or ASSP that acts as an entire subsystem including a microprocessor or microcontroller, memory, peripherals, custom logic, and so forth.
I’m still happy with this definition, but it’s obviously a simplification that leaves an awful lot unsaid. I’ve come to realize that this whole arena is something of a thorny topic, because the way in which different people view the world largely depends on their backgrounds. For example, I now recognize that I have several biases based on the fact that (a) I’m a digital logic designer by trade and (b) the terms ASSP and SoC weren’t even around when I designed my first ASIC deep in the mists of time.
Thus, from my perspective, I tend to think of ASICs as being digital components containing humongous amounts of logic gates and registers and blocks of memory. Also, in my head I think of ASICs as being Gate Arrays (these are still around, although they tend not to be talked about too much these days), Structured Cell devices, and Full Custom components. (Let’s not get sidetracked by Structured ASICs). Having said this, if I overhear folks waffling on about ASICs in a general conversation, then unless someone says otherwise I will pretty much assume that we’re talking about the Standard Cell variety.
Based on this viewpoint, I tend to think of an ASSP as being a digital component that is created using ASIC tools and technologies, the difference being that ASICs are created and used by a single company in a specific system, while ASSPs are more general-purpose devices that are intended for use by multiple design houses.
Of course we immediately run into a problem that the folks who come from the analog realm may well think in terms of ASICs and ASSPs as being analog or mixed-signal devices…
…all of which sort of brings us back to SoCs. In the not-so-distant past, I would have regarded these as being great big digital components that act as an entire subsystem including one or more processor cores, hardware accelerators, on-chip memory, peripherals, and so forth. In reality, of course, today’s SoCs can contain a mind-boggling mix of digital, analog, and mixed-signal functions – all on the same chip.
While we were at DAC last week, I asked Brian Bailey what he thought about this topic. He replied that, in his humble opinion, there’s no such thing as an ASIC anymore. Brian’s point of view is that there’s nothing that’s complex enough to warrant creating a custom chip that doesn’t have a processor, which means that any new custom chip automatically falls under the SoC umbrella. (You will note that – like me – Brian tends to assume that we’re talking about ASICs as digital components.) When I asked Brian why we still use the term ASIC, his answer was “ASIC is now more a description of the process rather than what the device is.”
Do you know, I don’t think Brian has ever said anything to me that I haven’t agreed with, and I can’t but help agree with him here.
Someone else told me that ASICs were yesterday’s news and I should be thinking in terms of Application-Specific Instruction-set Processors (ASIPs). But this is really a bit of a red herring, because an ASIP is simply (I use the term “simply” in a tongue-in-cheek way) an IP processor core that’s used as part of an SoC design, where the instruction set of the core can be tailored (customized) to address the needs of the target application.
But wait, there’s more, because another person I talked to – a high-level manager at one of the big EDA companies – said that he thought of ASICs and ASSPs as complex, high-capacity devices that were targeted at infrastructure applications like network processing and communications; also at large consumer products like digital televisions. By comparison, he thought of SoCs as being the most complex and challenging devices that involve a sophisticated mix of digital (processors, accelerators, memory, etc.), analog, and mixed-signal that are targeted at things like mobile / handheld / wireless products such as smartphones and tablet computers.
Hmmm… I guess it all depends on your point of view…