【模拟IC学习笔记】 PSS和Pnoise仿真

目录

PSS

Engine

Beat frequency

Number of harmonics

Accuracy Defaults

Run tranisent?的3种设置

Pnoise

type noise

Timeaverage

sampled(jitter)

Edge Crossing

Edge Delay

Sampled Phase

sample Ratio


离散时间网络(开关电容电路)的噪声仿真方法

PSS

PSS,周期稳态分析,当电路的激励信号是周期大信号时,一般需要用PSS来计算电路对周期大信号的响应。

在一个时钟里面,工作点重复出现,周期再重复,工作状态也在重复,所以可以找到这样的稳态的周期。

Engine

SpectureRF提供两种计算周期稳态响应的仿真机制

PSS shooting Newton,shooting是一种时域仿真方法。适用于严重非线性的电路、OSC、开关电容、分频器。

Harmonic Balance(HB)是一种频域仿真方法。适用于轻微非线性电路、RF Transceivers、LNA、 Mixer。

保持默认的Shooting即可,不建议使用pss里面的Harmonic Balance如需使用Harmonic Balance仿真,直接选用Analysis区域的hb。

Beat frequency

  • 决定了pss shooting阶段的仿真时间,它对应了Test-Bench中所有周期信号的最小公倍数。例如在开关电容电路中,输入信号的周期是10us,采样时钟信号是1MHZ,找最小公倍数就是10u,取倒数得到频率,所以Beat frequency就是100KHZ。
  • 如果TestBench中激励信号的频率没有整数倍关系或者差距过大,比如一个是1G,另一个是1.1G,那么它俩的Beat Frequency定100M,那么1G信号pss shooting需要跑10个周期,1.1G需要跑11个周期。一般情况下,需要避免这种设置,因为会很费时间。如果是这种情况,建议使用hb analysis。
  • 多模式分频器的仿真时候也需要注意这一点,因为会有可能模式切换没控制好,电路实际上是在不同的除频/倍频模式下切换。
  • 如果是oscillator仿真, Beat Frequency应当设置成一个估计的频率,该频率设置范围可以在实际震荡频率的0.5~1.5倍之间。

Number of harmonics

  • 谐波数量,该数值不会影响PSS shooting的精度,在Pnoise等小信号计算时也会有影响。基波是由很多谐波组成的,谐波数量越多,拟合出来的基波越准确。
  • 如果怀疑仿真结果,可以适当增加谐波数,随着谐波数的增加,仿真结果趋向于恒定值。
  • Number of harmonics不易过大,否则会影响仿真速度。

Accuracy Defaults

建议在conservative和moderate之间选择,即高精度和中等精度如果moderate和conservative差别不大,建议使用moderate以获得更好的仿真速度。

Run tranisent?的3种设置

Run Transient=Yes,对应的Stop Time设置成电路稳定时需要的时间,即跑多长时间的Tran,如果不设置默认Stop Time=0;

  • Run Transient=no,PSS之前不跑Tran
  • Run Transiet=Decide automatically,仿真器会自动设定一个tstab时间,默认是50个周期。

几点解释:

  • 大多数电路是需要一个瞬态仿真来确定shooting的initial state.可以通过tran analysis来找到这个时间或者直接用decide automatically。
  • 当tstab stop time=0时,仿真器还是会跑一小段时间的transient,该时间一般等于信号源上最长delaytime+1个周期或者4个周期时间,
  1. 驱动电路:1个周期,
  2. 自激电路(VcO etc.):4个周期
  • tstab同样支持dynamic parameter

Pnoise

type noise

不同版本之间的差异:

老版本noise type这里是上表所述的三个选项,新版本是两个选项。

Timeaverage

指的是一个周期内噪声的平均值。


一个包含噪声的信号可以表示成理想的cos波+噪声:

其中am(t)表示AM(幅度)噪声, pm(t)表示PM(相位)噪声;
V0(t)是无噪声信号(例如理想的cos波),\deltav(t)是包含AM和PM的电压噪声;

\deltav(t)可以表示成如下:\deltav(t) = usb(t)+ lsb(t)
USB: Upper Sideband
LSB: Lower Sideband
可以预期USB噪声包含AM噪声和PM噪声,同样LSB噪声也是如此。它们的图示如下:

所以想看USB的时候就选USB,只想看幅度噪声的时候选AM,只想看相位噪声的时候选PM,都想看的时候选ALL。

看哪个器件对噪声贡献大的时候可以勾选noise separation

实例:

勾选noise separation

跑完仿真,打印noise summary

可以看到每个器件的噪声。

sampled(jitter)

旧版本的jitter 和timedomain对应了新版本的sampled

Sampled Jitter引入了三个Timing Event模式:

  • Edge Crossing(老版本也有)
  • Edge Delay:是一个新的feature
  • Sampled Phase:是以前的time domain,使用方法上有一些改进

