当前位置: 首页 > news >正文

【模拟集成电路】宽摆幅压控振荡器(VCO)设计

鉴频鉴相器设计(Phase Frequency Detector,PFD)

  • 前言
    • 一、VCO工作原理
    • 二、VCO电路设计
      • VCO原理图
    • 三、压控振荡器(VCO)测试
      • VCO测试电路图
    • 瞬态测试
      • (1)瞬态输出
      • (2)局部放大图
      • (3)输出调制
      • (4)调谐范围仿真
      • (5)相位噪声仿真
    • 参考文献
      • 各部分链接链接:

前言

  本文主要内容是对压控振荡器(Phase Frequency Detector,PFD) 模块设计设计进行阐述,包括工作原理、电路结构、仿真结果各部分内容。

一、VCO工作原理

  振荡器(oscillator)是将直流电源能量转换为交流能量的电路。为了在没有外部输入信号的情况下能够产生自我维持的输出振荡信号,振荡器本身必须有正反馈和足够的增益以克服反馈路径上的损耗,同时还需要有选频网络。一般而言,单芯片集成振荡器多采用全差分结构和交叉耦合结构,振荡器中交叉耦合MOS管的作用是补偿LC谐振回路中的能量损失。根据其构成,可分为N-Core、P-Core和NP-Core等,这种电路结构必须在一定的直流偏置下才能对外呈现负电阻特性。
  将振荡器当成两端口处理,从负反馈角度出发,振荡器系统利用自身系统中的噪声来放大,输出周期性的电压波形。假设系统开环传输函数为 H(s),系统的闭环传输函数为:
在这里插入图片描述
  从相频特性来看,当输出和输入信号相位差是180度时,正反馈系统会使得电路振荡。“巴克豪森准则”要求一个负反馈系统环路增益要符合两个条件:
在这里插入图片描述
  式(4-4-2)、(4-4-3)分别为幅度平衡条件和相位平衡条件。振荡器恢复平衡状态是依靠振荡器本身的非线性特性。振荡器从振荡变化到平衡状态,达到起振和平衡的要求会受各方面的干扰,包括:电源电压、环境温度状态、电路本身的噪声等。因此,振荡器的平衡状态受到影响被改变后会进入两个变化状态:第一是远离原来的平衡状态,造成不可逆变化,无法恢复原来的状态。第二是平衡状态附近区域达到了新的平衡点,就是说即使电路受到各个因素的影响,也不会改变电路的平衡状态,只会在附近点变化。然而,不会受外界影响太大才更符合设计原则,适合振荡器的理论模型。因此,振荡器应该具有稳定的特点,在即使受外界因素影响也能达到新的平衡点,还有干扰结束后还能会到原来的平衡点,把这种振荡平衡状态称为收敛。
下面从负电阻角度分析振荡器的工作原理。如图4.24所示,当有一个电流脉冲刺激 RLC 并联电路时,RLC 电路将发生振荡,由于电阻Rp的存在,振荡会慢慢衰减为零。如果将一负阻 −Rp-RpRp 与该电路并联,如图4-4-1(b)所示,RLC 电路的并联电阻为 0,则振荡将永远维持下去。因此,当一个单端电路有一负电阻与振荡回路并联,如图4-4-1(c)所示,电路就会永远振荡。

在这里插入图片描述
  对于由采用交叉耦合NMOS管实现的负阻电路的等效二端口网络如下图4-4-2所示。忽略MOS管 M1 和 M2 的衬底效应和沟道调制效应,可以得到二端口网络的等效电阻为:
在这里插入图片描述

在这里插入图片描述
  而 MOS 管工作在饱和区时,跨导可表示为:
