写在前面
本人最近在设计2b/Cycle的SAR ADC版图,在这一过程中遇到了很多的问题,特别写了一篇博客总结了我遇到的这些问题,以供之后参考。
2b/Cycle的设计目的
本项目中的2b/Cycle的设计目的在于给后面ADC提供两个余量,通过两组差分CDAC实现对输入信号的阈值在一个Cycle中进行两次比较,最终给出2位的结果。最后的余量为差分的形式,并且存在两个差分余量,提供给作为第二级ADC的Reference。这种设计的好处在于不需要在乎中间余量放大器的的绝对增益误差,并且这种设计对余量放大器的相对增益误差也不敏感。
2b/Cycle的开销巨大
Input Buffer直接面对巨大的电容负载
在本次版图绘制过程中,由于需要进行交织操作,需要限制单通道ADC的高度,由于2b/Cycle的CDAC总共有四组相同的结构,这就意味着CDAC不可以进行三维设计。在这里,我们采用了一字排开的方案,并且为了减小走线的复杂度,采用了一个开关对应一个CDAC单位电容的操作。这种操作下,整个单通道的高度虽然得到了限制,但是其宽度却是非常巨大的,达到了200um,根据走线上的经验,1um的走线大概贡献1fF的寄生电容,这里就意味着输入信号上挂载的寄生电容大大增大了。我们可以进行一个简单的计算,单侧单边的CDAC的大小约为256fF,走线上的寄生大约为200fF左右,与CDAC的寄生相当,这是非常巨大的,再来,由于一个开关对应了一个单位电容,这就造成了开关的数量也非常巨大。假设一个开关上贡献1fF的寄生电容,那么开关上总共贡献的寄生电容大约为256fF,也相当于提供了一个CDAC的寄生电容。把上述的计算统计起来,就可以发现,2b/Cycle这种布局下的电路会导致输入上挂在的负载电容增大为原先的3倍,大约为750fF左右,在考虑到要驱动两组差分的CDAC,该结构需要翻倍,最终通过计算可以得到需要驱动大约1.5pF的电容负载,这对于需要高线性度的输入信号无疑是一个巨大的打击。
Reference Buffer需要驱动巨大的电容负载
根据先前的分析可以看到,由于2b/Cycle的架构导致寄生电容会变为原先的3倍,对于输入来说是这样,对于Reference来说也是这样,我们的Reference电压需要驱动的负载也翻为了原先的3倍,这就意味着原先的既定设计目标速度很有可能无法达到,再者,Reference Buffer的功耗为了达到性能很有可能需要加倍。
逻辑过于复杂
在我们的设计中,2b/Cycle在每一个CDAC内部都需要对应的逻辑,这个逻辑一方面占据了巨大的面积;另一方面,还需要高层金属来实现低电阻的走线,以保证一定的CDAC拨动速度。在这里我们采用过两种逻辑排布的方案,一种是2行的排布方案,这种方案会导致逻辑本身的宽度非常巨大,比CDAC还要长,版图非常不紧凑,会多出来许多不规则的面积,给整体的ADC版图设计带来了非常大的不便;另一种方案是8行的排布方案,这种方案减小了逻辑的横向宽度,将整个CDAC的版图变为一个规则的长方形,减小了后期排布的不便。逻辑的另一个阻碍是走线问题,2b/Cycle的走线非常复杂,一组CDAC内有32组逻辑输出先,16组逻辑输入线,这些线需要考虑到速度问题从而需要在高层进行布线,高层走线的问题是,其最小宽度和最小间距问题,在我们使用的T工艺中,最高层低电阻金属的方块组织大约为$0.05m\Omega/\mu m$,是一般走线的$1/10$,在这样的条件下,走一根$200\mu m$的金属线对应的电阻大约为$10\Omega$,假设我们驱动了大约30fF的电容,那么对应的延迟大约可以控制在1ps以内,是可以接受的。在我们使用的T工艺中,高层金属的pitch为0.9,乘以32根线,大约为28.8um,再考虑到16根控制线,大约为50um,需要特别的策略来降低高层金属的宽度。