Edge Crossing

设置详解

  • Trigger:
  1. 当trigger 。
  2. 新版本允许trigger和measurement信号不同,比如可以将trigger信号设置一个理想的信号, measurement信号设置成电路当中的需要测试的信号。
  3. 下图中的测量发生在trigger信号第一个rise edge cross阈值0.5V、再延时9.5ns的时刻。
  • Sleep Time:trigger信号cross阈值后的延迟时间,假如trigger的时刻是1ns,sleeptime是9 5ns,么jitter measurement早在10.5ns进行

下图为在信号第一个上升沿到达0.5V之后再延迟9.5ns取该点的噪声。如果信号高电平是10ns,不能在10ns处取点,应该提前一点点,因此这里选择的是10ns。

设置好之后一定要点一下该界面的add。

查看波形:Direct Plot -> Main Form,选择PSS或者Pnoise

输出结果类型:Trigger的时间"Measurement Selection”也会在该窗口显示出来。

Function:

  • jee是edge-to-edge jitter,phase jitter即绝对jitter
  • jc是cycle jitter,周期jitter
  • jcc是Cycle to Cycle jitter,周期间jitter

如果查看的是积分噪声,在下面可以给出积分的频率范围。

Edge Delay

Edge Delay的用法与Edge Crossing设置类似,通过它可以测量两个信号的Jdelay(delay jitter)。
如果trigger和measure信号相同且edge number一样,但rise direction不同,可以得到duty cycle jitter。

Sampled Phase

Sampled phase是可以用来测量固定时刻点的jitter.

  • Samples Per Period是用来指定每周期测量多少个时刻点
  • Initial Sample Phase是用来指定第一个Sample的时刻点
  • Add Specific Points用来指定特别关注的时刻点
sample Ratio
  • 在Noise Type右边还有一个Sampled Ratio,该选项主要用在有divider/doubler的电路中
  • 用PSS对该电路进行分析时, beat frequency需要设置成fin/8.如果是测量div8输出端的jitter,sample ratio设置成1
  • 分频器或倍频器中使用,比如下图的分频器,第一个框周期是T/8,第二个框周期是T/4,第三个框输出周期是T,由于beat frequency设置的是1/T,但是观测点并不一定是下图第三个框的输出,如果选择第二个框的输出作为观测点的话,那么就要设置sample Ratio=4.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang 交叉编译之一文详解

博客原文 文章目录 Golang 中的交叉编译不同操作系统间的编译Linux 下编译windowsmacos windows 下编译Linuxmacos macos 下编译Linuxwindows 不同架构下的编译amd64x86 参考 Golang 中的交叉编译 在 Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或…

RabbitMQ(十一)队列的扩展属性(Arguments)

目录 一、简介二、队列扩展属性清单三、代码示例3.1 实现方式一:channel.queueDeclare()3.2 实现方式二:QueueBuilder.build() 一、简介 RabbitMQ 允许用户在声明队列、交换机或绑定时设置 扩展属性(Arguments),这些扩…

CSS 顶部位置翻转动画

<template><div class="container" @mouseenter="startAnimation" @mouseleave="stopAnimation"><!-- 旋方块 --><div class="box" :class="{ rotate-hor-top: isAnimating }"><!-- 元素内容 --…

Redis高可用

目录 一、Redis高可用简介 &#xff08;一&#xff09;什么是高可用 &#xff08;二&#xff09;Redis的高可用 二、Redis持久化的高可用技术 &#xff08;一&#xff09;持久化的功能 &#xff08;二&#xff09;进行持久化的方式 1.RDB 持久化 &#xff08;1&#xf…

Android Matrix (三)矩阵组合和应用变换

在 Android 开发中&#xff0c;Matrix 类不仅提供了 mapPoints 方法来变换点坐标&#xff0c;还提供了多种其他用法&#xff0c;使其成为处理图像和视图变换的强大工具。以下是 Matrix 类的一些关键用法&#xff1a; 1. 变换方法 setTranslate(float dx, float dy): 设置矩阵…

普中STM32-PZ6806L开发板(有点悲伤的故事)

简介 关于我使用 普中STM32-PZ6806L做了做了一些实验, 不小心输入12V&#xff0c;导致核心板等被烧坏, 为了利用电路和资源, 搭建了STM32F103CBT6并使用普中STM32-PZ6806L上面没有烧坏的模块的故事。 普中STM32-PZ6806L开发板 这块的STM32F103ZET6部分算是Closed了, 不准备换核…

【FPGA】分享一些FPGA入门学习的书籍

在做FPGA工程师的这些年&#xff0c;买过好多书&#xff0c;也看过好多书&#xff0c;分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…

gem5学习(9):构建gem5——Building gem5

目录 一、Requirements for gem5 二、Getting the code 三、Your first gem5 build 1、gem5 binary types 四、Common errors 1、gcc版本过低 2、使用非默认版本的python 3、未安装M4宏处理器 4、Protobuf版本过低 前面的gem5学习&#xff08;3&#xff09;—&#xf…

