高速存储通道模块的XA仿真器验证
高速存储通道模块的XA仿真器验证
作者: Wen-Hung Lo, NVIDIA, Santa Clara, CA, USA (wlo@nvidia.com)
摘要
存储通道验证是高速存储接口设计中的一项艰巨任务。XA仿真器提供了此前无法实现的容量和性能,使得快速周转成为可能。本文介绍了验证高速存储通道接口时序和功能的过程。同时展示了利用XA仿真器进行存储通道验证的其他分析方法。
目录
1. 引言 2. 存储通道概述 3. 验证挑战 4. XA新分析能力 5. 结论 6. 参考文献
图目录
图1:存储通道接口的字节级框图 图2:写操作数据图 图3:写操作关键路径 图4:读操作数据图 图5:读操作关键路径 图6:XA仿真器配置 图7:XA日志文件中的浮空节点检测 图8:XA日志文件中的大电流检测 图9:XA日志文件中的电源网络报告 图10:宏级时钟树框图
表目录
表1:DCESL、LOD和WPE模型参数 表2:不同工艺节点下SPICE仿真时间/内存比较 表3:XA仿真时间/内存
1 引言
高速存储通道接口模块包含各种类型的电路,可以最好地描述为一个复杂的混合模式电路系统。它包含延迟单元、放大器和定制逻辑等电路。
过去,高速存储通道模块的验证流程被简化为模块级或位级,以满足项目的紧张进度要求。随着工艺技术的微缩,诸如时钟偏差 Clock Skew、低功耗要求和通道驱动强度等问题需要在宏级别进行检验。对宏级进行全面验证的需求已成为必要条件。
在本文中,我们将首先讨论在宏级别验证存储通道模块所面临的挑战。将要讨论的挑战包括仿真容量、精度要求以及仿真器的易用性。
其次,我们将讨论如何使用XA仿真器在宏级别完成多种分析。宏级与位级分析的比较将揭示为什么我们在当前工艺节点下需要宏级验证。
最后,我们将讨论一些对XA仿真器附加功能的建议,这些功能可以进一步改善宏级验证流程。
2 高速存储通道概述
2.1 存储通道接口主要模块描述
下面我们将讨论典型高速存储通道接口的基本内容。在高速存储设计中,最小的独立模块是字节级模块。在这个字节级模块内,可以完全隔离和表征其时序和功能。
字节级模块包含8位数据、1位数据掩码、1位写数据选通和1位读数据选通。这使得字节级模块内总共有9位数据和2位数据选通(写和读)。
存储模块的写操作由数据位的中心对齐选通触发。设计目标是在每个数据位的有效电平下执行整个字节(8位)的写操作。
存储模块的读操作由数据位边沿对齐处的选通触发。然后模块依靠时钟延迟单元在读数据选通信号的建立和保持时间内读出有效数据。这通常是读数据选通信号的四分之一周期。
3 验证挑战
随着存储速度的提高,有效时钟窗口的裕度越来越窄。这种有效时钟窗口的缩小要求从曾经的自动化设计流程转变为更为定制化的设计流程。验证目标是为这些存储数据通路满足功能和时序要求,并确保每个存储模块执行有效的读写操作。
3.1 位级验证流程不再足够
位级验证对从读或写选通DQ到数据位DQ的数据通路进行时序表征。然后跨不同PVT工艺角捕获最差情况时序,以确保有效时钟窗口满足存储模块的时序规格。
高速存储电路中严格的时序规格要求我们的工程师检查整个时钟树的时序,而不是位级中简化的数据通路。
由于在宏级进行仿真面临诸多挑战,我们可能会被限制在位级进行仿真以适应紧张的设计进度。
3.2 版图后仿真容量
与版图前相比,版图后的单元数量急剧增加。版图后网表 Netlist的单元数量可能比版图前网表的单元数量多出10倍。当需要进行版图后仿真时,这将仿真容量需求提高了十倍。
耦合电容在存储接口模块内许多敏感电路间提供准确电路功能方面起着重要作用。在版图后仿真中包含耦合电容也会显著增加仿真时间。这在设计进度内进行有效的版图后仿真方面构成了挑战。
3.3 宏模型实例参数
最新工艺节点的物理效应影响单个晶体管的有效尺寸和功能行为。需要对它们进行单独表征,以捕获其在硅中的正确行为。其中几种效应变得如此关键,以至于它们影响电路的整体功能。诸如DCESL(双接触刻蚀停止层)、LOD(扩散长度)和WPE(阱邻近效应 Well Proximity Effect)等效应将需要为每个单独的晶体管添加额外的模型参数。
表1:DCESL、LOD和WPE模型参数
| 物理效应 | 额外模型参数 |
| DCESL | ENx, ENy, Rx, Ry |
| LOD | SA, SB, SD |
| WPE | SCA, SCB, SCC |
在40nm及以下工艺节点中,DCESL、LOD和WPE参数为电路仿真器添加了更多器件参数。由于这些参数现在是基于实例的(每个不同实例有不同的值),电路仿真器变慢了,并且需要比以前更多的内存。以下是在不同工艺节点下对约70k个MOS器件和约36k个RLC、G、W和T单元设计的比较。
表2:不同工艺节点下SPICE仿真时间/内存比较
| 工艺节点 | SPICE仿真内存占用 | SPICE仿真时间 |
| 65nm | 0.5 GB | 3天 |
| 40nm | 6 GB | 1周 |
3.4 宏级仿真的精度要求
在宏级进行精确仿真通常会显著增加仿真时间。随着低功耗类型电路的增加,在宏级进行精确仿真的需求也在增加。
宏模块的完整仿真每个PVT工艺角可能需要长达1周的时间。漫长的仿真时间限制了我们进行足够仿真以在验证流程中达到满意覆盖率的能力。
3.5 易用性问题
仿真配置一直是我们的设计工程师面临的挑战。从收敛到仿真性能,掌握它从来都不是一件容易的事。要获得最佳仿真设置通常需要多年使用仿真器的经验。然而,仍然有许多需要手动干预的例外情况。这个仿真器易用性方面的挑战一直占据着我们设计进度的很大一部分。
4 XA新分析能力
使用XA仿真器,我们能够在宏级高效地完成仿真。典型的PVT工艺角仿真可以在一天内完成,而不是一周。易用性非常好。它只需要极少的配置,并且能产生非常准确的结果。与HSPICE语法的兼容性帮助我们的工程师在我们的验证流程中相当透明地使用这个仿真器。
启动XA仿真器:
xa mynetlist.sp
在"mynetlist.sp"中添加的额外命令:
.option xa_cmd="set_sim_level -level 5"
.option xa_cmd="set_waveform -format wdf"
XA日志文件中有几个有价值的部分可以帮助调试仿真配置问题。通常这些问题是在从一个仿真配置切换到另一个配置时由于连接错误引起的。
以下浮空节点导致浮空栅极
------------------------------------------------------------
Node
-----------------------------------------+----------------
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) VAUXGEN_E_PWRD
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) VDDP_SEL_0
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) XOR_IN_1
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) XOR_IN_2
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) XOR_IN_3
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) XOR_IN_4
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:316) XOR_IN_6
XA日志文件中的另一个部分是仿真开始前对大电流源的检测。这是另一个有用的部分,有助于指出可能存在的连接问题。
警告:"大电流源"发生1次。
零时刻电流源绝对值大于10uA。
这可能是网表错误。
---------------------------------------------------------------------------------
source name value source type
-----------------------------------------+-------------+---------+-------------
(tsmc40g_iobrick_dq_dqs_tx_0922.sp:296) IBIN_0 5.6e-05 I
在版图后仿真中,我们经常忘记在功能和时序仿真中跳过电源网络的提取。当仿真电路的新版本时,如果之前的版本没有这个问题,这将导致漫长的仿真时间。XA日志文件中的电源网络检测部分有助于指出仿真网表中是否提取了不必要的电源网络。
电源/信号统计
------------------------------------------------------------
type Nodes Resistors Capacitors Inductors
-------------+-------+-----------+------------+-----------
power nets 426 144 246 0
signal nets 28870 2679 11480 0
4.1 宏级时钟偏差分析
使用XA仿真器,我们能够同时仿真存储器接口模块的全部11位数据。过去,为了简化仿真,使用了理想时钟来估计时钟偏差。通过仿真整个宏模块,我们能够分析整个宏级模块的"真实"时钟偏差。
最小化数据位之间的时钟偏差变得至关重要,因为更高速的存储器需要非常紧凑的时钟窗口。传统的最差情况时序 Worst-Case Timing方法没有给我们足够的灵活性来调整电路以满足这个非常紧凑的时钟窗口的时序要求。
4.2 宏级器件匹配问题
需要具备在宏级分析仿真结果的能力,以便解决宏级的器件失配问题。在以下几种情形中这种能力非常有用。
第一种情形是,当仿真中未包含耦合电容时,它将导致各级电路之间的直流工作点偏移。这给估计不同电路级之间器件的准确驱动强度带来了问题。
其次,前端接收器的DCESL效应将导致直流偏移问题,最终在数据通路的后续级中产生功能故障。
4.3 宏级低功耗测量
过去只能在存储模块接口的位级进行低功耗测量。有了仿真整个宏模块的能力,我们能够在宏模块级进行低功耗测量。在宏模块级测量低功耗的能力使我们能够用一组有意义的激励来运行电路进行分析。这将给我们提供电路低功耗能力更真实的图景,而不是从位级表征得出的估计模型。
在宏级进行仿真的能力帮助我们提高了功能覆盖率。这通常可以帮助我们发现导致不必要的过大电流 Excessive Current的错误逻辑状态。
4.4 宏级版图前与版图后相关性
随着几何尺寸的缩小,版图前仿真 Pre-Layout Simulation与版图后仿真 Post-Layout Simulation之间的相关性变得至关重要。过去我们会使用线载估计添加到版图前网表中来替代高效的版图后仿真。在40nm工艺下,只能使用线载估计进行功能验证。需要完整的提取后版图网表进行时序验证。
使用XA仿真器,我们可以获得提取后的完整版图后网表,并在合理的时间内进行仿真,与SPICE仿真结果相比精度在1-2%以内。这使我们能够捕获可能从版图中出现的问题。
表3:XA仿真时间/内存
| 工艺节点 | XA仿真内存占用 | XA仿真时间 | 与SPICE精度对比 |
| 40nm | 约2 GB | 5小时 | 约1-2% |
4.5 XA建议功能改进
对电迁移 EM和氧化层应力 Oxide-Stress分析的需求已成为我们当前设计的必要条件。将这两个功能集成到XA仿真器中,将进一步完善宏级验证流程。使用版图后网表运行蒙特卡洛分析 Monte Carlo Analysis的能力也将帮助我们在不同PVT工艺角之间提高覆盖率。
5 结论
本文指出了在存储通道验证中添加额外分析方法的动机。这些分析增强了硅片与设计之间相关性的信心。XA仿真器提供了执行这些额外分析所需的容量和性能。XA简洁的配置过程使其易于集成到我们现有的验证流程中。从根本上说,当今的设计需要这些额外的分析来保证投片 Tape-Out的信心。我们建议在XA仿真器中添加电迁移和氧化层应力等功能以进一步改善这一流程。
6 参考文献
1. XA User Guide, Synopsys 2. JEDEC document JESD 79-2E, DDR2 SDRAM SPECIFICATION 3. JEDEC document JESD 79-3C, DDR3 SDRAM STANDARD 4. JEDEC document JESD 8-19, POD18 - 1.8V Pseudo Open Drain I/O 5. JEDEC document JESD 8-20, POD15 - 1.5V Pseudo Open Drain I/O
图片索引
本文共10张图片,存放于 _images/ 目录(图片目录为空,图片内容嵌入在原始PDF中,当前提取文件不含图片文件)。
图列表: - 图1:存储通道接口的字节级框图 - 图2:写操作数据图 - 图3:写操作关键路径 - 图4:读操作数据图 - 图5:读操作关键路径 - 图6:XA仿真器配置 - 图7:XA日志文件中的浮空节点检测 - 图8:XA日志文件中的大电流检测 - 图9:XA日志文件中的电源网络报告 - 图10:宏级时钟树框图