DDRPHY数字IC后端设计实现系列专题之后端设计导入,IO Ring设计

本章详细分析和论述了 LPDDR3 物理层接口模块的布图和布局规划的设计和实 现过程,包括设计环境的建立,布图规划包括模块尺寸的确定,IO 单元、宏单元以及 特殊单元的摆放。由于布图规划中的电源规划环节较为重要, 影响芯片的布线资源和 供电稳定性等,所以在本章中单独讨论。对于布局阶段, 本章主要分析了布局的主要 几个阶段以及布局的结果。

3.1 建立环境

本次后端设计布局布线工具采用 Cadence 公司的 Innovus,在使用该工具进行后 端设计之前, 后端设计者需要将网表文件、时序约束、单元库等数据信息导入到
Innovus 的 EDI 环境。将数据信息导入该环境所使用的主要命令如下: Set init_gnd_net {GND_COREDDR_VSSQ}
Set init_lef_file {all.lef ANT.lef}
Set init_mmmc_file {viewDefinition.tcl}
Set init_pwr_net {VCC_CORE VCC_PUB_SW CORE_VDD
DDR_VDDQ[0] DDR_VDDQ[1] DDR_VDDQ[2] PLL_VDD}
Set init_top_cell {top}
Set init_verilog top.v
并将这些初始信息写入到 init.global 文件中,最后,将编写的 init.globals 导入 EDI。 其中通过 init_mmmc_file 编写多模式多管角(Multi Mode Multi Corner ,MMMC)环 境,用来导入时序信息和噪声库信息,简单范例如图 3.1 所示;
innovus mmmc结构
图 3.1 MMMC 环境范例

3.2 布图规划设计

当设计约束文件,门级网表文件,工艺库文件,技术文件等都准备完全,并且环 境建立好之后,就可以开始进行布图规划(Floorplan)了。随着集成电路进入深亚微 米级别,合理的布图规划成为数字后端中十分关键的一步,基本占用整个后端设计中 三分之一的时间。在布图规划阶段,需要确定芯片的尺寸,摆放宏单元,I/O 单元以 及特殊单元,合理的 blockage 的创建,以及确定 pin 的位置。需要说明的是, 布图规 划要结合后面的 congestion 以及 timing violation 等来进行调整与优化,是一个不断迭 代更新与改进的过程,一个好的布图规划很大程度的影响着设计收敛的难易以及后端 设计的时间。所以后端设计人员需要考虑和分析各个角度, 投入较多精力来进行布图 规划。下面是本次设计的详细的后端布局规划内容。

3.2.1 确定 DDR block 尺寸

芯片尺寸的大小决定了流片的成本。在一个 project 中,模块的尺寸一般由顶层 与模块共同决定。本次设计先从模块出发,再根据顶层的要求,最终确定 LPDDR3 物 理层接口模块的尺寸。
Block 中各个单元的数量与面积决定了它的形状与面积,本次设计中 DDRblock 包含的单元的数目与面积如下表所示。

在这里插入图片描述

Innovus 中,utilization 的计算公式如下:

utilization = Sleaf cell ÷ S可用 (3-1)

其中,utilization 表示利用率,Sleaf cell 表示 leaf cell 的面积,S 可用表示可用来放置 标准单元的而面积。leaf cell 包括标准单元与硬模块(hard macro),如果硬模块的布 局状态是 fixed ,则硬模块的面积不算在 Sleaf cel 跟 S 可用 内。为了统一计算,Innovus 将 以 site 来进行计算。本次设计中,选用 9track 的物理库,site 高度为 0.9μm ,宽度 0.14μm 。在一般的布图规划时,通常将 standard cell 的初始使用率设置在 60%左右。 考虑到本次 DDR 的高频性,故将标准单元的使用率设置在 50%左右即可。另外, 为 了标准单元的放置以及绕线的方便,将该模块设计为矩形。结合顶层的要求, 最终将 LPDDR3 物理层接口模块的尺寸设计为 1700μm×4795μm。

3.2.2 放置 IO 单元与宏单元

本次设计的 IO 单元是由 synopsys 公司提供的 IP ,所以 IO 单元部分位置及相对 位置的摆放需要符合 synopsys 的 DDR PHY 后端实现规格,。 下面分析一些主要检查 内容[40]。
(1)IO 单元邻接
IO 单元间的信号线,电源地线需要通过邻接才能成功传输。
(2)I/O 的信号功率比例

该项指的是一对 VDDQ/VSSQ 插槽对可以支持的信号插槽数,即为了能够使 IO 单元得到足够的功率进行工作。在此分析中,需要考虑电压降(IR Drop),电子迁移 (electro-migration ,EM)等多种影响。本次设计中,与 Data PHY 相关的 IO 选择信 号功率之比约 2 :1,该比率为大多数封装类型和外部存储器子系统提供了良好的电 气和时序性能。对于命令通道信号与电源的比率选择 3:1。因为数据通道的速率是字 节通道速率的 2 倍,所以命令通道有更高的信号功率比例。