在这里插入图片描述
  其中,IDI_DID为流过 M1 和 M2 管的直流电流。除此之外,输出信号的幅度与IDI_DID呈正比例关系,所以IDI_DID的大小需要考虑电路起振条件和输出信号的幅度要求。一旦IDI_DID确定下来以后,M1、M2和尾管的尺寸均可计算得出。在选尺寸时需要保证管子的寄生电容尽可能小,同时尾管需采用较大的栅长 L 来降低1/f1/f1/f噪声。
  同理,对于交叉耦合的 PMOS 管,其端口等效电阻−2/gmp-2/g_{mp}2/gmp,当加在负阻的两端的电压增加时,负阻将对外输出电流。与单端结构的振荡器相比交叉耦合振荡器具有如下很多的优点:首先,能够提供差分的振荡输出信号;其次,差分振荡器具有非常好的相噪性能,电源噪声和衬底噪声作为共模噪声被抑制掉;最后,交叉耦合振荡器所需要的电容值和电感值都不太大,易于片上集成。
因此,将 Oscillator 部分差分结构进行单边等效后的示意图如下图4-4-3所示。
在这里插入图片描述
  为了使该结构起振或位置振荡,应使负阻能为 RLC 回路中的并联电阻Rp消耗的能量进行源源不断地补偿,该结构可以起振的条件为:
在这里插入图片描述
  考虑非理想电感的串联寄生电阻为 RSL,非理想电容串联寄生电阻 RSC,如图4-4-4所示。
在这里插入图片描述
  其中电感 L 的品质因数 QLQ_LQL 和电容 Q 的品质因数QCQ_{C}QC分别有如下表示:
在这里插入图片描述
  根据串并联转换关系,得到电阻RPR_PRP为:
在这里插入图片描述
  得到并联电感和电容值为:
在这里插入图片描述
  进而由计算知,LC 并联谐振回路的振荡频率为:
在这里插入图片描述
  其中,Cp=2(CGS2+CDB+CGD+C1)Cp=2(C_{GS2}+C_{DB}+C_{GD}+C_1)Cp=2(CGS2+CDB+CGD+C1)
  当振荡器震荡时左右两支路会交替导通,如下图4-4-5所示。假设输出摆幅很大,则两支路电流ID1和ID2可以在很短的时间内切换,从而将近似方波的电流送入谐振回路,平均电流ISS/2。电流的基波将被放大RPR_PRP倍,而高次谐波却因为谐振回路的选择性而衰减。对方波的傅里叶展开式,对于基波振幅为(4/π)A(4/π)A(4/π)A,比A略大。因此,单端输出的摆幅为(4/π)(ISS/2)RP=2ISSRP/π(4/π)(I_{SS}/2) R_P=2I_{SS} R_P/π(4/π)(ISS/2)RP=2ISSRP/π,故差分输出的摆幅为:
在这里插入图片描述
在这里插入图片描述
  VCO的性能参数主要有如下:
