基于一个开源cpu核的数字后端物理实现文献综述

 2022-09-24 11:09

{title}{title}

文献综述:

上海交通大学的韩竞春[1]完成了一个基于 65 纳米制造工艺的 ARM9核 IP 的后端物理设计,包括可测试性设计、布局、物理综合、时序和信号完整性分析、可制造性设计等五个主要部分。利用了多阈值电压库减小静态电流,采用了通孔优化、关键区域分析等方法提升良率。

随着集成电路规模不断扩大,采用传统的扁平设计方法对EDA工具的处理能力提出了更高的要求,在此背景下,一种分层的基于模块化的设计方法便被提出来了。吴伟贤[2]等使用基于SVP的设计方法完成了一个RISC CPU核的物理设计。其采用的工艺是SMIC的180nm工艺。基于硅虚拟原型(SVP)的设计方法能够在详细设计前得到足够的物理信息进行准确的物理分层,减少多次迭代选择方案所耗费的时间,帮助完成层次化的物理设计。

大连理工大学的韩佳妮[3]以开源处理器Leon3为例,使用90nm工艺,并使用Tcl脚本语言,利用逻辑综合工具和物理设计工具实现了从RTL到GDSⅡ的物理设计。同时以层次化的设计思想,探索了把复杂对象分成多个模块的方法,使用多实例化模块流程对设计进行规划。另外研究了两种时序优化策略,一是在布局阶段应用基于权重的时序优化方法,二是在时钟树综合阶段应用基于有用偏差的方法对设计进行时序优化。

复旦大学的于倩[4]以一个基于ZSP信号处理器核的片上系统解决方案的测试芯片的后端物理实现为例,介绍了使用层次化流程的后端物理实现方法;论述了合理划分层次布局、设置布线条件的重要性;阐述了结合后端设计工具对时序进行优化的方法。但是也指出,层次化的后端实现方法在节约时间和生产成本的同时也需要更多的工程师协作完成。

复旦大学的卢俊[5]进行了基于65 纳米的DDR PHY数字后端设计方法的研究,重点讨论了65纳米工艺的一些新技术,如多角落一多模式技术(MCMM),减小串扰效应(布线前预防布线后修复),EDA工具相结合的签收技术等。

东南大学的高明[6]进行了中芯国际28nm HKMG工艺下双核Cortex-A9处理器芯片的物理设计。为了改善时序和拥塞度,该设计对布局流程进行了改进,采用了基于dcg(design compiler graphical)改进型布局流程使布局和综合环节实现版图信息的交互;采用了更先进的时钟同步优化技术,将时钟综合和优化同步完成,最终减小了时钟树单元面积和功耗,将芯片频率提高了六个百分点;采用跳线法和插入保护二极管有效修复了天线效应等。

王胤翔等[7]进行了高速四核Cortex-A17处理器芯片的物理实现。该物理实现采用TSMC 28nm工艺,基于Cadence Innovus。对比ARM处理器优化套件POP,采用Innovus进行物理实现,大部分功耗、性能、面积指标超越基于POP解决方案的设计,证明了Innovus在高速ARM CPU设计中的优异性能。文章详细阐述了物理实现每一个步骤的重点,如在布局阶段,将CPU核心的形状从POP解决方案的L形调整为长方形,使得处理器与外部连接的通道变宽;在时钟树综合阶段,经过多次实验确定最终使用何种Clock Buffer/Inverter等。

电子科技大学的曹华[8]介绍了Tcl脚本语言在ASIC后端设计流程中的应用如时钟树综合阶段使用Tcl脚本生成所需的时钟树综合约束文件,Tcl脚本处理ASIC后端设计中存在的某些问题等,同时指出了一种脚本-总脚本的文件结构。

石玉龙等[9]指出,从网表到物理版图的映射过程中,时钟网络是最主要的额外生成。因此对于时钟树综合阶段,在保证时序收敛的前提下降低功耗显得十分重要。相比于实验室传统的用缓冲器构建时钟树的方法,用反相器构建时钟树可以有效降低时钟功耗。

对于串扰的预防措施有以下几种:在布局阶段,可以让EDA工具增加拥塞驱动来进行自动的标准单元布局工作;在时钟树综合阶段,增加连线的宽度和间距并采用屏蔽的布线规则等。王淑芬等[10]进行了在TSMC 65nm工艺下为预防串扰而对物理设计流程的探索,采用的EDA工具主要为IC Compiler。

