1MATLAB系统级仿真分析DAC.1MATLAB系统级仿真分析第七次课电流舵型DAC系统模型微电子学院微电子学院高海霞高海霞2014年春季MATLAB系统级仿真分析DAC.2DAC的基本原理数字输入信号为二进制数字信号,一般的模拟信号为十进制信号。要将二进制数转换为十进制数,只要将每位的数字乘以它所对应的位的权重然后再相加就能得到,其表达式如下所示:其中A为DAC的模拟输出信号,K为一个单位电子量,可以为电压、电荷、或电流。MATLAB系统级仿真分析DAC.3DAC的基本结构根据加权网络实现方法的不同,常见的DAC结构有电流型、电压型以及电荷型等。电流舵DAC是常用的一种高速高精度电流型DAC,一般是用MOS管等有缘器件构成电流源来生成加权电流。根据电流源加权系数的不同,电流舵DAC分为二进制加权型和一进制加权型。MATLAB系统级仿真分析DAC.4电流舵型DAC结构——二进制加权型包含n条并列支路,每条支路由一个电流源和一个模拟开关串联而成。各电流源的电流值从左到右(从高到低)按照二进制加权系数递减排列。当输入Di的数字信号为1时,它控制所在支路的开关接通,在运放反相输入端总线上,产生与该支路电流值成正比的权电流分量,否则电流流到地。2MATLAB系统级仿真分析DAC.5电流舵型DAC结构——一进制加权型一进制加权型DAC,又称为温度计码加权型DAC。工作时,先将二进制编码的数字输入转变为一进制码(温度计编码),然后用一进制编码去控制电流源的输出电流是流向负载还是地。n位二进制编码转换成相对应的一进制编码有2n-1位,因此共有2n-1个电流值相等的电流源。MATLAB系统级仿真分析DAC.6温度计码MATLAB系统级仿真分析DAC.7码制比较和选择1.二进制加权型DAC优点:结构比较简单,不需要译码逻辑电路,且所需电流源个数较少,面积较小。缺点:精度低,在最坏情况的中间编码处,会产生很大的尖峰电流。2.一进制加权型DAC优点:精度高,输出毛刺小。缺点:需要额外的二进制编码转温度计编码的译码电路,n位的DAC需要2n-1个电流源,随着DAC位数的增加,电流源的数目和结构复杂度以指数方式增加。3.分段加权型DAC采取分段方法,对高位采用温度计编码保证DAC性能,低位采用二进制编码减小面积。MATLAB系统级仿真分析DAC.812位电流舵型DAC采用3+4+5分段结构,低3位采用二进制编码,中4位和高5位采用温度计编码。数字输入信号经过时钟控制的数据锁存器进行锁存同步,高9位和低3位分别经过温度计编码译码和伪译码进入下一个模块。伪译码就是直接经过延迟单元,使得低位与经过温度计编码译码的延时相近。在译码电路得到单端输入信号后,每一位分别经过反相器得到相应反相信号,实现双端输入。由于两段数据的路径延时不同,编码后的电路必须再次同步锁存防止时序出现错误。3MATLAB系统级仿真分析DAC.9数据锁存器Out1212Out1111Out1010Out99Out88Out77Out66Out55Out44Out33Out22Out11TriggerIn112In211In310In49In58In67In76In85In94In103In112In121MATLAB系统级仿真分析DAC.10低3位的伪译码模块Out33Out22Out11Subsystem9NOTSubsystem8NOTSubsystem7NOTSubsystem6NOTSubsystem5NOTSubsystem4NOTSubsystem3NOTSubsystem2NOTSubsystem11NOTSubsystem10NOTSubsystem1NOTSubsystemNOTIn33In22In11MATLAB系统级仿真分析DAC.11中4位温度计译码MATLAB系统级仿真分析DAC.12中4位温度计译码由4位温度计码真值表,可以得到4位二进制码到温度计码的表达式。15个温度计编码的表达式为:4MATLAB系统级仿真分析DAC.13中4位温度计译码B1,B2,B3,B4:4位输入端T1,T2,…,T15:15位输出端加入的Buffer是为了使得每路信号的传输延迟尽量相等。MATLAB系统级仿真分析DAC.14中4位温度计译码MATLAB系统级仿真分析DAC.15高5位温度计译码MATLAB系统级仿真分析DAC.16再次同步锁存器Out66Out55Out44Out33Out22Out11EnableIn66In55In44In33In22In115MATLAB系统级仿真分析DAC.17电流源开关模型Not36Not25Not14Out33Out22Out11Switch5Switch4Switch3Switch2Switch1SwitchConstant44Constant30Constant12Constant1In66In55In44In33In22In11doubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubledoubleMATLAB系统级仿真分析DAC.1812位分段式电流舵DAC的理想系统模型MATLAB系统级仿真分析DAC.19输入数字信号产生模块模型功能测试:12位的数字信号发生器由12个PulseGenerator模块构成,从低位到高位,每个脉冲发生器的脉宽以2倍依次递增,从而产生的输入信号为12位二进制信号,从全0递增到全1。性能测试:由于本模型为理想模型,故其静态特性:截止误差、增益误差、DNL、INL均为0。为测试该理想模型的动态参数,需在输入端加一个12位的满幅数字正弦波。正弦波由sineWave模块产生,其产生的正弦信号量化模块离散取整,然后由十进制到二进制的转换模块转换成12位的二进制,再由Demux模块将12位二进制数分别输出。SineWaveQuantizerIntegertoBitConverterIntegertoBitConverterMATLAB系统级仿真分析DAC.20理想模型的单端输出结果6MATLAB系统级仿真分析DAC.21理想模型的双端输出结果SINAD=74.1843SNR=74.1857THD=-109.2238SFDR=104.8781ENOB=12.0306DR=72.2451MATLAB系统级仿真分析DAC.22非理想的电流源模型电流舵DAC的非理想因素:1.电流源失配:用一个与标称电流源并联的误差电流源来代表,模型中相当于在Constant模块的输出加一个微小的偏移量Bias,Bias模块产生一组方差可设定的服从正态分布的随机数作为每一位的电流源中的Bias模块中的偏移量的值。MATLAB系统级仿真分析DAC.23非理想的电流源模型2.输出阻抗有限大:ρ为负载电阻与电流源输出电阻的比值,电源电压Vdd设置为3V,负载电阻Rload设置为50欧,该模块的输出即为输出阻抗有限大产生的误差电流。MATLAB系统级仿真分析DAC.24非理想模型的单端输出结果7MATLAB系统级仿真分析DAC.25非理想模型(黑)与理想模型(红)的结果对照SINAD=49.7795SNR=50.0015THD=-62.7648SFDR=63.9686ENOB=7.9767SINAD=74.1843SNR=74.1857THD=-109.2238SFDR=104.8781ENOB=12.0306DR=72.2451MATLAB系统级仿真分析DAC.26非理想模型(下)与理想模型(上)的结果对照