3
\$\begingroup\$

I am new to the field of electronics engineering as I'm originally an electrical engineering graduate (Read Power Systems, machines and HV engineering) so I studied only 'basic electronics' in my undergraduate.

Having said that, I am currently working on a project developing a disk array controller. My question is: Do I call this an ASIC or a SOC? I thought it was an ASIC till I read this article.

\$\endgroup\$
2
  • 2
    \$\begingroup\$ If you upload firmware to it or store firmware on it, it's a SoC/MCU. \$\endgroup\$ Nov 8, 2013 at 6:15
  • \$\begingroup\$ A SoC can be part of a ASIC, And ASIC can contain a SoC. You can also have generic SoCs, and ASICs without a SoC. \$\endgroup\$ Nov 8, 2013 at 8:35

3 Answers 3

2
\$\begingroup\$

The article you've referenced is just the tip of the iceberg.

I think that you'll be better off ignoring all these terminology caveats about SOCs, and stick to the very simple definition of ASIC being a chip which is designed and manufactured for a specific application. If you adopt this definition, then any chip which went through all the following steps is an ASIC:

  1. Architectural specification for a single task
  2. Micro-architectural specification
  3. RTL coding
  4. Synthesis
  5. Place and rout
  6. GDSII files sent to fab (sometimes referred as "Tape-out")
  7. Custom masks preparation
  8. Fabrication

Please note that the text marked bold in #1 is very important - it is the only part which differentiates ASICs from, say, FPGAs (FPGAs go through exactly the same steps, but their architecture and micro-architecture aims to achieve versatility over a wide range of applications).

Surely, I lied - I oversimplified the ASIC design flow and made it look like ASICs and FPGAs are almost identical, but this is the only definition I can think of which does not require too deep understanding of concepts and does not rise additional questions.

Why do I think that you should not use the term SOC? Well, it is because it is not well defined and is interpreted differently in different places/circumstances/groups/etc.

For example: for years Intel manufactured a standalone CPUs and chips called "chipset" (chipset mainly contained the logic which "bridged" between CPU and memory/graphics/peripherals). These were two distinct chips containing digital/analog/mixed signals modules, various IOs, memories etc... Both were enormously complex. Nowadays there is a new trend - the functionality of both CPU and chipset is no longer separated, but reside on the same chip. These chips are referred to as SOCs by Intel (the latest was Bay-Trail if I'm not mistaken). Why do they call it SOC? Well, they had to give a name to a new micro-architectural approach, why not SOC? Surely, there is motivation behind this name, but this motivation is Intel specific. If you call your disk array controller a SOC in front of Intel engineers there is a good chance they will not understand you.

In summary:

Call your project ASIC (if it fulfills all the above criteria). Leave all this SOC terminology to Intel, ARM and co. to handle and use.

\$\endgroup\$
1
\$\begingroup\$

A SOC contains both a CPU and big peripherals (that until recently used to be on separate chips - spot the time dependency!).

An ASIC is a chip for which the (single) customer has had some (in most cases big) influence on the chip production. In most cases this influence is not on process, but on the masks. When a chip designer designs a chip and has has it made by a chip manufacturer in order to sell it as chips we do not call this an ASIC.

SOC is about what functionality the chip contains, ASIC is about who has the design responsibility.

In a lot of cases these two do not overlap, but there is no principle reason why a chip could not be an both an ASIC and a SOC.

\$\endgroup\$
1
\$\begingroup\$

It's not overly confusing, it's just that the meanings have changed over time. Here is a snap shot of the active field as of fall '13. And while it's not wrong to use the old meaning of the words it very much depends upon your audience. And it will continue to change.

While it's possible that an SOC is not a ASIC it is very unlikely and most chips produced today would be considered ASICs with notable exceptions. I'll explain why that is shortly.

An ASIC nowadays is a chip that is designed using an ASIC design flow. That is some weird circular definition I'll explain lower down how that came about. This is also NOT a custom chip (under current parlance). An SOC is a chip designed using an ASIC design flow in which the major blocks are connected by some standard interconnect or bus. This usually means that it has a microprocessor or CPU on board, but it need not. Some notable examples are ARM cores and the AMBA bus.

An ASIC flow is one in which the tools (here tools = software) are comprised of an HDL design flow (Verilog, VHDL, System C) for both system modelling and synthesizable (convertible to logic) design blocks, timing based P&R (Place and Route), Standard libraries and IP, Soft (RTL) cores and Hard cores (Masks), floor-planning software, STA (Static timing analysis) and a whole plethora of other tools. This design flow arose to deal with the complexity and rapidity of the design system in ASICs (old definition of the term).

What happened is that once the power of the tools to produce chips became widely used, even standard manufacturers started using them ( the ASSP's ) and it became the standard design flow for everyone (with notable exceptions). Once that happens the term ASIC (original meaning) was minimized - if products in your line up are all ASICS or ASSP's then of course they are all "application specific" with very broad applications - the meaning started to shift. This also follows the trend of the introduction of fabless semiconductor companies and pure play foundries to nowadays MOST semiconductor companies are fabless and once mighty IDM's (like AMD) have divested fabs and are fab-lite (In other words they have problems admitting they are fabless).

One notable exception in this is Intel's processors, which follow a different design flow using internal tools and might even be considered full custom. The north bridge and south bridge chips ( I believe) are done with an ASIC flow but it's only with the advent of the new SOC from Intel for the handset market that they have produced a processor with a ASIC flow.

Confusingly, while an ASIC could easily be considered "custom" - i.e. it has a single purpose. Nowadays "full custom" refers to designs that are designed in which the masks are hand designed - examples are image sensors, analog chips etc. Even more confusingly, parts of these chips, like logic etc. a would have blocks laid out using an ASIC flow or might even have a sub-block of a microprocessor and yet they wouldn't be called an ASIC. Simply because the dominant functions is determined by the full custom aspects.

The extreme design pressure, the short design cycles, the need to pull in other functionality (either because you want a larger part of the board functionality - so you subsume your competitors chip - this is called "socket sucking" ) or the extreme compaction of circuitry is what drives the SOC designs. That is why designs blocks are reused, and are stitched together on chip using standard interfaces. There isn't enough time to redesign everything. Design re-use is a huge factor in an SOC flow. This is by necessity a ASIC flow with the addition of perhaps better floor-planning tools.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.