RLM的快速物理设计
时间:03-18
来源:互联网
点击:
1 前言
随着集成电路工艺技术的不断发展,集成电路的特征设计尺寸进入到深亚微米,芯片规模扩大到百万门级,从计算量、后端布局布线(placement&routing,P&R)工具、内存占用、运行时间、设计时序收敛性等方面考虑,扁平化的后端实现方式已变得难以承受,近年来,层次化的设计方式被广泛采用,以实现大规模芯片的后端工作。
随着芯片规模的扩大,设计复杂性的提高,设计周期成为广泛关注的问题。设计周期主要取决于4个方面[1]
1.设计步骤
2.各个设计步骤需要重复的次数
3.各个设计步骤的执行时间
4.各步骤之间需要等待的时间
设计周期的缩短需要从这4个方面努力。此外,还有一个能缩短设计周期的因素:可参考设计流程。可参考设计流程定义了设计中必须执行的设计步骤,比如,著名的rugged.script是SIS的参考综合流程[2]。参考设计流程让用户在设计初期就能够快速开始设计,否则设计人员在设计初期需要自行作多种尝试,决定设计流程。
本文首先介绍IBM的专用集成电路(ASIC)设计流程,然后详细介绍层次化模块设计中对子模块进行快速物理设计的可重用设计流程(RLMREDOFLOW),顶层整合时对子模块的优化处理方法,以及该RLM设计流程的优点。
2 IBM ASIC设计流程简介
图1描述了IBM的ASIC设计流程。在初始设计阶段,系统工程师、前端逻辑设计工程师和后端物理实现工程师将一起分析设计,进行设计规划,根据逻辑设计和物理特性划分设计层次。层次划分是这一阶段重点要考虑的因素,将影响到综合和布局布线时对子模块边界优化的力度,子模块之间连接关系的复杂程度等。此外,进行层次划分时还要考虑逻辑设计的进度,如果部分子模块的前端逻辑设计比其他子模块早,则可以先完成这部分子模块的物理设计。
图1 IBMASIC设计流程
3 RLM可重用设计流程(RLM REDO FLOW)
RLM可重用设计的自动化流程涵盖了从可测性设计(DesignForTest,DFT),物理设计到时序收敛的后端设计的各个方面,使得设计工程师可以通过一个标准化的设计流程来保证后端设计的收敛性和较少的迭代周期。我们根据后端设计中的主要设计节点把整个子模块的后端设计分为9个部分来具体实现。
1)100前端处理
2)200确定物理信息
3)300为时序驱动的布局做准备
4)400时序驱动的布局
5)500 时钟插入&时钟绕线
6)600时钟插入后的LateMode时序收敛
7)700时钟插入后的EarlyMode时序收敛
8)800 详细布线
9)900交付验收
下面具体介绍各个设计步骤。
100前端处理
主要完成RLM内部测试结构的生成,包括插入扫面链,以及测试逻辑,如边界扫描逻辑、存储器件的内建自测试逻辑等。
200确定物理信息
确定RLM的一些主要物理信息,包括RLM的大小、形状、内部的电源网络、内部硬核的摆放、边界上端口的位置。
1)首先定义RLM的大小、形状,以及RLM的绕线资源,这是RLM能够独立于顶层设计往下走的一个起点。往往这些信息的确定是经过多个迭代后的结果,而一旦确定之后在设计后期再要修改会极大的影响设计的可重用性。
2)在给定的RLM资源的基础上进行硬核的预布局(Floorplan)工作。预布局工作可以利用工具自动完成或者采用手工摆放的方式,需要考虑到时序收敛和绕线拥塞,在设计初期会占用很大的设计时间来达到一个较好的预布局结果。
3)根据已做好的预布局结果,对硬核中端口噪声较高的区域进行防噪声处理。
4)分析整个RLM的时钟结构。
5)进行电源设计,一个独立的RLM的电源设计需要在RLM边界上有一个电源环的结构,以此来连接RLM内部和顶层的电源信号。
6)自顶向下的来完成RLM的端口摆放,在后续的设计中可以根据RLM内部设计的需求来进行一些调整。
7)在不考虑线延迟的情况下对RLM的时序进行分析,以确定时序约束的合理性,需要注意的是,要做好RLM边界的时序约束。
300为时序驱动的布局做准备
主要完成RLM端口和内部硬核的相关逻辑的预布局,同时也可以根据设计的具体需求进行其他重要逻辑的预布局。通过前面时钟结构分析的结果,把设计中时钟相关的逻辑确定出来,与时钟相关的设计我们会放在布局之后独立完成。
400时序驱动的布局
基于上一步的输出,对剩下未做布局的部分进行时序驱动的布局。并对完成布局的网表进行时序和物理的检查。
500时钟插入&时钟绕线
根据前面时钟结构分析的结果在做完布局的设计上进行时钟树的插入工作,并进行时钟的绕线。
600时钟插入后的LateMode时序收敛
调用优化工具优化setup,直到setup满足要求
700时钟插入后的EarlyMode时序收敛
调用优化工具优化hold,直到hold满足要求
800详细布线
对所有信号进行布线,并完成物理特性的检查。然后提取寄生参数,以及噪声、耦合信息,进行时序分析,并调用优化工具优化时序。
900交付验收
检查RLM的布局布线、时序、功耗、噪声等,确保RLM的设计满足验收要求,可以交付给顶层进行整合。
从上面的设计流程可以看出,RLM设计和顶层设计的交互主要在200和900这两步。在RLM设计流程开始之前,芯片的顶层设计人员需要确定 RLM的在芯片上的位置、形状(包括尺寸)、端口的位置和约束,可用于RLM布线的最高金属层,以及RLM边界上的时序约束。在RLM设计人员进行RLM 设计的同时,顶层的工作可以并行进行,各个RLM的设计也是可以并行的,并行度的提高大大缩短了设计周期。
随着集成电路工艺技术的不断发展,集成电路的特征设计尺寸进入到深亚微米,芯片规模扩大到百万门级,从计算量、后端布局布线(placement&routing,P&R)工具、内存占用、运行时间、设计时序收敛性等方面考虑,扁平化的后端实现方式已变得难以承受,近年来,层次化的设计方式被广泛采用,以实现大规模芯片的后端工作。
随着芯片规模的扩大,设计复杂性的提高,设计周期成为广泛关注的问题。设计周期主要取决于4个方面[1]
1.设计步骤
2.各个设计步骤需要重复的次数
3.各个设计步骤的执行时间
4.各步骤之间需要等待的时间
设计周期的缩短需要从这4个方面努力。此外,还有一个能缩短设计周期的因素:可参考设计流程。可参考设计流程定义了设计中必须执行的设计步骤,比如,著名的rugged.script是SIS的参考综合流程[2]。参考设计流程让用户在设计初期就能够快速开始设计,否则设计人员在设计初期需要自行作多种尝试,决定设计流程。
本文首先介绍IBM的专用集成电路(ASIC)设计流程,然后详细介绍层次化模块设计中对子模块进行快速物理设计的可重用设计流程(RLMREDOFLOW),顶层整合时对子模块的优化处理方法,以及该RLM设计流程的优点。
2 IBM ASIC设计流程简介
图1描述了IBM的ASIC设计流程。在初始设计阶段,系统工程师、前端逻辑设计工程师和后端物理实现工程师将一起分析设计,进行设计规划,根据逻辑设计和物理特性划分设计层次。层次划分是这一阶段重点要考虑的因素,将影响到综合和布局布线时对子模块边界优化的力度,子模块之间连接关系的复杂程度等。此外,进行层次划分时还要考虑逻辑设计的进度,如果部分子模块的前端逻辑设计比其他子模块早,则可以先完成这部分子模块的物理设计。
图1 IBMASIC设计流程
3 RLM可重用设计流程(RLM REDO FLOW)
RLM可重用设计的自动化流程涵盖了从可测性设计(DesignForTest,DFT),物理设计到时序收敛的后端设计的各个方面,使得设计工程师可以通过一个标准化的设计流程来保证后端设计的收敛性和较少的迭代周期。我们根据后端设计中的主要设计节点把整个子模块的后端设计分为9个部分来具体实现。
1)100前端处理
2)200确定物理信息
3)300为时序驱动的布局做准备
4)400时序驱动的布局
5)500 时钟插入&时钟绕线
6)600时钟插入后的LateMode时序收敛
7)700时钟插入后的EarlyMode时序收敛
8)800 详细布线
9)900交付验收
下面具体介绍各个设计步骤。
100前端处理
主要完成RLM内部测试结构的生成,包括插入扫面链,以及测试逻辑,如边界扫描逻辑、存储器件的内建自测试逻辑等。
200确定物理信息
确定RLM的一些主要物理信息,包括RLM的大小、形状、内部的电源网络、内部硬核的摆放、边界上端口的位置。
1)首先定义RLM的大小、形状,以及RLM的绕线资源,这是RLM能够独立于顶层设计往下走的一个起点。往往这些信息的确定是经过多个迭代后的结果,而一旦确定之后在设计后期再要修改会极大的影响设计的可重用性。
2)在给定的RLM资源的基础上进行硬核的预布局(Floorplan)工作。预布局工作可以利用工具自动完成或者采用手工摆放的方式,需要考虑到时序收敛和绕线拥塞,在设计初期会占用很大的设计时间来达到一个较好的预布局结果。
3)根据已做好的预布局结果,对硬核中端口噪声较高的区域进行防噪声处理。
4)分析整个RLM的时钟结构。
5)进行电源设计,一个独立的RLM的电源设计需要在RLM边界上有一个电源环的结构,以此来连接RLM内部和顶层的电源信号。
6)自顶向下的来完成RLM的端口摆放,在后续的设计中可以根据RLM内部设计的需求来进行一些调整。
7)在不考虑线延迟的情况下对RLM的时序进行分析,以确定时序约束的合理性,需要注意的是,要做好RLM边界的时序约束。
300为时序驱动的布局做准备
主要完成RLM端口和内部硬核的相关逻辑的预布局,同时也可以根据设计的具体需求进行其他重要逻辑的预布局。通过前面时钟结构分析的结果,把设计中时钟相关的逻辑确定出来,与时钟相关的设计我们会放在布局之后独立完成。
400时序驱动的布局
基于上一步的输出,对剩下未做布局的部分进行时序驱动的布局。并对完成布局的网表进行时序和物理的检查。
500时钟插入&时钟绕线
根据前面时钟结构分析的结果在做完布局的设计上进行时钟树的插入工作,并进行时钟的绕线。
600时钟插入后的LateMode时序收敛
调用优化工具优化setup,直到setup满足要求
700时钟插入后的EarlyMode时序收敛
调用优化工具优化hold,直到hold满足要求
800详细布线
对所有信号进行布线,并完成物理特性的检查。然后提取寄生参数,以及噪声、耦合信息,进行时序分析,并调用优化工具优化时序。
900交付验收
检查RLM的布局布线、时序、功耗、噪声等,确保RLM的设计满足验收要求,可以交付给顶层进行整合。
从上面的设计流程可以看出,RLM设计和顶层设计的交互主要在200和900这两步。在RLM设计流程开始之前,芯片的顶层设计人员需要确定 RLM的在芯片上的位置、形状(包括尺寸)、端口的位置和约束,可用于RLM布线的最高金属层,以及RLM边界上的时序约束。在RLM设计人员进行RLM 设计的同时,顶层的工作可以并行进行,各个RLM的设计也是可以并行的,并行度的提高大大缩短了设计周期。
- 64位MIPS的起源,回顾及展望(11-02)
- 功能原型设计系列:为您的原型系统添加I/O(03-19)
- 电子系统设计自动化方法和设计环境的研究(07-21)
- 基于SystemC 的系统验证研究和应用(08-10)
- 鳍式场效晶体管寄生提取的复杂性(12-26)
- 从传统电路检查到先进可靠性验证的最佳实践(07-03)