(3)内部 VERF 隔离要求

pad 框架中需要内部 VERF 单元为 SSTL 输入提供比较参考,数据通道都需要一 个 PVREF 单元,每个 PVREF 单元内部可提供一个稳定的 VERF 电平值,又因为数 据字节通道和与命令字节通道的有不同的 PVREF 单元和MVREF 总线,所以需要通 过 PZQIO 单元作为两通道相关 IO 单元的边界来隔离 MVREF 总线。另外 PZQIO 单 元以 PZCTRL 的形式有自己的 VREF cell,所以将 PZQ 和 PZCTRL 单元相邻摆放并 且放在命令通道和数据字节通道之间进行隔离。PZQ 和 PZCTRL 单元切断 ZIOH 和 MVREF 总线,从而形成 3 个单独的 ZIOH / MVREF 岛。具体的摆放如图 3.2 所示:

在这里插入图片描述
(4)CKE 模式要求

当 DDR 处于 CKE 模式,即处于保持锁存使能状态的时候,为了节省在该模式下 的功率,关闭 DDR 接口其他信号的 VDDQ IO 电源,在后端实现中将与该模式信号 相关的 IO 单元放在一个信号孤岛(signal island)内。这时信号孤岛需要使电源总线 MVDDQ 与 VDDQ 电源隔离,并与其它掉电的 DDR 接口 IO 隔离,即在封装和 PCB 上隔离。VDDQ 隔离是通过在 CKE 信号孤岛周围使用两个 PFILL5_ISO 单元以及在 信号孤岛中两个VDDQ_ESD 单元来实现的,使用VDDQ_ESD 信号是为了实现VDDQ电源和 ESD 保护。另外在 CKE 信号孤岛中,需要 PVREF 单元来提供 IO 单元的驱动 强度,又由于 CKE 信号孤岛的 ZIOH 总线需要与其它IO 总线隔离,因此需要在 CKE 保留岛的边界上放置两个 PVSSQZB_ZQ 单元。CKE 信号孤岛的 IO 单元的摆放示意 如图 3.3 所示。

图 3.3    DDR CKE 模式相关 I/O 单元摆放示意图
(5)VDDQ ESD 计算

IO 单元库具有两个不同的 PVDDQ 单元,PVDDQ_ESD 和 PVDDQ_CAP 。 PVDDQ_ESD 单元包含用于静电释放(Electro-Static Discharge ,ESD)保护的 ESD clamp,而 PVDDQ_CAP 没有 clamp,但在其空间内有额外的 VDDQ-VSSQ 去耦电容。
MVDDQ 网络的 ESD 要求表明,如果 clamp cell 仅在信号 IO 单元的一侧,则从 信号 IO 到 ESD clamp cell 的总线电阻必须小于 0.5 ohm;如果 clamp cell 位于信号 IO 单元的两侧,则 IO 到最近的 clamp cell 的总线电阻必须小于 1 ohm。根据 Synopsys DDR PHY 的规则,VDDQ 水平总线电阻 R_MVDDQ 为 0.04ohm。对于摆放在 IO 单 元块末端的信号 IO,到最近 clamp 的间隔= 0.5 / 0.04 = 12.5 或 12 个 IO cell 的距离。 对于摆放在 IO 单元块内部的信号 IO,到最近 clamp 的间隔= 1 / 0.04 = 25 个 cell 的距 离。

(6)PLL 供电

PLL 模块需要 VAA_PLLIO 单元供电。在本次设计中,一共使用了9 个 VAA_PLL IO 单元分别为数据字节通道和命令通道提供 PLL 电源,供电电压为 1.8v。

(7)数据字节通道 IO 单元摆放

由第二章可知,本次设计有 4 个数据字节通道,且每两个字节通道共用一个 PLL 模块。每个字节通道含有 8 位 DQ 数据信号和一个 DM 数据掩模信号,每个字节通道 的 DQS / DQS_b 信号实际上是字节通道的时钟,字节通道布局规划的目标是最大程 度地减少选通数据引脚偏移。理想情况下,应该将 DQS / DQS_b 选通信号放置在字 节通道的的中间,如图 3.4 所示:

图 3.4    DQ/DQS 信号 IO 单元摆放
8)地址命令字节通道的IO 摆放

CK/CK_b 信号是命令通道的时钟,地址命令字节通道的IO 摆放的目标是最大程 度地减少时钟到数据端口时钟偏斜。因此,CK/CK_b 时钟应放置在通道的中央,然后时钟对的每一侧分别放上地址和命令插槽。具体如图 3.5 所示:

