I'm working (as a consultant) for a company that does state-of-the-art chip design. The complexity is mind-boggling. The number of different types of core components isn't very high; at root it's all transistors and (nominally) rectangular pieces of metal. But these simple building blocks interact with each other in ridiculously complicated ways. Just processing the files that contain the timing information for the current generation of chip fabrication technology takes over an hour on a fully-tricked-out server. Checking a design to see if it meets a timing spec takes many hours using dozens of servers. And then you have to deal with power, thermal constraints, geometric design rule checks (the list of rules you have to follow is a PDF document hundreds of pages long), clock distribution... Frankly, it amazes me that state-of-the-art chips work at all.
reply