当前位置: 首页 > news >正文

HyperLynx(十五)多板仿真

1.多板仿真概述
2.建立多板仿真项目
3.运行多板仿真
4.多板仿真练习

1.多板仿真概述
在现代设计里,一个设计往往由几个PCB组成,典型的主板与内存条就是一个多板互连的应用。BoardSim 现在具有了加载多板、连接器及对其进行仿真的能力。每一块板子或是由它们的常规BoardSim文件“HYP”确定,或是由PCB对应的IBIS模型文件“.EBD”确定。如果所有的板子都是设计者自己设计的,那么在加载时,用.HYP文件来调用它们比较方便;如果一些板子来自第三方,则第三方应该提供.EBD文件。
HYP文件与EBD文件之间最主要的不同是:.HYP文件是物理性的,它包括详细的布线、叠层等;
EBD文件纯粹是一个当作传输线、起连接作用的电特性文件,它包括已经计算出来的电感、电容、时延和阻抗值。
HYP文件的连线是实际可见的,.EBD 却不能,因为它没有PCB的物理信息。然而在多板仿真中,二者中任何一种都可用来仿真主板与子板连接器对信号的影响。

2.建立多板仿真项目

在HyperLynx的菜单栏中,选择“File”→“New MultiBoard Project”命令,打开“MultiBoard Project Wizard”对话框,在对话框的 “Project filename”栏中输入项目名,单击“Browse…”按钮,指定项目路径,如图所示:

在这里插入图片描述

单击“Next”按钮,进入项目向导的第2步,单击此对话框中的“Insert…”按钮,找到以下文件:“…\hyperlynx\Demo_Files\ MainBoard.hyp”和“….hyperlynx\Demo_Files\ PlugIn1.hyp。

在这里插入图片描述

【注意】:“PlugIn1hyp”要加载两次,并在“Comment”栏中添加注释,如图所示。如果加载了错误的HYP文件,则可以在“.HYPfiles in this project”列表中单击文件的ID号,将其选中,再单击“Delete”按钮将其删除。

单击“Next”按钮,进入项目向导的第3步,定义板间互连映射。在对话框的“Design file#1”下拉列表中选择“B00,Mainboard”,在其下方的“Reference designators”列表中选择元器件“J1”,然后在“Designfile#2”下拉列表中选择“BO1、RAM1”,在其下方的“Refer ence designators”列表中选择元器件“J1”,单击“Insert”按钮,为这两个元器件建立互连映射。用同样的方法为“BOO:J2”与“B02:J1”建立互连映射,如图所示:

在这里插入图片描述

在这里插入图片描述

单击“Next”按钮,进入项目向导的第4步,定义电气互连属性。在对话框的“Interconnection list”列表中选中一个互连映射关系,就可以定义它的电气互连属性了,如阻抗、感抗、电容等,如图所示。

在这里插入图片描述

设置完成后,单击“Finish”按钮,这时HyperLvnx会自动打开多板仿真项目,编辑区域的显示如图所示:

在这里插入图片描述

3.运行多板仿真
单击工具栏中的“Select Net by Name for SI Analysis”图标,打开“Select Net by Name”对话框,在此对话框的“Design file”下拉列表中选择“B00 Mainboard”,然后在网络列表中单击“A0”将其选中,如图所示:

在这里插入图片描述

单击“OK”按钮,关闭“Select Net byName”对话框,此时HyperLynx窗口中只显示网络“A0”。在菜单栏中选择“Simulate SI”“Run Interactive Simulation (SI Oscilloscope)”命令,打开“Digital Oscilloscope”对话框。打开“Probes”对话框,只保留“U2 B01” “U2 B02” “U100 B00”的示波器探针,如图所示:

在这里插入图片描述

在数字示波器窗口中,将驱动波形设置为下降沿,运行仿真,结果如图所示:

在这里插入图片描述

可以看出,此时无论是驱动端还是接收端,信号的反射现象都很严重。为改善信号质量,需要对网络进行端接。
单击王具栏中的“Select Component Models or Edit Values”图标,打开“Assign Models”对话框,打开“Quick Terminator”选项卡。首先在“Design”下拉列表中选择“B00 Mainboard”,在“Quickter- minator”列表中选择引脚“U100.AE19”,在“Terminatorstyle”列表中选择端接类型为“C parallel”,在“Terminator values”栏中设置电容值为200pF,如图所示。

在这里插入图片描述

再为“B01”和“B02”的引脚“U2.20”选择端接类型“R-C parallel,AC”。
关闭“Assign Models”对话框,打开数字示波器窗口,重新运行仿真,结果如图所示:

