【模拟集成电路】PLL设计与仿真(CPPLL+基础+Simulink仿真+电路仿真)

0 前言

  学习笔记,分享一下,参考了《DESIGN OF CMOS PHASE‑LOCKED LOOPS_Behzad Razavi》,为了控制篇幅,已经尽量的减少内容了,内容比较“系统化”,从简单Ⅰ型PLL传输函数分析,再到到三阶的 C P P L L CPPLL CPPLL 系统函数分析,其中演化的原因也一并列出。在了解了 C P P L L CPPLL CPPLL 的传输函数后,紧接着就是根据 C P P L L CPPLL CPPLL 的系统函数,通过 m a t l a b matlab matlab 计算最优的系统参数。得到系统参数后,通过 S i m u l i n k Simulink Simulink 进行建立相关模块的模型,并根据特定系统参数对CPPLL的整体模型进行仿真。最后,基于 T S M C 18 TSMC18 TSMC18 工艺,根据特定的参数设计相关的模块电路,进行了简单的仿真并和 S i m u l i n k Simulink Simulink 仿真结果进行了简单对比。

  设计文件可自取~,仅供学习参考: (用的matlab R2021a)

  CPPLL_Simulink模型:https://mbd.pub/o/bread/aJackphp

在这里插入图片描述

  CPPLL电路,工程+testbench:https://mbd.pub/o/bread/aJackpdw

在这里插入图片描述

1 简单PLL分析

  大多数振荡器必须“锁相”,以最大限度地减少其频率漂移和相位噪声,在最简单的形式中,PLL由一个 V C O VCO VCO P D PD PD L P F LPF LPF 组成。本节主要是定量计算PLL的相关参数与其环路的影响,了解不同结构的优劣,并在设计过程中合理的考虑。

1.1静态行为

  根据“锁定”的特点, φ i n − φ o u t = c o n s t φ_{in}-φ_{out}=const φinφout=const

在这里插入图片描述
  也即
在这里插入图片描述
  为了使输入和输出边缘保持恒定的相位差,周期必须始终相等。因此,如果环路被锁定,则VCO以等于 f i n f_{in} fin的频率运行。
定量分析:在图 1.1(b)中的曲线图中,可以看出 V C O VCO VCO 需要一定的控制电压 V 1 V_1 V1 来提供 ( f o u t = f i n ) (f_{out}=f_{in} ) (fout=fin)。这样的电压必须由 L P F LPF LPF 产生,低通滤波器计算 V P D V_{PD} VPD 的平均值。转到图 1.1(c)所示的 P D PD PD 特性, V P D = V 1 V_{PD} =V_1 VPD=V1转化为一定的相位误差 Δ φ 1 = V 1 / K P D Δφ_1=V_1/K_{PD} Δφ1=V1/KPD。Δφ_1被称为“静态相位偏移”,它可以通过增加 K P D K_{PD} KPD(或 K v c o K_{vco} Kvco)来降低。
在这里插入图片描述

1.2倍频

  倍频是 PLL 的一个重要而有用的特性。假设一个精确、稳定的参考振荡器(例如晶体振荡器)产生20 MHz的输出,我们希望从中产生4 GHz的时钟。一种方法是考虑20 MHz参考的200次谐波,但这样的分量非常小,容易产生极端噪声。相比之下,PLL提供了一个很好的解决方案。如图1.2(a)所示,
在这里插入图片描述
  使用包含4-GHz VCO的环路,但在反馈路径中插入“分频器”,如果环路被锁定,则PD输入端为恒定的相位差,从而PD输入端检测到相等的频率,即, f B = f R E F f_B=f_{REF} fB=fREF,产生 f o u t = M f B = M f R E F f_{out}=Mf_B=M{f_{REF}} fout=MfB=MfREF,它还提供了一个可编程的输出频率:如果 M M M 200 200 200 201 201 201 f o u t f_{out} fout 4 G H z 4 GHz 4GHz 变为 201 × 20 M H z = 4.02 G H z 201×20 MHz=4.02 GHz 201×20MHz=4.02GHz

1.3动态行为

  该部分内容是描述PLL如何进行动态调节的,考虑PLL系统中相位或频率的阶跃,并分析PLL动态调整过程