多阈值电压技术可以有效降低功耗。东南大学的马俊[11]对Cortex-A7四核CPU模块进行了低功耗设计与实现。在逻辑综合阶段设计了一种基于多阈值电压技术的针对时序以及功耗的逻辑综合策略;并通过统一功耗描述语言(United Power Format,UPF)和后端物理设计实现了电源关断策略,丰富了CPU内部的低功耗工作模式,完成了相关低功耗验证工作。最终CPU模块工作频率可达850MHz,静态功耗38mW。

Yunsup Lee等[12]完成了第一个实现开源RISC-V ISA双核处理器的工作。该项工作采用了45nm的SOI工艺,并且采用了层次化的设计方法。双核RISC-V处理器在1.2 V时可以达到最大时钟频率1.3 GHz,面积为3平方毫米。同时,Lee等指出了开源的RISC-V ISA可以作为集成专用异构加速器的竞争基础。

James Warnock等[13]以IBM高性能32nm高k/金属栅SOI技术对EC12系统核心的处理器芯片CP进行了物理设计,讨论了电路设计实现、时钟、热模拟、可靠性等并与之前的45nm技术设计进行了比较。

Jiong Zhu等[14]采用28nm工艺对一款SoC芯片进行了物理设计。文章介绍了综合,布局,电源网络布置,时钟树综合,布线,寄生参数提取,静态时序分析等物理设计步骤。该设计最终达到15平方毫米的post-shrink面积,功耗0.18W,达到了预期目标。

Randy Widialaksono等[15]采用Global Foundries的130nm工艺,对一个三维堆叠的异质多核处理器进行了物理设计。其三位堆叠方法是将两块芯片通过F2F技术键合在一起,两块芯片中间为高速的连线通道。文章讨论了在现有EDA工具下的三维芯片布局,电源网络,层间信号,层间时序收敛等物理设计流程,并且比较了三维物理实施相对于二维物理实施的优势,指出其三维设计可将功耗优化30%。

四、方案论证:

本课题以le;90纳米的制造工艺对一个开源CPU核进行后端物理设计。

经过调查,主流的EDA工具厂商有Synopsys,Cadence以及Mentor Graphics。但是在数字芯片设计领域特别是后端设计,Synopsys所占市场份额最大。对于Synopsys的后端设计工具,在130纳米以前使用Astro;从90纳米到28纳米,推出了IC Compiler(ICC);16纳米之后推出了ICCⅡ。本课题选用的工具是IC Compiler。

首先需要搭建项目环境,在Linux REHL6系统上完成相关EDA工具的安装配置;

然后进行数据的准备。输入IC Compiler的数据主要可以分为两大部分。一部分是综合后的数据,包括CPU核的网表(gate level netlist)、约束文件和逻辑库;另一部分是所需的物理设计数据如物理库(记录了元器件/标准单元的物理形状、大小等信息),工艺文件和用于时序分析的RC模型文件等。

物理设计大体上有两大方案。方案一是采用扁平化设计方法,即不同的模块所包含的标准单元都在同一个层次上;方案二是采用层次化的设计方法。所谓层次化的设计方法,一般采用多实例化模块(Multiple Instantiated Module, MIM)流程[3],即把一个复杂的设计分成多个模块进行分层次设计,分为顶层模块和底层模块,使用物理实现工具对芯片网表基于计划组的设计方法进行设计规划。层次化的设计步骤包括设计划分,子模块实现,顶层实现以及设计合并等。对于复杂度超过500万门的设计,一般采用层次化的物理设计方法,相比于扁平化设计方法,它可以减少一些重复的迭代工作,增加设计灵活性和并行性。但是对于规模不大的设计,采用层次化的设计方法又使得设计过程过于复杂,对于设计的优化功能并不明显。本课题选择的开源CPU核复杂度在500万门以下,因此优先选择方案一,即采用扁平化的设计方法。

在形式验证工作完成之后便开始后端物理设计,第一步是布局规划。布局主要是确定整个设计的形状大小,I/O引脚的位置,电源网络的分配和一些标准单元的摆放。标准单元的摆放要满足一定的时序约束和物理约束,同时要考虑使用较少的布线资源以防止出现拥塞。布局规划意义重大,一个好的布局规划会使芯片后端物理设计接下来的工作(布线,时序收敛等等)达到事半功倍的效果。

