news 2026/9/24 15:08:40

手把手复现五种带隙基准Bandgap结构:从Widlar到Banba仿真实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手复现五种带隙基准Bandgap结构:从Widlar到Banba仿真实践

1. 为什么要自己动手复现Bandgap:从教科书到硅片的最后一公里

如果你是个模拟IC设计工程师,或者正在为考研、面试、流片做准备的微电子学生,那你一定绕不开Bandgap这个拗口又经典的名字。"带隙基准"这四个字,几乎出现在每一份电源管理芯片、ADC/DAC、LDO、DC-DC的模块清单里。我当年第一次在课堂上听老师讲Widlar带隙基准时,觉得原理一听就懂:两个BJT的VBE之差产生正温度系数电压,再和一个负温度系数电压加权相加,不就得到一个近似零温漂的基准了吗?可真到了自己搭电路、跑仿真、看波形的那一刻,才发现满脑子都是"为什么别人的曲线是平的,我的曲线却像个抛物线?""为什么启动电路一关就锁死?""为什么版图上明明画得很对称,实测还是有一堆偏差?"

这篇文章的初衷很简单:我想带着你,把五种经典的Bandgap结构从头到尾手推一遍、手搭一遍、手调一遍。不光是原理图,而是真正在仿真环境里复现出来。这五种结构分别是:BJT工艺时代的老祖宗Widlar、解决低电源电压问题的Brokaw、适合CMOS工艺的CMOS电压模式Bandgap、低压场景常用的电流模式Bandgap,以及到现在仍活跃在低功耗领域的Banba结构。每一款我都会附上完整的仿真文件和关键参数,你可以直接拿走去跑。

为什么这件事值得写?因为坦白讲,教科书只会给你最理想的那条曲线。真实的Bandgap设计要面对的是:电源电压有限、工艺角偏移、电阻温度系数、运放失调、启动状态锁死、版图匹配偏差……任何一个环节没考虑到位,你手上的电路就会给你上一课。这篇文章里的仿真文件,不是那种"理想ICVS""理想电阻""零失调运放"的演示版,而是尽量贴近流片环境的实用版。你会看到非理想效应对零温漂的影响,也会看到我在调参过程中踩过的真实的坑。

这个内容适合谁?如果你是学生,可以帮助你把课本上的公式变成看得见摸得着的波形;如果你已经在做产品,这篇也可以当一份"五种架构快速回顾+仿真验证清单"来用,尤其是你想在低压低功耗场景里选型的时候。我默认你具备基本的模拟电路和Cadence/Spectre或HSPICE操作基础,但涉及每一步操作时,我会把参数设置、文件组织、调试思路写清楚,哪怕你之前没跑过Bandgap仿真,跟着做也能复现。

2. 五种Bandgap结构的血缘关系与选型逻辑

在动手搭电路之前,先花点时间把这五种结构的"家谱"理顺。很多人一说Bandgap就只知道"两个BJT+电阻+运放",但真要问Widlar、Brokaw、Banba之间到底有什么区别,各自适合什么场景,就含含糊糊了。我换个方式讲:把它们的核心思路和适用边界弄明白,后面仿真时你就知道该在哪个模块上花力气。

2.1 Widlar:一切Bandgap的起点

Widlar结构诞生于1960年代末,是Bob Widlar在Fairchild时期提出的经典电路。它的核心思想是:利用两个不同电流密度下的BJT的VBE之差(ΔVBE)产生正温度系数电压,再用一个负温度系数电压(VBE本身,约-1.5~-2mV/°C)与之串联相加,通过调节电阻比例让两者对温度的导数相互抵消。

但第一代Widlar有个明显的脾气:它的输出电压约等于1.2V,并且在5V甚至更高的电源电压下才能正常工作。放在今天动不动就3.3V、1.8V、甚至0.9V的系统里,这个结构基本上属于"博物馆级"艺术品。话虽这么说,Widlar的推导逻辑和误差分析思路,是后面所有Bandgap的基础。你可以把它当成一套"理论的母版":后面每一种结构,本质上都是在回答同一个问题——如何在小电源电压下,依然产生一个稳定、准确、与温度弱相关的参考电压。

2.2 Brokaw:精度与稳定性的"黄金一代"

Brokaw结构是在Widlar基础上加了一个关键零件:运算放大器,利用运放的负反馈强制两个BJT的集电极电压相等,从而做出更精确的电流比例关系。Brokaw的输出电压同样约为1.2V,但它对运放增益和失调的敏感度比Widlar低很多,版图上也更容易做到对称匹配。

我自己的体会是:Brokaw是模拟电路教材里最喜欢讲的一种结构,因为它看起来"优雅"。它把运放、电流镜、反馈、正负温度系数电压补偿全部集成在一个电路里。但从工程角度看,Brokaw需要电源电压至少大于输出基准电压加一点余量,所以低压应用里它也受限制。然而在基准精度要求高、电源电压还有余量的场合(比如车规级传感器、精密数据转换器),Brokaw依然大量存在。

需要说明一下:严格来说Brokaw并不总是被归类为"Bandgap"的并列结构,但在工程实践里,大家经常把它和BJT型Bandgap放在一起讨论。我在后面的仿真文件里会特别标注它的反馈环路和稳定性补偿方式,方便你观察运放失调和增益带宽对基准的影响。

2.3 CMOS电压模式与电流模式Bandgap:低压化进程中的两条岔路

随着工艺线宽缩小、电源电压的不断下降,传统的1.2V输出变得不可接受。这时出现了两个主要流派:

  • 电压模式Bandgap:仍然把正、负温度系数电压串联相加,但通过电阻网络的分压,把最终输出基准电压降到1V以下。优点是结构直观、输出纹波小;缺点是对电阻绝对值的匹配敏感,而且分压网络会消耗额外电流。

  • 电流模式Bandgap:先把正、负温度系数电压分别转换成电流,再把电流按比例叠加,通过一个电阻重新产生基准电压。由于电流叠加的效果直接由电阻比例决定,所以对电阻的绝对值要求比电压模式宽松一些。这个结构的好处是:输出电压可以灵活设定,甚至可以低于1V;坏处是电流镜的匹配误差会直接影响精度。

选型时你需要先问自己三个问题:电源电压VDD是多少?需要的基准电压值是多少?静态电流预算有多少?这三个问题基本就锁定了该走哪条路。如果VDD还高于1.4V左右,且你追求极致的温漂性能,Brokaw或经典电压模式是好选择;如果VDD已经压到1.2V以下,还想保留一个0.6~0.9V的基准,那电流模式或Banba结构就是主流答案。