(1)中心频率
  压控振荡器的中心频率是指振荡器输出频率范围的中心值ωmid=((ωmax+ωmin)/2ω_{mid}=((ω_{max}+ω_{min} )/2ωmid=((ωmax+ωmin)/2,其大小受其使用环境、延迟单元结构、工艺参数等因素共同影响。

(2)调谐范围
  振荡器的最大频率与最小频率的差值ωmax−ωminω_{max}-ω_{min}ωmaxωmin,其大小受中心频率和实际应用要求的频率范围等参数的支配。因此必须保证压控振荡器的输出频率范围大于实际要求的输出频率范围,以弥补工艺等带来的输出频率范围的偏差。

(3)调节线性度
  在实际情况下,压控振荡器的增益KVCOK_{VCO}KVCO并不是一个理想的固定不变状态,这种非线性影响着锁相环环路的稳定性,因此在整个调节范围内要求压控振荡器的增益变化最小。

(4)输出摆幅和功耗
  输出摆幅表示当振荡器输出平衡时振荡的正弦波波形的最大电压与最小电压的差值。由于压控振荡器后面需要接分频器,所以要求输出摆幅尽量大。另外压控振荡器输出摆幅越大,输出波形对噪声越不敏感。增大输出摆幅的方法有提高压控振荡器的电源电压和降低延迟单元负载电阻等。电路的功耗指的是振荡器电路所用的电源电压乘以电流的值。CMOS 工艺实现的振荡器的典型功耗为十几到几十个mWmWmW。低功耗可以通过减少电路的元器件,减小电源电压与电流来实现。因此,压控振荡器需在相位噪声、输出摆幅、功耗大小和总体版图面积等因素之间进行权衡。

(5)相位噪声
  压控振荡器的噪声来源主要源自于电感和电容的串联寄生电阻、尾电流源和开关差分对管。其定义为载波频率频偏∆ω∆ωω处,1Hz内单边带噪声谱密度与载波功率比值(分贝形式),公式如下:
在这里插入图片描述
  通常我们用**概率密度(PFD)功率谱密度(PSD)**来研究噪声参数。噪声分为环境噪声和电子器件噪声,处理环境噪声时常采用的方法有:版图加保护环,避免并行走线,核心模块采用独立电源等。器件噪声的类型包括如下:热噪声、闪烁噪声、散弹噪声。其中,电阻的热噪声单边谱密度为:
在这里插入图片描述
  K 是玻尔兹曼常数,T 是绝对温度,可以降低温度降低热噪声。MOS 管会产生热噪声,其谱密度为:
在这里插入图片描述
  系数γγγ长沟道器件约为 2/3,短沟道器件取 2-3。当沟道电荷耦合到 MOS 管子栅极时也会产生电路噪声,噪声电流大小:
在这里插入图片描述
  其中,对于长沟道器件而言σσσ为 4/3。闪烁噪声能用与MOS管栅极串联电压源来表达。其大小与频率成反比,所以又称为1/f1/f1/f噪声,且与MOS管的宽和长的乘积成反比。
在这里插入图片描述
  散弹噪声是通过 PN 结载流子单位时间内的数目随机起伏、一种与频率无关的白噪声,具有高斯分布,一般可以被忽略:
在这里插入图片描述

二、VCO电路设计

  本次所设计的 VCO 结构电路图如下图4-4-6所示,其中M1和M2是尾电流源部分,其作用是为上端电路提供恒定电流并提高电路的抗干扰能力。C1 和 C2 为可变MOS电容,M3 和 M4 为交叉耦合的 NMOS,其作用是为了提供一个负阻,用来补偿 LC 谐振时等效电阻Rp消耗的能量。上端的 M5 和 M6 为交叉耦合的 PMOS,同样可以产生一个负阻,另一方面它与下端的交叉耦合 NMOS 互补,可以提高电流利用率。采用这种互补交叉结构一方面可以产生额外更大的跨导,即用更小的负阻去补偿耗能电阻Rp。另一方面通过采用合适的尺寸,可以将输出点的电平设置在VDD/2VDD/2VDD/2处,从而有助于实现宽调谐范围设计。

在这里插入图片描述
  参数设计思路如下:为了实现谐振频率为2.44GHz2.44GHz2.44GHz、输出幅度为0−1.8V0-1.8V01.8V的 VCO,通过计算可得知 LC 的值要满足如下关系式:
在这里插入图片描述
  取L单位为 nFnFnF,C单位为 pFpFpF,则需要满足 LC=4.255LC=4.255LC=4.255。从 TSMC18 器件库中调用ind_sym、mos_var,并设置合适的尺寸。为测试电容在控制电压 0~1.8V 的相关特性,如图4-4-7所示进行了 sp 仿真,首先对可变电容在控制电压变化下的变化范围进行仿真,结果如图4-4-7所示。然后分别对电容的品质因数Qc进行仿真。
在这里插入图片描述
  由仿真结果可知对其Y参数仿真,电容在控制电压下,其值会在 1.556~ 4.106pF 之间变化。对其Y参数和Z参数仿真,电容在控制电压下,电容等效串联电阻阻值会在 1.38~2.323Ω 变化,品质因数 Q 在 6.97 ~ 25.82 之间变化。
在这里插入图片描述
  同样,对电感进行 sp 仿真,首先在控制电压变化下的变化范围、电容的品质因数 QLQ_LQL 以及等效串联电阻 RSL 进行仿真,仿真结果如图4-4-9所示。
在这里插入图片描述
  通过对电感Y参数和Z参数进行仿真,电感等效电阻 7.8365Ω ,电感值 3.3062nF,品质因数 Q 为 6.0328。考虑最差的情况,电容品质因数 6.79,等效串联电阻 2Ω,最终得到 Rp 约为:
在这里插入图片描述
  即 LC 的等效并联电导约为 14.064mS。考虑输出摆幅,则想要达到预定摆幅需要的电流为:
在这里插入图片描述
  为留有裕度,本次所设计的电流源电流取为 4mA 。进一步,由电流公式计算得知 NMOS 和 PMOS 管子寸尺为:
在这里插入图片描述
  VCO的仿真原理图如图4-4-10。

VCO原理图

在这里插入图片描述

三、压控振荡器(VCO)测试

VCO测试电路如图4-4-11。

VCO测试电路图

在这里插入图片描述

瞬态测试

  VCO 的起振以及振荡的仿真波形图如图4-4-12所示。由瞬态仿真可以看出 VCO 起振时间约为 6ns,起振后稳定工作,输出为一对正交信号。

(1)瞬态输出

在这里插入图片描述
  进行局部放大观察

(2)局部放大图

在这里插入图片描述
  通过将L和C微调,对输出波形进行测量,测量四个周期时间间隔 ∆t=1.640977ns∆t=1.640977nst=1.640977ns,即 T=0.41nsT=0.41nsT=0.41ns,振荡频率 2.438GHz 。输出在 0.2 ~ 1.6V 之间振荡,如果想继续增大摆幅使得输出在 0.1~1.6V 之间振荡,则需要适当增大ISSI_{SS}ISS以及调整PMOS交叉耦合管尺寸,使得输出直流工作点下移 0.05V。

(3)输出调制

在这里插入图片描述
  从图4-4-14中可以发现,当控制电压 VcontV_{cont}Vcont0VDD0~VDD0 VDD进行变化时,输出频率发生变化,且均可正常起振。当可变 MOS 处于负偏压的时候,即VcontV_{cont}Vcont越小,起振越慢。
  pss 仿真结果如图4-4-15所示,当控制电压VcontV_{cont}Vcont从 0 V 增加到 1.8V 时,谐振频率从 2.111GHz 增加到 2.879GHz ,VCO 电路振荡的中心频率为 2.5GHz。

(4)调谐范围仿真

在这里插入图片描述
  Noise 仿真结果如图4-4-16所示,可以看到,随着控制电压 VcontV_{cont}Vcont 变化,VCO 的噪声谱线发生微小变化,当Vcont=0.9VV_{cont}=0.9VVcont=0.9V时,相位噪声约为 -115.6dBc/Hz。

(5)相位噪声仿真

在这里插入图片描述
  综上,本次所设计的 VCO 性能如下表:
在这里插入图片描述

参考文献

  [1]郭世泽. 应用于毫米波频率综合器的压控振荡器与高速预分频器研究[D].东南大学,2021
  [2]王立姣. 基于交叉耦合的低相位噪声LC压控振荡器研究与设计[D].华南理工大学,2020.
  [3]申扬. CMOS压控振荡器的研究与设计[D].电子科技大学,2022.
  [4]何林. 应用于WLAN 802.11b的压控振荡器及高速二分频器设计[D].东南大学,2020.

分割线


各部分链接链接:

  频率综合器(Frequency Synthesizer,FS)设计    链接:【模拟集成电路】频率综合器(Frequency Synthesizer,FS)设计

  鉴频鉴相器(PFD)设计    链接:【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)

   电荷泵(CP)设计       链接:【模拟集成电路】电荷泵(CP)设计

  环路滤波器(LPF)设计    链接:【模拟集成电路】环路滤波器(LPF)设计

  分频器(DIV_TSPC)设计   链接:【模拟集成电路】分频器(DIV_TSPC)设计

相关文章:

【模拟集成电路】宽摆幅压控振荡器(VCO)设计

鉴频鉴相器设计(Phase Frequency Detector,PFD)前言一、VCO工作原理二、VCO电路设计VCO原理图三、压控振荡器(VCO)测试VCO测试电路图瞬态测试(1)瞬态输出(2)局部放大图&a…...

《英雄编程体验课》第 13 课 | 双指针

文章目录 零、写在前面一、最长不重复子串1、初步分析2、朴素算法3、优化算法二、双指针1、算法定义2、算法描述3、条件1)单调性2)时效性三、双指针的应用1、前缀和问题2、哈希问题3、K 大数问题零、写在前面 该章节节选自 《夜深人静写算法》,主要讲解最基础的枚举算法 ——…...

