现代IC设计和几十年前的IC设计流程是存在很大的差别,随着IC系统逐渐转向SoC演化,IC设计逐渐以性能、面积、功耗之间取得平衡,内容及流程也越来越丰富,所以今天就谈谈现代IC系统设计流程,希望对工程师有一定的启示作用。
首先,在十几年前,IC系统设计流程初步可看做是以此简单的写代码、综合设计、布局布线,但对于当下的IC设计,其设计内容和流程已经被大大拓展了。
现代IC系统设计包括算法设计、软/硬件划分、存储器分配、RTL设计、模拟仿真、验证综合、静态时序分析、等价性严重、Floorplan、时钟树生成、布局布线、可测性设计、低功耗设计、信号完整性分析等内容,为清楚起见,可将IC设计分为三大阶段,分别是系统设计、电路/逻辑设计、物理设计,如图所示,注意嵌入式软件设计是属于软件设计范畴,所以忽略。
系统设计主要包括算法设计和架构设计,具体内容如下:
给出浮点数算法;
进行软硬件划分;
给出IC设计中数据的定点表示;
给出定点算法;
结构的并行性、流水线设计;
存储器分配。
电路/逻辑设计是将系统设计的算法、架构付诸实现的过程,可分为数字设计和模拟设计两种。对于数字设计,多采用Verilog/VHDL语言在寄存器传输及完成设计,由综合工具生成网表;对于模拟设计,一般采用电路图与SPICE语言来完成设计。
物理设计是IC设计的最后环节,无理设计得到的GDSII文件被送到工厂进行生产,对于模拟电路和有特殊要求的数字电路,采用定制方法完成物理设计;对于一般的数字设计,采用自动布局布线方法完成物理设计。
需要说明的是,对于深亚微米的SOC设计,上述开发流程不再是按“自始至终”的单一顺序进行,而是互相迭代。