一种高速波形的均衡方法与流程

文档序号:17260939发布日期:2019-03-30 09:39阅读:418来源:国知局
一种高速波形的均衡方法与流程

本发明属于计算机技术领域,更进一步涉及计算机高速链路均衡技术领域的一种基于ami模型的高速波形均衡方法,可用于高性能计算机和通信设备的通用i/o接口领域。



背景技术:

在高速全链路中,发送器中上升边小于1ns时,发送器就会发送高速波形。高速波形的产生方式分为两种:一种是通过单端发送器产生的单端高速波形;另一种是通过差分发送器产生的差分高速波形。产生的高速波形经过传输信道时会受到码间干扰isi(intersymbolinterference)、串扰和衰减的影响,使得接收器无法准确识别发送器产生的高速波形。

针对存在的这个问题,需要对接收器接收的高速波形进行均衡,其原理是补偿高速波形经过传输通道后的损耗,其中均衡好坏指标通过测量高速波形生成眼图的眼高和眼宽来判定,若均衡后眼图的眼高大幅度提高,则表明均衡效果好。

ami模型是把连续时间线性均衡器ctle,或判决反馈均衡器dfe,或自适应判决反馈均衡器adfe的算法封装到dll文件中,把连续时间线性均衡器ctle,或判决反馈均衡器dfe,或自适应判决反馈均衡器adfe的参数添加到ami文件中,用ibs文件中的[algorithmicmodel]关键字把dll文件以及ami文件链接起来。

差分高速波形和单端高速波形均衡普遍采用自适应算法实现,均衡过程中需要对高速波形进行多次迭代和训练,这样会增加运算复杂度且很耗时,为了降低高速波形均衡的复杂度,研发人员提出了用商业电路仿真软件ads或sigrty在接收器中添加ami模型实现对差分高速波形的均衡,其方法是把ami模型中的ami文件、dll文件和ibs文件放在一个文件夹下,然后在接收器中导入该文件夹下的这三个文件,实现对差分高速波形的均衡。由于ibs文件中并没有单端发送器的信息,ibs文件不能识别出单端发送器产生的高速波形,则单端高速波形不能在接收器中添加ami模型实现均衡,而在接收器中集成了判决反馈均衡器,通过使用该均衡器,实现对单端高速波形的均衡。



技术实现要素:

本发明的目的在于针对上述现有技术存在的不足,提出了一种高速波形的均衡方法,用于解决现有技术中存在的仅能实现对差分高速波形或单端高速波形进行均衡导致的通用性低的技术问题,同时缩短对差分高速波形均衡的时间。

本发明的技术思路是:首先获取高速波形的参数值;然后提取ami模型的ami文件以及dll文件和文件名;编写dll文件中函数的头文件名,根据c语言的标准为ami_init函数、ami_getwave函数和ami_close函数编写头文件,并对其命名;将dll文件名和dll文件中函数的头文件名加载到matlab仿真软件中;获取dll文件中每个函数的输入参数和各输入参数值;获取dll文件中ami_init函数和ami_getwave函数的输出波形;确定输出波形的使用规则;最后获取均衡高速波形的眼图,具体实施步骤为:

(1)获取高速波形的参数值:

利用ads电路仿真软件获取高速波形的参数值,包括高速波形的波形、波形长度、波形数量和受干扰波形;

(2)提取ami模型的ami文件以及dll文件和文件名:

从ibis开放论坛下载ami模型,并提取该ami模型中的ami文件和dll文件,以及dll文件名,其中ami文件包含的参数有ami版本信息、ami自定义参数和ami保留参数,ami保留参数包括init_returns_impulse、use_init_output和getwave_exists;

(3)编写dll文件中函数的头文件名:

(3a)使用visualstudio2015软件中的dumpbin工具遍历dll文件,得到ami_init函数、ami_getwave函数和ami_close函数并输出;

(3b)根据c语言的标准为ami_init函数、ami_getwave函数和ami_close函数编写头文件,并对其命名;

(4)将dll文件名和dll文件中函数的头文件名加载到matlab仿真软件中:

