【模拟CMOS集成电路笔记】轨到轨运放(Rail to Rail)基础(附带实例:基于1:3电流镜的轨到轨输入运放)
【模拟CMOS集成电路笔记】轨到轨运放(Rail to Rail)基础
- 0前言
- 1 简介
- 1.1轨到轨输入级
- (1)互补差分对:
- (2)输入范围切换:
- 1.2轨到轨输出级
- (1)推挽输出:
- (1)输出级偏置:
- 2轨到轨输入运放
- 2.1基于电流倍增实现恒定跨导
- (1)电路结构1:基于1:1电流镜实现恒定跨导
- (2)电路结构2:基于1:3电流镜实现恒定跨导
- (3)其他结构
- (4)另一种基于电流镜的RTR输入级
- (5)基于电流反馈环路的RTR输入级
- (6)基于双环结构的RTR输入级
- (7)其他结构
0前言
因为自己做的一个东西,需要一个轨到轨放大器(RTR),所以顺便写了笔记,参考了Sansen的《模拟集成电路设计精粹》,只写了一些简单的内容,里面也有一些复杂的电路,虽然都看了,但是也只是浅浅的看了一下….有需要再深入学习。随手用TSMC18工艺,调了一个“基于1:3电流镜的轨到轨输入运放”
工程文件+testbench需要的可以自取:https://mbd.pub/o/bread/aJWXmp5u

1 简介
R T R RTR RTR其输入电压范围可以从正电源电压 V D D VDD VDD 到负电源电压 V S S VSS VSS,输出电压可以接近电源电压的上下限,即使在低电源电压下仍然可以提供较大信号输出摆幅。在以下图电路为例,为使输入级所有晶体管全部处于饱和区,输入电压最高 V d s , s a t + V g s 1 , 2 V_{ds,sat} + V_{gs1,2} Vds,sat+Vgs1,2,最低输入电压大约为一个过驱动电压。

普通的折叠共源共栅结构如图所示,输入电压最低可以达到 V D S 10 − V T H 1 V_{DS10}-V_{TH1} VDS10−VTH1,这个值可以小于负电压 V S S VSS VSS,该电路的输入电位小于 V S S VSS VSS,也可以正常工作。

对于一个放大器,如果增益很大,那么即使输出电压范围达到轨到轨,输入也几乎保持不变,但在某些应用下,需要输入电压范围Vin需要满足: V S S ≤ V i n ≤ V D D V_{SS}≤V_{in}≤V_{DD} VSS≤Vin≤VDD,其中最典型的例子就是单位增益的输出缓冲器,为了实现输出轨到轨,它的输入也必须轨到轨跟随;除此之外,全差分放大器的CMFB电路,有时也需要轨到轨输入。

轨到轨放大器为了解决传统运放在输入和输出范围上的限制,需要设计轨到轨的输入级和输出级,常通过以下技术实现全范围工作:
1.1轨到轨输入级
传统运的输入级通常采用差分对(如 N P N NPN NPN 或 N M O S NMOS NMOS),其输入范围受限于晶体管的阈值电压和电流源的过驱动电压。轨到轨输入级通过以下方式扩展输入范围:
(1)互补差分对:
使用N型和P型的折叠共源共栅级输入差分对并联,当输入电压接近 V D D V_{DD} VDD时, N N N 型对工作;接近 V S S V_{SS} VSS 时, P P P 型对工作;在中间电压范围内,两对同时工作,确保全范围覆盖。
(2)输入范围切换:
为了在全输入范围保证轨到轨放大器拥有高增益和低失真,需要维持放大器总跨导 g m , t o t g_{m,tot} gm,tot 保持恒定,通过电路自动切换输入对的工作状态,在输入对切换时,通过增益补偿电路避免增益跳变,确保线性度。
1.2轨到轨输出级
传统运放的输出级通常受限于晶体管的饱和电压,导致输出无法接近电源轨。轨到轨输出级常通过以下方式扩展输出范围:
(1)推挽输出:
使用N型和P型输出晶体管(如NMOS和PMOS)组成推挽结构。当输出接近 V D D V_{DD} VDD 时,P型管导通;接近 V S S V_{SS} VSS 时,N型管导通;在中间电压范围内,两管协同工作,确保低输出阻抗。
(1)输出级偏置:
通过动态偏置技术,确保输出晶体管在接近电源轨时仍能保持线性工作,优化偏置电路,确保平滑过渡,避免输出级交越失真。
2轨到轨输入运放
折叠共源共栅放大器的输入级如图所示,NMOS输入的电路结构输入范围为 V G S n + V D S s a t n , V D D {V_{GSn} + V_{DSsatn},V_{DD} } VGSn+VDSsatn,VDD, N M O S NMOS NMOS 输入的电路结构输入范围为 V S S , ∣ V G S p ∣ + ∣ V D S s a t p ∣ {V_{SS},|V_{GSp}|+|V_{DSsatp}|} VSS,∣VGSp∣+∣VDSsatp∣,两种结构的输入范围边界仅可达到 V D D V_{DD} VDD或者 V S S V_{SS} VSS中的一个,另一个边界受限于电流源的饱和电压 V D S s a t V_{DSsat} VDSsat 和 V G S V_{GS} VGS。

