第二届华为杯创芯大赛题目浅析及模拟均衡器(AEQ)基础理论推导

引言:

在高速串行接口中(典型如SERDES),高频信号的0-1切换可能会由于传输线阻抗等因素无法切换完全,进而出现ISI码间干扰。这种方式的典型解决方法有两种:发射端预增强和接收端均衡。两种方式的目的都是要补偿高频信号的衰减,而均衡器的主要实现有两种,一种是模拟均衡器,一种是数字均衡器。后者可能是通过射频ADC采样后进行DSP,前者的目的是通过模拟电路直接实现下图所示的信号传递曲线:

在较高频率处增益变高,类似于一个带通滤波器。值得一提的是,这是2019年华为杯创芯大赛机试题目:原题为实现这样的幅频特性,fboost~=70MHz,Gain_dc=6dB,Gain_boost=12dB;且slope_p和slope_n都约为20dB/dec。

提纲:

1 固定均衡器的结构

2 反馈式结构实现类似幅频特性

3 五管单元的零点能否利用?

 

正文:

一、固定均衡器实现

固定均衡器(相对于自适应均衡器的一个概念,后者往往将固定均衡器代入一个环路来实现自适应)的一般实现电路为:

将开环的差动对尾管分离,并加入一个阻容对,其小信号等效电路为:

 

这里和五管单元的小信号推导类似,不能用半边等效电路而要用电流恒定(KCL)来推导,过程略起,结论为Gx实现了一个零点和一个极点,Gl实现了一个极点。当负载电容较大时,主极点由负载电容决定,零点由Gx决定,次极点由gm和Cx决定。

为了简便起见,直接将两个极点放到同一位置。此系统通过手算来使得最高点恰好为(70MHz,12dB)是有难度的,所以直接通过MATLAB确定零极点位置,代码如下。

close all;%关闭所有图
syms s;
coeff=70/92;
z0=26e6*coeff;
p0=100e6*coeff;
p1=100e6*coeff;
fs0=(1+s/z0)/(1+s/p0)/(1+s/p1) *2;
fs0=expand(fs0);
fs0_2=expand(fs0_2);
[N1,D1]=numden(fs0);
res1=double(fliplr(coeffs(N1,s)));
res2=double(fliplr(coeffs(D1,s)));%提取开环传递函数的系数




hs0=tf(res1,res2);
figure;
margin(hs0);

w0=logspace(0,9,1000);%从10^0~10^9,取1000点波特图
[mag0,phase0]=bode(hs0,w0);
mag1=zeros(1,max(size(mag0)));
for i=1:max(size(mag0))
    mag1(i)=mag0(1,1,i);
end
[peaky,peakx]=max(mag1);
peakx=w0(peakx);

先随意给出一个z0,调节p0和p1使得最大值为12dB。求出此时的频率点,将z0,p0,p1缩放即可。最后得到z0=1.98MHz,p0=p1=76.1MHz。

二、反馈结构的尝试

传统的模拟电路中往往将放大器闭环使用,设计一个增益较高的放大器,然后通过反馈实现一个较为精准的放大倍数。机试过程中我一直在尝试闭环结构...

直接上代码:

close all;%关闭所有图
syms s;
coeff=3.857;
w0=7e5/coeff;
gain=1000;
% beta=-0.5/(1+s/60e3);%反馈系数
% fs0=1000/(1+s/20e3)/(1+s/700e9);
% beta=-0.5/(1+s/200e5);%反馈系数
% fs0=1000/(1+s/50e4);
% beta=-0.7/(1+s/(11666666));%反馈系数
% fs0=1000/(1+s/(167264));

beta=-0.5/(1+s/(w0*gain*0.35));%反馈系数为负
fs0=-1*gain/(1+s/w0);%开环传递函数默认180度相移
fs0_2=fs0/(1+fs0*beta);%闭环传递函数
fs0=fs0*beta;%环路传递函数

% coeff=70/92;
% z0=26e6*coeff;
% p0=100e6*coeff;
% p1=100e6*coeff;
% fs0=(1+s/z0)/(1+s/p0)/(1+s/p1) *2;

fs0=expand(fs0);
fs0_2=expand(fs0_2);
[N1,D1]=numden(fs0);
[N2,D2]=numden(fs0_2);
res1=double(fliplr(coeffs(N1,s)));
res2=double(fliplr(coeffs(D1,s)));%提取开环传递函数的系数

ses1=double(fliplr(coeffs(N2,s)));
ses2=double(fliplr(coeffs(D2,s)));%提取闭环传递函数系数


hs0=tf(res1,res2);
hs0_2=tf(ses1,ses2);
figure;
margin(hs0);%计算loop TF的相位裕度

wx=logspace(0,9,1000);%1000点波特图截止到1G
[mag0,phase0]=bode(hs0_2,wx);
mag1=zeros(1,max(size(mag0)));
for i=1:max(size(mag0))
    mag1(i)=mag0(1,1,i);
end
[peaky,peakx]=max(mag1);
peakx=wx(peakx);

figure;
bode(hs0_2);%可以看闭环的波特图,闭环的相位裕度没有意义
% figure;
% step(hs0_2);
% figure;
% pzmap(hs0_2);

由于是在反馈路径上引入了一个极点,所以最后的闭环hs0_2会有一个零点,迭代计算得到零点位置为63MHz。

这个结构比较难以满足要求,

一是因为相位裕度和Gain_boost的矛盾:相位裕度越高,尖峰越小。在相位裕度=45度的极限情况下,gain_dc=11.8。

二是因为闭环传递函数得到一个零点和一对共轭极点,而且位置相近,所以很难实现指定的slope。

三是反馈路径上如何实现极点?假设采用大电阻反馈,单端运放和差分运放产生带极点的负反馈路径的方法如下图:

三、五管单元的零点分析

五管单元中产生的零点固定为第二极点的两倍,所以无法实现要求波特图中先升后降的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值