通过loadlibrary函数,将dll文件名和dll文件中函数的头文件名加载到matlab仿真软件中,其中matlab仿真软件的位数与dll文件操作系统的位数相同;

(5)基于matlab仿真软件获取ami模型中dll文件每个函数的输入参数和各输入参数值:

(5a)基于matlab仿真软件自带的libfunction函数显示出dll文件中每个函数的输入参数,其中ami_init函数的输入参数包括波形、波形的数量、受干扰波形、每两个采样点之间的间隔、单位时间间隔、ami文件中自定义参数和ami文件的版本信息,ami_getwave函数的输入参数包括波形、波形长度和ami文件中自定义参数;ami_close函数的输入参数包括分配ami参数的内存空间;

(5b)通过高速波形的波形、波形的数量和受干扰波形为ami_init函数中对应的波形、波形的数量和受干扰波形赋值,通过高速波形的波形和波形长度为ami_getwave函数中对应的波形和波形长度赋值;计算ami_init函数中波形的单位时间间隔ui和每两个采样点之间的间隔sampleinterval;将ami文件中的ami自定义参数分别赋值给ami_init函数和ami_getwave函数中对应的ami自定义参数,将ami文件中的ami版本信息赋值给ami_init函数对应的ami版本信息;将matlab仿真软件的空指针赋值给ami_close函数分配ami参数的内存空间;

(6)基于matlab仿真软件获取ami模型中dll文件的ami_init函数和ami_getwave函数的输出波形:

基于matlab仿真软件自带的calllib函数调用dll文件中已获赋值的每个函数,得到ami_init函数的输出波形和ami_getwave函数的输出波形;

(7)确定输出波形的使用规则:

根据ibis6.0标准,判断ami保留参数的有效性,当init_returns_impulse和use_init_output有效且getwave_exists无效,则获取均衡高速波形的眼图时使用ami_init函数的输出波形,当getwave_exists有效且init_returns_impulse和use_init_output无效,则获取均衡高速波形的眼图时使用ami_getwave函数的输出波形;

(8)基于matlab仿真软件获取均衡高速波形的眼图:

基于matlab仿真软件,以步骤(5b)中的ami_init函数中波形的单位时间间隔为周期对步骤(7)中确定的输出波形进行截取,并对截取后的所有波形段进行叠加,均衡高速波形的眼图。

本发明与现有技术相比,具有如下优点:

1.由于本发明获取均衡高速波形的眼图过程中采用的matlab仿真软件中加载了ami模型中的ami文件和dll文件,能够同时识别差分发送器和单端发送器的信息,避免了现有技术中采用仿真软件ads或sigrty的接收器加载ami模型中的ibs文件只能识别差分发送器发送的高速波形的缺陷,能够同时实现对差分高速波形和单端高速波形的均衡,有效提高了本发明的通用性。

2.由于本发明获取均衡高速波形的眼图过程中采用的matlab仿真软件加载ami模型中的ami文件和dll文件,就能实现对差分高速波形的均衡且均衡时间较短,避免了现有技术中还需要加载ibs文件,且加载ibs文件耗时的缺陷,能够缩短对差分高速波形均衡的时间,有效提高了本发明的效率。

附图说明

图1是本发明的实现流程图;

图2是本发明均衡差分高速波形的眼图;

具体实施方式

下面结合附图和具体实施例,对本发明作进一步详细描述。

参照图1,一种高速波形的均衡方法,包括如下步骤:

步骤1)获取高速波形的参数值:

利用ads电路仿真软件获取高速波形的参数值,包括高速波形的波形、波形长度、波形数量和受干扰波形。

ads仿真软件中搭建高速全链路,包括发送器、波形传输通道、接收器和波形显示器,设置发送器比特率为6.25gbps,单位时间间隔内采样的点数为32,并在波形显示器中提取波形。

高速波形通过单端发送器和差分发送器产生,本发明实施例中采用一个单端发送端产生高速波形,并且只产生一条高速波形,则波形的数量为1,受干扰波形为0。