DS期末复习卷(十)

一、选择题(24分) 1&#xff0e;下列程序段的时间复杂度为&#xff08; A &#xff09;。 i0&#xff0c;s0&#xff1b; while (s<n) {ssi&#xff1b;i&#xff1b;} (A) O(n^1/2) (B) O(n ^1/3) © O(n) (D) O(n ^2) 12…xn xn^1/2 2&#xff0e;设某链表中最常用的…...

QT+OpenGL模板测试和混合

QTOpenGL模板测试和混合 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 模板测试 当片段着色器处理完一个片段之后&#xff0c;模板测试会开始执行。和深度测试一样&#xff0c;它可能会丢弃片段&am…...

《英雄编程体验课》第 11 课 | 前缀和

文章目录 零、写在前面一、概念定义1、部分和2、朴素做法3、前缀和4、前缀和的边界值5、边界处理6、再看部分和二、题目描述1、定义2、求解三、算法详解四、源码剖析五、推荐专栏六、习题练习零、写在前面 该章节节选自 《算法零基础100讲》,主要讲解最基础的算法 —— 前缀和…...

Java学习--多线程2

2.线程同步 2.1卖票【应用】 案例需求 某电影院目前正在上映国产大片&#xff0c;共有100张票&#xff0c;而它有3个窗口卖票&#xff0c;请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口&#xff0c;里面定义一个成员变量&#xff1a;privat…...