2.1基于电流倍增实现恒定跨导
(1)电路结构1:基于1:1电流镜实现恒定跨导
如果可以有一个电路可以自动实现电路状态在N输入和P输入的切换,那么就可以实现全电压范围的输入,即使得低电压输入范围时,PMOS输入差分对工作;高电压输入范围时,NMOS输入差分对工作;输入电压在 V D D / 2 V_{DD}/2 VDD/2附近,则 N M O S NMOS NMOS 和 P M O S PMOS PMOS 同时工作;电路结构如图所示(左),跨导 g m g_m gm随输入电压变化曲线如图(右)所示。

至此完成了全电压范围的输入,下一个问题是,如何在所有电压输入时,保证电路的高增益和线性度?
首先考虑一种情况,如果输入跨导管偏置在弱反型区,NMOS和PMOS输入差分对的总跨导可以表示为

因此当 N M O S NMOS NMOS 或 P M O S PMOS PMOS 中的一个失效时,只需将另一个 M O S MOS MOS 的电流加倍即可。电路如图所示

其中电路共分为四个部分,从左到右依次为,偏置电路、电流切换电路、轨到轨输入级和共源共栅电流镜负载,此电路可以实现轨到轨的输入,如果需要轨到轨输出,那么输出可以采用 c l a s s A B classAB classAB 结构,该电路电源电压1.8V,采用低阈值的 n m o s m v t 2 v nmosmvt2v nmosmvt2v 和 p m o s m v t 2 v pmosmvt2v pmosmvt2v 器件搭建,其中第二级的电流源采用大尺寸,使得输入管在 V D D / 2 V_{DD}/2 VDD/2 的共模输入时,偏置在线性区,当输入共模电平接近高电源轨时,PMOS输入差分对关闭, N M O S NMOS NMOS 电流镜开启, P M O S PMOS PMOS 电流镜关闭, P M O S PMOS PMOS 电流源的电流 I n I_n In 流入下面的等比例电流镜,使 N M O S NMOS NMOS 输入差分对电流加倍,进而 N M O S NMOS NMOS 输入管的跨导加倍。同理,当输入电流接近低电源轨时, N M O S NMOS NMOS 输入差分对关闭, N M O S NMOS NMOS 电流镜关闭, P M O S PMOS PMOS 电流镜开启, N M O S NMOS NMOS 电流源的电流 I p I_p Ip 流入上面的等比例电流镜,使得PMOS输入差分对的电流加倍,进而PMOS输入管的跨导加倍。

(2)电路结构2:基于1:3电流镜实现恒定跨导
N M O S NMOS NMOS 和 P M O S PMOS PMOS 输入差分对的总跨导可以表示为

