DDR4信号仿完整性仿真

news2024/11/22 7:44:54

在硬件电路设计中,DDR一直是电路设计中的难点。目前正在进行DDR4的电路设计,将基本的仿真设计过程进行一下记录。

主流的仿真工具都是支持DDR4的仿真的,目前使用的主力工具为Sigrity及Hyperlynx,下面以Sigrity系统软件为例说明一下DDR仿真的基本流程。

一、Sigrity软件基本思路

在2019版本以前,Sigrity软件提供了两种DDR的仿真流程。

  • 使用SPEED2000将PCB导入仿真软件,选择想要的仿真网络,并加载对应DDR控制器及DDR颗粒模型,设置参数后直接进仿真。
  • 先提取想要仿真PCB的频域模型,在另一个软件里将提取的PCB、DDR及DDR颗粒模型,按照逻辑关系连接,进行时域仿真。

在较新的2022版本上取消了第一种流程,保留并完善了第二种仿真方法,目前在2022版本上最高可以支持到DDR5 / GDDR6。

二、Sigrity DDR仿真流程

在新的Sigrity软件里,提供了新仿真流程软件SystemSI。在SystemSI里搭建拓扑原理图,软件里提供的PCB Layout模块,可以直接调用求解器,来提取PCB对应仿真网络的模型。模型提取完成,将相关模块按照逻辑连接后,在PowerSI里进行时域波形的仿真。以下对流程详细操作进行说明:

  1. 打开PowerSI软件,新建仿真拓扑。
    在这里插入图片描述

  2. 新建仿真拓扑如下
    在这里插入图片描述

  3. 对默认建立的拓扑进行修改
    在这里插入图片描述

  4. 通过双击Layout模块加载PCB
    在这里插入图片描述

  5. 在Extraction Engine处选择PowerSI,点击Setup Layout按钮,软件会自动调用PowerSI在这里插入图片描述

  6. 在PowerSI里进行相应的设置后保存,不要点击开始仿真,关闭PowerSI,回到SystemSI界面点击Extract进行参数提取
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/f5cb175ed91a4b4db297b7f5dca2b7d4.png

  7. 提取完参数之后,按照对应逻辑进行连线
    在这里插入图片描述

  8. 连接完成后,左侧Workflow窗口进行设置仿真 ,如果我们只关注信号质量的话,可以只对Set Analysis Options进行设置。其中设置分三个部分:
    Circuit Simulation : 选择求解器,选择需要仿真的Corner
    Bus Simulation : 选择仿真的总线类型,目前地址线与数据分开仿真,在后续版里会支持同时仿真
    IO Models and Stimulus : 设置仿真条件,激励码型,驱动器类型等
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  9. 做完上述设置后点击保存,点击Start Bus Simulation,仿真完成后自动弹出波形查看器。
    在这里插入图片描述

三、常见问题说明

  1. 仿真后如何同时得到Die及Package处的波形?
    需要在控制器的IBIS模型处勾选 Package Parasitics,位置如下图:
    在这里插入图片描述

  2. 激励码型应该如何设置?
    激励码型在IO Models and Stimulus进行设置,在Simulus Pattern上点右键,弹出如下窗口:
    在这里插入图片描述
    在上述设置中可设置信号使用同样码型还是不同码型,码型类型支持随机码,伪随机码,自定义码型文件。一般常用的是PRBS7。

  3. 如何自定义仿真后文件名
    在Circuit Simulation的最后一行Simulation Name里,可以勾选自动命名及自定义命名
    在这里插入图片描述

  4. 在查看波形眼图时,如何为波形加载眼图模版
    可以最上面栏的Mask里自定义眼图模版,但此功能设置麻烦。也可以使用自动生成报告功能,在报告设置项里勾选眼图选项,会自动加载眼图模版,并且会自动调整中心点。
    在这里插入图片描述

  5. 有时进行DDR的时域仿真时会仿真失败,波形震荡漂移。
    首先,检查设置PCB设计是否正确;其次,查看需要设置的被动器件模型是否设置完成。最后,考虑在PowerSI里提取PCB模型时,是否有加入过大的电容。

四、总结

以上为使用SystemSI进行DDR仿真的一个简要过程,其中还有许多的细节操作许要注意,后其会考虑录制视频效果可能会更好。
掌握仿真工具只是做好信号完整性工作的基础,想要做好DDR信号的设计工作,还需要熟悉DDR相关协议,以及电路PCB等相关知识。在现实中,有多方面的因素会影响到DDR的信号质量,因此,还需要有一定的实验设计及数据分能力,使用最少的仿真组合与时间,寻找到最佳的组合结果。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务01-SpringCloud

1、简介 SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。 其中常见的组件包括: 2、服务拆分和远程调用 2.1 服务拆分 这里总结了微服务拆分时的几个原则: …

干货 | 详述 Elasticsearch 向量检索发展史

1. 引言 向量检索已经成为现代搜索和推荐系统的核心组件。 通过将复杂的对象(例如文本、图像或声音)转换为数值向量,并在多维空间中进行相似性搜索,它能够实现高效的查询匹配和推荐。 图片来自:向量数据库技术鉴赏【上…

企业文件传输软件安全性分析与对比

随着科技的日新月异和应用领域的日益广泛,文件传输软件在人们生活和工作中发挥的作用越来越重大,因此出现了许多不同种类的文件传输软件。但是,随着网络安全问题的严峻,如何确保文件传输软件的安全性成为了一个亟待解决的问题。所…

编写简单的.gitlab-ci.yml打包部署项目