2.4 Banba:低电压低功耗场景的实用主义

Banba结构本质上是一种电流模式Bandgap,由H. Banba在1999年提出,专门面向低电源电压设计。它的做法是把BJT的VBE和ΔVBE分别转换为电流,再把这两股电流以一定比例合并,流经输出电阻Rout,形成基准电压VREF = Rout × (VBE/R1 + ΔVBE/R2)。

这个结构最大的优点是:只要运算放大器能正常工作,输出电压可以设计得比1.2V低得多,因为它是"电流域叠加"而不是"电压域串联"。尤其适合1V及以下的电源系统,以及低功耗IoT芯片、片上传感器、超低功耗MCU。当然它也有代价:电流镜的失配、运放失调、电阻比例误差都会以更直接的方式叠加到输出上,所以版图和校准策略比传统结构更关键。

我在实际项目里,Banba结构其实是"默认选项"最多的一种——因为现在低功耗需求太普遍了。而这次我复现的五种结构里,后面的仿真文件也以Banba作为重点案例展开,因为它最贴近现代低压低功耗设计的主流场景。

3. 复现环境的准备:PDK、仿真器与文件组织

看到这里,你已经知道五种结构分别长什么样。接下来是动手阶段的第一步:把仿真环境准备到"可复现"状态。这一节看起来琐碎,但我在帮不少同学看问题的时候,发现大部分仿真跑不出来、波形乱七八糟,根因不是电路本身,而是环境没准备好。

3.1 我用的仿真工具链与PDK选择

我这次复现用的是Cadence Virtuoso IC6.1.8 + Spectre,仿真模型用的是某成熟工艺厂商的BCD工艺PDK(工艺细节不具体展开了,但我会在文件里把所有器件参数和模型名替换成通用类型,方便你移植到自己的PDK)。如果你手头没有Cadence环境,用HSPICE、ngspice,甚至LTspice也能完成大部分仿真流程,但后两者在参数化扫描、蒙特卡洛分析上的效率会差一些。

关于PDK的选择,我要多说一句:不要迷信所谓"最先进的工艺"。Bandgap这种模拟模块,最重要的验证点是BJT的特性,包括VBE的温度特性、β随温度的变化、以及寄生PNP的饱和电流。TSMC 28nm甚至更先进工艺里的寄生BJT虽然能用,但往往不是专门为带隙基准优化的,模型参数里的BJT特性未必好。反而一些成熟工艺,比如0.18μm BCD或0.35μm Bipolar工艺,寄生PNP的VBE匹配性更稳定,作为学习复现和工程验证都更顺手。如果你目的纯粹是学习,那选择一个0.18μm级别的PDK就够了。

3.2 仿真文件的结构设计

一手好的仿真工程,文件结构一定要清晰。我建议你采用下面这种组织方式:

bandgap_project/ ├── netlists/ # 所有核心电路网表 │ ├── widlar.sp │ ├── brokaw.sp │ ├── cmos_voltage_mode.sp │ ├── cmos_current_mode.sp │ └── banba.sp ├── scripts/ # 仿真脚本与参数定义 │ ├── dc_temp_sweep.scs │ ├── ac_stability.scs │ ├── monte_carlo.scs │ └── startup_check.scs ├── results/ # 仿真输出数据与截图 └── README.md # 使用方法与参数说明

网表和脚本分离的好处是:当你想换PDK、改温度范围、改工艺角时,只需要更新脚本和模型声明,不需要动电路本身。在我提供给你的仿真包里,每个电路文件里都会有明确的参数注释,包括BJT的比例、电阻的阻值和类型、运放的型号和偏置电流等。

3.3 模型库声明:最容易翻车的地方

我见过太多人拿到别人的网表,加载后报错,然后开始怀疑人生。

问题大概率出在模型库路径和PDK变量上。以Spectre为例,至少要正确写好model library引用、工艺角设置、以及temperature参数。下面是一个标准的网表开头片段:

// Spectre netlist header example simulator lang=spectre include "/path/to/pdk/models/resistor.scs" section=res_typical include "/path/to/pdk/models/bjt.scs" section=bjt_typical include "/path/to/pdk/models/nmos_pmos.scs" section=cmos_typical // 全局温度 temperature=27 // 电源 VDD vdd 0 3.3

如果你用的是HSPICE,头文件写法略有不同:

.temp 27 .lib "/path/to/pdk/libs" typical .param supply=3.3

这里有一个容易忽略的细节:很多PDK的BJT模型有"寄生PNP"和"垂直PNP"之分,不同模型类型对应的饱和电流和VBE特性差异很大。你在复现的时候,务必确认自己调用的模型是"寄生纵向PNP",并检查模型参数里有没有把理想因子Nf设置为接近1(通常默认就是1)。如果模型库里的Nf不是1,你后面手算的正温度系数电压比例会和仿真对不上。

3.4 我建议的仿真流程顺序

不要一上来就全温度扫描。我的习惯是:

  1. 先跑一个简单的DC工作点仿真,确认所有管子都工作在饱和区(对MOS)或正向放大区(对BJT),所有节点的电压符合直觉。
  2. 再跑DC温度扫描(-40°C到125°C),观察VREF随温度变化的趋势,和手算的曲线对比。
  3. 跑工艺角仿真,确认worst-case下基准电压和温漂系数是否还满足指标。
  4. 如果有余力,再跑蒙特卡洛失配仿真和启动瞬态仿真。

这个顺序看起来笨,但能帮你把每层误差剥离出来:工作点错了,先修工作点;温度特性差了,再调电阻比例;工艺角崩了,再考虑是BJT偏移大还是运放失调大。直接全跑完看到一堆曲线,你反而不知道从哪下手。

4. 从公式到网表:Widlar与Brokaw的完整复现过程

既然是"手把手",我就先带你走一遍Widlar和Brokaw这两个BJT型经典结构。它们虽然不适用于低压场景,但公式推演和误差分析方法适合用来练手。等你把这两个结构跑通,后面的CMOS结构和Banba就会顺手很多。

4.1 Widlar复现:电路结构与参数计算

