结构化ASIC技术可减少与创建新器件有关的开发成本、资源和时间,但这些优势只有通过合适的设计工具和方法学才能完全实现。本文分析了结构化ASIC的架构特点和设计流程,并讨论了真正的结构化ASIC的定制物理综合解决方案的功能要求,同时给出目前最先进的一些实现方案。 结构化ASIC(也称为平台ASIC)的架构有很多种,但每种都基于被称为“片(tile)”或“模块”的基本逻辑单元(本文用“片”涵盖这两种概念)。基本片通常包含少量的预定义组合逻辑,根据具体的架构,它还可能包含寄存器、缓冲驱动器和少量的本地RAM,大量的基本片(基本片阵列)被预制在芯片表面(见图1)。 结构化ASIC还包含另外一些预制单元,例如可配置的通用高速I/O模块、嵌入式RAM模块、数字锁相环(DLL)以及嵌入式微处理器内核等。此外,结构化ASIC还包含各种带扫描线的嵌入式测试电路,这些电路可由供应商完成自动布线以满足可测试性设计(DFT)要求。 一些结构化ASIC架构中的片相对比较精细,但有些供应商则选用中等粒度的架构。例如,中等粒度的结构化ASIC架构具有的片,将包含一些门和(或)乘法器的通用逻辑以及一个或多个触发器。与中等粒度的架构相比,精细粒度的架构由基本的晶体管群组成,这些晶体管可通过金属化层进行连接组合,以构建相关技术库单元中的任何单元。这种精细粒度的架构非常灵活,但与中等粒度的架构相比,它们需要更多的定制金属化层。
图1:核心结构化ASIC架构基于“片阵列”的概念。
这里的关键点是传统的标准单元和门阵列ASIC都是精细粒度的,因为实质上它们都由门和寄存器构成。设计中使用的软件或固件宏以及IP模块也都是由门和寄存器构成的。因此,与传统ASIC一起使用的综合技术采用针对这些精细架构作了调整优化的算法。然而,即使在精细度的结构化ASIC中,与传统ASIC一起开发出来的综合技术也不是很适合与片和固定的布线资源、锁定(blockage)一起工作,这将导致这些架构有关的潜在的布线拥塞问题。 这些问题在中等粒度的结构化ASIC架构中更加严重,因为结构化ASIC的基本构建块与传统ASIC有很大不同,需要高度专用的优化算法。另外,结构化ASIC中的片是与固定的电源栅格对齐的,因此物理综合工具必须对这些片和它们的组成单元进行合理布局。 精细粒度和中等粒度的架构由于多种原因可受益于定制优化。除了能够满足时序和面积目标并创建合理的布局外,这些架构还可避免信号完整性(SI)问题。值得注意的是,中等粒度的结构化ASIC架构还受益于定制综合映射技术,该技术可很好地利用器件的专用片单元,例如算法知道如何利用乘法单元高效地实现逻辑。 结构化ASIC的设计流程 在传统的ASIC设计中,设计工程师需要大约6个月时间来调整底层规划、RTL和约束(包括许多内部设计反复和大量的设计验证),直到他们相信该设计能满足目标要求,并可交付给ASIC供应商使用。 然而,当ASIC供应商利用后端工具进行详细布局、布线、寄生抽取、时序分析、信号完整性分析以及电源栅格分析时,还会产生很多问题。ASIC供应商大约需要一个月时间才能实现时序和设计收敛。最后,设计被返回给设计工程师,由他们根据ASIC供应商提供的更精确的性能、可布线性和信号完整性数据对底层规划、RTL和约束进行调整。事实上,一个典型的ASIC设计在ASIC供应商最终实现时序收敛并制造出原型芯片之前,需要三次这样的反复过程。 在结构化ASIC中,如电源栅格等许多特性都已创建好,以减少传统ASIC必须完成的设计、甚至更重要的验证工作量。这样,设计工程师向结构化ASIC供应商首次交付设计的时间将减少到传统ASIC所需的2/3左右。 但当采用通用物理综合技术时,结构化ASIC设计将面临与标准ASIC设计流程相似的问题。特别是,采用通用物理综合技术的结构化ASIC设计通常需要三次甚至更多的交付反复,才能让ASIC供应商实现时序收敛、分析和解决信号完整性问题以及制造出原型芯片。多次交付特别耗费时间和资源,因此不可避免地会导致进度延迟。 当采用定制物理综合解决方案进行结构化ASIC设计时,情况会发生根本改变。首先,调整初始底层规划、RTL和约束直到能交付给ASIC供应商的时间可缩短到2个半月。更重要的是,在采用定制物理综合的设计流程中,对结构化ASIC供应商的交付只需一次,而且提供给供应商的设计数据质量很高,这意味着流程的后端部分只需数周时间,就可开始原型芯片的制造。此外,由于只需创建少量的金属化光掩模和金属化层,原型制造只需1个月时间。相比之下,传统ASIC需要几个月才能完成原型制造。 最终结果是,采用定制物理综合方案的结构化ASIC的整个流程所需时间,还不到采用通用物理综合方案的结构化ASIC流程所需时间的1/2,以及传统ASIC流程所需时间的1/3。 物理综合工具Amplify Synplicity公司的Amplify系列产品是目前最先进的结构化ASIC物理综合工具之一。该工具基于业界领先的Amplify FPGA物理综合引擎,通过采用专门优化的算法和技术,其性能得以大幅提升,可完全满足结构化ASIC架构的要求。 Amplify工具可让设计工程师对设计(包括供应商的IP和来自以前设计的内部IP)进行汇编、物理综合,并在单个统一的环境中分析整个设计,从而提高设计工程师的生产力。它还支持自顶向下和自底向上(分割式)的设计方法,后者允许多个小组成员独立地设计属于他们自己的那一部分,随后再汇编成最终版本。 为对完整的底层规划进行汇编,Amplify软件输入LEF主片信息和DEF设计数据,包括I/O布局数据以及存储器布局等其它现成的底层规划数据。通过Ampplify软件集成的底层规划编辑器,设计工程师可快速方便地集成预定义的供应商IP,并对宏和存储器模块进行合理布局。 为确保随后进行的详细布局和布线的质量,采用合理的底层规划特别重要。对于那些时序和(或)应用目标具有挑战性的设计来说,重要的是能够合理地编辑底层规划并快速查看结果,以便于不同实现案例的开发。利用关于供应商设计规则的定制知识、合理的布局点和锁定信息,底层规划编辑器能确保设计是完全正确的。然后,Amplify物理综合软件同步优化网表和布局,以满足性能和利用率目标。 此外,核心Amplify引擎还经过了进一步定制优化,可满足特殊的结构化ASIC架构系列产品的独特需求。
图2:利用乘法器创建一个AND功能块的最优实现。
1、特殊架构映射 传统ASIC综合工具首先接收高层的设计描述,并把这些描述映射成普通的布尔方程,然后再将这些方程映射成基本的逻辑元素。采用这种方法,这些工具将无法利用结构化ASIC器件中更有效的复杂的库单元。 Amplify系列工具则采用直接映射的方法,将高层设计描述中的构造直接转换成结构化ASIC中的相应单元。通过提供直接到RAM模块等单元的定制映射,Amplify工具能够充分利用所有专用的主片资源。另外需要考虑的是,结构化ASIC库在某些情况下对单元驱动能力的选择范围要比标准单元ASIC窄,此时可充分利用结构化ASIC库中可用单元的特殊架构映射将变得更加重要。 2、特殊架构的资源监视和平衡 传统的标准单元ASIC综合工具基于这样一个前提,即ASIC库中的任何单元都可以使用,不受数量限制。然而,在某些结构化ASIC架构中,器件是由一定数量的片单元(如乘法器、反相器和寄存器)组成。例如,如果一个实现使用了所有的反相器,那么即使只用裸片上20%的乘法器,这个裸片也被认为已完全占用。很明显,这种实现不能高效地使用裸片资源。当以平衡比率使用资源时,被占用的物理面积将更少,裸片的适配能力也更强。 为解决这个问题,Amplify软件会在物理综合过程间跟踪当前的资源使用情况。如果某种资源被过度使用,该软件就会调整对设计非关键部分的实现,从而利用其它可用的资源。 3、特殊架构的模块发生器 当关键路径中包含算术运算符时,传统的综合环境使用IP元件库,并根据不同的实现进行折衷。然而,在整个设计过程中,传统的综合工具(使用.lib文件中的有限信息)很难决定采用何种方法才能最好地实现这种运算符。 Amplify物理综合工具则利用被称为模块发生器的定制特殊架构算法来实现这些运算符。这种模块的产生过程与结构化ASIC技术有紧密关系,该模块发生器对目标库进行分析以确保对最优实现的选择是基于可用单元的。 4、特殊架构的时序改进 标准ASIC综合工具一般使用AND门等门级基本单元来实现设计,这意味着在具有不同硅实现基本的结构化ASIC的实现中,设计工程师经常无法进行关键的特殊架构优化,而这种优化可使设计更有效更快速。而Amplify工具则可充分利用任何特殊架构的优化,例如,如果结构化ASIC架构中具有基于乘法的基本单元,那么Amplify物理综合产品将充分利用乘法器实现AND功能(图2)。 此外,利用乘法器控制输入端的传输延时比数据输入端的传输延时大25%左右,Amplify软件能判断哪条路径(A到Y还是B到Y)具有违反时序限制的最大路径延迟(negative slack),从而将信号正确地赋于乘法器的控制和数据输入端。 在本例,如果定制软件发现A信号位于关键路径上,而B信号不在关键路径上,那么它就会交换图2中的输入分配。 5、时钟树的实现和时钟敏感区的布局 一些结构化ASIC架构包含有预定义的嵌入式时钟树。特定的嵌入式时钟可能在裸片的某些区域可用,而在某些区域不可用。如果使用通用综合工具,那么ASIC供应商和设计工程师之间一般需要多次反复和交付才能确保时钟单元被放置在裸片中的正确位置。当以这种方式移动设计路径上的单元时,该条路径上的原始时序有可能遭到破坏,因此一旦移动时钟单元,设计路径就可能不再满足时序需求,并将导致多次设计反复。 相反,Amplify工具可利用关于这些定制时钟结构的知识,并能将单元放置在合理位置(在这里,正确的时钟信号是可用的),同时可对设计进行优化以最终满足时序要求。所有这一切都意味着Amplify用户的设计将具有合理的布局以及经过完整配置和连接的嵌入式时钟树,这样的设计可以交付给硅供应商进行最终布线。 6、特殊架构的布局算法 在低等到中等利用率的设计中,通用布局算法会将单元放置在裸片上的任意位置,甚至经常使单元跨主片分布,从而产生又长又慢的路径。而Amplify软件的增强型算法能以针对每种特殊架构作了优化的局部利用率,将相关单元尽量靠近放置,因此它所创建的设计不仅速度更快,而且仍可保证走线全部布通。同时,当设计接近硅片利用率的上限时,Amplify软件的布局算法能够确保单元之间不会靠得太近。普通工具则不会考虑这种效应,因而会在裸片上产生利用率很高(拥塞)的区域,从而导致过长的布线路径。
图3:Amplify工具的SNAP算法可确保预知的延迟和合理的走线长度。
7、特殊架构的布线 结构化ASIC架构内部通常都存在一些可能导致较长走线的障碍,这些障碍会影响供应商的设计布线和满足时序的能力。利用Amplify系列工具,设计工程师可通过使用硬件和软件物理锁定以及区域约束来控制这一过程,以指导布局器在设计的特定区域保留布线资源。 另外,Amplify软件还集成了拥塞分析和显示功能,可方便用户判断通过修改高层的底层规划能否减少布线拥塞热点。 8、特殊架构的信号完整性优化 由Amplify物理综合引擎创建的设计能完全满足特殊架构的设计规则,因而可避免由串扰、违反限制的最大瞬变和违反限制的最大线长而引起的任何信号完整性问题。 Amplify工具之所以能够做到这一点,是因为它对存储器、IP模块以及经过综合的逻辑门和功能等实体进行了保证合乎规范的布局,并创建了路由拓扑和线长可知的设计;另外也是因为它进行特殊架构的寄生抽取,并且拥有包含电源栅格和时钟树结构在内的器件物理结构方面的独特见解。 9、时序一致和时序收敛 通用物理综合引擎采用与传统ASIC设计布局一样的设计布局方法。除了将创建局部过度利用的逻辑外,这些工具还会将门扩散到裸片表面。这产生较长的走线,从而导致无法满足设计规则,并产生信号完整性问题以及不可预知的布线路径,一旦结构化ASIC供应商采用这种布线路径进行布线,设计将无法满足时序要求。 布局后设计的时序估计与结构化ASIC供应商的最终详细布线的实际时序之间存在差异,产生这种差异的一个主要原因是不曾预料的很长的布线路径。为达到一次性交付目的,由物理综合引擎产生的电路拓扑和布局允许结构化ASIC供应商进行确定性的、可预测的布线非常重要。此过程中的关键是Amplify软件中独特的敏感网络分析和预防(SNAP)技术。 SNAP的专利算法采用自动缓存插入等技术来创建布局后的电路拓扑,这些拓扑将具有确定的走线和确定的走线延迟。例如,图3a和3b中的X4反相器可驱动三个下游NAND功能块。 在本例,布局拓扑有可能使供应商的最终布线如图3a所示,即到右上方NAND的布线短,到右下方NAND的布线长度中等,而到左下方NAND的布线较长。供应商的最终布线也可能如图3b所示,此时右上方NAND的延迟很容易比前一种情况大3倍。 为解决这个问题,Amplify软件的SNAP算法用图3c中的两个等效单元替代图3a中的原始反相器/缓存。这样,走线拓扑、长度和延迟就变得明确和可预测,从而允许设计工程师在向结构化ASIC供应商交付设计前实现时序一致和收敛。此外,SNAP技术可缩小图3c中的两个替代缓存的容量,使设计面积、线载和引脚负载与与图3a中的最初实现保持一致。
|