首页 >  汉普动态
【仿真】Ibis-AMI模型简介


【仿真】Ibis-AMI模型简介


在低速信号SI仿真中,常用的器件模型有两种:Spice模型与Ibis模型。


Spice模型把器件中的实际电气结构描述出来,精度较高。而Ibis模型则是把器件当成黑匣子,测量其端口特性,是行为级模型,精度相对较低,但仿真速度较快。

在高速SerDes仿真中,Spice模型与普通的Ibis模型均不能满足其特殊的要求。

传统的Ibis模型无法表征SerDes中的FFE,DFE,CDR等功能。


Spice模型的仿真效率非常低下,这是因为高速SerDes内部结构比较复杂,且低误码率的要求导致需要大量的bit才能得出有效的仿真结果。


而且,抖动、串扰的影响对高速信号越来越重要,这两者的影响也很难用Spice模型仿真出来。


针对高速SerDes的特殊性,Ibis委员会推出了Ibis-AMI模型标准。相比Ibis模型增加了算法模块来描述SerDes中均衡加重等功能。仿真速度比Spice模型快1000+倍。同时也能很方便的仿真jitter与串扰的影响。


下图为使用Ibis-AMI模型全链路结构图:



Ibis-AMI模型包含两个部分,一部分是模拟部分,在.ibs文件中描述了不包含均衡加重等信息的发送接收电路。另一部分为算法部分,算法参数文件.AMI包含了模型中的各种参数。

如下图所示,某一个Ibis-AMI模型中,包含了Jitter,DFE,FFE等参数,这些参数传递给算法可执行文件.dll,来模拟SerDes的均衡加重等功能。


(某Ibis-AMI模型的参数列表)


Ibis-AMI模型的算法与传统的时域仿真技术不一样,Ibis-AMI是使用一些叠加、卷积、统计的方式来计算通道响应。原理是用单位脉冲响应(傅里叶变换后即传递函数)来表征通道中线性时不变的部分,任意激励源与单位脉冲响应的卷积即是该激励源经过该通道后的输出。


通道中的非线性时不变部分,例如DFE、FFE功能,用AMI_GetWave()函数来表征。或者把DFE、FFE功能近似为线性时不变,仍然用单位脉冲响应表征,包含在AMI_Init()函数中。


Ibis-AMI模型有两种仿真模式,统计分析(Statistical analysis)与时域分析(Bit-by-Bit Simulation)。


统计分析是用统计的方法来计算无限长bit位的随机属性,以此得出眼图。这种方法只能用在线性时不变系统上,仿真速度比时域分析(Bit-by-Bit Simulation)模式快,但不能仿真确定的bit位组合。


仿真流程如下图所示:




1. 计算整个模拟通道的单位脉冲响应hch

2. 调用TX_Init()函数,把通道脉冲响应hch与Tx的响应hTx做卷积计算:hchhTx,⊗代表卷积计算。

3. 调用RX_Init()函数, 把Rx的输入hch⊗hTx 与Rx的响应hRx做卷积计算:hch⊗hTx⊗hRx

4. 直接使用结果hchhTxhRx,用统计的方式得出眼图。


时域分析(Bit-by-Bit Simulation)则是输入一个bit位组合,得到该bit位组合响应的眼图。


如果模型中包含GetWave()函数,则只能使用时域分析模式,其仿真流程如下所示:




1. 计算整个模拟通道的单位脉冲响应hch

2. 生成想要仿真的bit位组合。

3. 把该bit位组合传递给TX端的AMI_GetWaveTx()函数,得出TX端的输出wTx.out(t)。

4. TX端的输出wTx.out(t)与模拟通道的单位脉冲响应hch做卷积hchwTx.out(t),得到RX端的输入信号wRx.in(t)

5. Rx端的输入信号wRx.in(t)传递给RX端的AMI_GetWaveRx()函数,得到眼图。


下面是一个使用ibis-AMI模型的28Gpbs信号仿真简单示例:

(全链路模型结构图)

Ibis-AMI模型中,无GetWave()函数,FFE功能模拟为线性时不变系统。时域分析模式(bit-by-bit)仿真的bit位较少时,眼高眼宽偏大,结果不可信,仿真的bit位足够多时,与统计分析模式(Statistical)结果差异很小。



调整TX端预加重的五个tap的参数,可以得到最佳的眼图。



如前面的全链路模型结构图所示,链路中可以增加串扰源,考虑通道中引入的串扰的影响。



Jitter参数在ibis-AMI模型中已有默认设置,也可以增加额外的Jitter。



Ibis-AMI模型在高速SerDes的仿真中有着仿真效率高,精度高,保护芯片的知识产权,通用性高,简单易用等诸多优点,经过多年的发展,已经成为了行业标准。