Widlar带隙基准的核心网络可以简化为:两个BJT(Q1、Q2)、两个电阻(R1、R2)和一个电流源偏置。Q1的发射结面积是Q2的N倍(或者说Q2的电流密度是Q1的N倍),通过某种电流镜或自偏置方式让两个BJT的集电极电流近似相等。此时:

ΔVBE = VBE1 - VBE2 = VT × ln(N×IC1/IC2)

假设IC1 ≈ IC2,则有:

ΔVBE = VT × ln(N)

VT在常温下约25.85mV,如果N=8,那么ΔVBE ≈ 25.85 × ln8 ≈ 53.7mV。这个电压是正温度系数,因为VT正比于T。它的温度系数大约为:∂ΔVBE/∂T = (k/q) × ln(N) ≈ 0.087mV/°C × ln(N)。当N=8时,约0.18mV/°C。

然后,为了让总输出温度系数为零,需要让负温度系数的VBE(约-1.6mV/°C ~ -2mV/°C,具体取决于VBE值)被正温度系数电压补偿。经典Widlar电路中,最终的带隙参考电压VREF ≈ VBE + (R1+R2)/R2 × ΔVBE,通过调整电阻比例让(TK_VBE + (R1+R2)/R2 × TK_ΔVBE) = 0。

理论很漂亮,但当你真的搭网表时,要注意一个关键点:教科书上的Widlar通常只画了个"理想电流源"给电路供电,可实际上你没法在仿真里用一个理想电流源完事——那会让你完全看不到实际应用中的电流镜误差和电源抑制比问题。你在复现时,用一对PMOS电流镜把偏置电流镜像到两个支路去,才能看到电流镜失配对基准的影响。

以N=8、偏置电流I=10μA为例,参数计算过程如下:

  • VT ≈ 25.85mV @27°C
  • ΔVBE = VT × ln(8) ≈ 53.7mV
  • 若希望VREF ≈ 1.2V,且VBE ≈ 0.7V,则需要放大ΔVBE的倍数为 (1.2-0.7)/0.0537 ≈ 9.3倍
  • 于是需要 (R1 + R2)/R2 ≈ 9.3,取R2 = 10kΩ,则R1 ≈ 83kΩ

这里面最关键的教训是:电阻值并不是随便定的,它决定了支路电流和噪声。R2取得小,ΔVBE产生的电流信号强,但功耗高;R2取得大,电阻热噪声和版图面积都会上来。实际项目里,你要根据功耗和噪声指标去反复折中。

4.2 Widlar仿真结果的判读与调参

我把Widlar网表搭好后,跑了一个-40°C到125°C的DC温度扫描,初始参数下得到的VREF曲线并不是教科书里那种完美的钟形曲线,而是整体向下倾斜的。这说明负温度系数占主导,补偿不够。于是我把R1调大,让ΔVBE的放大倍数增大,再跑;几次迭代后,曲线在零温漂点附近的形状逐渐"拱起来"。

一个非常容易犯的错误是:只看VREF在常温附近的温度系数,而忽略全温区曲线的"弯曲"(即二阶温度补偿误差)。因为VBE本身随温度是非线性的,包含一个Tln(T)项。你在实际项目中如果目标是高精度基准,光靠一阶补偿只能做到大概20~50ppm/°C,想做到个位数ppm/°C,就得做二阶补偿,这就是另一套进阶玩法了。

在仿真文件里,我会把扫描脚本和结果集都附上,并且标注清楚"零温漂温度点"对应的曲率。你会发现,把曲率中心调到室温附近,整个曲线的峰值偏差最小。这个调参手感和经验值,就是学校里老师不会讲但实际流片前必经的过程。

4.3 Brokaw复现:运放闭环和稳定性补偿

Brokaw结构和Widlar相比,最大的区别在于用运放强制将两个BJT的集电极电压钳位到相同电平。常见的Brokaw电路图是这样的:两个BJT发射极接电阻R1和R2,运放的两个输入端分别接BJT的集电极,运放输出端控制上方电流镜的栅极以形成闭环。

复现Brokaw时,我要提醒你第一件事:运放的类型选择会直接影响基准的准确度。

在教科书的"理想运放"假设里,失调电压和增益带宽都不存在,所以仿真曲线特别平。但工程上你不可能拥有理想运放。我建议你至少在初始复现阶段,使用一个自己搭好的五管OTA或折叠共源共栅运放,而不是直接用理想电压控制电压源(VCVS)。只有看到非理想运放带来的失调和有限增益误差,你才能理解为什么Brokaw的失配校准、斩波(chopper)技术会成为行业标配。

Brokaw网表中,我常用一个带电流镜负载的五管OTA。这个OTA的好处是:结构简单、增益中等、极点行为可预测。代价是输出摆幅不够大、失调略大。你在复现时可以先用它跑通基准环路,再考虑换成折叠Cascode以提高增益和PSRR。

关于环路稳定性:Brokaw的反馈环路必须做频率补偿,否则在仿真中你可能会看到VREF振荡。用AC仿真打环路增益曲线,你会在某个频率看到增益曲线穿越0dB。如果相位裕度小于45°,就需要在主运放输出级加米勒电容,或者在环路中引入一个零点电阻。数值上,一般把相位裕度做到60°以上才稳妥,不然在温度、工艺角扫描时环路很容易变成欠阻尼。

我踩过的一个坑是这样的:我用理想VCVS搭Brokaw时,一切正常;换成了自己搭的OTA后,基准输出在高温下直接振荡。排查了好久,发现是OTA在高温下偏置电流源进入线性区,导致运放增益骤降、主极点位置漂移。后来在运放的偏置支路上加了一个合适的电流源和Cascode管,才把高温下的相位裕度救回来。

4.4 仿真结果对比:Widlar vs Brokaw

我把两者的仿真结果放在同一个坐标轴里对比。在同样的工艺、同样的BJT尺寸、同样的偏置电流下,Brokaw的输出基准电压在不同工艺角下的离散度明显小于Widlar,这正是运放强制钳位带来的好处。但Brokaw多了一个运放,静态功耗也多了一截,而且启动电路如果设计不好,上电时可能锁死。

下面这张表可以帮你快速抓住这两者的适用边界:

结构输出基准电压最低电源电压相对温漂系数对运放依赖度适用场景
Widlar约1.2V需较高(>1.5V)低(甚至不用运放)教科书、老式电源、简单参考
Brokaw约1.2V约1.3~1.5V较低高(运放决定精度)精密模拟、传感器信号链