为了保证切换电路切换状态总跨导 g m , t o t g_{m,tot} gm,tot保持不变,根据 √ 1 + √ 1 = √ 0 + √ 4 √1+√1=√0+√4 √1+√1=√0+√4可知,若一项为0,只需让另一项根号内的项乘以四倍即可,很明显,使电流变为原来的四倍更方便。
为了实现电流倍增的功能,可以采用下图所示电路,电路由两个完全NP对称的结构组成,分别包含“输入差分对”和对应的 “x3电流镜” 其中 V r n V_{rn} Vrn、 V r p V_{rp} Vrp 是固定的参考电压,当输入共模电压 V i n , c m V_{in,cm} Vin,cm 在 V D D / 2 V_{DD}/2 VDD/2 附近时, N M O S NMOS NMOS 差分对和 P M O S PMOS PMOS 差分对同时工作,流过对应差分对的电流均为 I B I_B IB,晶体管 M r n M_{rn} Mrn 和 M r p M_{rp} Mrp 均关闭,此时“x3电流镜”不工作;随着输入共模电压 V i n , c m V_{in,cm} Vin,cm 的降低, N M O S NMOS NMOS 差分对关闭, V i n , c m < V r p V_{in,cm} < V_{rp} Vin,cm<Vrp,电流 I B I_B IB 完全流入 M r p M_{rp} Mrp 控制的 “x3电流镜” 中,此时流入PMOS差分对管的电流变为原来的4倍;当 V i n , c m V_{in,cm} Vin,cm 接近 V D D V_{DD} VDD时, M r n M_{rn} Mrn 开启, M r p M_{rp} Mrp 关闭,此时 P M O S PMOS PMOS 差分对关闭,流入 N M O S NMOS NMOS 差分对管的电流变为原来的4倍。对应的总跨导如(右)图所示。


没错,电路结构可以一样,不同的是偏置电路有点区别。1:3电流镜 仍然可以实现恒定跨导,仿真结果如图2.5所示。

(3)其他结构
上述两种结构,实现轨到轨输入运放的本质是电流倍增,除了使用电流镜+开关管的结构,还可以采用齐纳二极管实现电流切换,齐纳二极管的 V / I V/I V/I 特性如图2.6(左)所示,当齐纳二极管反向击穿时,电流将会发生突变,而二极管两端压降几乎维持恒定,如图2.6(右)所示,通过MOS管可实现类似功能,当 V G S > V T V_{GS} > V_T VGS>VT 时, I D S I_{DS} IDS 随 V G S V_{GS} VGS 发生变化,通过合理的电路设计,可以应用到轨到轨输入的实现中。

基于二极管特性的RTR输入放大器如图2.7所示。

电路中作为二极管的MOS尺寸是输入跨导管的6倍,因此通过的电流也为跨导管的6倍,下面分析三种极端情况。首先,如果输入共模电压 V i n , c m V_{in,cm} Vin,cm 接近 V D D / 2 V_{DD}/2 VDD/2,此时经过跨导管的电流和MOS二极管的电流分别为 I B I_B IB 和 6 I B 6I_B 6IB ;如果 V i n , c m V_{in,cm} Vin,cm 接近 V D D V_{DD} VDD,此时PMOS跨导管关闭,这也就意味着MOS二极管支路也会关闭,此时PMOS电流源进入深线性区,NMOS电流源大小为 8 I B 8I_B 8IB 的电流被NMOS跨导管均分,也即NMOS跨导管的电流为 4 I B 4I_B 4IB ,实现了电流1:3倍增;最后,如果 V i n , c m V_{in,cm} Vin,cm 接近VDD/2,同理,此时PMOS跨导管子实现了电流1:3倍增。很明显,MOS二极管的转折特性不如齐纳二极管,可以通过“源极跟随器+放大器”的对称结构,放大MOS二极管两端的电压,从而实现跨导转折可控,如图2.7(右)所示。
(4)另一种基于电流镜的RTR输入级
根据1:1电流镜实现恒定跨导可知,处于弱反型的MOS管,其跨导正比于电流,因此在整个轨到轨共模输入范围内,维持电流恒定则可实现跨导恒定。考虑到PMOS和NMOS的衬底类型、掺杂浓度、体效应和工艺差异,实际要考虑器件的因子 n n n,处于弱反型区的NMOS和PMOS跨导可以表示为:

