IBIS AMI Model 算法模式的选择

        常规的信号完整性仿真,只会包含传统的基于IBIS的芯片行为级模型,但高速串行总线在使用过程中,经常会由于传输信道或链路过长以及信号频率较高而造成信号衰减过大,接收端无法正确判别信号,因此,这类SerDes芯片都需要集成均衡或者加重等信号处理技术,AMI(Algorithmic Modeling Interface)模式是IBIS协会指定的解决此类均衡算法问题的专用模型,通俗讲,就是一堆数学公式,用到的功能比如预加重、去加重、前馈均衡、判决反馈均衡、时间线性均衡、时钟恢复等等。

        AMI模型可以包含两种信号响应及处理的基本模式:

        1. Impulse response (Init) only;

        2. Waveform (Getwave) only;

        其实还包括两者兼备的Dual模式,但是,实际产品设计中,很少会出现Dual的情况,因此不做讨论,这两种模式,代表了IBIS-AMI支持两种基本的仿真流:

        1. 具有线性时不变(LTI)均衡算法模型的统计仿真流,简称为统计(statistical)模式;

        2. 具有非线性或时变(NLTI)均衡特性的时域流,简称为逐比特(bit by bit)模式。

        对于统计模拟处理,只使用下图中步骤1~3所示的功能块,模拟通道脉冲响应在步骤1中生成,并传递给Tx AMI_Init()和Rx AMI_Init()函数:

        1. 如果函数的Init_Returns_Impulse设置为true,调用对脉冲响应应用信号处理并输出修改后的响应,这些处理函数在图中标注为hTEI(t)和hREI(t);

        2. 如果函数的Init_Returns_Impulse设置为false,调用将不加修改地传递输入响应,Tx和Rx端均如是;

        最后,EDA工具使用其标准统计模拟过程处理来自Rx AMI_Init()调用的过滤输出,整个过程是基于单次脉冲响应的算法处理,因此,也就不会产生时域波形。

        使用AMI_Init()和AMI_GetWave()函数的各种组合,时域处理的模型交互场景将比统计模式更加丰富。

        与统计模拟参考流一样,首先生成模拟通道响应,该响应可能与一定数量的串扰干扰组合成一个脉冲矩阵,并传递给Tx AMI_Init()函数。参考图示,均衡化可以在AMI_Init()或AMI_GetWave()调用中应用,而在AMI_GetWave()中应用滤波是首选,因为它可以支持NLTV算法。 在AMI_Init()函数执行后,EDA工具在步骤4和5中将激励波形应用于Tx AMI_GetWave()函数:

        1. 如果Tx GetWave_Exists为false,则比特流b(t)将不变地传递到步骤6,在步骤6中,它可以与AMI_Init()调用中执行的过滤进行卷积;

        2. 如果Tx GetWave_Exists为true,则均衡化在Tx AMI_GetWave()函数中应用,此时,从Tx AMI_Init()调用的hTEI(t)过滤将不会被使用,因此均衡化不会重复计算;

        最后,如果Rx GetWave_Exists为true,则在步骤7中应用Rx均衡,再将模拟波形输出到EDA平台进行额外处理和查看。

        因此,所有的信号流程均是在以上四种函数的true或false的选择下进行流通工作,因为可供选择的组合方式太多,如下图所示,这些选择乍一看使人困惑不解,但是,只要理解了AMI_Init()和AMI_GetWave()函数的含义,并且知道两者必有其一为true时,这些有限的选择项还是可以进行区分的,其次,实际的IBIS AMI模型中,也少有能够四个函数全部支持的情况,因此,选择将会进一步减少。

        推荐的优选原则是:

        1. 如果Tx和Rx端均支持Init_Returns_Impulse为true时,建议使用统计模式,因为其能够看到更低误码率的眼图分析结果;

        2. 如果Tx和Rx仅其中一端的支持Init_Returns_Impulse为true时,建议使用时域处理,此时在AMI_GetWave()中应用滤波是首选。

        参考文献:

        1. Simulating High-Speed Serial Channels with IBIS-AMI Models, keysight

        2. Understanding IBIS-AMI Simulations, DesignCon 2015.

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

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

相关文章

Amazon SageMaker:让机器学习变得更简单、更强大

授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 前言: 在大数据时代的浪潮中,数据不再只…

指令数据:训练大模型的“隐形助力”

作者:谭婧 (一)指令数据,了解一下 先聊一件圈内趣事: 2023年初,大约在1月到2月份前后, 百度公司如流工作卡上有一个任务, 让百度员工打开脑洞,写“问答对”。 一问一答都…

HashMap常见面试问题

简述HashMap原理? HashMap基于数组加链表的方式来实现,数组下标通过hash值来计算,当下表冲突时,就会进行遍历链表,当链表长度大于8的时候会转化为红黑树。 HashMap的put过程? put的第一步是计算hash值&a…

什么时候使用匿名类,匿名类解决了什么问题?为什么需要匿名类 ?