1.3.1频率阶跃响应过程

  首先考虑频率阶跃行为:如图 1.3(b)所示,在 t = t 1 t=t_1 t=t1 时,输入频率从 ω 1 ω_1 ω1 跳到 ω 1 + ∆ ω ω_1+∆ω ω1+ω 。LPF最初 V c o n t = V 1 V_{cont}=V_1 Vcont=V1, $ VCO $仍在 ω 1 ω_1 ω1 下运行,输入和输出频率保持∆ω的差,随后它们的相位差增大。 P D PD PD 产生的越来越宽的脉冲, V c o n t V_{cont} Vcont 逐渐升高,从而使 ω o u t ω_{out} ωout 升高。一直持续到 ω o u t = ω 1 + ∆ ω ω_{out}=ω_1+∆ω ωout=ω1+ω ,此时环路再次锁定。锁定后,此时PD输出脉冲现在更宽,从而产生更大的控制电压。
在这里插入图片描述
  如果回路阻尼不足(不够稳定), V c o n t V_cont Vcont 可能会出现“振铃”现象。我们可以根据开环极点和零点以及相位裕度等参数来制定闭环响应。环路从 t 1 t_1 t1 t 2 t_2 t2 是解锁的,因为 φ o u t − φ i n φ_{out}-φ_{in} φoutφin 在这段时间内随时间变化。

1.3.2相位阶跃响应过程

在这里插入图片描述
  如图1.4所示,在 t = t 1 t=t_1 t=t1 时输入的上升沿发生相位阶跃,这意味着下一个输入边缘发生得比预期的更早或更晚。 V c o n t V_{cont} Vcont 和输出相位都不能瞬间改变;因此,相位阶跃立即转化为相位误差,产生更宽的PD脉冲 V c o n t V_{cont} Vcont ω o u t ω_{out} ωout 的逐渐变化允许 V C O VCO VCO 积累额外的相位,并最终赶上输入。这个过程一直持续到最终两个信号的边沿对齐,最终在 t 2 t_2 t2 时的 V c o n t V{cont} Vcont φ o u t − φ i n φ_{out}-φ_{in} φoutφin t 1 t_1 t1 时相同。
  PLL对频率阶跃的响应表明,即使 ω o u t ω_{out} ωout 具有正确的值(与 t = t 2 t=t_2 t=t2时的值相同),环路也不会在 t = t a t=t_a t=ta 处稳定。这是因为相位误差(PD输出脉冲的宽度)还没有达到适当的值。只有当积分相关的 ∆ φ 1 ∆φ_1 φ1 ω o u t ω_{out} ωout 都稳定时,环路才稳定,即“相位采集”和“频率采集”都必须完成。

1.4传输函数

  主要关注,(1)如何解释和确定传递函数?(2)如何评估环路的稳定性?(3)环路滤波器表现出什么特性(4) 环路在时域中的表现如何。

1.4.1简单PLL的传输函数

传输函数

  下面的讨论中 ω ω ω 不是输入或 V C O VCO VCO 频率,而是输入过量相位 φ i n ( t ) φ_{in} (t) φin(t)变化速率

  首先对于PLL系统,我们主要针对“过量相位”进行建模,因此 V C O VCO VCO 必须建模为一个积分器,因为 P D PD PD 测量的是输出相位差,而 V C O VCO VCO V c o n t V_{cont} Vcont进行积分后才能得到相位量; L P F LPF LPF 考虑为一阶环路滤波器,线性模型如图1.5所示

在这里插入图片描述
  因此,开环传输函数可以表示为 H o p e n ( s ) = [ K P D / ( 1 + s / ω L P F ) ] K V C O / s H_{open} (s)=[K_{PD}/(1+s/ω_{LPF})]K_{VCO}/s Hopen(s)=[KPD/(1+s/ωLPF)]KVCO/s,闭环传输函数可以写为

在这里插入图片描述
  从控制理论来看,将分母表示为 s 2 + 2 ζ ω n s + ω n 2 s^2+2ζω_n s+ω_n^2 s2+2ζωns+ωn2 ,的形式,其中 ζ ζ ζ ω n ω_n ωn 分别是“阻尼因子”和“固有频率”。因此可以得到