在所有标准单元的位置都已经基本确定之后,进行时钟树的生成与综合。时钟树综合是将一些缓冲器(buffer),反相器(inverter)单元加入到电路中完成时钟路径布线的过程。时钟树主要有两个作用,一是增加驱动/扇出,常见的方法是通过添加缓冲器来增加驱动,也有利用反相器构建时钟树的方法[9],针对具体的设计,可以分别采用两种方法,比较其效果异同;二是平衡同一时钟到达这个时钟节点下不同寄存器之间的时间偏差。时序分析的两个重要概念是建立时间(Setup Time)和保持时间(Hold Time)。如果出现setup违例,可以通过增加时钟周期或减小组合路径延迟时间来解决;如果出现hold违例,可以通过增大组合路径延时或减小时钟到达寄存器时间来解决。总的来说,通过时钟树综合,应力求使时序元件的时钟偏斜达到最小,减小整体延时,达到时序收敛。

布局优化、时钟优化之后开始布线。布线就是将整个设计中所有的逻辑单元按照逻辑信号进行互连,同时满足各种约束条件达到优化的效果。所谓优化,具体的方面有消除拥塞,优化时延,还要考虑信号完整性,其中主要是芯片互联线间的耦合电容引起的串扰问题。发现串扰问题可以采用增加线间距等方法来解决。

最终时序分析通过之后,输出整个设计的网表、def文件和GDSⅡ文件。

通过以上基本步骤后,CPU核的后端物理设计才大体完成。

在整个项目过程中,使用Tcl脚本语言来控制各个步骤的操作,最后将各个分脚本文件汇总成项目的总脚本文件。Tcl语言基于C/C 函数库,命令执行时不用编译而是直接由解释器解释,然后告知工具怎样执行命令[8]。在ASIC后端设计过程中,使用Tcl脚本语言组织工具内嵌命令或进行步骤或阶段间的粘连工作可以提高工具运行的速度。更重要的是,在重复迭代时只需执行总的Tcl脚本文件,工具就可以自动完成设计流程。

五、进度安排:

第1、2周(2019.02.25-2019.03.10):方案论证、撰写开题报告;

第3~6周(2019.03.11-2019.04.07):搭建平台,完成数据准备工作;

第7~9周(2019.04.08-2019.04.28):完成CPU核后端设计基本流程,完成中期检查;

第10~13周(2019.04.29-2019.05.26):完善设计,撰写毕业设计论文初稿;

第14~15周(2019.05.27-2019.06.09):完善毕业设计论文,完成毕业设计答辩。

参考文献:

  1. 韩竞春.基于 65 纳米制造工艺的 ARM9 核后端物理设计[D].上海交通大学,2009.
  2. 吴伟贤,周剑扬,许伟坚,陈辉煌.基于硅虚拟原型的RISC CPU核物理设计[J].微电子学与计算机,2005,第22卷,第3期.
  3. 韩佳妮.一款32位CPU核的层次化物理设计[D].大连理工大学,2017.
  4. 于倩.ASIC芯片的层次化后端实现[D].复旦大学,2008.
  5. 卢俊.基于65nm DDR PHY数字后端设计方法的研究[D].复旦大学,2010.
  6. 高明.28nm工艺下双核Cortex-A9处理器芯片的物理设计[D].东南大学,2016.
  7. 王胤翔,孙艳,王伟奇.基于Cadance Innovus的高速4核ARM Cortex-A17 CPU物理实现[J].中国集成电路,2018,第27卷,第12期.
  8. 曹华.基于Tcl脚本语言的ASIC后端设计[D].电子科技大学,2011.
  9. 石玉龙,张立超,柏璐.ASIC后端设计中低功耗时钟树综合方法[J].信息通信,2009,第4期.
  10. 王淑芬,吴秀龙.基于65nm工艺数字IC物理设计中信号串扰的预防[J].电子技术,2009,第1期.
  11. 马俊.Cortex-A7四核CPU的低功耗设计与实现[D].东南大学,2016.
  12. Yunsup Lee et al. A 45nm 1.3GHz 16.7 Double-Precision GFLOPS/W RISC-V Processor with Vector Accelerators[C].ESSCIRC 2014-40th European Solid State Circuits Conference, pp.199-202,2014.
  13. James Warnock et al. Circuit and Physical Design of the zEnterprisetrade; EC12 Microprocessor Chips and Multi-Chip Module [J].IEEE Journal of Solid-State Circuits, vol.49, pp.9-18,2009.
  14. Jiong Zhu et al. Physical Implementation of Low Power SoC Chip based on SEC 28nm FDS[C].2017 IEEE SOI-3D-Subthreshold Microelectronics Technology Unified Conference, pp.1-4,2017.
  15. Randy Widialaksono et al. Physical Design of a 3D-Stacked Heterogeneous Multi-Core Processor[C]. 2016 IEEE International 3D Systems Integration Conference, pp.1-5,2016.

资料编号:[180118]

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。