因为我们有EDA(Electronic design automation, 电子设计自动化)工具呀……
首先,这几十亿晶体管里有99.999…%都是数字电路,模拟电路从晶体管数目上来说是很少很少的(虽然面积可能不小,因为模拟电路的单个晶体管尺寸可能比数字电路大很多,而且电容电感电阻这些模拟原件面积都很大)。
对于模拟电路、大部分数模混合电路和少数全定制数字电路,确实是一个管子一个管子搭起来的。但是这种电路要么管子数量很少,要么有很多模块可以大量复用(比如SRAM……),所以工程量可以接受。
对于占大头的数字电路,是通过硬件描述语言(verilog和vhdl)和大量的自动化工具实现的。首先,顶层的架构设计师给出电路功能的行为级描述,然后rtl工程师写出电路的rtl(寄存器传输级)代码,rtl代码经过综合工具会生成门级网表,后端工程师将门级网表输入后端工具进行布局布线,最后再手工修复自动布局布线的bug。
这里面rtl工程师写的一句代码可以对应几十个甚至成百上千个逻辑门,在后端自动生成几千个晶体管,这个过程基本全是工具自动完成。比如你在设计中花几十行代码声明了1kb的缓存,eda工具就会自动拷贝1024个8bit SRAM单元并完成布局布线,这就是差不多十万个晶体管了……
除了需要手动修复drc/lvs bug的后端工程师,其他数电团队的人并不需要直接和这数不清的晶体管打交道,只要写rtl代码并给出适当的设计约束,剩下的交给eda软件和后端工程师就好了。
所以请大家善待后端/layout工程师!