概述
LO DIV是位于VCO和mixer之间的模块,其作用是分频和驱动长走线,设计难点在于底噪。
不同的band有不同的频率覆盖范围,为了减小VCO的设计难度需要选择合适的分频方案。E-UTRA规定的band与频率的对应关系在3GPP或wikipedia上可以查到。
一般来说,决定了所要支持的band、分频比步长、基本分频器、VCO的最高频率以及VCO的个数,最佳的LO分频方案就确定了。
- 所要支持的band决定于产品的定位,不需多说。
- 分频比步长决定于mixer结构,即如果需要正交时钟就至少有个除2,如果需要8相位时钟就至少有个除4,这项选择会非常大的影响能选用的方案。
- 基本分频器决定于技术储备,如果不能驾驭除3、除5那就老老实实的只用除2吧。
- VCO的最高频率决定于所用工艺,频率越高对寄生约敏感,暂以40nm工艺8GHz为上限进行讨论,实际能做多高还要看VCO设计工程师的水平。
- VCO的个数决定于规划的最大面积,也就是用成本换性能。
在选取方案时最重要的一个考虑项是VCO所需的调谐范围
,这是因为宽调谐范围通常意味着小Q值的电感,即较差的相位噪声。如果两个VCO的话还可以考虑把对噪声要求高的band都放在一个调谐范围小的core里。
单core方案
由所需覆盖的分频后的频率范围和设定的VCO最高频率可以得出可用的最大分频比,再由分频比步长和可用的基本分频器种类得出真正可用的所有分频比。(此处把f_max调整到了8080MHz,是因为max(f_h)*4=8080,若不调整会出现无法全面遍历的问题)
% Up-link, f_max=8GHz, /2 could be used, /2 at least needed
f_l = [1920, 1850, 1710, 1710, 824, 2500, 880, 1749.9, 1710, 1427.9, 699, 777, 788, 704, 815, 830, 832, 1447.9, 3410, 2000, 1626.5, 1850, 814, 807, 703, 2305, 452.5];
f_h = [1980, 1910, 1785, 1755, 849, 2570, 915, 1784.9, 1770, 1447.9, 716, 787, 798, 716, 830, 845, 862, 1462.9, 3490, 2020, 1660.5, 1915, 849, 824, 748, 2315, 457.5];
f_max = 8080;
div_max= ceil(f_max/min(f_h));
basic_div = [2];
divs = [];
for i=2:2:div_max
tmp = unique(factor(i));
flag= 0;
for j=1:1:length(tmp)
if nnz(basic_div-tmp(j))==length(basic_div)
flag = 1;
break;
end
end
if flag==0
divs(end+1) = i;
end
end
得到了所有可用的分频比后就可以进行迭代了,初始方案为全都是最小分频比,后面的方案均继承前一个方案,然后调高限制最低频率的band的分频比,直到VCO的最高频率超过设置的f_max或限制最低频率的band的分频比已是最大值。
i = 1;
while 1
if i==1
plans(i, :) = divs(1)*ones(size(f_l));
else
plans(i, :) = plans(