产生的高速波形用txt文件的格式导出并保存,在txt文件中统计出波形的长度为196608。

步骤2)提取ami模型的ami文件以及dll文件和文件名:

从ibis开放论坛下载ami模型,并提取该ami模型中的ami文件和dll文件,以及dll文件名,其中ami文件包含的参数有ami版本信息、ami自定义参数和ami保留参数,ami保留参数包括init_returns_impulse、use_init_output和getwave_exists。

ibis开放论坛下载ami模型,可以采用连续时间线性均衡器ctle的ami模型,或判决反馈均衡器dfe的ami模型,或自适应判决反馈均衡器adfe的ami模型。加载判决反馈均衡器dfe的ami模型可以抵消大量的码间干扰,而且抑制通道阻抗突变引起的多次反射。因此本发明采用判决反馈均衡器dfe的ami模型。

提取判决反馈均衡器dfe的ami模型中的ami文件和dll文件,以及dll文件名。得到ami文件为dfe.ami、dll文件为dfe_x64.dll和dll文件名dfe_x64。

ami文件中的自定义参数包括:判决反馈均衡器dfe的抽头个数、抽头系数和阈值电压。其中,判决反馈均衡器dfe的抽头个数为3;抽头系数分别为:0.1379、0.0209、0.0114;阈值电压为0.5665v。

ami版本信息为:“snpsmulti-tapdfemodel”。

步骤3)编写dll文件中函数的头文件名:

使用visualstudio2015软件中的dumpbin工具遍历dll文件,得到ami_init函数、ami_getwave函数和ami_close函数并输出。

根据c语言的标准为ami_init函数、ami_getwave函数和ami_close函数编写头文件,并对其命名。

编写的格式为:

_declspec(dllexport)longami_init()

_declspec(dllexport)longami_getwave()

_declspec(dllexport)longami_close()

编写完头文件后,dfe.h作为头文件名。

步骤4)将dll文件名和dll文件中函数的头文件名加载到matlab仿真软件中:

通过loadlibrary函数,将dll文件名和dll文件中函数的头文件名加载到matlab仿真软件中,其中matlab仿真软件的位数与dll文件操作系统的位数相同。

本发明具体实施例中matlab仿真软件的位数与dll文件操作系统的位数都是64位。

loadlibrary函数加载的具体形式为:loadlibrary(‘dfe_x64’,‘dfe.h’)。

步骤5)基于matlab仿真软件获取ami模型中dll文件每个函数的输入参数和各输入参数值:

输入libfunctiondfe_x64-full显示出dll文件中每个函数的输入参数。其中ami_init函数的输入参数包括波形、波形的数量、受干扰波形、每两个采样点之间的间隔、单位时间间隔、ami文件中自定义参数和ami文件的版本信息,ami_getwave函数的输入参数包括波形、波形长度和ami文件中自定义参数;ami_close函数的输入参数包括分配ami参数的内存空间。

把txt文件保存的波形、1和0赋给ami_init函数中对应的波形、波形的数量和受干扰波形,把txt文件保存的波形和196608对应赋给ami_getwave函数中波形和波形长度。

ami_init函数中波形的单位时间间隔ui和每两个采样点之间的间隔sampleinterval计算公式如下;

其中,bitrate表示ami_init函数中波形的比特率,uilength表示单位时间间隔内采样的点数。

通过公式计算出波形的单位时间间隔ui等于160,每两个采样点之间的间隔sampleinterval等于5,把160和5对应赋给ami_init函数中波形的单位时间间隔ui和每两个采样点之间的间隔sampleinterval。

ami文件中的自定义参数:判决反馈均衡器dfe的抽头个数、抽头系数和阈值电压,根据ibis6.0标准转化为树性结构参数后分别赋给ami_init函数和ami_getwave函数中对应的ami自定义参数。

树性结构参数的形式为:“(dfe_vth(0.5665)(dfetaps(10.1379)(20.0209)(30.0114)))”

ami版本信息:“snpsmulti-tapdfemodel”赋值给ami_init函数对应的ami版本信息。