服务器说明: 192.168.192.120:项目服务器 192.168.192.121:GitLab 为了可以使用gitlab的cicd功能,我们需要先安装GitLab Runner 安装GitLab Runner参考: GitLab实现CICD自动化部署_gitlab cidi_程序员xiaoQ的博客-CS…

深入浅出对话系统——闲聊对话系统进阶

引言 本文主要关注生成式闲聊对话系统的进阶技术。 基于Transformer的对话生成模型 本节主要介绍GPT系列文章,这是由OpenAI团队推出的,现在大火的ChatGPT也是它们推出的。 GPT : Improving Language Understanding by Generative Pre-Traini ng 在自…

图的宽度优先深度优先遍历

图常见的遍历方式有两种,一种是宽度优先遍历,一种是深度优先遍历。 宽度优先遍历 宽度优先遍历和之前介绍的二叉树的层级遍历类似,主要也是利用Queue来完成层级的遍历,除此之外,因为图中很可能有环,所以还…

教雅川学缠论07-中枢实战众泰汽车000980

本文实战众泰汽车 下面是2023年11月14-2023年8月8众泰汽车日K图 先画日K 接下来处理包含,就变成下面这个样子 下面在套上缠论的理论,未来股价的走势应该是红色椭圆形虚线里面的样子 好了,文章就到这里,如果众泰最终不是这个走势…

ch6_1 中断及外部设备操作

1. 直接定制表 1.1 移位指令 1.2 操作显存数据 1.3 描述内存单元的标号 1.4 数据的直接定址表 1.5 代码的直接定址表 2.  内中断 2.1 中断及其处理 2.2 编写中断处理程序 2.3 单步中断 2.4 int 指令引发的中断 2.5 BIos , DOS 中断处理 2.5.1 BIOS——基本输…

TOPIAM 社区版 1.0.0 发布,开源 IAM/IDaaS 企业身份管理平台

文章目录 产品概述系统架构功能列表管理端门户端 技术架构后续规划相关地址 ​Hi,亲爱的朋友们,今天是传统 24 节气中的立秋,秋天是禾谷成熟、收获的季节。经过长时间优化和迭代,TOPIAM 企业身份管控平台也迎来了当下的成长和收获…

Nodejs下动态加载文件夹下的文件模块

个人博客 Nodejs下动态加载文件夹下的文件模块 个人博客,求关注,如果有不够清晰的,麻烦指出来,如果有很不正确的,多谢批评。 文章概叙 本文应用的场景是读取指定文件夹下面的所有文件,然后做操作&#…

【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)

目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 一、驱动程序编写流程 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结…

【计算机网络】TCP协议超详细讲解

文章目录 1. TCP简介2. TCP和UDP的区别3. TCP的报文格式4. 确认应答机制5. 超时重传6. 三次握手7. 为什么两次握手不行?8. 四次挥手9. 滑动窗口10. 流量控制11. 拥塞控制12. 延时应答13. 捎带应答14. 面向字节流15. TCP的连接异常处理 1. TCP简介 TCP协议广泛应用于可靠性要求…

P1398 [NOI2013] 书法家

题目描述 输入 #1 3 13 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 1 1 -1 1 1 1 输出 #1 24 输入 #2 3 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1…

线上电影购票选座H5小程序源码开发

搭建一个线上电影购票选座H5小程序源码需要一些基本的技术和步骤。以下是一个大致的搭建过程,可以参考: 1. 确定需求和功能:首先要明确你想要的电影购票选座H5小程序的需求和功能,例如用户登录注册、电影列表展示、选座购票、订单…

Nacos服务治理—负载均衡

引入负载均衡 在消费方引入负载均衡机制&#xff0c;同时简化获取服务提供者信息的流程 Spring Cloud引入组件LoadBalance实现负载均衡 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<…

代码随想录第42天 | 0-1背包问题、416. 分割等和子集

0-1背包问题 问题描述&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 二维数组解法 动态规划五部曲&#xff1a; 确定dp数…

微信小程序--原生

1&#xff1a;数据绑定 1&#xff1a;数据绑定的基本原则 2&#xff1a;在data中定义页面的数据 3&#xff1a;Mustache语法 4&#xff1a;Mustache的应用场景 1&#xff1a;常见的几种场景 2&#xff1a;动态绑定内容 3&#xff1a;动态绑定属性 4&#xff1a;三元运算 4&am…

计算机网络(8) --- IP与IP协议

计算机网络&#xff08;7&#xff09; --- UDP协议和TCP协议_哈里沃克的博客-CSDN博客UDP协议和TCP协议https://blog.csdn.net/m0_63488627/article/details/132125374?spm1001.2014.3001.5501 目录 1.IP与IP协议 IP作用 协议​编辑 2.网段划分 DHCP划分 CIDR划分 特殊…

什么是进程、线程、协程

什么是进程&#xff1f; 我们都知道计算机的核心是CPU&#xff0c;它承担了所有的计算任务&#xff1b;而操作系统是计算机的管理者&#xff0c;它负责任务的调度、资源的分配和管理&#xff0c;统领整个计算机硬件&#xff1b;应用程序则是具有某种功能的程序&#xff0c;程序…

拥抱AIGC浪潮,亚信科技将如何把握时代新增量?

去年底&#xff0c;由ChatGPT带起的AIGC浪潮以迅雷不及掩耳之势席卷全球。 当互联网技术的人口红利逐渐消退之际&#xff0c;AIGC就像打开通用人工智能大门的那把秘钥&#xff0c;加速开启数智化时代的到来。正如OpenAI CEO Sam Altman所言&#xff1a;一个全新的摩尔定律可能…