在这里插入图片描述

结果明显比之前好很多。

4.多板仿真的练习
本节将建立一个在主板上插接两块RAM模块的多板工程,然后对其进行仿真分析。在HyperLynx的工具栏中,选择“File”→“NewMultiboardProject”命令,新建一个名为“mbd ram system”的多板项目。载入文件选择软件附带的文件“HYPERLYNX CLASS FINALBLZHYP”与“RAM MODULE COMPLETE HYP”其中RAM文件“RAM MODULE COMPLETEHYP”载人两次,并在注释栏中加人注释“RAM1”和“RAM2”,为“HY- PERLYNX CLASS FINALBLZHYP”添加注释“Motherboard”。将“B01RAM1”的连接器“P1”接入“BOO,Motherboard”的插槽“J1”将“BO1、RAM2”的连接器“P1”接入“BO0,Motherboard”的插槽“J2”。完成后的电路图如图所示:

在这里插入图片描述

打开“Select Net by Name”对话框,在“Design file”下拉列表中选择“B00 Mother- board”,然后选择网络“RAMBUSB_6”。
在“Assign Models”对话框中,选择“B00 Motherboard”,将“U16.B12”设置为输出。在“Quick Terminator”选项卡为其添加一个51Ω 的串联端接,并将该端接置于顶层。驱动端U16 B12模型如图所示:

在这里插入图片描述
在这里插入图片描述

不使能串扰仿真和损耗分析,仅使能过孔模型。打开虚拟数字示波器窗口,将纵坐标设置为500mV/div,横坐标设置为5ns/div,在“Fallingedge”和“Fast-Strong”的条件下运行仿真。
测量U1_B01.11和U1_B02.11的飞行时间,建议使用自动测量功能。结果如表所示:

在这里插入图片描述
在这里插入图片描述

接下来将对一个“坏的”连接器进行测试。当在产品测试或使用中出现系统故障时,都会怀疑是连接器引脚(connector pins)被污染所致。可以通过对该效果进行仿真以证实假设。由于污染首先影响的是电容和电阻,接下来将探讨改变这些值的效果。
在菜单栏选择“Edit”→“Multiboard Project”命令,打开“MultiBoard Project Wizard”对话框,对工程进行编辑。
找到寄生效应设置页,选择主板与RAM1之间的连接,将连接器电阻改为0.1Ω,电容改为10pF,如图所示:

在这里插入图片描述

单击“Finish”按钮,在弹出的对话框中单击“是(Y)”按钮保存更改。在“Save Multiboard Session Edits”对话框中使用默认设置保存。此操作会关闭当前的多板项目,然后重新打开,以便更新。
对网络RAMBUSB_6在“Falling edge”和“Fast-String”的条件下进行仿真。再次测量相同引脚的飞行时间,结果如表所示:

在这里插入图片描述
在这里插入图片描述

从结果可以看出,连接器的寄生效应改变后增加了信号的飞行时间,因此使时间容限减小。

相关文章:

  • ElasticSearch(四):ES nested嵌套文档与父子文档处理
  • java 基于springboot员工实训项目管理系统
  • SaaS行业的六大安全问题
  • Geoserver+Cesium 发布带样式矢量数据
  • 【C语言】数据类型、存储类
  • 免关注阅读CSDN博客和复制代码(2022.9.1)
  • shell脚本(四)处理用户输入
  • 08 SpringMVC跨域请求
  • Mac下根目录和home目录的区别
  • 猿创征文|opencv对滤波的处理
  • 输入年月日判断是本年的第多少天
  • 每天一个前端小知识01——Webpack
  • 猿创征文|[C++ 从入门到精通] 5.一学就会的迭代器介绍与相关操作展示
  • Java项目:SSM场地预订管理系统
  • docker安装oracle数据库详细步骤
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Akka系列(七):Actor持久化之Akka persistence
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Markdown 语法简单说明
  • Node + FFmpeg 实现Canvas动画导出视频
  • Node 版本管理
  • Python 反序列化安全问题(二)
  • Python爬虫--- 1.3 BS4库的解析器
  • React组件设计模式(一)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • VuePress 静态网站生成
  • Vue组件定义
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 协程
  • 译有关态射的一切
  • 阿里云服务器购买完整流程
  • #NOIP 2014#Day.2 T3 解方程
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)Dubbo快速入门、介绍、使用
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)visual stdio 书签功能介绍
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 获取url的方法
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .Net小白的大学四年,内含面经
  • [20140403]查询是否产生日志
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Angular 基础] - 数据绑定(databinding)
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出