考虑到n因子后,为实现恒定跨导,需要在电流上补偿 n n n 因子的差异,电路如图2.8所示

仍然考虑三种情况。
① 输入共模电压 V i n , c m V_{in,cm} Vin,cm 接近 V r e f V_{ref} Vref 时,NMOS电流源 4 I B 4I_B 4IB的电流,其中 2 I B 2I_B 2IB 流向电流反馈环路中,所以NMOS跨导管流过的电流为 I B I_B IB,PMOS跨到管流过的电流为 ( n n / n p ) ∗ I B (n_n/n_p)*I_B (nn/np)∗IB;
② 当 V i n , c m V_{in,cm} Vin,cm 接近 V D D V_{DD} VDD时,PMOS输入管关闭, 4 I B 4I_B 4IB的电流全部流入NMOS跨导管,实现电流倍增,跨导稳定;
③ 当 V i n , c m V_{in,cm} Vin,cm 接近 V S S V_{SS} VSS时,NMOS输入管关闭, 4 I B 4I_B 4IB 的电流全部流入电流反馈环中,流过PMOS输入管的电流为 ( n n / n p ) ∗ 2 I B (n_n/n_p)*2I_B (nn/np)∗2IB实现电流倍增,跨导稳定;
(5)基于电流反馈环路的RTR输入级
该结构同样要求晶体管工作在弱反型区,通过电流反馈环路使通过 P M O S PMOS PMOS 输入管和 N M O S NMOS NMOS 管的的总电流保持恒定,从而确保总跨导恒定。电流反馈环如图2.9所示。

通过将 I B n + ( n n / n p ) ∗ I B p I_{Bn}+(n_n/n_p)*I_{Bp} IBn+(nn/np)∗IBp 与 4 I B 4I_B 4IB 比较,误差电流对Cc充电后,获得稳定的控制信号 V S V_S VS ,随后 V S V_S VS 和反相后的 V S V_S VS 分别控制 P M O S PMOS PMOS 电流源和 N M O S NMOS NMOS 电流源,调整其电流大小,最终保持 I B n + ( n n / n p ) ∗ I B p = 4 I B I_{Bn} + (n_n/n_p)*I_{Bp} = 4I_B IBn+(nn/np)∗IBp=4IB。通过“复制”的方式获得每个输入对的总电流,如图2.10所示。

其中左边的互补差分对是有效放大器的部分,而右边则是复制电流源,其作用仅仅是为了产生一个理想偏置电流,一个电路实例如图2.11所示。

电路最左边是电流求和电路,通过将“复制偏置电路”的电流2IBn+(nn/np)*2IBp与4IB比较,获得的控制信号调节复制管电流源的栅极,最终维持 2 I B n + ( n n / n p ) ∗ 2 I B p = 4 I B 2I_{Bn} + (n_n/n_p)*2I_{Bp} = 4I_B 2IBn+(nn/np)∗2IBp=4IB ,实际放大器的电流源取自相同的控制信号,进而实现全电压范围内输入跨导维持恒定,实现轨到轨输入级。该方式不接触放大器的敏感节点,是一种较为理想的方式。
(6)基于双环结构的RTR输入级
根据电源电压的高低,电路可能有两种情况。
第一种情况: V i n , c m V_{in,cm} Vin,cm 接近 V D D V_{DD} VDD 和 V S S V_{SS} VSS 时, N M O S NMOS NMOS 和 P M O S PMOS PMOS 差分对仅有一个工作; V i n , c m V_{in,cm} Vin,cm 接近 V D D / 2 V_{DD}/2 VDD/2 时,NMOS和PMOS差分对全部正常工作。此时NMOS和PMOS差分对的工作切换过程分别发生在 V D D / 2 V_{DD}/2 VDD/2 两侧,此时 g m g_m gm的波形如图2.12(左)所示。
第二种情况: V i n , c m V_{in,cm} Vin,cm 接近 V D D V_{DD} VDD 和 V S S V_{SS} VSS 时, N M O S NMOS NMOS 和 P M O S PMOS PMOS 差分对仅有一个工作; V i n , c m V_{in,cm} Vin,cm 接近 V D D / 2 V_{DD}/2 VDD/2 时, N M O S NMOS NMOS 和 P M O S PMOS PMOS 差分对恰好处于工作切换区域,此时 g m g_m gm 的波形如图2.12(右)所示。

