购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1
模块化设计

SoC可被划分为若干子系统或功能模块,根据不同的系统规格和应用场景评估和复用IP,通过仿真和计算来确定整个芯片的系统架构。

2.1.1 IP的选择与维护

SoC设计基于IP复用,在设计初期,需要寻找、评估和整合IP,以保证芯片开发质量,缩短开发周期。

经过多年的发展,目前的IP市场已经趋于成熟,设计者可以找到支持各类协议标准的IP产品,以及同一IP产品的诸多供应商和解决方案。在选型时,不仅需要考虑IP产品的功能、性能和价格,还需要特别关注其成熟度、兼容性和可复用性。

SoC流片失败的原因中超过40%的与IP相关,如产品本身设计错误、与需求不匹配、版本错误等。选择合适的IP不仅事关功能正确性,更决定了产品的性能、功耗、成本和生命周期风险控制。

IP可以来自第三方IP平台或公司内部的IP平台,这些平台由于被大量用户重复使用,因此质量有保证,而且成本较低。IP也可以来自内部或外部的定制开发,以满足特定功能和性能要求,但这种方式研发周期较长,质量有待检验。

1.IP选择

IP选择通常需要考虑性能、功耗、面积、成熟度、成本,以前项目的应用体验、设计文档的完备性、与当前项目需求是否吻合。如果是首次使用,那么IP的开发进度与SoC的开发进度是否契合也是重要的考量。

当选择IP时,需要关注IP产品的完整性,考虑其与SoC设计流程的匹配性,即是否能满足SoC的设计流程及对前端、综合、DFT和后端设计工具的需求。

2.IP验证

获取IP之后需要再次进行IP的质量检查和验证。对于一些不太知名或第一次合作的IP供应商(包括企业内部自研团队),在使用其IP之前,必要的质量检查环节非常重要。SoC集成时发现问题或IP本身错误而导致的设计延迟甚至流片失败等,都会影响IP用户的体验。

3.IP版本跟踪

IP版本跟踪是项目的重要里程碑,特别是流片检查,需要与IP供应商反复确认IP版本是否正确。

2.1.2 布局布线模块

IP集成人员并不一定直接参与IP开发,如何快速、正确地理解IP并将其顺利集成到SoC上,是系统芯片设计的一项关键问题。IP供应商不同,其命名、接口、总线、时钟、复位处理、测试等都有差异。对于芯片设计者来说,需要施行标准化处理,即按照特定的集成规范和指引,为各个IP配上一定的包装,形成标准化的布局布线模块(Layout Block,LB),并用作基本的顶层集成单元或潜在的物理布局规划和时序收敛模块。

图2.1所示为多个功能模块构成的SoC。

图2.1 多个功能模块构成的SoC

1.布局布线模块划分

对于功能复杂且规模较大的芯片,需要进行布局布线模块的划分(Partitioning)。下面是一些推荐的划分准则。

(1)按独立功能划分:USB、内存控制器+PHY、处理器等都是具有一定规模的独立功能IP,可单独划分为单一模块,如图2.2所示。

图2.2 按独立功能划分模块

(2)按设计的规模大小和复杂度划分:很多不同功能的低速外设模块,规模不大,可以组成一个或多个模块,如图2.3所示。

图2.3 按设计规模大小和复杂度划分模块

有些功能模块的规模非常大,综合时所需资源太多,且运行时间很长,需要适当切分。一般来说,根据现有的计算机资源并综合软件的计算速度,按所期望的周转时间(Turnaround Time),将模块划分的规模定为1~2.5M个的例化单元(Instance),或者2.5~7.5M个的等效门(Gate),如图2.4所示。例如,编解码器、GPU等,虽然都是多媒体功能模块的一部分,但面积较大,可以各自成为单独的模块。

图2.4 大模块单独划分

(3)按低功耗设计要求划分:根据芯片应用场景,由于有些功能模块需要控制其供电电源的开关,因此需要被设置成独立模块,如图2.5中的功能模块4所示。

图2.5 按低功耗设计要求划分模块

(4)按物理位置划分:基于芯片版图设计、I/O引脚位置等,有些模块需要被特别摆放,在图2.6中,功能模块10与互连模块放在同一模块内,两个不同的显示模块(功能模块14和功能模块15)因相邻而合在同一模块内。

图2.6 按物理位置划分模块