在这里插入图片描述
  图3.9的拓扑被称为 “I型PLL,因为它的开环传递函数包含一个理想积分器(原点处的一个极点),由于该PLL系统为低通系统,所以如果 ω m ω_m ωm 变化缓慢, ∣ H ∣ ≈ 1 |H|≈1 H1 ,PLL输出为 V o u t ≈ V 1 c o s ( ω 0 t + α c o s ω m t ) V_{out}≈V_1cos(ω_0t+αcosω_mt) VoutV1cosω0t+αcosωmt,表现出与输入相同的相位偏移。如果 ω m ω_m ωm 超过环路带宽,则输出相位波动较小。

波特图

  通过相关参数和波特图,可以更加直观的解释 ζ ζ ζ ω L P F ω_{LPF} ωLPF K P D K_{PD} KPD K V C O K_{VCO} KVCO 的依赖,简单 P L L PLL PLL 开环传输函数为 H o p e n ( s ) = [ K P D / ( 1 + s / ω L P F ) ] K V C O / s H_{open} (s)=[K_{PD}/(1+s/ω_{LPF})]K_{VCO}/s Hopen(s)=[KPD/(1+s/ωLPF)]KVCO/s,因此 ω < ω L P F ω<ω_{LPF} ω<ωLPF 时,幅频特性以 20 d B / d e c 20dB/dec 20dB/dec 的速率下降,当 ω > ω L P F ω>ω_{LPF} ω>ωLPF时,波特图以 40 d B / d e c 40dB/dec 40dB/dec 的速率下降,由于原点处的极点,相位初始从 90 90 90 开始,当 ω = ω L P F ω=ω_{LPF} ω=ωLPF 时,相位达到 135 ° 135° 135° ,相位裕度很小,波特图如图 1.6 所示。

在这里插入图片描述
   ζ ζ ζ K P D K_{PD} KPD K V C O K_{VCO} KVCO的依赖性是直接的,增加 K P D K_{PD} KPD K V C O K_{VCO} KVCO 只是将增益图向上移动,增加 ω u ω_u ωu ,但不会改变相位响应。因此,相位裕度减小。
   L P F LPF LPF 抑制了 P D PD PD 产生的高频分量。方程 (1.5) 表明,如果 ω L P F ω_{LPF} ωLPF减少, ζ ζ ζ 会下降,如果降低 ω L P F ω_{LPF} ωLPF可以以减弱 P D PD PD 噪声注入,但不可避免地会降低稳定性。令 ∣ H o p e n ( s ) ∣ = 1 |H_{open} (s)|=1 Hopen(s)=1 可以来计算单位增益带宽 ω u ω_u ωu
在这里插入图片描述
  解得

在这里插入图片描述
  在 ω u ω_u ωu 处开环相位可以表示为
在这里插入图片描述
  如果 ω L P F ω_{LPF} ωLPF 减少, ω u ω_u ωu 也减少,导致 t a n − 1 tan^{-1} tan1 的自变量更大,因此相位裕度更小。

倍频

  对于添加倍频器的 P L L PLL PLL ,其开环传输函数可以表示为 H o p e n ( s ) = [ K P D / ( 1 + s / ω L P F ) ] K V C O / s ∗ ( 1 / M ) H_{open} (s)=[K_{PD}/(1+s/ω_{LPF})]K_{VCO}/s*(1/M) Hopen(s)=[KPD/(1+s/ωLPF)]KVCO/s(1/M),闭环传输函数可以表示为
在这里插入图片描述
  可以得到
在这里插入图片描述
在这里插入图片描述
  方程(1.10)表明,随着 M M M 的增加,环路变得更加稳定。从波特图也可以看出,我们观察到分频器会削弱反馈,并且增加了相位裕度。这些趋势是 I I I P L L PLL PLL (和运算放大器)的特性,与 I I II II 型回路的行为形成对比。

1.5简单PLL的缺点

  I型PLL面临三个权衡: ζ ζ ζ ω L P F ω_{LPF} ωLPF 之间, ζ ζ ζ K P D K_{PD} KPD 之间,以及采集范围和 ω L P F ω_{LPF} ωLPF 之间。
  首先,如果减少 ω L P F ω_{LPF} ωLPF 来抑制 V c o n t V_{cont} Vcont 的干扰,则环路变得不那么稳定。其次,如果我们增加 K P D K_{PD} KPD 以最小化静态相位误差,则环路变得不那么稳定。这两种趋势都严重限制了性能。