SparkStreaming基础解析(四)

1、 Spark Streaming概述 1.1 Spark Streaming是什么 Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多&#xff0c;例如&#xff1a;Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如&#xff1a;map、…

差分信号,光耦介绍

差分信号 原理 差分信号是由双绞线进行通讯的&#xff0c;为什么选择双绞线呢&#xff1f;因为这其中有个电磁学的原理&#xff0c;在通讯过程中噪声一般来自外界天气或其它元器件的电磁干扰导致导线中的电流变得不稳定&#xff0c;如2.3v是低电平突然被噪声干扰会造成信号增…

IOS:Safari无法播放MP4(H.264编码)

一、问题描述 MP4使用H.264编码通常具有良好的兼容性&#xff0c;因为H.264是一种广泛支持的视频编码标准。它可以在许多设备和平台上播放&#xff0c;包括电脑、移动设备和流媒体设备。 使用caniuse查询H.264兼容性&#xff0c;看似确实具有良好的兼容性&#xff1a; 然而…

【设计模式之美】面向对象分析方法论与实现(二):需求到接口实现的方法论

文章目录 一. 进行面向对象设计1. 划分职责>需要有哪些类2. 定义类及其属性和方法3. 定义类与类之间的交互关系4. 将类组装起来并提供执行入口 二. 如何进行面向对象编程&#xff1f;1. 接口实现2. 辩证思考与灵活应用 【设计模式之美】面向对象分析方法论与实现&#xff08…

window mysql5.7 搭建主从同步环境

window 搭建mysql5.7数据库 主从同步 主节点 配置文件my3308.cnf [mysql] # 设置mysql客户端默认字符集 default-character-setutf8mb4[mysqld] server-id8 #server-uuidbc701be9-ac71-11ee-9e35-b06ebf511956 log-binD:\mysql_5.7.19\mysql-5.7.19-winx64\mysql-bin binlog-…

jvm虚拟机初识

JVM Java虚拟机就是二进制字节码的运行环境&#xff0c;负责装载字节码到其内部&#xff0c;解释/编译为对应平台上的机器指令执行。每一条Java指令&#xff0c;Java虚拟机规范中都有详细定义&#xff0c;如怎么取操作数&#xff0c;怎么处理操作数&#xff0c;处理结果放在哪…

云解析迁移【腾讯云到阿里云】

一、关闭 DNSSEC 域名如有配置DNSSEC&#xff0c;请先到域名注册商处关闭DNSSEC&#xff0c;等迁移完成后&#xff0c;再参考DNSSEC设置方法进行配置。如域名未配置DNSSEC&#xff0c;则忽略此步骤。 解析数据准备&#xff1a; 请在原DNS服务商处导出解析记录&#xff0c;并按…

眼镜用超声波清洗机洗会有伤害吗?这些超声波清洗机适合清洗眼镜

用超声波清洗机洗眼镜是一种非常好的选择&#xff0c;超声波清洗机通过高频振动&#xff0c;将眼镜上的污渍、灰尘等清洗干净&#xff0c;比手洗更彻底、更高效。然而&#xff0c;有些人担心超声波清洗机会对眼镜造成伤害。实际上&#xff0c;这种担心是多余的。超声波清洗机在…

Java版直播商城:电商源码、小程序、三级分销及 免 费 搭 建 方案

一、技术选型 java开发语言&#xff1a;java是一种跨平台的编程语言&#xff0c;适用于大型企业级应用开发。使用java开发直播商城可以保证系统的稳定性和可扩展性。 spring boot框架&#xff1a;spring boot是一个快速构建spring应用的框架&#xff0c;简化了开发过程&#xf…

SpringBoot集成Camunda

一&#xff1a;pom.xml 因camunda集成SpringBoot对SpringBoot的版本和JDK的版本都有一定的要求&#xff0c;所以这里贴个完整的依赖。可以去官网找每个SpringBoot的版本对应的camunda版本。 <?xml version"1.0" encoding"UTF-8"?> <project x…

一分钟带你了解深度学习算法

深度学习是一种受到生物学启发的机器学习方法&#xff0c;其目标是通过构建多层神经网络来模拟人脑的工作原理。它在过去几十年来取得了巨大的进展&#xff0c;并在图像识别、语音识别、自然语言处理等领域取得了突破性的成果。 深度学习的核心思想是模仿人脑的神经网络。人脑中…

flex弹性盒子常用的布局属性详解

想必大家在开发中经常会用到flex布局。而且还会经常用到 justify-content 属性实现分栏等等 接下来给大家分别讲一下 justify-content 的属性值。 以下是我敲的效果图大家可以清晰看出区别 space-between 属性值可以就是说两端对齐 space-evenly 属性值是每个盒子之间的…