If there are billions of transistors in a CPU, there is no chance that somebody designed every single one of them manually. Is their layout calculated or something?

1.70K views

If there are billions of transistors in a CPU, there is no chance that somebody designed every single one of them manually. Is their layout calculated or something?

In: 1270

28 Answers

Anonymous 0 Comments

In short, yes. The earliest CPUs were designed, laid out, and figured by hand. At that time, every single transistor had a human hand in its placement. Once CPUs became advanced enough, they could be used to design better , more advanced, more complex and compact CPUs. Those could then generate even *more* advanced CPUs. So you get a cascade effect of advancement in design, where all these transistors can be planned, traced, placed, and optimized without the need for a human being to place each one.

The software that build’s today’s CPUs would not be possible without yesterday’s CPUs.

Anonymous 0 Comments

Yes. If you’d like some insight into this, I highly, highly, highly recommend [Ben Eater’s series on breadboard computers](https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU).

In short, CPU architecture is highly modular. Rather than positioning each and every transistor individually, designers will build up one tiny module, then duplicate that module every time they need that specific functionality. Then they’ll take assemblies of those modules that perform a specific task and duplicate them everyhere they need that task performed. Repeat the chain several times, and they are placing millions of transistors every time they click their mouse.

Anonymous 0 Comments

Yea

They are all essentially the exact same thing laid out in the same pattern.

So you just have to design one and then essentially copy-paste, copy-paste, copy-paste over and over. In a digital layout, since most computer parts are all built and assembled by computers nowadays anyways

Anonymous 0 Comments

There are languages like Verilog/VHDL that help out with most of it. You write the design in a language like any other programming language and a program will compile it down to a design

Edit 1: For context, an entire assignment of one class I had back in college was to code up an entire processor using Verilog that ran custom instructions. The professor then would run your processor with a set of instructions (unique for each student) and you had to get the right result to get a good grade.

Edit 2: yes, there are other ways ICs and processors are made. This is one.

Anonymous 0 Comments

Yes.

Actually, CPU design isn’t so different than programming today. We start with a handful of veery simple operations for which circuits to perform them are simple and well known (store a bit, shift it left or right, AND, OR, etc.). From very simple operations we write more complicated ones, and from them, more complicated ones still — and we effectively “write” a CPU as it were a computer program with inputs and outputs.

Software analyzes the design in a process called “high level synthesis” and translates the “program” describing the circuits on the chip into actual physical circuits. More importantly, the same software knows how all the physical circuits behave and can simulate them in the computer, so you can test the CPU before you even make a physical chip (this is difficult and time consuming enough, that it’s often more expensive than physically making the chip, but it’s important because it has to be perfect). If the logic checks out, the computer can translate the “program” describing the circuits into an actually layout of circuits that can bee etched onto a chip.

Anonymous 0 Comments

Yes it’s generated, and the way the chips are made is similar to developing a photograph, but with multiple layers and different photos for each layer.

Anonymous 0 Comments

Jumping on this, since it feel like one of these dumb but not dumb questions:

Not sure if I was oblivious to the nuances when I was younger, but did the actual GHz of a CPU become much less decisive in indicating the performance of a CPU? When I got my first PC, kids predominantly talked about the MHz value (I got 660, X got 800, Y just got 1 GHz). Now, even when GHz numbers are close together, performance seems to be wildly different on factors like what Intel generation you get, etc.?

Anonymous 0 Comments

I’m a little old and others basically covered the subject, so I’ll just add a few interesting bits. When we were learning the IC design, one of the steps was to actually design the small functioning chip by hand using PADS. You was supposed to implement some technology rules and design every single layer (n areas, p areas, metals, polysilicon etc) manually. We started with single transistors, then gates and finished with somewhat crazy ICs. We were designing operational amplifiers as well and believe me – designing one by hand looks simple but when you simulate it – all hell breaks loose. You have to understand placement, crosstalk, interference etc etc. We even had to write simplified circuit simulators. But the best reward was that if we designed those chips properly – they were sent to the fab and we received our physical versions of chips.
You can have all those fancy software to compile hardware into silicone, but that software still needs a technology rules and base designs in it’s library to work with. And that’s how we were learning how to make those. Following year we were designing simple things like VGA cards or more complicated things like simple processors.

So yes – you have the software that will help you to design and place stuff, but you have to know how it works and technological rules to make it work.

Anonymous 0 Comments

The term is VLSI, or ‘very large scale integration’ which basically allows engineers to plug and play functionality onto a chip instead of laying each transistor out manually. The VLSI process is now completely computerized, but the idea is essentially the same.

[https://www.tutorialspoint.com/vlsi_design/vlsi_design_digital_system.htm](https://www.tutorialspoint.com/vlsi_design/vlsi_design_digital_system.htm)

Anonymous 0 Comments

It’s a lot of copy and paste, honestly. You layout a small section that can be replicated many times. You can then do a schematic to layout comparison via an automatic routine to make sure everything is hooked up right. You couldn’t check every connection by sight, it’d take too long.