将matlab仿真软件的空指针赋值给ami_close函数分配ami参数的内存空间。

步骤6)基于matlab仿真软件获取ami模型中dll文件的ami_init函数和ami_getwave函数的输出波形:

基于matlab仿真软件自带的calllib函数调用dll文件中已获赋值的每个函数,得到ami_init函数的输出波形和ami_getwave函数的输出波形。

calllib函数调用形式为:calllib(‘dfe_x64’)。

步骤7)确定输出波形的使用规则:

根据ibis6.0标准,判断ami保留参数的有效性,当init_returns_impulse和use_init_output有效且getwave_exists无效,则获取均衡高速波形的眼图时使用ami_init函数的输出波形,当getwave_exists有效且init_returns_impulse和use_init_output无效,则获取均衡高速波形的眼图时使用ami_getwave函数的输出波形。

本发明实施例中ami保留参数getwave_exists有效且init_returns_impulse和use_init_output无效,使用ami_getwave函数的输出波形。

步骤8)基于matlab仿真软件获取均衡高速波形的眼图:

以单位时间间隔ui等于160为周期对ami_getwave函数的输出波形进行截取,并对截取后的所有波形段进行叠加,均衡高速波形的眼图。

本发明的效果可通过以下仿真进一步说明。

1.仿真条件:

本发明的仿真实验使用matlab仿真软件、ads电路仿真软件,在ads电路仿真软件搭建高速链路。高速链路包括高速信号发送器、信号传输通道、信号接收器及眼图生成器。差分发送器发送波形,波形的高、低电压分别为1.0v和-1.0v,设置差分发送器比特率为6.25gbps,高速波形含有5000个单位时间间隔,每个单位时间间隔的采样点数为32。本发明中的ami模型从ibis开放论坛下载得到,其中包括连续时间线性均衡器ctle的ami模型和判决反馈均衡器dfe的ami模型。

2.仿真内容及其仿真结果分析:

本发明的仿真实验是采用本发明中matlab仿真软件调用ami模型均衡方法和ads电路仿真软件调用ami模型的均衡方法,分别对高速波形作均衡处理,其对比结果如图2所示。其中,图2(a)为未加载ami模块的眼图。图2(b)为使用ads电路仿真软件加载连续时间线性均衡器ctle的ami模型的眼图。图2(c)为使用ads电路仿真软件加载判决反馈均衡器dfe的ami模型的眼图。图2(d)为使用本发明的方法添加连续时间线性均衡器ctle的ami模型的眼图。图2(e)为使用本发明的方法添加判决反馈均衡器dfe的ami模型的眼图。

图2中的横坐标表示时间,单位为皮秒。图2中的纵坐标表示的电压值,单位为伏。使用matlab仿真软件分别对图2(a)、图2(d)和图2(e)中眼图进行自动测量,使用ads仿真软件分别对图2(b)和图2(c)中眼图进行自动测量,得到相应眼图的眼高、眼宽和均衡时间,详见表1。

表1.

按照下述公式,分别计算表1中本发明中加载连续时间线性均衡器ctle的ami模型的眼高、眼宽与ads加载该模型后的眼高、眼宽的误差:

(0.7747-0.7742)/0.7747≈0.06%

(139.4-133.2)/133.2≈4.45%

分别计算表1中本发明中加载判决反馈均衡器dfe的ami模型的眼高、眼宽与ads加载该模型后的眼高、眼宽的误差:

(0.8026-0.7941)/0.8026≈1.06%

(140.0-135.0)/135.0≈3.65%

参照上表1,可以得到用ads方式加载ami模型生成眼图的眼高与眼宽和matlab方式加载ami模型生成的眼图眼高和眼宽值都很接近,在实际工程领域中10%以内的误差即为可接受的误差范围,通过对比两种均衡方式的误差百分比在误差允许的范围内,说明获取均衡高速波形的眼图,本发明与现有技术相比能够达到相同的均衡效果;通过对比两种均衡方式的均衡时间,本发明比现有技术更高效。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1