【Virtualization】Windows11安装VMware Workstation后异常处置

安装环境 Windows 11 专业版 22H2 build 22621.1265 VMware Workstation 17 Pro 17.0.0 build-20800274 存在问题 原因分析 1、BIOS未开启虚拟化。 2、操作系统启用的虚拟化与Workstation冲突。 3、操作系统启用内核隔离-内存完整性保护。 处置思路 1、打开“资源管理器”…...

第四章.神经网络—BP神经网络

第四章.神经网络 4.3 BP神经网络 BP神经网络(误差反向传播算法)是整个人工神经网络体系中的精华&#xff0c;广泛应用于分类识别&#xff0c;逼近&#xff0c;回归&#xff0c;压缩等领域&#xff0c;在实际应用中&#xff0c;大约80%的神经网络模型都采用BP网络或BP网络的变化…...

如何压缩RAR格式文件?

RAR是我们日常生活工作中经常用到的压缩文件格式之一&#xff0c;那么RAR文件如何压缩呢&#xff1f; 不管压缩哪种格式的压缩文件&#xff0c;我们都需要用到压缩软件。针对RAR格式&#xff0c;我们可以选择最常见的WinRAR&#xff0c;当然如果有同样适用于RAR格式的压缩软件…...

JS 执行机制 详解(附图)

一、JS是单线程JS语言的一大特点就是单线程&#xff0c;也就是说&#xff0c;同一个时间只能做一件事。这是JS这门脚本语言诞生的使命所致——用来处理页面中用户的交互&#xff0c;以及操作DOM而诞生的。单线程就意味着&#xff0c;所有任务需要排队&#xff0c;前一个任务结束…...

