CPU是如何设计的

发布时间:2016-11-15 16:12

大家熟知的CPU到底是如何设计出来的呢?小编在这里给大家介绍CPU设计的流程,希望能帮助大家。

下图给出了芯片设计的典型流程,示例主要采用Synopsys公司的EDA工具:

CPU是如何设计的

1、设计定义和可综合的RTL代码。设计定义描述芯片的总体结构、规格参数、模块划分、使用的接口等。然后设计者根据硬件设计所划分出的功能模块,进行模块设计或者复用已有的IP核,通常使用硬件描述语言在寄存器传输级描述电路的行为,采用Verilog/VHDL描述各个逻辑单元的连接关系,以及输入/输出端口和逻辑单元之间的连接关系。门级网表使用逻辑单元对电路进行描述,采用例化的方法组成电路,以及定义电路的层次结构。

前仿真,也称为RTL级仿真或功能仿真。通过HDL仿真器验证电路逻辑功能是否有效,在前仿真时,通常与具体的电路实现无关,没有时序信息。

2、逻辑综合。建立设计和综合环境,将RTL源代码输入到综合工具,例如Design Compiler,给设计加上约束,然后对设计进行逻辑综合,得到满足设计要求的门级网表。门级网表可以以ddc的格式存放。电路的逻辑综合一般由三步组成:转化、逻辑优化和映射。首先将RTL源代码转化为通用的布尔等式(GTECH格式);逻辑优化的过程尝试完成库单元的组合,使组合成的电路能最好的满足设计的功能、时序和面积的要求;最后使用目标工艺库的逻辑单元映射成门级网表,映射线路图的时候需要半导体厂商的工艺技术库来得到每个逻辑单元的延迟。综合后的结果包括了电路的时序和面积。

3、版图规划。在得到门级网表后,把结果输入到JupiterXT做设计的版图规划。版图规划包含宏单元的位置摆放、电源网络的综合和分析、可布通性分析、布局优化和时序分析等。

4、单元布局和优化。单元布局和优化主要定义每个标准单元(Cell)的摆放位置,并根据摆放的位置进行优化。EDA工具广泛支持物理综合,即将布局和优化与逻辑综合统一起来,引入真实的连线信息,减少时序收敛所需要的迭代次数。把设计的版图规划和门级网表输入到物理综合工具,例如 Physical Compiler进行物理综合和优化。在PC中,可以对设计在时序、功耗、面积和可布线性进行优化,达到最佳的结果质量。

5、静态时序分析(STA)、形式验证(FV)和可测性电路插入(DFT)。

静态时序分析是一种穷尽分析方法,通过对提取的电路中所有路径的延迟信息的分析,计算出信号在时序路径上的延迟,找出违背时序约束的错误,如建立时间和保持时间是否满足要求。在后端设计的很多步骤完成后都要进行静态时序分析,如逻辑综合之后,布局优化之后,布线完成之后等。

形式验证是逻辑功能上的等效性检查,根据电路的结构判断两个设计在逻辑功能上是否相等,用于比较RTL代码之间、门级网表与RTL代码之间,以及门级网表之间在修改之前与修改之后功能的一致性。

可测性设计。通常,对于逻辑电路采用扫锚链的可测性结构,对于芯片的输入/输出端口采用边界扫描的可测性结构,增加电路内部节点的可控性和可观测性,一般在逻辑综合或物理综合之后进行扫锚电路的插入和优化。

CPU是如何设计的的评论条评论