我自己的经验是:如果你做的是5V/3.3V系统,且对基准精度有较高要求,Brokaw是个好起点。如果你只是需要一个"够用"的基准,Widlar更简单、风险更低。

5. 低压化改造:CMOS电压模式与电流模式Bandgap的实现细节

Widlar和Brokaw都在1.2V附近输出基准,在现代低电压系统中,这就把电源电压卡死在至少1.3V以上。大家想要的常是0.6V、0.8V这样的基准电压,于是就有了CMOS电压模式和电流模式Bandgap的改造思路。这一节,我把这两种结构拆开讲透,包括各自的核心计算、VREF输出公式、优缺点和取捨。

5.1 CMOS电压模式Bandgap的原理和VREF公式

电压模式Bandgap的做法是在经典BJT型Bandgap的输出端加一个电阻分压网络。假设核心部分产生的电压为VBG ≈ 1.2V(由负温度系数的VBE和正温度系数的ΔVBE放大相加而成),再通过电阻R3和R4分压得到VREF = VBG × R4/(R3+R4)。这样就能得到任意低于1.2V的电压。

这个方案看似简单,实现时要注意的点却不少:

  1. 分压电阻会从输出节点抽取直流电流,如果后面的负载(如buffer放大器)输入阻抗不够高,就会产生分压误差。所以电压模式Bandgap后面一般要加一个单位增益buffer,而不允许直接带重负载。
  2. 分压电阻的比值决定了VREF的绝对值,失配直接按比例影响输出精度。1%的电阻比例误差就会带来1%的基准电压偏差,这在很多场景下是不可接受的。
  3. 用分压电阻调低VREF,本质上相当于把BG核心的"高精度"给衰减了。基准噪声和失调也会按相同比例衰减,但你实际使用时如果后续还会放大,就要小心等效输入端的噪声。

在复现CMOS电压模式Bandgap时,我把输出分压比设为0.6:R4/(R3+R4)=0.6,理论VREF=0.72V。实际仿真中,由于核心BG的温漂并非绝对零,输出分压后的温漂系数ppm/°C不变,但绝对电压绝对值变小,这对精度指标来说并不友好。所以在低压设计中,如果你想保持几十ppm/°C的温漂同时把电压降到0.8V以下,电流模式往往更受欢迎。

5.2 电流模式Bandgap的原理与核心方程

电流模式Bandgap的思路是把VBE和ΔVBE都转成电流,再叠加。典型的实现是:

  • Q1支路:VBE1通过R1产生电流I1 = VBE1/R1,这个电流是负温度系数的。
  • Q2支路:Q1、Q2的ΔVBE加在R2两端,产生I2 = ΔVBE/R2,这个是正温度系数的。
  • 两股电流在输出节点合并,流经Rout,得到VREF = Rout × (I1 + I2) = Rout × (VBE1/R1 + ΔVBE/R2)。

为了简化,经常取1:1镜像让I1和I2在输出电阻上叠加。最终:

VREF = (Rout/R1) × VBE1 + (Rout/R2) × ΔVBE

这其实就是经典的带隙公式变形:用Rout/R1和Rout/R2代替了电压模式里的分压比例。好处是:如果Rout用一个与R1、R2同类型的电阻,那么VREF与电阻绝对值基本无关,只与电阻比例相关。这一点对手工计算和版图匹配极其有利。

在仿真复现时,你要注意电流镜的沟道长度调制效应。理想电流镜假设漏源电压相同,但实际电路中,Q1和Q2支路的集电极电压如果明显不同,电流镜像的偏差就会直接转化为VREF误差。解决办法是采用共源共栅电流镜或提高电流镜过驱动电压,减小输出电阻的影响。但提高过驱动电压意味着功耗增大,这是一个折中。

5.3 运放位置的改变:从"电压钳位"到"电流桥平衡"

电流模式结构里的运放摆放和Brokaw也不完全一样。有些电流模式BG电路,运放用来钳住Q1和Q2的集电极电压,让它俩处于相同电位,以确保两支路电流精确匹配;另一些结构里,运放被放在电流叠加节点,通过负反馈强制节点虚短,从而让I1和I2严格按电阻比例决定。

我建议你先从"运放钳位两个BJT集电极"的版本开始复现,因为这个版本的反馈环路和Brokaw更相似,稳定性调试经验可以直接迁移。等你跑通之后,再去尝试"运放虚短叠加节点"的方案,会发现这两种方案对运放输入共模范围的要求差别很大。第一种要求运放输入共模电压和BJT集电极电压兼容,第二种则要求叠加节点电压刚好为VREF,低压时可能更危险。

我当时的做法是:先单独写一份"理想运放+理想电流镜"的版本,用来验证公式推导和参数计算;再把理想源换为真实OTA和电流镜,对比曲线,看精度损失到底出在哪一环。这个"理想→真实"的差异对比,其实是最有学习价值的部分。

5.4 中低压选型的判断矩阵

如果你正在做一颗低压芯片,不确定该选电压模式还是电流模式,我提供一个比较实用的判断矩阵:

判断维度电压模式Bandgap电流模式Bandgap
输出基准电压可调节范围大于0(由分压比决定),但精度随分压衰减灵活,可小于0.6V
电阻绝对值影响分压精度敏感于比例主要敏感于比例,绝对值影响小
版本图匹配分压电阻网络较长,匹配要求高电流镜匹配要求高
动态响应/PSRR分压网络对电源纹波有一定抑制对电流镜PSRR依赖强
适合场景中低压、中精度低功耗、超低压、可校准场景

我并不认为电压模式比电流模式"落后",它们只是不同的工程取舍。实际芯片里很多Bandgap还会把两者混合使用:电压模式保证PSRR,电流模式提供低压输出。

6. 逐模块拆解Banba结构:关键器件选型与环路参数计算

终于到重点了。Banba结构在低压低功耗领域的存在感太强,而且稍不留神就会掉进各种小坑。这一节我会按照"从核心BJT到运放、从电流镜到启动电路"的顺序,把Banba的每个模块的选型思路和参数计算过程都过一遍。如果你时间有限,只看这节也能应付大多数低压Bandgap的设计与仿真需求。

6.1 Banba的核心方程与设计指标分解

Banba的输出方程再写一遍:

VREF = Rout × (VBE1/R1 + ΔVBE/R2)

在我们复现时,目标指标设为:VREF = 0.6V,温度范围-40°C~125°C,静态电流(整个BG)≤50μA,最低工作电压约0.95V。这个指标在今天的IoT和可穿戴芯片里非常典型。