在这里插入图片描述
  如果 ω i n ω_{in} ωin ω i n ω_{in} ωin 之间的初始差很大,那么由 ( k V 0 V 1 c o s ( ω i n − ω o u t ) t ) (kV_0 V_1 cos(ω_{in}-ω_{out})t) (kV0V1cos(ωinωout)t)给出的 P D PD PD 输出在 L P F LPF LPF 中经历显著衰减,无法以足够的强度调制 V C O VCO VCO 。因此, ω i n ω_{in} ωin 处的 V C O VCO VCO 输出边带以及 P D PD PD 输出中的直流分量太小,无法启动锁定捕获。这里的关键点是,如果选择一个小的 ω L P F ω_{LPF} ωLPF 来抑制对 V c o n t V_{cont} Vcont 的干扰,那么采集范围会按比例减小。在实践中,采集范围将非常窄,使得回路很容易因 P V T PVT PVT 变化而失效。

2基于电荷泵的PLL(CPPLL)

2.1电荷泵

  参考:【模拟CMOS集成电路设计】电荷泵(Charge bump)设计与仿真(示例:栅极开关CP+轨到轨输入运放+基于运放CP)

2.2基本CPPLL

  图 2.1 是一个包含 P F D / C P / 电容器 PFD/CP/电容器 PFD/CP/电容器 级联的PLL,如果环路锁定,则有 f o u t = f i n f_{out}=f_{in} fout=fin ,并且 V c o n t V_{cont} Vcont 是一个有限的值。
在这里插入图片描述
  为了使 V c o n t V_{cont} Vcont 保持恒定,电荷泵必须不向 C 1 C_1 C1 注入净电荷,这要求 φ o u t = φ i n φ_{out}=φ_{in} φout=φin 。换言之,无论 f i n f_{in} fin K V C O K_{VCO} KVCO I P I_P IP 等参数如何,环路锁定时“静态”相位误差为零。由于CP/电容器组合的积分作用,该特性与I型PLL的行为形成对比。

2.3 PFD/CP/电容器传递函数

2.3.1构建传递函数

  为了定量分析PLL系统,下面对PLL系统的传递函数进行分析,对于CP来说,由于输入量为相位输出量为电压,且期间有大量开关电路,因此考虑开始在时域中进行分析,计算脉冲响应,并对结果进行拉普拉斯变换以获得传递函数(更准确的当成离散时间的非线性系统)。
并将 I P / ( 2 π ) I_P/(2π) IP/(2π) 视为 P F D / C P 级联 PFD/CP级联 PFD/CP级联 的传输函数
在这里插入图片描述
  可以构建线性相位模型,获得开环传递函数 [ I p / ( 2 π C 1 s ) ] ( K V C O / s ) [I_p/(2πC_1 s)](K_VCO/s) [Ip/(2πC1s)](KVCO/s) 。这种结构被称为“II型”PLL,因为开环传输函数中包含两个极点,最终得到闭环传输函数。
在这里插入图片描述
  该传输函数中包含两个虚数极点,暗示着一个不稳定的环路。(注意这里 ζ = 0 ζ=0 ζ=0 。)这种情况是由两个理想积分器引起的。
  为了使该环路稳定,可以有两种方法:(a)使其中一个积分器“有损耗”,使其传递函数为 1 / ( s + ω 1 ) 1/(s+ω_1) 1/(s+ω1) 形式。(b)添加开环零点,使一个积分器的传递函数变为 α + β / s = ( α s + β ) / s α+β/s=(αs+β)/s α+β/s=(αs+β)/s 。我们在这里采用后者,将 R e s Res Res C a p Cap Cap 串联(图5.5),现在,当电荷泵接通或断开时,控制电压会跳变 I P R 1 I_P R_1 IPR1 ,在没有零点的情况下,该现象不存在。
在这里插入图片描述
  如前所示, P F D / C P PFD/CP PFD/CP 级联的传递函数为 I P / ( 2 π ) I_P/(2π) IP/(2π) ,得到
在这里插入图片描述
  新的零点位于 − 1 / ( R 1 C 1 ) -1/(R_1 C_1) 1/(R1C1) 。使用这种结构,我们构建了图2.3所示的基本“电荷泵PLL”(CPPLL),并将 R 1 C 1 R_1 C_1 R1C1分支称为“环路滤波器”。
