SAR教程系列7——在cadence中用Spectrum工具FFT仿真ADC的ENOB、SNR等动态性能指标

首先在仿真之前,你得有一个ADC。然后是思考如何仿真的问题,如何加激励,如何使用相关工具查看仿真结果。假定你有一个可以仿真的ADC,大致经过下列步骤可以得到ADC的相关动态性能指标。

第一步:在ADC后面接一个理想的DAC。

第二步:确定如何加激励(满足相干采样情况下,设定输入信号频率)。此步为重点

第三步:使用相关工具进行频谱分析,查看结果。

第四步:把参数送到ADE L中的OUTPUT中查看

第一步:修改理想DAC的VerilogA代码

至于要在ADC后面加一个理想DAC,对于没有仿真ADC经验的可能不知道。可以参考何乐年老师的《逐次逼近模/数转换器(SAR ADC)设计与仿真》。

那么理想DAC自己写VerilogA吗?有些资料(如陈铖颖的《CMOS模拟集成电路设计与仿真实例——基于Cadence ADE》)的附录中会把代码贴出来,何老师这本书也贴出来了,还贴在正文部分,并且代码中不仅注释有误,其它地方也有错误。我觉得这一点都不友好!对于一个没有交流途径的人来说还以为要自己敲代码呢!!

其实Cadence就自带的理想DAC的代码。

位于以下Library中
在这里插入图片描述
至于要修改到自己需要的位数,也很简单,相信有一定基础的都可以自己改过来。

下图是源代码

示例中是 module dac_8bit_ideal,何乐年书中居然这个都没有改过来,当然这都无伤大雅。

有个感慨就是这个示例程序居然是1997年,20多年过去,由此也可见中国与世界的差距!!!
在这里插入图片描述

第二步:确定相关输入频率及仿真

这一步是比较重要的一步,也是最容易出错的一步。

重点参考文章:ADC FFT仿真基础_Klein N的博客-CSDN博客_adc fft

我这里就不复制了,以一具体实例,按步骤说明如何操作。

首先要知道以下几个核心要点:

频谱分析工具DFT,在样本点为时有个高效的方法叫FFT
采样若满足相干采样,则不需要加窗函数就可以分析
满足相干采样时,采样频率、信号频率、采样周期数M、采样点数N要满足以下关系:
上面这个关系是进行一切设置的基础。通常取M为质数且奇数,如3、5、13等,N取
下面就重点说明根据上面的公式进行相关的计算:

一、确定采样率

设ADCCLK的周期为40ns,即频率为25MHz,设置采样周期为8CLK,转换周期是12CLK,因此采样时间间隔为20CLK,从而采样率为1/(20*40n)=1.25MSPS(1.25MHz)

(若采样周期为4CLK,采样率为25M/16=1.5625MSPS)

也就是ADCCLK的频率除以采样周期+转换周期。

二、确定采样点N和周期数M

采样点取2^n,这样可以进行FFT分析。此处取M=3,N=128

三、确定AC分析的输入频率fin=fs*M/N

根据采样定理,输入频率要小于1.25M/2=0.625MHz=625KHz。

若M=3,取N=128,则fin=1.25M*3/128=29.296875KHz

四、确定仿真时间

如果采样M个周期,每个周期时间1/fin,则:

T=M/fin=N/fs=128/1.25M=102.4us。仿真时,稍微多点时间,保证后面分析时,取数据取在非跳变处。比如仿真110us。

由这个公式也可以看出,在采样率确定的情况下,N越大需要的仿真时间越长,而与输入信号频率无关。

至此,已经考虑到有如何加激励,设置多长的仿真时间的问题。

接下来就是在电路图做好设置,就可以仿真啦。

如果仿真时间比较长,比如取4096个点,那仿真时间可能无法接受。可以考虑使用多核

在ADE窗口中:Setup>Environment,弹出如下窗口,加上:

+mt=20 +aps