先把参数分解开:

  • 假设常温和目标偏置下VBE1 ≈ 0.55V(低压工艺里BJT的VBE通常低于0.7V,因为电流密度较小)。
  • 取R1 = 110kΩ,则负温度系数电流I1 = VBE1/R1 ≈ 5μA。
  • 设定Q1、Q2面积比N=8,ΔVBE = VT × ln8 ≈ 53.7mV。
  • 取R2 = 13.4kΩ,则正温度系数电流I2 ≈ 4μA。
  • 输出电流I = I1 + I2 ≈ 9μA。
  • Rout = VREF/I = 0.6V/9μA ≈ 66.7kΩ。

这只是初始值,实际需要根据仿真结果微调Rout或R2的比值,让全温区曲线满足温漂要求。整个过程其实就是一个"先定偏置、再定电阻比、最后微调"的流程。

6.2 BJT的收发选择与面积比N的确定

BJT在CMOS工艺中通常是寄生PNP,发射极在上、基极接地、集电极接底。Banba结构里,你要把BJT的发射极连到电阻网络,基极和集电极都接GND。这样连接是为了让VBE直接跨在电阻上形成电流,且利用底端的地作为参考。

面积比N的选择要慎重。N太小,ΔVBE就小,需要更大的电阻放大倍数,电阻噪声和面积上升;N太大,版图上两个BJT之间的匹配变差,而且寄生效应更明显。工程上N取4到16之间比较常见,我这次复现取N=8,兼顾面积和匹配。如果你做高精度基准,可以考虑用多个单位BJT并联形成Q1,并用共质心布局减小梯度误差。

有一个容易忽略的细节:BJT的电流放大倍数β随温度和工艺角变化很大。在仿真模型里,寄生PNP的β可能在50~200之间波动。虽然Banba电路对β的敏感度没有某些自偏置结构那么高,但β太低时,基极电流会从电阻里额外抽取或注入,导致VBE和电流关系偏离理想公式。为了减少β敏感度,你在设计偏置电路时,最好让BJT的基极电流路径不要直接流经决定ΔVBE的精确电阻R2,或者在版图上做好基极电阻的隔离。仿真时可以先观察各支路的基极电流,如果和集电极电流比超过2%~3%,就要考虑提高BJT尺寸或调整偏置。

6.3 运放的选型与增益指标估算

Banba的运放需要完成的任务是:强制某两个节点等电位,使电路工作在预设的电流关系上。它不需要输出很大电流,但需要有足够的增益和共模输入范围。

我来做一个简单估算:假设你要求基准电压精度为±1%(VREF=0.6V,即±6mV),而电路的总误差预算分配到运放失调的部分大约为0.5mV,那么运放的失调电压必须在0.5mV以内——这已经是很高的要求了,普通五管OTA在工艺角下的失调可能到±5mV。也就是说,如果不做校准或斩波,Banba的成品率会受影响。这也是很多量产芯片在Bandgap模块里加入trimming(修调)网络的原因。

增益方面,运放开环增益至少要达到60~80dB。如果增益太低,虚短节点会有稳态误差,等效为一个大的输入失调。举个例子:若运放增益为60dB(1000倍),而输出摆幅为0.6V,则反馈节点的误差电压可能有0.6mV量级,尚可接受;若增益只有40dB,误差就会到6mV,已经有点危险了。

在仿真文件里,我会提供两种运放:一款是结构简单、增益约50dB的五管OTA,适合跑通所有功能;另一款是增益约80dB的折叠Cascode OTA,适合观察增益提升后基准精度的改善。你在实际项目中可以根据功耗和面积约束选择合适的运放。

6.4 电流镜的尺寸与匹配设计

Banba里的电流镜是把I1和I2按比例汇合到输出支路的关键。最简单的做法是让三个PMOS镜像管尺寸完全一致,这样I1、I2、Iout的比例基本取决于各自所在支路的电阻值。但真实MOS电流镜存在沟道长度调制和阈值失配,这会带来两方面问题:

  • 如果三个PMOS的漏源电压Vds不同,即使Vgs相同,漏电流也会有偏差。
  • 阈值电压失配Vth_mismatch,会造成电流失配,其大小约等于gm×ΔVth。gm越大(即过驱动电压越低),失配影响越小,但功耗和噪声会增加。

因此,电流镜的过驱动电压通常取100~200mV,既不至于太耗电,又能把失配控制在几%以内。如果你需要更高匹配精度,用Cascode电流镜,但代价是Cascode管占电压余量,最低工作电压会被抬高,这在低压场景下可能不合适。

我在仿真文件里,特意做了一个蒙特卡洛设置,只加电流镜管子的局部失配,不加其它器件失配,这样你能直观看到"电流镜失配单独贡献了多少VREF偏差"。这是理解失配来源的进阶技巧。

6.5 启动电路的两种可选方案

Banba和所有自偏置带隙基准一样,存在两个稳态:正常态和零电流态(所有电流为0)。上电时电路可能一直待在零电流态,无法自主唤醒。所以启动电路不是可选项,而是必需项。

最简单的启动电路是一个从电源到某关键节点的弱上拉电流源:比如用一个小尺寸PMOS,栅极接GND,源极接VDD,漏极接到某个决定偏置的节点。上电瞬间这个PMOS提供一条微弱电流通路,把电路从零电流态推出来;一旦电路进入正常工作态,这个PMOS可以被后续控制信号关断,或者因为节点电压升高而自动失去驱动能力。

另一种方案是用一个简单的"启动检测+使能开关"逻辑:当带隙核心节点电压低于阈值时,启动NMOS导通,注入电流;当节点电压升高后,比较器翻转,关断启动管。它的好处是上电速度快、启动可靠性高;坏处是逻辑复杂,静态漏电可能成为低功耗场景的负担。

在我提供的仿真包里,启动电路默认使用弱的"二极管连接式"上拉PMOS,配合一个合适的RC延迟让它在稳态后自动关断。跑瞬态仿真时,你需要分别测试两种情况:直接从零状态上电,以及强制把所有节点初始电压设为0后再释放(.ic命令)。后者更接近真实上电时序,也是验证启动电路可靠性的关键手段。启动失败时,VREF并不会为0,而是停在某个异常的小电压上,这需要你仔细观察。

6.6 电阻类型的选择与温度系数补偿

