在NXP的Eindhoven总部,采用以MATLAB和深度学习工具箱(Deep Learning Toolbox)设计、训练的类神经网路来对ADC错误进行后校正,进而了解ASIC在正常操作条件下消耗的功率状况。
在制程当中,积体电路(integrated circuits;IC)若稍有缺陷,可能就会造成类比数位转换器(analog-to-digital converters,ADCs)实现到IC上的错误;像是电晶体、电阻器、电容器等类比元件的不匹配(mismatch)可能导致讯号失真,例如不佳的总谐波失真(total harmonic distortion;THD)。
图1 : 在制程当中,积体电路(IC)若稍有缺陷,可能就会造成类比数位转换器(ADCs)实现到IC上的错误。 (source: Science Mill) |
|
至于减少ADC错误的方法之一,在于使用更大型的类比元件来扩大设计,这种方法虽可以改善匹配、进而改善失真的数字,但却需要配置更大的面积及更多电力;第二种方法则是加入校正电路系统,但是这需要额外的矽面积,并增加成本与功耗—而且在执行校正时,通常还必须要知道错误发生的原因。
在NXP的Eindhoven总部,我们使用以MATLAB和深度学习工具箱(Deep Learning Toolbox)设计、训练的类神经网路来对ADC错误进行后校正,结果在ASIC上执行实现的时候,这个网路只需要ADC面积的15%,而且在正常操作条件下,消耗的功率大约减少16倍。
设计与训练类神经网路
在实验室输入一组参考讯号给30个ADC样本(裸晶),再捕捉其数位输出值来产生训练资料,并且另外设置了10个样本来验证该神经网路。因为ADC的错误会受到温度和电压的影响,因此,将每一个样本以九种电压与温度的组合来进行测试,总共产生360笔量测资料。
接下来,使用讯号处理的技巧来对资料进行前处理,然后使用量测到的ADC数位输出值,作为类神经网路的输入值,网路的系数会随着校正后输出讯号与原始参考讯号的比对而更新(图1)。
在这项专案开始之际,我还没有太多关于类神经网路的经验,也不确定网路需要有多高的复杂度。因此,先从在MATLAB建立基础的两层和三层网路开始,并且在每一层设置不同数量的神经元。第一层和第二层的神经元使用一个S型激励函数(sigmoid activation function),输出层的激励函数则为线性。成本函数则使用为一个最小均方(least mean squares;LMS)成本函数。
利用我们的资料集完成这些早期网路架构的训练之后,我发现可以将电压与温度的量测值加入为预测因子,用来改善网路的表现。执行这项变更之后,这个网路在各种温度与电压条件下的表现有了显著的改善。
评估IC面积与功率
有了一个可对ADC错误进行后校正的类神经网路之后,我想要评估它需要的矽面积与功率。为了进行这项任务,我从MATLAB产生一个训练过之神经网路的Simulink模型。
接下来,利用定点设计工具箱(Fixed-Point Designer)将网路所有的系数量化,并透过硬体描述语言转码器(HDL Coder)产生VHDL程式码,而我的同事则以HDL设计验证工具(HDL Verifier)对在Simulink产生出来的VHDL进行协同模拟以作为验证,然后再使用Cadence Genus来合成设计,他也透过Cadence环境来执行28奈米CMOS技术的物理实现、产生功率报告、计算使用的闸道数和这些闸道需要的面积。
从分析的结果看来,类神经网路能够以相对较小的面积和较少的功率成本来进行ADC错误的校正,一个类神经网路仅需要4600多个闸以及0.0084 mm2 的矽面积,就可以让讯噪比(signal-to-noise ratio;SNR)改善约17分贝(dB)。在启用时,该神经网路大约只消耗15 μW的功耗,而ADC会需要233 μW功耗。
对于已校正错误的电路来说,面积与功耗两者的估算都被视为可接受的程度,但再经过优化之后,这些数字会再改善。虽然我在机器学习的经验相对较少,不过这项将神经网路实现到VHDL所使用的工作流程非常直观,使得即使是这项流程的新手,从设计到实现这个基于类神经网路的电路所花费的时间,也并不会比传统的方法来得长。
增加重复使用性与可携带性
在近期之内,我们计画进一步探索几种方法来验证透过以类神经网路来进行ADC错误校正的成果。
首先,我们希望更了解该训练的网路执行错误校正的效果如何,可以将生产阶段可能出现意外行为的风险降到最小。再来,希望扩展我们的资料集,想知道使用一百万个样本所达到的结果和使用40个样本的结果是否相同。
最后,我们希望衡量类神经网路的重复使用性有多高。因为网路可以搭载很广泛的转移函数(transfer functions),所以也期待用一个单一神经网路可以比传统设计能更有效地去弥补横跨各种类型的ADCs错误,然而,我们还是需要再做进一步的测试来验证这项假设。
(本文由钛思科技提供;作者Robert van Veldhoven任职于NXP Eindhoven公司)