1. 原文
FPGA是一款芯片,只是数字IC设计上板测试过程中的一个必要的实现平台,在IC设计和验证过程中,如果深刻理解Verilog(或者其他硬件描述语言)与底层实现的关系才最重要。
问:为什么IC设计岗会招有FPGA设计经验的人?
答:因为FPGA设计经验的人会写Verilog且有一定的硬件设计思维。在FPGA设计时,包含了IC设计的主要流程。
所以IC设计或者验证工程师,必须对IC设计的全流程进行熟悉,才能在自己的岗位上更加得心应手。或者知道哪个环节最赚钱,就想办法把自己往那个方向培养。
2. 内容
一个芯片是包含很多模块的,有CPU,DSP,USB外设,memory等,然后通过总线连接,1通常我们都是把各个模块先设计好(IP team),然后再把他们集成到一起(SOC team)。
一款IC产品的诞生,主要包含三个部分:
- 确定项目需求
- 系统级设计
- 前端设计
- 后端设计
确定项目需求和系统级设计
如果无法明确项目设计需求,那就是无头的苍蝇不知从那方面设计。确定芯片的功能,然后用算法进行模拟仿真,最后得出一个可行的芯片设计方案。这个部分一般由架构工程师完成!
不用说,架构工程师一般都是待遇最好的。不要做一个写代码的,要往做架构去发展。一直写代码才是最苦逼的工作。
前端设计
-
RTL(Register Transfer Level)设计 :利用硬件描述语言,如VHDL,Verilog,System Verilog, 对电路以寄存器之间的传输为基础进行描述。
-
功能仿真 :通常是有DV工程师来完成这部分工作,通过搭建test bench, 对电路功能进行验证。
-
逻辑综合 :逻辑综合是将电路的行为级描述,特别是RTL级描述转化成为门级表达的过程。也就是将代码翻译成各种实际的元器件。
-
STA (Static Timing Analysis ) :静态时序分析,也就是套用特定的时序模型,针对特定电路分析其是否违反设计者给定的时序限制。
整个IC设计流程都是一个迭代的过程,每一步如果不能满足要求,都要重复之前的过程,直至满足要求为止,才能进行下一步。
除了以上的步骤,前端设计还有一个步骤就是DFT (Design For Test)(可能是DFT最全面的介绍–入门篇),随着芯片越来越大,DFT也就成为必不可少的一步。DFT通常要做scan chain, mbist ,ATPG等工作。
完成以上的工作后,就生成nestlist交给后端。
后端设计
下图给出了后端设计的流程及主要工作。
Place & Route一般由后端工程师来做(Physical Design Engineer)。
后端里DRC就是要检查设计规则是否符合芯片制造商的要求,这样才能正确的生产芯片。
后端完成工作后,最终会生成GDSII格式的文件,交由芯片制造商流片。