如何靠写代码,设计一个百亿晶体管芯片?( 二 )


如果代码没问题 , 就可以编译了 , 这在芯片设计里叫“综合Synthesis” , 综合的结果就是生成一堆互相连接的门电路 , 也叫做网表 。 这就需要使用专门的综合工具DesignCompiler 。
综合生成的网表再用ICCompiler做布局布线、用PrimeTime做时序分析、用PrimePower做功耗优化 , 用ICValidator做物理验证 , 用StarRC做寄生参数提取等等等等 , 最终生成一个符合设计要求、也符合晶圆厂代工要求的GDSII文件 , 这个东西就被拿去进行流片生产 。
上面介绍的这些软件只是整个EDA工具库里的九牛一毛 。 规模大一点的芯片公司其实都会根据自己的产品和技术 , 在每个环节采用不同的工具 。 这种定制化的方法比较高效 , 但是对技术要求比较高 , 只有大公司玩得了 。 其他公司 , 特别是中小规模的公司可能就会直接使用EDA厂商的完整方案 , 比如Synopsys的FusionCompiler , 直接从RTL硬件语言到GDSII版图一步到位 。
EDA软件发展的四个阶段
整个芯片设计流程里用到了大量的EDA工具 。 EDA工具的好坏对于芯片的性能、功耗和面积 , 也就是PPA , 有着决定性的影响 。 同样的一段代码 , 不同的工具会做出截然不同的芯片 。 但是 , EDA的发展也并不是一蹴而就的 , 而是经历了四个主要的阶段 , 分别是计算机辅助设计、计算机辅助工程、传统EDA、AI加持的EDA 。
在上世纪70年代中期 , 人们开始使用计算机来辅助芯片的晶体管版图设计、PCB电路板的布局布线、设计规则检查等相对简单的工作 。 到了80年代 , 卡弗尔米德和琳康维发表了《超大规模集成电路系统导论》 , 提出了使用编程语言进行芯片设计的思想 , 这也成为了EDA发展的重要标志 。
在1986和1987年 , Verilog和VHDL这两种硬件描述语言诞生 。 几乎在同一时间 , AartdeGeus博士发明了自动逻辑综合技术 , 以取代手动设计过程 , 并在1986年联合创立了Synopsys新思科技 , 这也标志着EDA工具开始走向商业化 。
如何靠写代码,设计一个百亿晶体管芯片?
文章图片
从90年代到21世纪初期 , 在摩尔定律的指引下 , 芯片上晶体管的密度越来越高 , 设计流程越来越复杂 , EDA工具成为了芯片设计的必选项 , 也促进了EDA工具的进步 , 包括前面说的综合、仿真、布局布线等等技术 , 都在这个时期得到了飞速发展 。 这些EDA工具也缩短了研发周期、提升了设计效率 , 从而又反过来促进了芯片产业的技术革新 , 形成了正向反馈的螺旋式上升 。
目前是AI加持的EDA新时代 。 谷歌在Nature上发表一篇文章 , 用深度学习技术帮助芯片设计 , 人类工程师需要几个月完成的工作 , 谷歌的AI仅需要6个小时就能达到相同或者近似的结果 。 新思也推出一个名叫DSO.ai的技术 , 可以用到新思所有的EDA工具上 , 并且在某个芯片的设计上可以得到21%的功耗降低、18%的性能提升 , 并且把原本6个月的设计时间缩短为1个月 。
如何靠写代码,设计一个百亿晶体管芯片?
文章图片
我不负责任的猜想一下 , 加了AI这个buff的EDA工具 , 很可能就是芯片行业再次起飞的最大动力 。
中国EDA产业如何发展?
EDA如此重要 , 而全球三大EDA领导者占据了超过70%的全球市场份额和接近80%的中国市场份额 , 他们是如何发展到今天的程度 , 中国的EDA产业又该如何迎头赶上呢?
从国际EDA发展的进程来看 , 我总结了4个可以借鉴的发展规律 。
首先EDA需要大量研发投入 。 EDA产业属于典型的需要长期投入的领域 , 它里面有大量的数学物理相关的基础研究 , 国际学术界有四大顶级EDA会议(DAC、ICCAD、DATE和ASP-DAC) , 里面讨论的绝大部分都是从芯片设计里抽象出来的数学和算法问题 , 我当年发的DAC文章就是关于数学运算单元的综合算法 , 估计现在能看懂的人也不多 。 这些基础研究都很难在短时间内转化为生产力 , 行业门槛很高 , 前期投入产出比很低 , 这就需要政府的大力支持 。