图 3.5    命令通道时钟信号 I/O 摆放
9)PEND IO 单元

LPDDR3 物理层接口所需要的 SSTL IO 单元放置在连续的外围焊盘框架 (peripheral pad frame)中,并且字节通道和 AC 通道首尾相连,Pad 框的末端通过 PEND cell 结束。

10)确定宏单元的位置

每个 AC 和 DATX8 宏单元的两侧都有向 I/O 单元发送信号的引脚(包括标准引 脚和备用引脚),在设计中,使用最靠近 I/O 单元的 PHY 引脚。PLL 宏模块有两种单 元,一种单元用于管芯的南侧或北侧(PLL_NS),另一种单元用于管芯的东侧或西侧 (PLL_EW)。 PLL 始终与 AC 或 DATX8 邻接。图 3.6 显示了宏单元和不同组引脚 的位置。

在这里插入图片描述
PLL pllin_ *引脚是 PLL 的输入(pllin_x1 和 pllin_x4x2)时钟,并连接至内核。 PLLpllout_ *引脚是 PLL 的输出时钟(pllout_x1 和 pllout_x4x2),邻接到 AC 或 DATX8 输入(ctl_clk 和 ddr_clk)时钟。 AC 和 DATX8 上的核心引脚连接到核心 PUB 信号。 AC 和 DATX8 上的 NS I/O 引脚用于连接管芯北侧或南侧的 SDRAM 信号的 I/O。同 样,AC 和 DATX8 上的 EW I/O 引脚用于连接至芯片东侧或西侧 SDRAM 信号的 I / O。
本次设计中的 I/O 均为东西 EW 方向,所以本次宏单元摆放也选择东西方向的摆 放,如图 3.5 中左侧或右侧部分所示意。并且为了最大程度的减小 I/O 单元与宏单元 的路由距离,减少延时和串扰,必须保证同一个通道(数据字节通道和地址命令字节 通道)内的宏单元与 PHY 与IO 单元按顺序摆放。
按照以上分析的内容,并结合时序等的调整,确定了 I/O 单元与宏单元的摆放位 置如图 3.7 所示:

在这里插入图片描述
图 3.7 IO 与宏单元布局图

下次再继续更新DDRPHY floorplan和powerplan内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端路由如何从0开始配置?vue-router 的使用

在 Web 开发中,路由是指根据 URL 的不同部分将请求分发到不同的处理函数或页面的过程。路由是单页应用(SPA, Single Page Application)和服务器端渲染(SSR, Server-Side Rendering)应用中的一个重要概念。 在开发中如何…

强化学习的数学原理-06随即近似理论和随机梯度下降

文章目录 Robbins-Monro algorithmStochastic gradient descentBGD、MBGD、 and SGDSummary Robbins-Monro algorithm 迭代式求平均数的算法 S t o c h a s t i c a p p r o x i m a t i o n ( S A ) Stochastic \; approximation \;(SA) Stochasticapproximation(SA)&#xf…

Apache Hive 通过Docker快速入门

QuickStarted 介绍 在伪分布式模式下在 docker 容器内运行 Apache Hive,以便为 Hive 提供以下快速启动/调试/准备测试环境 快速入门 步骤 1:拉取镜像 从 DockerHub 拉取镜像:https://hub.docker.com/r/apache/hive/tags。以下是最新的镜像…

【K8S系列】Kubernetes 中 NodePort 类型的 Service 无法访问的问题【已解决】

在 Kubernetes 中,NodePort 类型的 Service 允许用户通过每个节点的 IP 地址和指定的端口访问应用程序。如果 NodePort 类型的 Service 无法通过节点的 IP 地址和指定端口进行访问,可能会导致用户无法访问应用。本文将详细分析该问题的常见原因及其解决方…

逻辑卷动态扩容与缩容-----

一、创建逻辑卷 需求:创建一个2.5G大小的逻辑卷 思路: 1. 物理的设备 2. 将物理设备做成物理卷 pv 3. 创建卷组并将物理卷加入其中 vg 4. 创建逻辑卷 lv 5. 格式化逻辑卷 mkfs.ext4 6. 挂载使用 mount 步骤: 1. 物理设备【如何来分区】…

开关灯问题(c语言)

样例&#xff1a;10 10 &#xff0c;输出&#xff1a;1&#xff0c;4&#xff0c;9 5 5 &#xff0c;输出&#xff1a;1&#xff0c;4 代码如下 #include<stdio.h> //引入bool值的概念 #include<stdbool.h> int main() {int n 0;//n为灯的数量int m 0;…

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…

在面试了些外包以后,我有了些自己的思考