很明显后者拥有更小的 g m g_m gm 波动,但实际情况是,电源电压往往不能随意指定,为了使电路呈现处第二种情况,使“内部电源”自动保持在准确的交叠状态,如图2.13所示。

为了实现 P / N P/N P/N 准确交叠,可以通过反馈实现,通过一个低压差稳压器保证最小内部电源电压,即 V D D = V G S n + V D S s a t n + V G S p + V D S s a t p V_{DD} = V_{GSn} + V_{DSsatn} + V_{GSp} + V_{DSsatp} VDD=VGSn+VDSsatn+VGSp+VDSsatp ,电路如图2.14所示。

电路中电流偏置 I B n I_{Bn} IBn 和 I B p I_{Bp} IBp 来自于另一个反馈环路,可以确保 N M O S NMOS NMOS 和 P M O S PMOS PMOS 跨导管恰好工作在一半电流状态,这样生成的电源电压才是预期的电源电压,如图2.14所示。

至此,通过电流反馈环路和电压反馈环路结合的双环结构,便可获得可以使P/N跨导管准确交叠的电源电压,再通过如前文所示的轨到轨输入级,保证电流和跨导在整个输入范围保持均衡即可,一个电路如图2.15所示

(7)其他结构
略,篇幅略长。但是内容略多且复杂,后续有需要再深入。
相关文章:
【模拟CMOS集成电路笔记】轨到轨运放(Rail to Rail)基础(附带实例:基于1:3电流镜的轨到轨输入运放)
【模拟CMOS集成电路笔记】轨到轨运放(Rail to Rail)基础 0前言1 简介1.1轨到轨输入级(1)互补差分对:(2)输入范围切换: 1.2轨到轨输出级(1)推挽输出:(1)输出级偏置: 2轨到轨输入运放2.1基于电流倍增实现恒定…...
【零基础入门unity游戏开发——通用篇】图片相关设置
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...
解决关于原生gmssl无法直接输出sm2私钥明文的问题
解决关于原生gmssl无法直接输出sm2私钥明文的问题 问题描述解决方法解决方法一解决方法二 问题描述 通过gmssl生成sm2公私钥对时,输出的是加密的sm2私钥,无法获取到SM2私钥明文。 解决方法 解决方法一 手动解密: 解决方法二 修改源码&…...
齐次线性方程组及python求解
齐次线性方程组的概念 齐次线性方程组是指所有常数项都为零的线性方程组,其一般形式为: a 11 x 1 a 12 x 2 ⋯ a 1 n x n 0 a_{11}x_1 a_{12}x_2 \cdots a_{1n}x_n 0 a11x1a12x2⋯a1nxn0 a 21 x 1 a 22 x 2 ⋯ a 2 n x n 0 a_…...
基于 Qt / HTTP/JSON 的智能天气预报系统测试报告
目录 一、项目概述 1.1项目背景 1.2项目目标 二、功能需求 2.1 用户界面功能 2.2 后台功能 三、技术选择 3.1 开发框架与工具 3.2 第三方 API 四、UI设计 4.1界面展示 4.2stylesheet样式 五、代码实现 1.构造函数 2.网络请求响应处理函数 3.处理json数据 4.更新…...
基于Real-Sim-Real循环框架的机器人策略迁移方法
编辑:陈萍萍的公主一点人工一点智能 基于Real-Sim-Real循环框架的机器人策略迁移方法本文通过严谨的理论推导和系统的实验验证,构建了一个具有普适性的sim-to-real迁移框架。https://mp.weixin.qq.com/s/cRRI2VYHYQUUhHhP3bw4lA 01 摘要 本文提出的Rea…...
Spring Boot 集成实战:AI 工具如何自动生成完整微服务模块
在数字化转型的浪潮中,开发效率和质量是企业竞争力的关键要素。飞算 JavaAI 作为一款创新的 AI 工具,能在 Spring Boot 开发中,自动生成完整微服务模块,极大提升开发效率。下面,我们就详细介绍如何借助飞算 JavaAI&…...
Vue React
Vue 的源码主要分为以下几个部分: 主要涉及 响应式、虚拟 DOM、组件系统、编译器、运行时。 ├── packages/ │ ├── compiler-core/ # 编译器核心 │ ├── compiler-sfc/ # 处理 .vue 单文件组件 │ ├── compiler-dom/ # 处理 DOM 相关…...
Java高频面试之并发编程-01
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:并行跟并发有什么区别? 并发 vs 并行:核心区别与场景 1. 定义对比 维度并发(Concu…...
(Kotlin)Android 高效底部导航方案:基于预定义 Menu 和 ViewPager2 的 Fragment 动态绑定实现
支持预定义 Menu 并绑定 Fragment,同时保留动态添加 Tab 的能力 BottomTabHelper.kt package smartconnection.com.smartconnect.home.utilimport android.content.Context import android.util.SparseArray import androidx.annotation.IdRes import androidx.fra…...
2024年零知识证明(ZK)研究进展
Sumcheck 整个领域正在转向更多地依赖于 Sumcheck Protocol Sumcheck是用于验证多项式承诺的协议,常用于零知识证明(ZKP)中,尤其是在可验证计算和扩展性上。它的主要目的是通过对多项式进行分段检查,从而保证某个多项…...
AI 驱动的安全分析的价值是什么?
作者:来自 Elastic Riya Juneja, Alyssa VanNice 与 Enterprise Strategy Group 一起量化经济影响 安全行业十分复杂,变化速度极快。攻击面、利益相关者需求、对手战术以及你使用的工具都在不断演变,导致许多安全团队不确定自己是否已做好准备…...
目标检测YOLO实战应用案例100讲-基于孤立森林算法的高光谱遥感图像异常目标检测(续)
目录 3.4 实验结果与分析 3.4.1 数据集介绍 3.4.2 实验参数分析 3.4.3 实验结果评价与讨论 基于高维孤立森林算法的高光谱图像异常检测 4.1 引言 4.2 基于高维孤立森林算法的异常检测模型 4.2.1 面向高维数据的改进策略 4.2.2 基于光谱有效信息率和目标-背景分离…...
flutter框架中文文档,android智能手机编程答案
RecyclerView优化全攻略:从数据处理到性能提升 字节跳动四面有三面都问了这个问题,在此做了整理,希望可以帮助到大家,欢迎查漏补缺。 数据处理和视图加载分离 我们知道,从远端拉取数据肯定是要放在异步的࿰…...
AWE 2025:当AI科技遇见智能家居
3月20日,以“AI科技、AI生活”为主题的AWE2025(中国家电及消费电子博览会)在上海新国际博览中心开幕。作为全球家电行业风向标,本届展会最大的亮点莫过于健康理念在家电领域的全面渗透。从食材保鲜到空气净化,从衣物清…...
Laraver SQL日志 服务开发
Laravel 项目运行中,有时候需要查看sql语句,分析sql运行的耗时,sql语句的复杂程度分析等等 总之,sql的执行在项目中,非常关键,接下来将说明在laravel 中 配置一个sql日志记录服务。 开发思路:…...
NG-ZORRO中tree组件的getCheckedNodeList怎么使用
在 NG-ZORRO(Ant Design for Angular) 的 Tree 组件 中,getCheckedNodeList 方法用于获取当前选中的节点列表(包括半选状态节点)。以下是具体用法和示例: 基本用法 首先,确保你已通过 ViewChil…...
win10之mysql server 8.0.41安装
一 mysql server 下载 官网下载地址页面 https://dev.mysql.com/downloads/mysql/二 免装版使用步骤 1 解压 下载完成后,解压文件夹,如下所示: 2 执行安装命令 D:\soft\mysql\mysql-8.0.41-winx64\mysql-8.0.41-winx64\bin>mysqld --install Service successfully in…...
蓝桥杯专项复习——二分
目录 二分查找、二分答案基础知识 二分查找模版 【模版题】数的范围 借教室 二分查找、二分答案基础知识 二分查找模版 【模版题】数的范围 输入样例 6 3 1 2 2 3 3 4 3 4 5输出样例 3 4 5 5 -1 -1 思路: 对应两个模版,起始位置是对应第一个模版…...
oracle中java类的使用
方式一: 编写一个简单的java类 vi OracleJavaDemo.java public class OracleJavaDemo { public static String processData(String input) { return "Processed: " input; } } 编译 javac OracleJavaDemo.java 生成OracleJavaDemo…...
高并发内存池(一):项目介绍和Thread Cache实现
前言:本文将要介绍的高并发内存池,它的原型是Google的⼀个开源项⽬tcmalloc,全称Thread-Caching Malloc,近一个月我将以学习为目的来模拟实现一个精简版的高并发内存池,并对核心技术分块进行精细剖析,分享在…...
MySQL与Redis数据一致性保障方案详解
前言 在现代分布式系统中,MySQL和Redis的结合使用非常普遍。MySQL作为关系型数据库负责持久化存储,而Redis则作为高性能缓存层提升系统的响应速度。然而,在这种架构下,如何保证MySQL与Redis之间的数据一致性是一个重要的挑战。本…...
“钉耙编程”2025春季联赛(2)题解(更新中)
1001 学位运算导致的 1002 学历史导致的 // Problem: 学历史导致的 // Contest: HDOJ // URL: https://acm.hdu.edu.cn/contest/problem?cid1151&pid1002 // Memory Limit: 524288 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org)#include …...
C#高级:启动、中止一个指定路径的exe程序
一、启动一个exe class Program {static void Main(string[] args){string exePath "D:\测试\Test.exe";// 修改为你要运行的exe路径StartProcess(exePath);}private static bool StartProcess(string exePath){// 创建一个 ProcessStartInfo 对象来配置进程启动参…...
【NumPy】1. 前言安装
0.前言 需要具备[[Python]]基础 定义: NumPy 通常与 [[SciPy]](Scientific Python)和 [[Matplotlib]](绘图库)一起使用, 这种组合广泛用于替代 [[MatLab]],是一个强大的科学计算环境,有助于我…...
双向链表的理解
背景 代码中经常会出现双向链表,对于双向链表的插入和删除有对应的API函数接口,但直观的图表更容易理解,所以本文会对rt-thread内核代码中提供的双向链表的一些API函数操作进行绘图,方便后续随时查看。 代码块 rt-thread中提供…...
基于Spring Boot的家庭理财系统app的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
【测试】每日3道面试题 3/31
长期更新,建议关注收藏点赞。 单元测试策略有哪些,主要内容。 白盒测试黑盒测试基于异常和边界的测试 主要内容:测试用例设计、执行、结果分析、自动化beta测试和alpha测试主要区别 主要区别:测试环境测试者 alphabeta时间先后测…...
Go 语言常见错误
代码及工程组织 1、意外的变量隐藏 示例代码: package mainimport ("fmt" )var FunTester "全局变量 FunTester"func main() {FunTester : "局部变量 FunTester"fmt.Println(FunTester) }func showGlobal() {fmt.Println(FunTest…...
216. 组合总和 III 回溯
目录 问题描述 解决思路 关键点 代码实现 代码解析 1. 初始化结果和路径 2. 深度优先搜索(DFS) 3. 遍历候选数字 4. 递归与回溯 示例分析 复杂度与优化 回溯算法三部曲 1. 路径选择:记录当前路径 2. 递归探索:进入下…...
