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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 12638|回复: 19

请教ADC中T/H电路的FFT SNR仿真

[复制链接]
发表于 2009-3-8 11:51:31 | 显示全部楼层 |阅读模式

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

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

×
我是用Hspice跑tran然后将print出来,导入Matlab做FFT
比如sampling frequency fs=150M, tran的仿真精度设为 1/fs/8,
但是tran仿真采用的是变化步长,这样的结果如何去做FFT?
通常的作法是怎样的?
望达人指教!

Matlab上看到的输出

Matlab上看到的输出

data.rar

80.47 KB, 下载次数: 74 , 下载积分: 资产 -2 信元, 下载支出 2 信元

T/H输出data

 楼主| 发表于 2009-3-8 14:12:43 | 显示全部楼层

你是说在sp仿真文件里写一堆.meas语句么

你是说在sp仿真文件里写一堆.meas语句么
如果我要采1024个点那不是要写1024行measure语句?每个采样时间点都差一个采样周期
能否在Hspice仿真的时候设置为不变时间步长呢?这样可以在Matlab里面将所需要的数据直接提取出来。
我没有在user guide中发现怎么设置
回复 支持 反对

使用道具 举报

发表于 2009-3-8 15:21:16 | 显示全部楼层
Yes, 要写1024行measure语句,每个采样时间点都差一个采样周期,Then FFT,
You can use Perl to automatically do the job. Very simple.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-8 15:30:15 | 显示全部楼层
谢谢大家!
看来这是最直接的办法了。
回复 支持 反对

使用道具 举报

发表于 2009-3-8 16:11:55 | 显示全部楼层
HSPICE可以直接做FFT啊, 为什么要用MATLAB呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-8 20:18:39 | 显示全部楼层
T/H保持后的的信号是我们关心的,而不是包括之前tracking的信号,如果直接fft会有差别
提取出来以后在matlab中处理可以更详细方便地提取信号,噪声以及各谐波功率
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-8 23:48:25 | 显示全部楼层
谢谢。多亏prof3兄提示了一下我才明白。

% generate the measure for hspice simulation
tstart=0.9; % start time to measure i.e., 0.9*(1/fs)
t(1:N)=0;
for i=1:1:N
    t(i)=(tstart+(i-1))*(1/fcs);
    disp(['.measure tran vout_',int2str(i),' find v(out) at=',num2str(t(i))]);
end
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-8 23:49:44 | 显示全部楼层

include 到sp文件中即可

.measure tran vout_1 find v(out) at=6e-009
.measure tran vout_2 find v(out) at=1.2667e-008
.measure tran vout_3 find v(out) at=1.9333e-008
.measure tran vout_4 find v(out) at=2.6e-008
.measure tran vout_5 find v(out) at=3.2667e-008
.measure tran vout_6 find v(out) at=3.9333e-008
.measure tran vout_7 find v(out) at=4.6e-008
.measure tran vout_8 find v(out) at=5.2667e-008
.measure tran vout_9 find v(out) at=5.9333e-008
.measure tran vout_10 find v(out) at=6.6e-008
.measure tran vout_11 find v(out) at=7.2667e-008
.measure tran vout_12 find v(out) at=7.9334e-008
.measure tran vout_13 find v(out) at=8.6e-008
.measure tran vout_14 find v(out) at=9.2667e-008
.measure tran vout_15 find v(out) at=9.9334e-008
。。。。
回复 支持 反对

使用道具 举报

发表于 2009-3-9 02:01:58 | 显示全部楼层
Great. Likely, you can get the Digital Output from Spice Simulation then FFT. This is a very helpful methods when you doing ADC simulation.
Since now your FFT script is done by yourself, you can easily modify what you want and since now the data is very small, your operation is very fast. You don't need to wait a long time to process the whole waveform data, just like stupid Cadence does.

Industry ADC design and simulation in most world class company like Broadcom, MediaTek, Marvell, SiliconLab etc using similar approaches.
回复 支持 反对

使用道具 举报

发表于 2009-3-22 17:28:04 | 显示全部楼层
10楼所measure的点是不是都是每次保持建立好之后的点?
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

X

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

GMT+8, 2025-9-16 01:37 , Processed in 0.020360 second(s), 6 queries , Gzip On, Redis On.

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