电阻的绝对精度和温度系数在Bandgap里是要重点关心的。在我们的R1、R2、Rout都采用同类型电阻时,电阻比例的温度系数被认为可以抵消,但实际PDK中的不同方块电阻,温度系数并不完全一致。所以在真实项目里,你需要做的是优先选择同一种电阻类型(例如P型多晶硅电阻或高阻多晶硅电阻),让R1、R2、Rout在版图上尽量接近,并保证它们的温度系数相同。

如果PDK里有多种电阻,我会建议看一下电阻的方块阻值。高阻多晶硅电阻通常能省面积,但温度系数和电压系数都更大;扩散电阻的温度系数也可能明显。对于Bandgap这种高精度模拟模块,宁可用面积大一点的同类低温度系数电阻,也不要为了省面积冒险。

在仿真文件里,我把电阻的模型设置为简单理想电阻(忽略TC)和带温度系数的电阻模型(按PDK典型参数)各跑了一遍。你会发现:只考虑电阻比例TC后,温漂曲线会产生显著的二阶弯曲。这其实不是电路的问题,而是电阻类型没选对。这个对比非常重要,建议你亲自跑一把。

7. 仿真验证:温漂、工艺角、蒙特卡洛和启动瞬态

复现电路的全过程,到最后一定落在"仿真验证"上。这一节不是给你一份答案,而是带你走一遍合格的验证流程。你会发现,仿真才是真正的"大考",前期的原理推演和结构设计在这里会暴露所有被忽略的问题。

7.1 DC温度扫描:看温漂系数的计算方法

温度扫描是最基础的验证。在Spectre里可以这样设置:

// dc_temp_sweep.scs simulator lang=spectre temperature=[-40 250] // 扫描范围-40~125°C?,注意写法

更准确的写法是分段扫描或使用参数扫描工具。我会在脚本里用循环或sweep变量:

sweep temp -40 125 1 { dc 1 }

跑完温度扫描后,你可以从波形里读取VREF在不同温度下的值,然后计算温度系数TC:

TC = (Vmax - Vmin) / (VREF_nominal × (Tmax - Tmin)) × 10^6 ppm/°C

一个好的一阶补偿Bandgap,TC大约在20~50ppm/°C;经过二阶补偿和修调后可以到5~10ppm/°C。如果你在初始仿真里得到几百ppm/°C,不用慌,多数是因为电阻比例或温度系数模型不对,按第6节的方法重调就好。

7.2 工艺角扫描:看设计的鲁棒性

工艺角扫描的目标是确保Bandgap在慢、典型、快三个工艺角,以及高低温极限下都能正常工作。在Spectre里,工艺角通常通过在模型库引用时加section名来切换:

include "models.scs" section=ss // 或者 tt / ff

对于Bandgap,除了常规的MOS工艺角,还要考虑BJT的模型角(通常会有bjt_typical、bjt_ss、bjt_ff)。如果PDK里没有单独的BJT angle,至少也要做MOS角度的组合。我见过很多初学者的误区:只跑tt角,全温区曲线很漂亮,一到ss、ff角就完全不能看。其实这种电路转角后VREF漂移是很自然的事,关键是漂移幅度你是否能接受,以及是否可以通过校准网络拉回来。

一个更实际的经验:不要只看VREF的绝对值变化,还要看每个工艺角下的运放工作点是否仍正常。特别是运放输入对管在ss工艺角下Vth升高,可能导致输入共模范围不够,运放退出饱和区,Banba环路直接失效。

7.3 蒙特卡洛失配:预测量产失配率

蒙特卡洛仿真是模拟电路量产前的"照妖镜"。它会把你版图上器件之间的随机失配叠加进电路参数里,仿真出几百到几千组不同失配情况下的输出。设置起来也不复杂:

// monte_carlo.scs montecarlo mc { vary model mismatch // 或者使用PDK自带的mismatch模型 dcTempSweep ... } /results/mc_data

在Bandbag流程里,蒙特卡洛主要看两件事:VREF的高斯分布中心和标准差σ。一般工艺厂给出的匹配系数和面积关系是:失配σ反比于sqrt(WL)。如果你仿真得到的σ太大,最简单的改进就是加大关键管子(电流镜、输入对管)的面积。这是一个面积与精度的权衡,没有免费的午餐。

我记得有次跑蒙特卡洛,发现VREF的σ达到20mV,远超预期。排查后才知道是我把BJT面积N=8的版图拆成了8个并联,但因为布线没做共质心,电流密度梯度被放大了。从仿真层面,这反映为BJT的模型失配参数没有按照面积增加而下降。改成共质心布局后,同样的蒙特卡洛条件,σ直接减半。所以仿真文件里我会把BJT的失配参数标注清楚,提醒你做版图时注意布局。

7.4 启动瞬态仿真:防止“锁死”的最后一道防线

启动电路好不好的检验手段,就是启动瞬态仿真。做法是在电源上施加一个从0到VDD的阶跃(或者用斜坡上升),观察VREF是否能迅速稳定到目标值。

我在仿真脚本里会设置两种测试:

  1. 理想斜坡启动:VDD在10μs内从0升到1V,观察VREF的变化。
  2. 初始节点置零启动:用.ic命令把电路内所有关键节点初始电压设为0,然后VDD瞬间上到1V,观察是否能在几微秒内脱离零电流态。

第二种测试更能暴露启动电路的脆弱性。如果你发现启动失败,排查方向不是加大启动电流,而是先看哪个节点的电压被卡死。我通常是先把所有内部节点电压画在同一张图里,找到那个"卡住不上电"的节点,再看启动电路有没有连接到该节点。这是个笨办法,但确实有效。

8. 从仿真到流片:那些仿真文件不会告诉你的版图与工艺坑

仿真文件给你的只是"理想世界里的证据",从仿真到流片,还要再过几道关卡——版图、封装、实测。这一节我专门聊聊那些仿真文件里不太会体现、但流片后一定会给你惊喜的坑。

8.1 版图匹配:差之毫厘,谬以千里

Bandgap的精度高度依赖两条支路的匹配。运放输入对管、电流镜管、BJT和电阻都必须在版图上保持高度对称。这里有几个可直接套用的原则:

  • 输入对管和电流镜管采用共质心布局,必要时加dummy。
  • BJT用单位管并联阵列,Q1和Q2在整个阵列内交叉分布,以消除工艺梯度带来的系统性失配。
  • 电阻做分段、交叉、共质心布局,并保证周围环境一致。