在这里插入图片描述
  由于 C P CP CP C 1 C_1 C1 提供的积分器,静态相位误差仍然为零。闭环传递函数由下式给出
在这里插入图片描述
  得到
在这里插入图片描述

CPPLL总结:

  (2.4)中的闭环传递函数包含一个零点和两个极点,表现出低通响应。也就是说,缓慢的输入相位波动传播到输出,但快速的相位变化被过滤掉。此外,(2.6)表明 ζ ζ ζ 随着 C 1 C_1 C1 的增加而增加,与I型PLL相反。可以计算-3dB带宽并绘制系统的频率响应。图2.3的结构解决了I型PLL确定的所有三个缺点
  在方程(2.5)和(2.6)中,I_P和K_VCO仅作为一个乘积出现,这表明如果它们朝相反的方向变化,响应保持不变。然而,如果 K V C O K_{VCO} KVCO 较高或 I P I_P IP 较低,则会出现许多问题。对于 ω 0 ω_0 ω0 的VCO频率,我们将 K V C O K_{VCO} KVCO 限制为小于 ω 0 / 10 ω_0/10 ω0/10

2.3.2级联分频器

  结构如图2.4所示
在这里插入图片描述
  如果考虑分频器,开环传输函数为
在这里插入图片描述
  因此,必须增加 R 1 R_1 R1 I p I_p Ip C 1 C_1 C1,以补偿 M M M ζ ζ ζ 的影响。
  在实际的系统中,如果将 M M M 设为可变的,一般电荷泵的电流也应该可变,配合使得阻尼因子相对稳定,保证环路稳定。

3高阶环路

  不只是三阶,还能更高阶。

3.1引入C2减小纹波(三阶)

  将电容器直接从控制线连接到地上。如图3.1所示,使初始电荷泵电流流过 C 2 C_2 C2 ,从而降低 V c o n t V_{cont} Vcont 的跳变。
在这里插入图片描述
  将 C 2 C_2 C2 添加到滤波器中将环路的阶数提高到3,从而降低相位裕度。尽管如此,大至 0.2 C 1 0.2C_1 0.2C1 C 2 C_2 C2 对环路稳定时间的影响可忽略不计。
  对于该环路的相位裕度可以进行评估,由于环路滤波器阻抗现在由 C e q = C 1 C 2 / ( C 1 + C 2 ) C_{eq} =C_1 C_2/(C_1+C_2) Ceq=C1C2/(C1+C2) 给出,因此开环传输函数为:
在这里插入图片描述
  其中 C e q = C 1 C 2 / ( C 1 + C 2 ) C_{eq}=C_1 C_2/(C_1+C_2) Ceq=C1C2/(C1+C2) 。通过,上式可以判断,该系统存在三个极点,其中 ∣ ω p 3 ∣ = ( R 1 C e q ) − 1 |ω_{p3} |=(R_1 C_{eq} )^{-1} ωp3=(R1Ceq)1 ,第三极点频率大于零点频率,波特图如图 6.4 所示。
在这里插入图片描述
  当 ω p 3 = ω u ω_{p3}=ω_u ωp3=ωu 时,相位裕度约为45◦。
  因此,通常将令 ω p 3 > ω u ω_{p3}>ω_u ωp3>ωu ,以使相位裕度降低到可忽略的程度。在这种情况下, ω u ω_u ωu 本身也受到 ω p 3 ω_{p3} ωp3 的影响,可以忽略不计, ζ ζ ζ 仍由(2.6)定义。计算得到
在这里插入图片描述
  相位裕度退化的量等于 t a n − 1 ( ω u / ω p 3 ) tan^{-1} (ω_u/ω_{p3}) tan1(ωu/ωp3)。如果我们加上 C 2 ≈ 0.2 C 1 C_2≈0.2C_1 C20.2C1 ,相位裕度会降低 t a n − 1 ( 2.2 / 6 ) ◦ tan^{-1} (2.2/6)◦ tan1(2.2/6) ,这个值很小,可忽略不计。

