|
发表于 2025-2-14 20:05:15
|
显示全部楼层
当时是先在cadence里面跑SAR ADC里面的CAP-DAC的DNL; 因为CAP-DAC输入一个code有固定的电压输出, 比直接仿真ADC方便些; 在一次TRAN仿真中把选择的几十个关键code扫描完; 每个MC的iteration会得到关键code的输出的电压, 根据这些电压和文章提供的算法可以在matlab或excel中计算出其没有扫描的code对应的DNL, 然后累加DNL得到每个code的INL评估值. 然后把多少MC iteration得到每个code的DNL和INL的值做统计可以得到对应的MIN, MAX及标准差. 这样就可以评估处CAP-DAC的非线性. 整个ADC的非线性主要由CAP-DAC贡献.
后来也对ADC也做了类似的仿真, 只是和DAC不同的是, ADC要找到产生code变化的输入电压需要仿真多次, 这里采用了spectreMDL提供的bisection搜索算法, 对每个关键code变化处的输入电压做二分法搜索仿真, 直到收敛到0.1LSB的精度 (设置恰当的话, 大概需要10次以内), 这样就得到一个关键code对应的ADC输入转换电压. 得到所有的关键code转换对应的电压输入后就计算出这些关键点的DNL, 然后根据文章的算法推算出其它非关键点的DNL, 最后在累加为INL.
这是其中一个MC iteration对应的CAP-DAC仿真结果对比: 仿真所有code与仿真关键code然后再计算其它code.
这是100次MC仿真结果及时间对比
|
|