【HyperLynx的DDR仿真】
文章目录
- 一、工程导入与软件准备
- 1、工程说明
- 2、软件准备
- 3、工程导入
- 二、仿真实操
- 1、仿真前设置
- 2、运行仿真
- 3、仿真结果与优化
- 三、其他补充
一、工程导入与软件准备
1、工程说明
案例工程为XC7K325T挂载4片16位DDR3的方案,DDR为镁光的MT41K256M16,采用FLY-BY的拓扑结构。1.5V供电,FPGA的AUX_IO电压采用标准的1.8V。
注1:仿真需要准备FPGA的IBIS模型,不能直接用xilinx官网下载的IBIS模型,官网的只是一个标准模型,不包含实际工程的管脚定义信息,需要结合实际工程设计,用VIVADO进行管脚约束或者MIG设置后导出实际的IBIS文件。
注2:DDR的IBIS模型官网可下载,但是要镁光账号登录。
2、软件准备
HyperLynx 2604
allegro 16.6
brd文件可以直接导入到HyperLynx;也可以allegro导出ODB++文件,再导入HyperLynx,这种方式allegro需要安装ODB++插件,下面主要介绍这种方式。
3、工程导入
1)采用ODB++格式中转的方式,先通过allegro导出ODB++文件,file->export->ODB++Inside,会弹出一个对话框,提示是否需要提取网络阻抗,选择否。
2)确认好输出路径,文件名,选择打包压缩等,更多选项可以不勾选展示,下一步就可。
3)导出完成后,会弹出ODB++预览窗,可以逐层预览确认有没有元素丢失。
4)导出后在我们选定的路径下就有ODB++的压缩包文件
5)HyperLynx导入,打开软件,浏览->BoardSim Project->打开板,选中上面导出的文件,确定。中途可能出现一些告警信息,确认后关闭即可。
6)遇到有未连接的网络,询问是否需要创建虚拟连接,选择否
7)导入后,需要进行确认,检查叠层信息等。
二、仿真实操
1、仿真前设置
1)首先给器件分配仿真的模型,DDR的IBIS模型可以在芯片厂家官网去找,FPGA由于PCB设计换PIN,需要在VIVADO里面绑定管脚后导出IBIS,官网下载的IBIS里面PL上相关的IO是作为通用管脚描述的。
2)选中DDR器件,找到对应的模型库,选择匹配的模型,点击定义模型保存即可,这里注意DDR3有1.5V/1.35V供电的版本,需选择与实际设计对应的。
3)定义FPGA模型以及端接电阻阻值。
4)检查相关电源域电压是否正确,比如VCCO_DDR、DDR_VTT、DDR_VREF等。部分电源网络软件会根据命名自动识别电压,此例中DDR_VTT、DDR_VREF软件识别为0V,手动改为0.75,保存。
2、运行仿真
1)点击左侧【信号完整性】-【DDR批量分析向导】,进入仿真设置界面。首先设置DDR类型、电压、仿真速率等。点击下一步。
2)选择控制器和DRAM芯片,DRAM分配界面,可以选择DDR插槽数量,以及每个插槽的rank数量,本例为0插槽,单rank。
3)分配IBIS模型,仿真前已配置好,这里确认无误后就下一步。
4)仿真设置,选择读写都分析,时钟到数据时钟的时序偏斜,地址和指令时序分析等。
5)选择DDR相关的信号,点击【执行自动网络映射】,软件会自动识别和分配,点击下一步,依次进行数据时钟、数据、时钟、地址、指令等类别信号的确认。
6)这里可以选择指定网络进行仿真分析,这里我们全选。
7)分配ODT模型,读:控制器ODT使能,DRAM ODT关闭,信号由DRAM输出到控制器;写:控制器ODT关闭,DRAM ODT使能,信号由控制器输出到DRAM;模型名称中前面的数字代表驱动能力大小,数字大驱动能力强,信号边沿速度快。ODT后面的数字表示端接电阻大小,与PCB走线阻抗去匹配,信号出现反射、过冲等问题时可切换不同的端接阻值以达到较好的阻抗匹配。
8)均衡和校准,这里勾选CLK-DQS偏斜校准,芯片工艺角建议3种都要仿真,写均衡的校准延迟参数可以选择软件自动分析生成的。
9)中间步骤可采取软件默认设置,仿真设置界面,IC工艺角3种都勾选,测量位置控制器和DRAM都选择Die。评估时序裕量(建立 / 保持时间 )等参数必须看Die;PIN脚主要可用来评估PCB 传输线上波形、反射、过冲、下冲,不能用来评估时序。
10)中间步骤可采取软件默认设置,仿真界面会提示可能存在的仿真设置问题,确认后点击【运行批处理仿真】,开始仿真。
3、仿真结果与优化
1)仿真跑完后,会弹出报告,显示数据读存在20个告警或错误,差分网络存在1个告警或错误。
2),点击对应类型,跳转显示各个信号的结果,读数据的错误均出现在SLOW工艺角时保持时间不足,点击具体信号,可查看波形图,眼图等数据。
3)芯片slow工艺角,驱动能力弱,上升/下降沿变缓,理应更有利于保持时间,仿真结果却相反。
保持时间不够,主要为数据比时钟跑的快,怀疑可能的原因,在SLOW工艺角下,数据和时钟的延时缩放系数不一样,对数据信号的延时缩放效应不如时钟,导致数据跑的更快。
4)优化方法,降低DRAM的DQ信号管脚驱动能力,在仿真设置的ODT模型设置中,将控制器DQ信号的模型由DQ_40_1066改为DQ_34_1066,重新仿真。
5)优化后,读数据全部pass。
三、其他补充
1、SSTL(Stub‑Series Terminated Logic,短截线串联端接逻辑)、HSTL(High‑Speed Transceiver Logic,高速收发逻辑)
| 标识 | Vccio | VREF | 典型用途 |
|---|---|---|---|
| SSTL_2 | 2.5V | 1.25V | DDR1 |
| SSTL_18 | 1.8V | 0.9V | DDR2 |
| SSTL_15 | 1.5V | 0.75V | DDR3 |
| SSTL_135 | 1.35V | 0.675V | DDR3L |
2、建立时间:信号在时钟采样前必须提前到达并保持稳定的时间;保持时间:信号在时钟采样后必须保持一段时间到再次跳变的时间。
3、Write Leveling写均衡,只针对写操作,主要用于解决FLY-BY拓扑中DQS和CK的偏斜,保证到达 DRAM 时 DQS 边沿落在 CK 的合法窗口内,满足 tDQSS、tDSS、tDSH,给 DQ 提供合法的写采样窗口。
4、7-series(Art7/K7/V7)DDR3 Write Leveling 依靠 DQS 的 ODELAYE2,硬件总延迟上限约 2.5ns;工程上留给 CK-DQS skew 补偿的有效调节范围约 ±800ps,PCB 推荐保守上限 ±600ps;校准完成后 DRAM Die-Pad 的CK-DQS偏斜最终必须收敛到 ±0.25tCK。