进来做变频器,画了不少 PCB 板子。突然发现画 PCB 和芯片设计,有极大的共同点。
先说走线和分层
现时 PCB 上的元件,主要以表面贴片为主。元件浮于PCB表面。特别是,我为了节约打样成本,使用的都是单面贴片工艺。更像芯片了。元件只集中于pcb的一个表面。然后线路在 pcb 和 pcb 的另一面。
如果把电路板倒过来,让贴片元件朝下当“底面”,那就是 元件为底层,上层为走线层。
这和 IC 的情况是极其相似的。集成电路里,蚀刻法制作的元件,都处于硅的表面。然后是十数层走线层。拿单面贴片的4层板举例,就分了元件层,和4个走线层。
接着说封装
在 PCB 上放置一个元件的时候,EDA 并不清楚元件的内部走线。EDA 要做的是,在 PCB 上留下一个“区域” 放置这个元件,以及连接这个元件的若干“焊盘”。
在 IC 设计领域,也有常说的 “硬IP核”。硬IP核在 EDA 里,也是一个固定大小的,内部情况不透明的“区域”,以及连接这个IP核的若干“输入输出”。
甚至。连最基础的“MOSFET”,在芯片的 EDA 里,其实也是“封装”。设计者只能选择将这个 MOSFET 放置此处。有3个引脚。但是,这个 MOSFET 的内部结构,是看不到的。这个和在 PCB 上放置最普通的贴片MOS的情况是一模一样的。
在 PCB 的 EDA 软件里,各种元件都有“封装”,而在芯片的EDA软件里,各种元件,也有封装。 设计pcb既可以选择分立元件,也可以使用各种IC。放在芯片设计领域,就是既可以选择软IP也可以选择硬IP。
软IP, 在,PCB的 EDA软件里,叫“原理图库”。画原理图的时候可以直接引用。但是转PCB的时候,会把原理图里引入的各种元件引入,你可以重新安排内部元件。而且还可以随时修改原理图。
在芯片EDA里,软IP, 也不再是一个裸晶上占用固定位置的“封装”,而是会和你自己写的代码一起编译。
接着说原理图
要画 PCB, 先出原理图。原理图上记录里的是 PCB 的原理电路。而芯片,也就集成电路,其实和印刷电路是一回事。只不过一个是毫米级工艺,一个是纳米级工艺。
既是电路,一样要原理图。
但是,芯片和 pcb 的最大区别,不是工艺,而是规模。
一个PCB上,有数百元件,已经算复杂了。
但是一个芯片,百万元件都是小打小闹。如今最尖端的芯片,上有百亿元件。
PCB尚可以手绘。设计集成电路,绝无手绘的可能。
因此,PCB的原理图,可以是一个电路图。 但是,芯片的原理图,就绝无可能是一个电路图。可以说,这个电路图,只能是某种更合适的描述方法的中间产物。
这个更何时的描述方法,就叫硬件设计语言。而且要经过两次编译转换,才能转换为如pcb那样的原理图。而且这个原理图,无法为人所读。
硬件设计语言,描述的是硬件的逻辑功能。经过编译器编译后,转变为能实现这个逻辑功能的“门电路”。门电路,是数字电路的基础。正如模拟电路的基础是运放。 但是,不管是门电路还是运放,都不是单一基础元件能实现的。实现一个门电路,需要数个nmos和pmos组成。因为电路里既有nmos又有pmos, 所以又称为互补mos。这也是 CMOS 名称的由来。
PS:一个运放也是需要数个 NPN型 BJT 和 PNP型 BJT 实现。所以模拟芯片的工艺,又可以叫CBJT?
到编译为门电路这一步,芯片的功能设计就完成了。可以试着使用一种叫“可编程门电路阵列”的辅助工具进行调试了。
只所以在设计阶段只到门电路,是因为接下来仿真的成本直线上升了。门电路仿真,仿真软件最低只仿真到门电路这一级别。而且对里面电流是不模拟的,只模拟逻辑上的 0 和 1。
但是,从门电路,到 CMOS, 就要面对器件的非数字性了。要考虑信号的上升时间,下降时间,传播时间了。模拟的难度直线上升。特别是现在芯片动辄包含千万门电路,也许动用超算都无法进行完整模拟了。
说布线
从芯片设计语言,再到门电路阵列,再到 MOS 互联电路 (PCB原理图)。接下来要做的,就和 PCB 设计如出一辙了。
只不过,扩大了的规模,成百上千倍的提高了工作量和难度。
不过,也有一个好消息。就是数字电路的规模虽大,但是很多netlist其实看起来是简单重复的。 这种简单重复的电路连接,就可以考虑让电脑自动完成布线。
PCB设计里,虽然有自动布线。但是多数布线还是依赖手工。就是因为 pcb 里很少会出现单一规律的简单重复连线。导致自动布线总是不如意。
而芯片,且不说这种简单重复的电路,自动布线是得心应手。就算有些不如意,人又如何检查的出来呢?
正如软件工程师有时候会检查下特定代码经过编译器后会产生如何的机器指令。但是多数时候,他们也只能选择“相信编译器”。然后祈祷编译后的代码能正常运行。
所以,芯片工程师,也只能选择相信 EDA 给出的结果。然后祈祷流片回来的芯片能正常工作。
前后端分工
在PCB行业,pcb的设计分为“原理图绘制” 和 “PCB布线” 两种任务。两个任务可以一个人完成,也可以拆分。
同样的,芯片制造业,也分芯片前端和芯片后端。
原理图绘制,面对的主要是“功能逻辑”。而在 PCB布线阶段,就要考虑和 PCB加工厂的合作了。 因为PCB加工厂的能力,决定了PCB布线的时候能否随心所欲。比如 PCB加工厂无法加工低于 0.1mm 的线,那绘制的时候,就必须要保证所有的走线都要比 0.1mm 宽。比如PCB加工厂无法提供“盘中孔”工艺,那pcb布线的时候就只能选择扇出后打孔。而不能直接在焊盘上打孔换层。pcb加工厂只能最多加工8层线路板。那设计的时候就只能多飞线,勤换层了。
PCB的工艺还会影响线路的“寄生参数”。反过来又要影响 pcb 的设计。
同样的,在芯片制造业,芯片代工厂的制造能力同样也会限制芯片后端工程师的发挥。工程师只能在工厂的能力范围内进行设计。
通常来说,芯片工厂只会宣传“特征工艺”的参数。但是影响电流设计的参数千千万万。可不是一个纳米就能描述的清楚的。在高速 PCB设计领域,PCB工艺对设计最直接影响的地方,就是线路的寄生电容和寄生电感。这决定了pcb布线的特征阻抗。而高速信号对阻抗异常敏感。
而且 pcb 工厂只加工线路,不制造元件。而芯片代工厂不仅仅加工线路,也制造元件。所以代工厂的工艺除了寄生电容寄生电感,还包括其制造的 MOS 的各项参数。
结论
所以造芯片和造PCB其实从根上说,是一回事。只不过 芯片倾向于简单电路的超大规模重复叠加。因此更容易实现自动化。而更大的规模也导致不得不依赖自动化。 pcb 的规模一直都维持在较小的范围。因为复杂的逻辑都倾向于使用IC代劳。
Comments