匿名类通常在以下场景下使用: 一次性使用: 当你需要创建一个类的实例,但该类只在一个地方使用,而不打算在其他地方重复使用时,可以考虑使用匿名类。 简化代码: 当创建一个小型的、一次性的类会让代码更简洁…

VUE中如果让全局组件在某一页面不显示

目录 前言 方法一 1.在全局组件中添加一个变量用于控制显示与隐藏。 2.在全局组件的模板中使用 v-if 条件来决定是否显示该组件 3.在不需要显示全局组件的页面中,修改 showGlobalComponent 变量的值为 false,以隐藏全局组件。 4.在需要隐藏全局组…

TrustZone之总线请求

接下来,我们将查看系统中的总线请求者,如下图所示: 系统中的A型处理器具有TrustZone感知,并在每个总线访问中发送正确的安全状态。然而,大多数现代SoC还包含非处理器总线请求者,例如GPU和DMA控制器。 与完成…

​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展

在数字化时代,云计算成为推动创新和业务发展的关键驱动力。Amazon Lightsail 作为亚马逊云科技家族中的一员轻量应用服务器,为小型企业和创业公司提供了简便、强大的云计算服务。无论您是刚刚起步的初创公司,还是需要灵活而高效的云解决方案&…

第5次实验:ICMP

目的: 要看ICMP(互联网控制信息协议)是如何使用的。ICMP是IP的一个配套协议,通过处理各种错误和测试情况,帮助IP执行其功能。通过处理各种错误和测试情况来帮助IP执行其功能。它在第5.6.4节中有介绍。文中有涉及。在做…

vue 中国省市区级联数据 三级联动

vue 中国省市区级联数据 三级联动 安装插件 npm install element-china-area-data5.0.2 -S 当前版本以测试,可用。组件中使用了 element-ui, https://element.eleme.cn/#/zh-CN/component/installation 库 请注意安装。插件文档 https://www.npmjs.com/package/ele…

【CANoe】CANoe中使用RS232

文章目录 1、CANoe中自带示例2、示例讲解2.1CANoe自带Port A和Port B通讯2.2CANoe自带Port A和串口助手通讯 1、CANoe中自带示例 我使用的事CANoe12,RS232路径如下: C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 12.0.75\IO_HIL\RS23…

如何安全运行别人上传的Python代码?

写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。 涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行&…

人工智能联盟的首件神兵利器——“Purple Llama” 项目,旨为保护工智能模型安全性

Meta公司(Meta Platform Inc),原名Facebook,创立于2004年2月4日,市值5321.71亿美元。总部位于美国加利福尼亚州门洛帕克。 Meta 公司推出了名为“Purple Llama”的项目,旨在保护和加固其开源人工智能模型。…

部署Nextcloud详细步骤及优化方法

一、安装PHP8.0以上 我这里使用PHP8.0.30 [rootlocalhost ~]# php -v PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.30, Copyright (c) Zend Technologies [rootlocalhost ~]# 安装方法参考 二、安装MY…

安卓版pytCharm怎么启动,安卓版手游免费下载

大家好,给大家分享一下安卓版python编辑器安装tkinter,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 我的GitHub 是的,Python 代码可以在 Android 平台上运行,尽管这并不是 Python 传统上最常用的运行环…

正则表达式(6):分组与后向引用

正则表达式(6):分组与后向引用 总结 本博文转载自 在本博客中,”正则表达式”为一系列文章,如果你想要从头学习怎样在Linux中使用正则,可以参考此系列文章,直达链接如下: 在Linux中…

【Stm32-F407】Keil uVision5 下新建工程

①双击鼠标左键打开Keil uVision5,选择 Project 下的 New uVision Project ; ②在期望的文件夹下创建一个工程,并按如下要求操作; ③添加文件类型,按如下要求操作 ④如有需要可添加相关启动文件在工程文件夹下并添加到…

RNN介绍及Pytorch源码解析

介绍一下RNN模型的结构以及源码,用作自己复习的材料。 RNN模型所对应的源码在:\PyTorch\Lib\site-packages\torch\nn\modules\RNN.py文件中。 RNN的模型图如下: 源码注释中写道,RNN的数学公式: 表示在时刻的隐藏状态…

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的,可以使用Metasploit的漏洞库。从3.0版本开始,Cobalt Strike不再使用Metasploit的漏洞库,成为一个独立的…

每日好题:原来你也玩三国杀(DP动态规划)

I - 原来你也玩三国杀 Description 小 Q 最近听说 “很多” acmer 都爱上了一款游戏《三国杀》。因为小 Q 是一个初学者,所以想自己先偷偷学习一下,然后惊艳所有人。但又因为小 Q 不屑于使用一般的武将,因为他觉得唯有操作型武将才能显得自…

性能监控软件:优化系统运行的得力助手

随着科技的飞速发展,企业和组织对于其信息技术基础设施的性能要求也愈发提高。为了确保系统能够高效稳定地运行,性能监控软件成为不可或缺的工具。本文将探讨性能监控软件的主要作用,以及它们在提升系统性能和稳定性方面的关键作用。 1. 实时…
最新文章