3.2环路滤波器增加串联电阻(二阶)

  另一种二阶滤波器拓扑如图3.3所示。在这种情况下, R 1 R_1 R1 两端的电压被允许跳跃,但随后的 R C RC RC 级衰减了纹波。图 3.1 和 3.3 中的滤波器为给定的 P M PM PM 劣化提供了大致相同的波纹。
在这里插入图片描述

4 CPPLL设计与仿真

  首先根据每个模块的功能对其进行 S i m u l i n k Simulink Simulink 模型搭建,然后在 S i m u l i n k Simulink Simulink 中进行系统参数优化,然后进行功能仿真。模型参数确定后,根据模型参数进行电路设计,最后再次仿真验证 P L L PLL PLL 功能,此次设计仅仅是为了初步了解,因此并没有针对电路的性能进行电路优化,都是常规的电路结构。

4.1 Simulink建模设计与仿真

   S i m u l i n k Simulink Simulink T O P TOP TOP 模型如图4.1所示。首先通过系统模型计算最优参数,获得系统的幅频响应、阶跃响应和波特图,模型参数确定后,带入 C P P L L CPPLL CPPLL S i m u l i n k Simulink Simulink 模型中,分别对正弦波输出 S i n _ O u t Sin\_Out Sin_Out 、控制信号 V c o n t Vcont Vcont 和分频信号 D i v _ O U T Div\_OUT Div_OUT进行观察。
在这里插入图片描述
  内部的模块由 P F D PFD PFD C P CP CP V C O VCO VCO 和分频器构成,如图4.2所示。
在这里插入图片描述

4.1.1 使用matlab求解CPPLL系统参数

  通过 m a t l a b matlab matlab 建立 C P P L L CPPLL CPPLL 的数学模型,通过确定 K P D K_{PD} KPD K V C O K_{VCO} KVCO 和分频比 M M M 之后,进行系统参数求解,确定 C P P L L CPPLL CPPLL 的参数模型,然后获得其幅频响应、阶跃响应和波特图,分别如图4.2、图4.3和图4.4所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1.2使用simulink进行系统可行性仿真

  根据 m a t l a b matlab matlab 求解的系统参数,搭建 S i m u l i n k Simulink Simulink 模型,然后进行可行性仿真。分别对分频器功能、控制电压 V c o n t Vcont Vcont V C O VCO VCO 建立过程波形和最终 V C O VCO VCO 稳定输出的结果进行验证,如图4.5、图4.6、图4.6和图4.8所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 实际电路设计与仿真

  系统参数确定后,或者说确定系统可行后,进行电路设计,此次基于 T S M C 18 u m TSMC18um TSMC18um 工艺进行电路设计,电路设计过程不再赘述,因为并没有针对性的优化只是验证一下 s i m u l i n k simulink simulink 的模型。

4.2.1 CPPLL电路

  电路采用了经典的CPPLL结构,其中 V C O VCO VCO 采用的是互补耦合对的 L C LC LC 振荡器、分频比128、电荷泵电流 I P = 50 u A I_P = 50uA IP=50uA 、电荷泵采用的基于运放的结构,可以参考:【模拟CMOS集成电路设计】电荷泵(Charge bump)设计与仿真(示例:栅极开关CP+轨到轨输入运放+基于运放CP)

在这里插入图片描述

4.2.2 CPPLL电路仿真

  瞬态仿真 5 u s 5us 5us ,观察 C P P L L CPPLL CPPLL 最终输出,波形如图4.10所示。
在这里插入图片描述
  将最终稳定的 C P P L L CPPLL CPPLL 输出波形局部放大,如图4.11所示,为了方便观测输出频率,计算输出频率,结果如图 4.12 所示。
在这里插入图片描述
  下面是电荷泵输出 V c o n t V_{cont} Vcont 的瞬态波形,为了对比,同时将 S i m u l i n k Simulink Simulink 仿真的波形一并展示,如图4.13和图4.14所示。
在这里插入图片描述
在这里插入图片描述
  通过 V c o n t V_{cont} Vcont 波形的对比可知,在 S i m u l i n k Simulink Simulink 的仿真中也预测到了控制电压 V c o n t V_{cont} Vcont 的过冲,表现出了一致性。然后就是 P F D PFD PFD 的逻辑信号,如图4.14所示。
在这里插入图片描述

  时间比较仓促,上述内容仅是个人学习过程的笔记,可能文章内存在一些疏漏,谅解~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Successful 、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值