大家好&#xff0c;我是洋子&#xff0c;最近公司在降本增效&#xff0c;需要把外包从北京迁移到陕西的某新一线城市&#xff0c;其实就是变相裁员&#xff0c;减少外包的成本&#xff0c;裁掉现有的员工&#xff0c;重新招聘新人 在整个测试行业&#xff0c;外包测试的比重是…

论文 | Ignore Previous Prompt: Attack Techniques For Language Models

这篇论文探讨了针对大型语言模型&#xff08;LLM&#xff09;的“提示注入”攻击&#xff0c;并提出了一种名为 PROMPTINJECT 的框架来研究这类攻击。 论文的主要内容包括&#xff1a;1. 提示注入攻击&#xff1a; 论文定义了“提示注入”的概念&#xff0c;即通过在用…

Django-中间件

定义&#xff1a; 编写中间件&#xff1a; 注册中间件&#xff1a; 添加中间件&#xff1a; 1.在项目目录下添加一个文件夹&#xff08;名字随意&#xff09;&#xff0c;然后文件夹下创建.py文件 2.将中间件添加到setting文件中 MIDDLEWARE [django.middleware.security.Se…

MBR20100CT-ASEMI半塑封肖特基二极管MBR20100CT

编辑&#xff1a;ll MBR20100CT-ASEMI半塑封肖特基二极管MBR20100CT 型号&#xff1a;MBR20100CT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220 安装方式&#xff1a;插件 批号&#xff1a;最新 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;20A 最大循环…

操作数据表

创建表 创建表语法&#xff1a; CREATE TABLE table_name ( field1 datatype [COMMENT 注释内容], field2 datatype [COMMENT 注释内容], field3 datatype ); 注意&#xff1a; 1. 蓝色字体为关键字 2. CREATE TABLE 是创建数据表的固定关键字&#xff0c;表…

一、ARMv8寄存器之通用、状态、特殊寄存器

ARMV8核心寄存器数量是非常大的&#xff0c;为了更好的学习&#xff0c;可以划分为以下几大类&#xff1a; 通用寄存器。这类寄存器主要是用来暂存数据和参与运算。通过load\store指令操作。状态寄存器。AArch64体系结构使用PSTATE寄存器表示当前处理器状态。特殊寄存器。有专门…

WPF+MVVM案例实战(六)- 自定义分页控件实现

文章目录 1、项目准备2、功能实现1、分页控件 DataPager 实现2、分页控件数据模型与查询行为3、数据界面实现 3、运行效果4、源代码获取 1、项目准备 打开项目 Wpf_Examples&#xff0c;新建 PageBarWindow.xaml 界面、PageBarViewModel.cs ,在用户控件库 UserControlLib中创建…

【Docker】构建Linux云桌面环境

目录 一、说明 二、离线安装Docker 1&#xff09;将下载的包上传到服务器上去 2&#xff09;安装docker 3) 启动docker 4&#xff09;配置加速器 三、安装云桌面镜像 四、启动云桌面 方式一&#xff1a;docker命令直接运行 方式二&#xff1a;docker-compose方式 五…

Easysearch 与 LLM 融合打造知识库系统

文章目录 一、LangChain 简介二、RAG 产生的背景及其局限性三、RAG 工作流程四、 Easysearch 结合 LLM 实现 RAG&#xff08;1&#xff09;Easysearch 简介&#xff08;2&#xff09;结合实现RAG 五、 Easysearch 结合 LLM 实现 RAG 的优势&#xff08;1&#xff09;提高检索准…

驱动-----adc

在key1.c的基础上进行对adc1.c进行编写 首先将文件里面的key全部改为adc 再修改一下设备号 按键和adc的区别是什么,按键只需要按一下就触发了,并且不需要返回一个值出来, adc要初始化,启动,返回值 以下是裸机adc的代码: #include <s3c2440.h> #include "ad…

快速生成高质量提示词,Image to Prompt 更高效

抖知书老师推荐&#xff1a; 随着 AI 技术的不断发展&#xff0c;视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中&#xff0c;图像与文字的交互需求愈发旺盛&#xff0c;很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…

FileLink跨网文件传输与传统文件传输对比

在数字化时代&#xff0c;文件传输已成为企业日常运营不可或缺的一部分。然而&#xff0c;随着企业规模的扩大和业务的复杂化&#xff0c;传统的文件传输方式逐渐暴露出诸多不足。本文将对比FileLink跨网文件传输与传统文件传输方式&#xff0c;揭示FileLink在高效性、安全性和…

渗透测试-百日筑基—文件上传篇特征截断渲染%00绕过——下篇

目录 day10-渗透测试文件上传篇&绕过&特征&截断&渲染 一、黑名单大小写绕过代码分析 1、获取文件后缀名进行判断&#xff0c;如果后缀在这个字典里就禁止上传。 2、黑名单大小写绕过攻击 二、利用 windows 系统特征绕过上传 1、windows 系统特征绕过漏洞…