(5)按设计再使用要求划分以重复使用继承性模块,如图2.7中的功能模块1所示。

图2.7 按设计再使用要求划分模块

好的模块划分还应考虑时序收敛。图2.8所示模块的输出边界是寄存器(REG)的输出端,由于组合电路之间没有边界,因此可将其输出端连接到寄存器的输入端,这样可以充分利用综合工具对组合电路和时序电路的优化而获得最优结果,同时简化设计约束。

图2.8 考虑时序收敛的模块划分

2.硬化模块

面积大、性能高的专用IP,可以单独实现硬化,即单独完成物理设计,形成硬化模块(Harden Block),然后提供给物理版图进行顶层集成,如图2.9中的PLL、ADC、GPU所示。

图2.9 硬化模块

2.1.3 设计层次

设计层次的确定原则是有利于芯片设计(包括集成、验证、综合、DFT和物理实现)的标准化和自动化,主要关注模块划分、模块接口和引脚复用等。

通常将内核逻辑(Core Logic)、I/O单元和JTAG电路分开,放置到不同的层次。SoC设计一般采用三层架构:顶层(Top-level)、内核层(Core-level)和模块层(Block-level),如图2.10所示。

图2.10 SoC的层次化架构

在低功耗SoC设计中,可以专门设立一个电源常开区,还可能设立一个或多个可开关电源区,分别如图2.11和图2.12所示。

图2.11 带有电源常开区的SoC架构

图2.12 带有电源常开区和可开关电源区的SoC架构

在内核层中可以设立可开关电源区,如图2.13所示。

图2.13 在内核层中设立可开关电源区的SoC架构

2.1.4 转换桥

当模块与总线工作在不同频率(时钟域)、协议和数据位宽时,需要在二者之间添加转换桥,如图2.14所示。

图2.14 在模块与总线之间添加转换桥

1.按功能分
1)协议转换桥

在主设备与互连模块或互连模块与从设备之间,添加AXI-to-AHB、AHB-to-APB等协议转换桥,以实现设备(模块)之间的接口协议转换,如图2.15所示。

2)数据位宽转换桥

在主设备与互连模块或互连模块与从设备之间,添加数据位宽转换桥,包括窄位宽到宽位宽的转换桥,如32bit-to-64bit、16bit-to-32bit等,以及位宽从宽到窄的转换桥,如64bit-to-32bit、32bit-to-16bit等,以实现设备(模块)之间的接口数据位宽转换,如图2.16所示。

图2.15 协议转换桥

图2.16 数据位宽转换桥

3)时钟域转换桥

当主设备与互连模块或互连模块与从设备工作在不同时钟域时,需要添加时钟域转换桥,如使用寄存器片或异步桥切断长时序路径,使用同步升频或降频桥进行频率切换,从而实现设备(模块)之间的接口时钟域转换,如图2.17所示。

图2.17 时钟域转换桥

当主/从设备与互连模块工作同步但频率不同时,同步降频桥(Synchronous Down Bridge)可以使用外部提供的分频时钟或相位信号,如图2.18所示。

图2.18 同步降频桥

当主/从设备与互连模块之间的路径较长时,可能存在时序问题,有必要添加寄存器片以防止可能的长时序路径问题,同时保持原有协议,如图2.19所示。

图2.19 寄存器片

当主/从设备与互连模块工作异步时,需要在中间插入异步桥(Asynchronous Bridge)。通常使用一体式异步桥,也可以将该异步桥拆分成两个子模块,分别靠近相连的主/从设备和互连接口,如图2.20所示。

图2.20 异步桥

2.按逻辑实现分
1)组合逻辑电路桥和时序电路桥

转换桥可以由组合逻辑电路或时序电路来实现,其中基于地址译码的组合逻辑电路实现简单,但会引入长路径,而时序电路通过引入流水(打拍)机制来切断可能的长路径。组合逻辑电路桥和时序电路桥如图2.21所示。

图2.21 组合逻辑电路桥和时序电路桥

2)一对多转换桥

单一主设备到多个从设备的连接可以利用一对多转换桥,该桥的主接口总线可以完全分离,或者共享某些信号,如图2.22所示。

图2.22 一对多转换桥 0AhzYSNp5d5q7LvECG+ubF67pC8nURsnqlcAlF9kK4LzI4txP29K2305jjUo9iKw

点击中间区域
呼出菜单
上一章
目录
下一章
×