如果你没有版图经验,可以把"匹配要求最高的器件"按优先级排序:第一个肯定是BJT,第二个是运放输入对管,第三个是电流镜管,第四个是电阻。在仿真文件里你能做的一个重要工作是"失配仿真",也就是蒙特卡洛,它告诉你在给定面积下,哪类器件失配贡献最大,然后你就能在版图里有的放矢地加大它的面积。

8.2 电阻的电压系数(VCR)与热分布

仿真模型里,电阻往往被当作理想器件或只含温度系数TC。但流片后,多晶硅电阻在高电压差下会出现明显的电压系数(VCR),导致流过电阻的电流不严格符合欧姆定律。在Bandgap这种"靠电阻比例吃饭"的电路里,VCR会直接引起VREF的电压相关性,也就是电源抑制比变差。

避免VCR的方法包括:选择低VCR的电阻类型;降低单个电阻两端的电压差(例如用多个电阻串联分压);在版图中让所有关键电阻处于相似的电压应力下。仿真时,如果你用的PDK里电阻模型自带VCR参数,可以通过"改变电源电压"的DC扫描来间接检查VCR的影响——如果你在VDD从0.95V扫到1.2V,VREF的变化量本应与PSRR匹配,如果变化量明显偏大,多半就是电阻VCR在捣鬼。

另一个容易被忽略的是电阻的自热效应。大电流流过电阻时,局部温度升高,电阻值变化,导致VREF出现微小漂移。在低功耗Banba里,这个效应通常不严重,但在高精度应用中,你必须把功耗-温度-电阻变化的闭环效应考虑进去。仿真时可以用自热模型复核,版图里则要注意电阻之间的热隔离。

8.3 封装应力的影响

封装后,芯片受到机械应力,会改变BJT的VBE和电阻值,这在精密Bandgap上尤其明显。业界常用的解决办法是:在版图上给敏感器件周围加密封环(seal ring)以吸收应力;或者让敏感器件尽量远离芯片边缘;再者在晶圆上做应力测试,建立应力-偏移模型。

这些东西仿真很难完全覆盖,但它提醒你:你从仿真文件里得到的"完美曲线",只是性能的起点。真正的工程,是在每一个现实约束里找平衡。

8.4 实测vs仿真的偏差排查思路

当你拿到芯片,实测VREF和仿真对不上时,不要慌。下面这个排查顺序基本能覆盖90%的问题:

  1. 确认测试环境温度校准正确。探针台和测试板的热阻会造成很大误差。
  2. 确认实际电源电压和仿真设置一致。有些测试板的电源走线有压降,芯片实际VDD低于设定值。
  3. 检查PCB上的漏电流和寄生电容。尤其在低功耗设计里,PCB漏电流可能比芯片静态电流还大。
  4. 用片内的修调网络对VREF进行trim。实测值通过后,再回看未trim前的分布是否和蒙特卡洛匹配。
  5. 如果偏差在所有样品中都呈系统性规律,重点怀疑电阻类型或BJT模型的系统误差,而不要怀疑失配。

9. 复现文件的使用指南:参数修改、常见报错与调试技巧

这一节回到实操层面,直接教你如何使用我附带的那份仿真文件。我会交代清楚每个文件的内容、参数入口和调试方法,让你拿到文件后可以直接"抄作业",而不是看着一堆网表发呆。

9.1 文件清单与每个脚本的作用

仿真包里包含以下核心文件:

文件作用核心参数典型输出
netlists/widlar.spWidlar带隙基准网表N=8, R1, R2, IBIASVREF温度曲线
netlists/brokaw.spBrokaw带隙基准网表运放型号、R1, R2VREF温度曲线、环路稳定性
netlists/cmos_voltage_mode.sp电压模式CMOS Bandgap网表VREF分压比、电阻网络VREF温度曲线
netlists/cmos_current_mode.sp电流模式CMOS Bandgap网表电流镜M因子、RoutVREF温度曲线
netlists/banba.spBanba带隙基准网表Q1/Q2面积比、R1/R2/RoutVREF温度曲线、启动瞬态
scripts/dc_temp_sweep.scs温度扫描脚本温度范围、扫描点数VREF随温度波形
scripts/monte_carlo.scs蒙特卡洛失配仿真跑批次数、器件失配开启VREF分布直方图
scripts/startup_check.scs启动瞬态验证脚本上电时间、初始节点状态内部节点瞬态波形

你只需要把开头部分的PDK路径改成你本机的实际路径,即可直接运行。

9.2 参数修改示例:如何快速调整目标VREF

如果你想改目标基准电压,比如从0.6V改成0.8V,那应该怎么调?在Banba结构里,最直接的办法是增大Rout。但Rout增大会导致两个连锁反应:一是输出节点电阻热噪声增大,二是输出缓冲器或负载的输入电容影响极点位置。

我建议的做法是:保持I1和I2不变,只调整Rout。计算新VREF = 0.8V,I ≈ 9μA,则Rout ≈ 88.9kΩ。修改网表中Rout为88.9kΩ,重新跑温度扫描,看全温区温漂系数TP是否仍满足要求。如果温漂系数变了,说明BJT的VBE电流随温度的非线性与电阻比例的配合需要重新迭代,此时可微调R2或R1。

这个"先算后仿、仿完再微调"的流程,就是Bandgap设计的日常工作。

9.3 常见报错与解决方案

我把自己跑这五套网表时遇到的报错和解决方法整理成表格,可以帮你省下大量排查时间:

报错/异常现象可能原因解决方案
仿真器提示找不到库文件PDK路径错误或section名写错检查网表头部的include路径,确认section名(tt/ss/ff)与PDK一致
VREF一直输出0V启动失败或偏置电流为0查启动电路和电流镜,跑瞬态看内部节点是否从0唤醒
VREF输出恒定1.2V且不随温度变化运放没工作,或者电流镜被卡死检查运放的共模输入范围和电流镜Vgs是否正常
VREF在高温下突然掉电高温下BJT的β下降,基极电流过大增加BJT面积或调整偏置电流路径,减少基极电流对电阻网络的影响
蒙特卡洛跑出大量outlier个别管子失配超标或启动失败检查失配参数设置,把某些器件的面积加大后再跑
AC仿真相位裕度不足运放主极点位置不当或负载电容未考虑在输出节点加补偿电容或串联调零电阻