华为OD机试真题Java实现【 计算面积】真题+解题思路+代码(20222023)

计算面积 绘图机器的绘图笔初始位i在原点(0.0)。 机器启动后其绘图笔按下面规则绘制直线: 1 )尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E, 2 )期间可通过指令在纵坐标轴方向进行偏移。井同时绘制直线,偏移后按规则1绘制直线;指令的格式为X offsetY。表示在横坐标X…...

【JVM】运行时数据区与对象的创建流程

4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域&#xff0c;这块区域就是JVM的内存区域&#xff0c;也称为JVM的内存模型——JMM 堆空间&#xff08;线程共享&#xff09;&#xff1a;存放new出来的对象 元空间&#xff08;线程共…...

flutter- JSON解析框架使用方法json_serializable

对于目前来说&#xff0c;大部分的API网络请求的通讯内容数据格式都是JSON。JSON返回的都是字符串&#xff0c;假如要取到data里面的id&#xff0c;去直接字符串截取肯定是不行的&#xff0c;要通过一定的方式把它解析成Map或者解析成对象&#xff0c;再去处理它。像一些简单的…...

第十三届蓝桥杯国赛 C++ B 组 J 题——搬砖(AC)

目录1.搬砖1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.搬砖 1.题目描述 这天&#xff0c;小明在搬砖。 他一共有 nnn 块砖, 他发现第 iii 砖的重量为 wiw_{i}wi​, 价值为 viv_{i}vi​ 。他突然想从这些 砖中选一些出来从…...

Spring Cloud Nacos源码讲解(十)- Nacos服务端服务发现处理

Nacos集群数据同步 ​ 当我们有服务进行注册以后&#xff0c;会写入注册信息同时会触发ClientChangedEvent事件&#xff0c;通过这个事件&#xff0c;就会开始进行Nacos的集群数据同步&#xff0c;当然这其中只有有一个Nacos节点来处理对应的客户端请求&#xff0c;其实这其中…...

C++ 修改程序进程的优先级(Linux,Windows)

文章目录1、Linux1.1 常用命令1.1.1 不占用终端运行和后台运行方式1.1.2 查询进程1.1.3 结束进程1.1.4 优先级命令1.2 C 代码示例1.2.1 代码一1.2.2 代码二2、Windows2.1 简介2.2 函数声明2.3 C 代码示例2.3.1 代码一2.3.2 代码二结语1、Linux 1.1 常用命令 1.1.1 不占用终端…...

同步和异步promise

进程和线程进程&#xff08;厂房&#xff09;&#xff1a;程序的运行环境线程&#xff08;工人&#xff09;&#xff1a;进行运算的东西同步和异步同步&#xff1a;一件事干完才去干下一件事&#xff0c;前面的代码不执行&#xff0c;后面的代码也不执行。同步的代码可能会出现…...

CHATGPT是新的“搜索引擎终结者”吗?百度是否慌了

ChatGPT 以其非凡的自然语言处理 &#xff08;NLP&#xff09; 能力和清晰的响应风靡全球&#xff0c;有望带来一场重大的技术革命。在不知不觉中&#xff0c;叙事转向了ChatGPT与百度的对决&#xff0c;因为来自OpenAI的智能和健谈的聊天机器人已经慢慢获得了“潜在的百度终结…...

力扣-订单最多的客户

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;586. 订单最多的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…...

MyBatis学习笔记(六) —— MyBatis的各种查询功能

6、MyBatis的各种查询功能 6.1、查询一个实体类对象 SelectMapper.java接口 /*** 根据用户id查询用户信息* param id* return*/ User getUserById(Param("id") int id);SelectMapper.xml <!--User getUserById(Param("id") int id)--> <selec…...

2023年最新详细教程!手把手教你搭建Hexo + GitLab个人博客

