1、准备需求规范
2、创建微架构文档
3、RTL设计,IP开发
4、RTL消除Linting Error,确保可综合;IP功能验证
4a、执行基于周期的验证(功能),验证RTL的协议行为
4b、执行属性检查,验证RTL实现和规范理解匹配
5、准备设计约束文件(时钟定义:频率、不确定性、抖动;IO延迟定义;输出PAD负载定义;设计False/Multicycle路径)以执行综合,通常称为针对新思工具(DesignCompiler)的SDC约束。
6、执行IP的综合,工具的输入为:库文件(综合目标,带有标准单元库的可用的功能和时序信息,以及连线基于连接的扇出长度的线负载模型)、RTL、设计约束文件,供综合工具执行RTL的综合、映射、优化,以满足设计约束的需求。执行完综合后,作为综合流程的一部分,需要基于DFT(Design For Test)需求建立扫描链(scan-chain)连接,综合工具(Test-compiler)建立扫描链。
7、检查设计是否满足需求(功能、时序、面积、功耗、可测性)。
7a、执行网表级功耗分析确保满足功耗目标
7b、使用综合网表执行门级仿真验证功能
7c、执行RTL和综合网表之间的形式验证,确认综合工具未修改功能性
7d、使用SDF(标准延迟格式)文件执行STA(静态时序分析),确保满足时序
7e、在DFT工具中执行scan-tracing,检查scan-chain是否是基于DFT需求建立的
8、综合执行后,综合网表文件(VHDL/Verilog格式)和SDC(约束文件)作为输入文件传递给布局布线工具以执行后端操作。
9、Floor-plan,基于连接性放置(place)IP、memory,创建Pad-ring,放置Pads(信号/电源/传输单元(开关电源域/corner pads(对于封装布线的正确可访问性),在高速总线开关时满足SSN需求(同时开关噪声),不会产生任何噪声相关活动,建立最佳floorplan,使设计满足芯片的利用率目标。
9a、发布floorplan信息给封装团队,执行pad-ring的封装可行性分析
9b、在布局(placement)工具中,切割行,在防止放置单元的位置创建阻塞,之后单元的物理布局基于时序/面积需求执行。电源栅格(power-grid)创建以满足芯片的功耗目标
10、布线(routing)最初的全局布线和细节布线,根据生产需要满足DRC需求。
11、执行布线后,布线后Verilog网表、标准单元LEF/DEF文件给提取工具,以在SPEF(标准寄生交换格式)格式中提取芯片寄生(RLC阻感容)参数,并生成SPEF文件。
12、布局布线后检查是否设计满足需求(功能、时序、面积、功耗、可测性、DRC、LVS、ERC、ESD、SI、IR-Drop)。
12a、执行布线后网表的功耗分析,确认设计是否满足功耗目标
12b、使用布线后网表执行门级仿真,检查设计是否满足功能需求
12c、执行RTL和布线网表之间的形式验证,确认PR工具未修改功能性
12d、使用SPEF文件和布线网表文件执行STA,检查设计是否满足时序需求
12e、在DFT工具中执行scan-tracing,检查scan-chain是否是基于DFT需求建立的,使用DFT工具执行故障覆盖,生成ATPG测试向量。
12f、将ATPG测试向量转换为测试者可理解格式(WGL)
12g、执行称作物理验证的DRC(设计规则检查)验证,确认设计满足了制造需求。
12h、执行LVS(layout vs Spice)检查,将布线网表转换为spice(SPICE-R),转换综合网表(SPICE-S),比较确认二者匹配。
12i、执行ERC(电气规则检查),确认设计满足ERC需求
12j、执行ESD检查,在芯片中同时具备模拟部分和数字部分的情况下,确认正确的背靠背二极管被放置并且具备正确的防护。对数字和模拟部分分别设置电源和地,以降低衬底噪声。
12k、执行特定的的STA以确认芯片的信号完整性。将布线网表和SPEF文件(包含耦合电容值的寄生参数)输入STA工具执行此步骤。此检查很重要,因为信号完整性问题会引发串扰延迟和串扰噪声,掩盖设计的功能和时序检查。
12l、执行IR压降分析,电源网格足够健壮以经受设计的静态和动态功耗下降,并且IR压降在目标限制范围内。
13、一旦布线设计使用设计约束验证完成,下一步进入芯片完工修整阶段(金属开槽、放置解耦帽等)。
14、芯片设计准备好进入制造单元,以制造厂可理解的GDS文件发布设计文件。
15、GDS发布后,执行LAPO检查,确认发布给fab的数据库的正确性。
16、执行封装引线键合(wire-bounding),将芯片连接至封装。