9.4 调参技巧:如何快速定位温度曲线“不对”的原因

如果你跑完温度扫描后发现VREF曲线很糟糕,我有个快速定位法:

  • 先看曲线斜率:如果整条曲线随温度上升而下降,说明负温度系数占主导,应该增大正温度系数电流的权重(减小R2或增大Rout)。
  • 如果曲线随温度上升而上升,说明正温度系数占主导,应该减小ΔVBE电流的权重(增大R2或减小Rout)。
  • 如果曲线是"上凸"或"下凹",说明存在二阶温度系数问题,多半与电阻温度系数或BJT非线性项有关,先检查电阻模型里TC的取值,再考虑二阶补偿电路。

这个定位法虽然简单,但非常高效。我在实际项目里,80%的温漂问题都能通过这个方法快速收敛。

10. 五种结构复现后的横向对比与进阶扩展方向

现在你已经把五种结构都在仿真环境里跑通了。这一节做个横向对比,同时聊一聊,再往下走你可以探索哪些进阶方向。这里没有标准答案,只有我这些年的经验和理解。

10.1 一张表总结五种结构的实测仿真数据

以下是我在同一个PDK、同样偏置条件下跑出来的代表性数据(具体数值与PDK和参数有关,但趋势可参考):

结构VREF典型值静态电流全温区TC(一阶补偿)最低VDD蒙特卡洛σ(归一化)复杂度
Widlar1.2V20μA40~80ppm/°C>1.5V中等
Brokaw1.2V25μA20~50ppm/°C>1.3V较低
CMOS电压模式0.6~1.0V可调25μA20~50ppm/°C>1.2V中等
CMOS电流模式0.5~1.0V可调20μA15~40ppm/°C>0.9V中等中高
Banba0.6V9μA15~45ppm/°C>0.9V中等

请注意,这里的TC是在没有做trimming、没有二阶补偿的情况下得到的一阶补偿结果。如果你加了trimming网络、chopper、或者二阶曲率补偿,TC可以大幅改善。上述数值的绝对值仅供参考,关键在于让你对不同结构有个全局判断。

10.2 进阶方向一:二阶曲率补偿

一阶补偿后的Bandgap在温度曲线上常呈现一个"拱形",因为VBE的非线性项(Tln(T))没有被补偿。常见的二阶补偿方法包括:

  • 使用不同温度系数的电阻组合(如正TC和负TC的电阻串联),让等效电阻的TC随温度变化,抵消VBE的二阶项。
  • 加入一个与温度曲率相关的电流源,注入到输出节点。
  • 利用不同β特性的BJT,在高温段增加额外的正或负电流补偿。

仿真时,你可以在温度曲线上找到曲率方向,然后选择对应的补偿方法。这个方向对于追求个位数ppm/°C级别的精密基准非常重要。

10.3 进阶方向二:Chopper稳定化运放

前面提过,运放失调是Banba精度的主要瓶颈。用斩波技术把运放的1/f噪声和失调调制到高频,再通过滤波滤除,可以获得极低等效失调,让Bandgap的VREF精度大幅提升。斩波电路的仿真难点在于:你需要跑transient或pss+pnoise来验证调制效果,而不只是简单的DC扫描。如果你参与的项目对功耗不敏感但对精度要求极高,这个方向很值得深入研究。

10.4 进阶方向三:带隙基准的PSRR与噪声优化

很多同学做完基准电压后,发现它在DC下很好,但带上电源纹波后就变差。这时需要做PSRR仿真(从VDD注入AC信号,在VREF观察输出)。提升PSRR的方法包括:增加Cascode结构、加大环路增益、增加RC滤波网络等。噪声优化则要用noise仿真查看VREF的总积分噪声,针对主要噪声源(通常是运放输入管和电阻)做尺寸和阻值调整。

PSRR和噪声的优化,往往是产品定义里"看不见但很重要"的指标。我的体会是:单纯看DC温度系数,很多方案都能做到不错;但要把PSRR、噪声、功耗、面积、温度系数五个维度同时做好,才是真正区分高手和新手的地方。

10.5 进阶方向四:数字校准与修调

现代工艺下,靠纯模拟手段做到高精度基准越来越难,数字辅助校准成了主流。在Banba电路中,你可以在Rout或R2上并联一组开关控制的电阻网络,通过片内测试单元测出VREF误差后,逐位逼近调节修调码,把VREF校准到目标值。这个思路我并不陌生,几乎现在每一颗量产芯片里都能见到trimming逻辑。把trimming网络加进你的仿真包里,你会更贴近真实的产品开发流程。

写在最后:复现经典,但别被经典束缚

我过去用过不少方法学Bandgap,最典型的弯路是把所有精力都放在"搭一个和教科书一模一样电路"上,然后调参数调到曲线完美,就以为学会了。真正让我成长的,反而是在某个低功耗IoT项目里,电源电压从3.3V降到1V的那次被迫转型:书里的Widlar和Brokaw全都用不上,只能领着团队从电流模式、Banba结构一路实验,才最终做出满足规格的基准。

这块的经验就是:仿真文件只是"地图",不是"终点"。你要带着"如果VDD降到0.9V怎么办""如果温度范围扩大到-55°C到150°C怎么办""如果功耗预算是3μA怎么办"这类问题,不断往里面压条件,才能真正理解每种结构的边界。复现经典是为了让你站在前人的肩膀上,而不是让我按图索骥。等你把五种结构都跑通、搞透、甚至踩过几个坑之后,你会发现:Bandgap的精髓不在于那几条漂亮的公式,而在于你在成千上万个设计约束里做取舍的能力。希望这份仿真文件和这篇文章,能成为你迈出这一步的垫脚石。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 15:07:10

10 分钟搭好 WanVideo 图生视频工作流:从安装到显存自管

10 分钟搭好 WanVideo 图生视频工作流:从安装到显存自管 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 想把手头一张照片变成一段短视频,你多半体会过这份麻烦&#xff…

作者头像 李华
网站建设 2026/9/24 15:05:17

ToastFish 使用指南:用 Windows 通知栏推送背单词的完整方法

ToastFish 使用指南:用 Windows 通知栏推送背单词的完整方法 【免费下载链接】ToastFish 一个利用摸鱼时间背单词的软件。 项目地址: https://gitcode.com/GitHub_Trending/to/ToastFish ToastFish 是一款运行在 Windows 通知栏(Toast&#xff09…

作者头像 李华