数字集成电路设计实现流程是个相当漫长的过程,拿手机基带芯片为例,对于3G, 4G, 5G, 工程师最初见到的是无数页的协议文档。
- 架构师要根据协议来确定:协议的哪些部分可以用软件实现,哪些部分需要用硬件实现;一颗芯片,性能的60% 取决于架构师,在国内好的架构师不超过三位数,极好的架构师不超过两位数,架构师是芯片灵魂的缔造者,是食物链的最顶端,是牛逼闪闪的存在,就驴浅显认知,除了office 似乎没有EDA 工具用于架构设计。
- 算法工程师要深入研读协议的每一部分,并选定实现所用算法,架构敲定了之后,大量的算法工程师跟上,对于协议规定的每个点,都要选择适当的算法,用C/C++ 做精确模拟仿真,要确保功能、精度、效率、吞吐量等指标,Matlab 跟GCC 应该是他们使用最多的工具。
- 芯片设计工程师,需要将算法工程师选定的算法,描述成RTL;
设计工程师根据算法工程师经过反复模拟仿真选择的算法,将抽象描述或定点C 转换成RTL, 在设计过程中需要反复仿真、综合,以确定设计功能的正确性,跟设计能达到的PPA. 除了RTL, 设计工程师还需要根据设计目标编写SDC 和power intent, 并做对应的质量检查。设计工程师需要使用大量EDA 工具:
- 编辑器:VIM, emac;
- Lint : RTL 质量检查,Spyglass, Jasper;
- CDC: SDC 质量检查,Spyglass, Conformal, GCA;
- CPF/1801: power intent 质量检查,CLP;
- Power: RTL 级功耗分析,Joules, PA;
- 仿真器:C, S, M 三家都有各自的仿真工具;
- 综合:Genus, DC;
- 集成工程师:从集成开始,由脑力劳作进入体力劳作,对比盖房子,就是从设计师到泥瓦工。集成工程师,要把芯片所用的所有模块相互连接起来,指导思想是架构工程师确定的,各个IP 如何连接是各IP 的owner 确定的,集成工程师只要保证不多连、不少连、不乱连即可,据说当前也没有什么有效的集成工具,常用到的是emac。
- 芯片验证工程师,需要根据算法工程师选定的算法设计测试向量,对RTL 做功能、效能验证;验证工程师需要掌握许多技术,需要使用许多工具。
- 语言:各种脚本语言之外,C/C++, SystemVerilog, Verilog;
- 协议:各种接口协议,各种通信协议,各种总线协议;
- 工具:动态仿真工具,静态仿真工具,FPGA, Emulator;
- 数字实现工程师,需要根据算法工程师和设计工程师设定的目标PPA 将RTL 揉搓成GDS;
- 芯片生产由于太过复杂,完全交由代工厂完成,封装亦是;
- 对于测试,大部分公司都是租借第三方测试基台由自己的测试工程师完成,只有少部分土豪公司才会有自己的测试基台。