在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 208|回复: 19

[求助] 理想SAR ADC仿真输出FFT问题

[复制链接]
发表于 昨天 21:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如题,lz最近用理想模块搭了个sar adc,用的10bit的cdac阵列,在将数字码用理想dac转换为模拟值后用spectrum做fft,但是结果如图,snr和enob等参数都很差,请问这是什么原因呀采样fs=200MHz,相干采样周期是37
dac.png
 楼主| 发表于 昨天 23:24 | 显示全部楼层
自己顶一顶
 楼主| 发表于 20 小时前 | 显示全部楼层
再贴一张仔细点的图
dac2.png
 楼主| 发表于 9 小时前 | 显示全部楼层
自己顶一顶
发表于 7 小时前 | 显示全部楼层
「将数字码用理想dac转换为模拟值」是指将10个binary output code 乘上各自的2的幂次方权重吗?
发表于 7 小时前 | 显示全部楼层
学习一下
 楼主| 发表于 6 小时前 | 显示全部楼层


uupp123 发表于 2025-3-9 13:29
「将数字码用理想dac转换为模拟值」是指将10个binary output code 乘上各自的2的幂次方权重吗? ...


是的是的
发表于 5 小时前 | 显示全部楼层
10 bits binary output 十进位会是对应 0~1023,表示一个sin wave 从最高到最低点会被1023个step表示,但看起来D2A_OUT波形step很大。可以看一下你是如何转换数字码为模拟值的吗?
 楼主| 发表于 5 小时前 | 显示全部楼层


uupp123 发表于 2025-3-9 15:00
10 bits binary output 十进位会是对应 0~1023,表示一个sin wave 从最高到最低点会被1023个step表示,但看 ...


是的我也觉得这个地方有点问题,我用的是verilogA实现的理想dac


module DAC_9bits_nc_va(D8,D7,D6,D5,D4,D3,D2,D1,D0,out);
        input D8,D7,D6,D5,D4,D3,D2,D1,D0;
        output out;

        parameter real vdd=1.2;
        parameter real tdelay=0;
        parameter real trise=0;
        parameter real tfall=0;
        parameter real vref=1.2;

        voltage D8,D7,D6,D5,D4,D3,D2,D1,D0,out;
       
        real code,out_temp;

        analog begin
                code=0;
                code=code+((V(D0)>vdd/2) ? pow(2,8):0);
                code=code+((V(D1)>vdd/2) ? pow(2,7):0);
                code=code+((V(D2)>vdd/2) ? pow(2,6):0);
                code=code+((V(D3)>vdd/2) ? pow(2,5):0);
                code=code+((V(D4)>vdd/2) ? pow(2,4):0);
                code=code+((V(D5)>vdd/2) ? pow(2,3):0);
                code=code+((V(D6)>vdd/2) ? pow(2,2):0);
                code=code+((V(D7)>vdd/2) ? pow(2,1):0);
                code=code+((V(D8)>vdd/2) ? pow(2,0):0);
                code=code+1;

                out_temp=code/512*vref;

                V(out)<+ transition(out_temp,tdelay,trise,tfall);
        end
endmodule

此处只有9个输入的原因是采用了如图所示的结构
屏幕截图 2025-03-09 150659.png
发表于 5 小时前 | 显示全部楼层


Yuki_IC 发表于 2025-3-9 15:07
是的我也觉得这个地方有点问题,我用的是verilogA实现的理想dac


10 bits binary output 应该要有D0~D9,monotonic 的切换方式比起conventional的方式可以少一个电容,但两者都是产生10 个数位码。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-3-9 20:55 , Processed in 0.026049 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表