The term integrated circuit (IC) stems from the fact that with the rise of VLSI technology a whole electronic circuit can be fit into a single chip. This does not seem very exciting for many people today, as ICs have become a part of everyday life. To appreciate the advancements of VLSI think about the way digital circuits – especially large and complicated ones – used to look like in the 60s and 70s. Early mainframes took the space of a big room and even the first home computers consisted of multiple PCBs, each performing a dedicated task, and only together would the whole system function correctly.
Today almost everyone carries around many ICs every day, unaware of the fact that the processor (or rather SoC) in a mobile phone build in 2019 outperforms all the computers ever build up to the 1990s (including the super-computers of that time; I cannot prove this claim, but trust me, modern SoCs are amazing and cost far less than what similar devices would in the old days 🙂 ).

In the following the unique requirements when designing, implementing and doing layouts for ASICs will be shown.

Please note that I will use the term ASIC very broadly. Even if a chip is not really application-specific, e.g. a general purpose micro-controller, I will call it an ASIC. I write ASIC to emphasize the fact that an integrated circuit is fixed in functionality, has unalterable hardware properties and requires a different set of design and implementation methodologies as compared to an FPGA.