在这里插入图片描述
仿真完成后,波形大概如下:

从图中可以看出,正弦信号经过ADC转换,再经过理想DAC的转换,基本靠谱。
在这里插入图片描述

第三步:设置参数并查看结果

得到瞬态仿真波形后,接下来就是对信号进行频谱分析。

分析方法可以采用:

1.Cadence Spectrum工具
2.MATLAB计算
Spectrum工具的调用,可以参考:cadence-virtuoso中的FFT分析 - 知乎

这里要重点说明的是开始时间、结束时间、采样点数。

比如此文中,采样点是128个,采样周期是3个,采样时间是102.4us

因此在设置时,首先选择一个稳定的点,比如本文选的1.6us,那么结束时间就为102.4+1.6=104us

再在下面的采样点中输入128,那么灰色的采样率将会与你预设的一致!!!

如下图所示。
在这里插入图片描述
在这里插入图片描述

第四步:把参数送到ADEL中的OUTPUT中查看

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/520510.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实战解析:接口限流的一次简单实践

1.写这篇文章的来由 有一段时间里,博客总是三天两头被打,其中就遇到了恶意刷接口的手段,对方明显使用的代码IP,由于博客并没有做这方面的措施,加上被大量盗刷的接口刚好是数据量最大的一篇文章数据,所以不…

MySql下载安装及使用

1.MySql下载 下载页 解压到想要安装的目录 2.配置系统环境 以管理员身份运行cmd命令行:输入mysql 回车,输出以下内容,表示mysql安装好了 3.初始化mysql(不设置无密码),执行以下命令 mysqld --initialize-insecure执行这个命…

web学习笔记(五十三)身份认证

目录 1.Web 开发模式 1.1 服务端渲染的 Web 开发模式 1.2 服务端渲染的优缺点 1.3 前后端分离的 Web 开发模式 1.4 如何选择 Web 开发模式 2. 身份认证 2.1 Session 认证机制 3. 在 Express 中使用 Session 认证 3.1 安装express-session 中间件 3.2 配置 express-ses…

课程16 吸收·色散·散射(视频P55-P60)

吸收 色散 散射 吸收、色散、散射并称为分子光学;在一介质中,光的强度随传播距离而减少的现象,称为介质对光的吸收;介质的不均匀性将导致光的散射,散射到各个方向。光在介质中的传播速度小于真空光速,最终…

dcm文件数据学习

simpleITK读取数据 import SimpleITK as sitk import numpy as np import matplotlib.pyplot as plt base_path "/Users/yxk/Desktop/test/" image sitk.ReadImage(base_path"000000.dcm") # type(image) <class SimpleITK.SimpleITK.Image> imag…

789. 数的范围 (二分学习)左端大右,右端小左

题目链接https://www.acwing.com/file_system/file/content/whole/index/content/4317/ 当求左端点时&#xff0c;条件是a【mid】大于等于x&#xff0c;并把右端点缩小。 当求右端点时&#xff0c;条件是a【mid】小于等于x&#xff0c;并把左端点扩大。 1.确定一个区间&…

机器人力觉控制(力源)原理及力矩传感器性能分析

机器人力控原理及其性能分析 在机器人的操作任务中&#xff0c;处理机器人和环境之间的物理接触是非常重要的。由于机器人系统的复杂性和不确定性&#xff0c;纯运动控制往往是不够的&#xff0c;因为即使是最精确的模型也无法完全准确地预测所有可能的情况。 当机器人在与环境…

Qt5.15以上版本在线安装步骤,可选择更多早期版本

以ubuntu系统为例&#xff1a; 1、先去下载在线安装程序&#xff1a; https://download.qt.io/official_releases/online_installers/ 选择合适的版本&#xff0c;这里是在x64机器的ubuntu虚拟机里安装QT&#xff0c;所以选择如下版本&#xff1a; 或者直接在终端执行如下命令…

56.合并区间