文章目录前言一、安装和配置环境1.安装 Git2.安装 Node.js二、新建博客项目1.GitLab配置CI/CD自动化部署1.1 GitLab新建项目1.2 GitLab自建Runners1.2.1 下载gitlab-runner1.2.2 注册Runners1.2.3 安装Runners并启动1.3 添加.gitlab-ci.yml文件2.拉取和推送hexo blog2.1 拉取he…...

centos7安装

centos7安装制作U盘启动盘下载镜像下载 UltralISO制作启动盘使用U盘安装系统修改模式为 UEFI调整BOOT option保存重启进入安装界面安装图形界面安装搜狗输入法制作U盘启动盘 下载镜像 去官网下载镜像&#xff0c;找到 mirrors链接&#xff08;速度快&#xff09; 选择一个中…...

java String类(超详细,含常用方法、面试题,内存图,案例)

String类一、String类的特点二、String 类的常见构造方法三、String常见的面试题1.字符串常量池2.String s "abc"与String s new String("abc")区别3.字符拼接4.常量优化机制四、String常用方法1. 比较字符串内容2. 遍历字符串3.截取字符串4.替换字符串5…...

哈希表以及哈希冲突

目录 哈希表 哈希冲突 1. 冲突发生 2. 比较常见的哈希函数 3. 负载因子调节(重点) 散列表的载荷因子概念 负载因子和冲突率的关系 冲突-解决-闭散列 线性探测 二次探测 冲突-解决-开散列 结尾 我们在前面讲解了TerrMap&#xff08;Set&#xff09;的底层是一个搜索…...

测试——基本概念

概念 测试和调试有以下几点区别&#xff1a; 测试是测试人员进行的工作&#xff0c;调试是开发人员调试是发现并解决问题&#xff0c;测试只是发现问题测试贯穿于整个项目的生命周期&#xff0c;而调试主要在编码阶段 测试人员一般有如下的工作&#xff1a; 需求分析&#x…...

SnowFlake 雪花算法和原理(分布式 id 生成算法)

一、概述 SnowFlake 算法&#xff1a;是 Twitter 开源的分布式 id 生成算法。核心思想&#xff1a;使用一个 64 bit 的 long 型的数字作为全局唯一 id。算法原理最高位是符号位&#xff0c;始终为0&#xff0c;不可用。41位的时间序列&#xff0c;精确到毫秒级&#xff0c;41位…...

【死磕数据库专栏】MySQL对数据库增删改查的基本操作

前言 本文是专栏【死磕数据库专栏】的第二篇文章&#xff0c;主要讲解MySQL语句最常用的增删改查操作。我一直觉得这个世界就是个程序&#xff0c;每天都在执行增删改查。 MySQL 中我们最常用的增删改查&#xff0c;对应SQL语句就是 insert 、delete、update、select&#xf…...

阿里软件测试二面:adb 连接 Android 手机的两种方式,看完你就懂了

前言 随着现在移动端技术的突飞猛进&#xff0c;导致现在市场上&#xff0c;APP 应用数不胜数&#xff0c;那对于测试工程师而言&#xff0c;对于 APP 的测试&#xff0c;那基本就是一个必修课了。 今天&#xff0c;我就来给大家介绍一下&#xff0c;adb 连接 Android 手机的两…...

Docker安装YApi

目录0、Docker 环境准备1、数据库准备 MongoDB2、启动 YAPI3、官网教程0、Docker 环境准备 Docker 容器之间网络互通需要使用 docker network create yapi 创建一个自定义网络 docker network create yapi1、数据库准备 MongoDB YAPI 的数据库是 MongoDB&#xff0c;准备镜像…...

springboot自定义参数解析器

为什么要自定义参数解析器呢&#xff1f; 因为很多项目每次获取用户信息&#xff0c;需要重复从请求头中获取token&#xff0c;用token再去redis或是sql中去拿到存储的计本对象&#xff0c;再将获取到的Json数据&#xff0c;转化为我们需要的对象等代码&#xff0c;作为一名程…...