这个C代码实现了一个名为Solution的类&#xff0c;其中有一个公共成员函数merge&#xff0c;该函数接收一个二维整数向量&#xff08;表示一系列闭区间&#xff09;&#xff0c;并返回一个新的二维整数向量&#xff0c;其中包含所有已合并的不重叠区间。 // 定义一个名为Solut…

【Java+Springboot】----- 通过Idea快速创建SpringBoot项目操作方法

一、第一步&#xff1a; 点击选择【File】->【New】-> 【Project】 最后弹出[new Project]界面。 二、第二步&#xff1a; 1. 选择【Spring Initializr】 2. 然后选择【Project SDK】的版本 3. 然后 Choose Initializr Service URL 选择默认&#xff08;Default&#x…

【漏洞复现】畅捷通T+ KeyInfoList.aspx SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

pcb封装的丝印大小

下面的内容是我自己的看法&#xff0c;观点不同欢迎评论区讨论。 个人结论&#xff1a; 0402:4.1*37 0603:5*45 0805:6.6*60 1206:10.5*95 设计PCB时常用的封装有0402、0603、0805、1206不同的封装我认为应该对应不同的丝印大小。便于后期维修焊接&#xff0c;但是具体用…

[挖坟]如何安装Shizuku和LSPatch并安装模块(不需要Root,非Magisk)

2023年12月13日&#xff0c;LSPatch 停止维护 2024年1月8日&#xff0c;LSPosed 停止维护 2024年1月8日&#xff0c;ZygiskNext 停止维护 2024年1月9日&#xff0c;KernelSU 停止维护 这里使用 ColorOS 14 演示&#xff0c;其他品牌手机类似 安装 Shizuku 官网: https://shiz…

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents 前言AbstractMotivationFramework评估GUI GroudingReal-World Cross-Application Benchmark Suite Conclusion 前言 来自昆仑万象的一篇智能体环境数据大一统框架工作&#xff0c;对未来计算机智能体的发展具有指…

京东云服务器地域和可用区选择方法,多因素考虑攻略

京东云服务器地域如何选择&#xff1f;根据地理位置就近选择地域。京东云主机地域支持北京、宿迁、上海和广州&#xff0c;华北地区用户选择北京地域&#xff0c;华东地区用户可以选择上海或宿迁地区&#xff0c;南方用户选择广州地域。云服务器吧yunfuwuqiba.com整理京东云主机…

PCI总线学习笔记:读写篇

前言 最近在写E1000网卡的驱动&#xff0c;这其中涉及到了PCI总线的相关内容。但是网上大部分关于PCI的文章都只局限在概念上的描述&#xff0c;并没有给出具体的例子来解释。这其实也是情理之中的&#xff0c;因为PCI总线规范就像是一个抽象的接口&#xff0c;其具体怎么实现…

SnapGene:解码生命之链的强大工具 mac/win版

在生物科技日新月异的时代&#xff0c;DNA分析已成为众多科研领域不可或缺的工具。SnapGene DNA生物分析软件应运而生&#xff0c;以其强大的功能和直观的用户界面&#xff0c;赢得了众多科研人员的青睐。 SnapGene软件获取 SnapGene是一款功能全面的DNA序列分析工具&#xff…

DevC++进行调试时,控制台出来后就闪退怎么解决

工具->编译选项->代码生成->连接器&#xff0c;然后将调试信息改成yes就可以了 如果有帮助麻烦点个赞呗

【好书推荐-第十四期】《 互联网大厂晋升指南:从P5到P9的升级攻略》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

0基础没编程经验能学嵌入式吗?

0基础没编程经验能学嵌入式吗&#xff1f; 可以的&#xff0c;即使你是0基础&#xff0c;没有编程经验&#xff0c;也完全有可能学习嵌入式系统。嵌入式系统是计算机技术与特定应用领域相结合的产物&#xff0c;涉及硬件和软件的知识。从零开始学习嵌入式开发&#xff0c;你可…