PCIe 5.0 PHY测试实战:Tx/Rx/链路训练与时钟全解析
1. 为什么PCIe 5.0 PHY测试值得单独拿出来讲PCIe 5.0 单通道速率跑到 32 GT/s这个数字放在几年前还是实验室里少数人才能碰的东西现在已经在主流服务器、AI加速卡、高端存储阵列里批量落地了。但速率翻倍带来的直接后果就是信号完整性裕量被压缩得极其厉害以前在 16 GT/s 上能糊过去的链路到了 32 GT/s 可能连训练都过不去。PHY 层作为整个 PCIe 协议栈最底下、离物理介质最近的一层它的测试规范直接决定了链路能不能稳定跑起来。我接触 PCIe PHY 测试大概有几年时间从 Gen3 到 Gen4 再到现在的 Gen5每一代的测试复杂度都是指数级上升。Gen5 最要命的地方在于Nyquist 频率到了 16 GHz这个频段上 PCB 走线的损耗、连接器的阻抗不连续、过孔 stub 的谐振全都会跳出来捣乱。所以 PHY 测试不再是简单测个眼图就完事而是要覆盖发送端Tx、接收端Rx、时钟、均衡器、链路训练等一整套环节。这篇文章主要面向三类人一是刚接触 PCIe PHY 测试的验证工程师二是需要搭建 Gen5 测试环境的硬件工程师三是想搞清楚 PHY 测试到底在测什么、为什么这么测的系统架构师。我会从测试规范的整体框架讲起然后逐层拆解 Tx、Rx、链路训练、时钟这几个核心测试项把参数怎么算、设备怎么配、坑在哪里都讲清楚。内容基于我在实际项目中的经验部分细节是基于行业通用实践做的合理补充具体项目请以你手上的规范和器件手册为准。2. PCIe 5.0 PHY测试规范的整体框架与设计逻辑2.1 测试规范到底覆盖哪些层面PCIe 5.0 PHY 测试规范不是一份单一文档它是一整套分层的东西。最上层是Base Specification里定义的电气参数要求比如 Tx 差分输出电压、Rx 容限、抖动预算这些中间层是PHY Test Specification也叫 Electrical Compliance Test Spec它把 Base Spec 里的参数转化成可执行的测试方法、测试点定义、夹具要求最底层是各家 IP 厂商和测试设备厂商提供的具体测试脚本和校准流程。这三层的关系有点像Base Spec 说“你要跑进 10 秒”PHY Test Spec 说“在 100 米跑道上、穿钉鞋、电子计时”设备厂商说“我们这台计时器精度 0.001 秒校准流程如下”。你如果只盯着 Base Spec 看会发现很多参数根本不知道怎么测只盯着设备手册看又不知道为什么要测这些点。所以做 PHY 测试的人这三层都得翻。Gen5 相比 Gen4测试规范最大的变化集中在几个地方Tx 测试增加了更严格的抖动分解要求要把随机抖动 RJ、确定性抖动 DJ、占空比失真 DCD 分开看Rx 测试引入了更复杂的压力眼图校准流程链路训练测试新增了均衡器自适应过程的验证。这些变化的核心逻辑只有一个速率翻倍后任何一个小误差都会被放大所以测试必须更精细。2.2 为什么Gen5的测试策略和Gen4完全不同Gen4 时代很多测试项目还可以用“测个眼图 看 BER 是否达标”的方式糊过去。到了 Gen5这种做法基本失效了。原因在于32 GT/s 的 UI 只有 31.25 ps而一个典型的 Gen5 信道在 16 GHz 处的插入损耗可能达到 -30 dB 甚至更差。信号到达接收端时眼图几乎完全闭合必须依赖Tx 均衡FFE和 Rx 均衡CTLE DFE才能把眼图重新“打开”。这就导致测试策略发生根本性转变Tx 测试不再只看原始眼图而是要看经过参考接收机均衡后的眼图Rx 测试不再只测固定压力而是要根据实际信道特性做压力校准。换句话说Gen5 的 PHY 测试是“带均衡的测试”测试设备本身必须模拟真实的均衡行为。我个人的经验是如果你用 Gen4 的测试思路去做 Gen5最常见的翻车场景是Tx 眼图测出来很好但链路实际跑起来 BER 超标。原因就是测试时没开参考接收机均衡看到的“好眼图”是假象。所以下面讲具体测试项时我会反复强调均衡配置这个点。2.3 测试环境搭建的核心组件与选型逻辑一套完整的 Gen5 PHY 测试环境核心组件包括高性能示波器带宽至少 50 GHz最好 60 GHz 以上、误码仪BERT支持 32 GT/s 码型生成和误码检测、矢量网络分析仪VNA用于信道 S 参数测量、测试夹具和校准件、被测设备DUT及其参考时钟源。选型逻辑上示波器带宽是最关键的参数。按照经验公式示波器带宽 ≥ 0.7 / UIGen5 的 UI 是 31.25 ps算下来至少需要 22.4 GHz。但这只是理论下限实际测试中为了准确捕获三次谐波以上的分量通常要求带宽达到50 GHz 以上。我见过有人用 33 GHz 的示波器测 Gen5结果 Tx 眼图的上升沿明显被带宽限制压慢测出来的抖动偏大后来换了 59 GHz 的设备才正常。BERT 的选型要注意两点一是码型生成必须支持 Gen5 规定的 PRBS 码型如 PRBS31、PRBS15 等二是误码检测要能配合压力眼图做校准。VNA 主要用于信道表征如果你要做 Rx 压力校准VNA 测出来的 S 参数是计算压力眼图的基础。注意测试夹具的校准件必须和夹具配套不同厂商的校准件不能混用。我踩过一次坑用 A 厂的校准件去校准 B 厂的夹具结果阻抗不连续点定位完全错误浪费了两天时间排查。3. 发送端Tx测试的核心细节与实操要点3.1 Tx眼图与抖动测试的参数计算过程Tx 测试的核心是眼图和抖动。Gen5 规范里Tx 眼图测试要求在参考接收机均衡后测量参考接收机通常是一个5 抽头 FFE。为什么要用 5 抽头因为 Gen5 信道损耗大需要足够的均衡能力才能把眼图打开而 5 抽头是规范里定义的参考模型保证不同实验室测出来的结果有可比性。抖动测试是 Gen5 Tx 测试的重头戏。规范要求把总抖动 TJ 分解为随机抖动 RJ、确定性抖动 DJDJ 里还要进一步区分占空比失真 DCD、码间干扰 ISI、周期性抖动 PJ。分解方法通常用双狄拉克模型先测不同 BER 下的 TJ然后拟合出 RJ 和 DJ 的分布。具体计算过程假设你在 BER1e-12 处测得 TJ0.3 UI在 BER1e-6 处测得 TJ0.2 UI。双狄拉克模型下TJ(BER) DJ 2 × Q(BER) × RJ其中 Q(1e-12)≈7.03Q(1e-6)≈4.75。联立两个方程可以解出 DJ 和 RJ。这个计算看起来简单但实际操作中BER 测点的选择很关键测点太少拟合不准测点太多测试时间爆炸。我的经验是至少取 5 个 BER 点从 1e-6 到 1e-12 均匀分布。3.2 参考接收机均衡配置的实操细节参考接收机均衡的配置是 Tx 测试里最容易出错的地方。规范里定义的参考接收机是一个5 抽头 FFE 一个一阶高通滤波器模拟 AC 耦合。FFE 的抽头系数不是随便设的而是要根据被测信道的 S 参数计算出来的。实操步骤是这样的先用 VNA 测出从 DUT Tx 引脚到示波器输入端的 S 参数包括夹具和电缆然后把 S 参数导入测试软件软件会自动计算最优 FFE 抽头系数。这里有个坑S 参数的质量直接决定均衡效果如果 VNA 校准不好或者夹具连接不稳定算出来的抽头系数就是错的眼图会越均衡越差。我一般会做两次验证第一次用软件自动算的抽头系数第二次手动微调主抽头系数看眼图高度和宽度是否还有改善空间。实测下来自动算的系数通常已经接近最优但偶尔会有 5% 到 10% 的改善空间特别是在信道损耗特别大的情况下。3.3 Tx测试中的常见陷阱与规避方法Tx 测试有几个经典陷阱。第一个是示波器本底噪声和抖动。Gen5 的抖动预算很紧如果示波器本身的抖动底噪太大测出来的 RJ 会偏高。规避方法是先用一个已知抖动的标准源校准示波器确认本底抖动在可接受范围内。第二个陷阱是码型选择。Gen5 规范要求 Tx 测试使用PRBS31 码型但有些工程师为了加快测试速度会用 PRBS15 甚至 PRBS9。短码型会导致 ISI 分量测不准因为短码型的游程长度不够无法充分激发信道的低频响应。我实测过用 PRBS9 测出来的 DJ 比 PRBS31 低 15% 左右这个偏差足以让一个边缘器件“假通过”。第三个陷阱是AC 耦合电容的影响。Gen5 要求 AC 耦合电容值在176 nF 到 265 nF之间不同容值会影响低频抖动分量。测试时如果用了不合适的电容测出来的 DCD 会异常。建议直接用规范推荐的 220 nF。提示Tx 测试前一定要做示波器去嵌de-embedding把夹具和电缆的影响去掉。去嵌用的 S 参数必须和实际测试链路一致否则去嵌后反而引入误差。4. 接收端Rx测试的完整流程与压力眼图校准4.1 Rx容限测试的基本原理与压力眼图构建Rx 测试的本质是验证接收机在最差信号条件下还能不能正确恢复数据。Gen5 的 Rx 容限测试用的是一个压力眼图这个眼图比实际链路的最差情况还要差一些留出裕量。压力眼图的构建包括几个要素加性高斯白噪声AWGN、正弦抖动SJ、随机抖动RJ、ISI 和占空比失真。构建压力眼图的核心工具是 BERT 和压力眼图校准软件。流程是先根据信道 S 参数和规范要求计算出目标压力眼图的参数比如眼高、眼宽、抖动分量然后通过 BERT 的抖动注入和噪声注入功能合成这个眼图最后用示波器验证合成眼图是否达标。这里的关键难点是压力眼图的校准精度。Gen5 规范对压力眼图的参数容差要求很严比如眼高容差可能只有 ±5%。我见过一个案例压力眼图校准偏了 8%导致 Rx 测试结果不可信后来重新校准 VNA 和 BERT 的同步才解决。4.2 压力眼图校准的逐步操作记录压力眼图校准我一般按以下步骤走信道表征用 VNA 测 DUT Rx 引脚到 BERT 输出端的 S 参数频率范围至少覆盖 100 MHz 到 40 GHz。计算目标压力眼图把 S 参数导入校准软件结合规范要求的抖动和噪声预算算出目标眼图的各项参数。BERT 配置设置码型PRBS31、幅度、抖动注入量、噪声注入量。初步合成启动 BERT 输出用示波器观察眼图对比目标参数。迭代调整根据示波器测量结果微调 BERT 的抖动和噪声注入量直到眼图参数落在容差范围内。记录校准结果保存校准后的 BERT 配置和示波器截图作为测试报告的一部分。这个过程听起来线性实际做起来经常要迭代好几轮。最耗时间的是第 5 步因为抖动和噪声是耦合的调一个会影响另一个。我的经验是先调噪声再调抖动因为噪声对眼高的影响更直接抖动对眼宽的影响更直接分开调效率更高。4.3 Rx测试中的误码率统计与判定标准Rx 测试的最终判定标准是BER ≤ 1e-12。但直接测 1e-12 的 BER 需要传输至少 1e12 个比特按 32 GT/s 算大概需要 31 秒。这听起来不长但实际测试中为了覆盖不同的压力条件比如不同的均衡器配置、不同的温度总测试时间会累积到几小时甚至几天。为了提高效率通常采用外推法先测 BER1e-9 或 1e-10 处的误码率然后用指数外推估算 1e-12 处的 BER。外推的准确性取决于误码分布是否符合预期模型。如果测到的误码分布有异常比如突发误码外推结果就不可信必须延长测试时间直接测到 1e-12。我个人的做法是先做短时间扫描确认误码分布正常再做外推。如果扫描发现误码集中在特定码型或特定时间点说明可能有系统性问题比如电源噪声、时钟抖动这时候外推就是自欺欺人必须先解决根本问题。5. 链路训练与时钟测试的关键环节5.1 链路训练过程的测试点与验证方法链路训练是 PCIe 链路建立的核心过程Gen5 的训练过程比 Gen4 复杂得多主要因为均衡器自适应需要在训练过程中完成。训练过程大致分为几个阶段Detect、Polling、Configuration、Recovery、L0。每个阶段都有对应的测试点。测试链路训练最直接的方法是用协议分析仪抓取训练过程中的 TS1/TS2 有序集看双方协商的参数是否正确。Gen5 新增的测试点是均衡器自适应过程的验证在 Recovery 阶段双方会交换均衡器设置信息测试要确认这些信息是否被正确应用。实操中我通常会用协议分析仪配合PHY 层的寄存器读取来验证。比如训练完成后读取 Rx 均衡器的 CTLE 和 DFE 设置看是否和协商结果一致。如果不一致可能是固件配置问题或者 PHY IP 的 bug。5.2 参考时钟测试抖动与频率精度Gen5 的参考时钟要求是100 MHz ±300 ppm抖动要求是RMS 抖动 ≤ 1 ps12 kHz 到 20 MHz 积分带宽。这个抖动要求比 Gen4 紧了一倍因为 Gen5 的 CDR时钟数据恢复对参考时钟抖动更敏感。测试参考时钟抖动通常用相位噪声分析仪或高带宽示波器 抖动分析软件。相位噪声分析仪更准但设备贵示波器方案便宜但要注意示波器本底抖动的影响。我一般先用示波器做快速筛查如果抖动接近限值再用相位噪声分析仪做精确测量。频率精度测试相对简单用频率计数器测 100 MHz 时钟的频率算偏差是否在 ±300 ppm 内。但要注意测试点的选择参考时钟在到达 PHY 引脚前可能经过时钟缓冲器或分配器这些器件会引入额外的抖动和频偏所以测试点应该尽量靠近 PHY 引脚。5.3 均衡器自适应测试的实操经验均衡器自适应测试是 Gen5 特有的也是最容易出问题的环节。测试方法是在链路训练完成后人为改变信道条件比如切换不同的夹具或电缆看均衡器能否重新自适应到最优设置。我做过一个实验在链路稳定后故意在信道中插入一个额外的连接器增加 3 dB 损耗然后触发链路重训练。结果发现有些 DUT 能顺利重新自适应有些则训练失败。失败的原因通常是自适应算法收敛速度不够或者均衡器动态范围不足。这个测试的价值在于它能暴露那些在固定信道下测不出来的问题。很多器件在实验室的“好信道”下表现完美一到实际系统的“坏信道”就歇菜。所以我的建议是Gen5 的 PHY 测试一定要包含变信道条件下的自适应测试哪怕规范里没有强制要求。6. 常见问题与排查技巧实录6.1 Tx测试常见问题速查表问题现象可能原因排查方法解决措施眼图高度偏低参考接收机均衡未开或配置错误检查 FFE 抽头系数是否根据 S 参数计算重新测 S 参数重新计算抽头系数抖动偏大示波器本底抖动大或码型选择不当用标准源校准示波器确认码型为 PRBS31更换示波器或延长测试时间DCD 异常AC 耦合电容值不对测量耦合电容值更换为 220 nF眼图不对称夹具阻抗不连续用 TDR 测夹具阻抗更换夹具或做去嵌6.2 Rx测试常见问题速查表问题现象可能原因排查方法解决措施压力眼图校准不通过VNA 校准或 S 参数质量差重新校准 VNA检查夹具连接重新测 S 参数重新校准BER 外推结果不可信误码分布异常检查误码是否集中延长测试时间直接测到 1e-12Rx 容限测试失败均衡器配置错误或信道损耗过大读取均衡器寄存器检查信道 S 参数调整均衡器配置或更换信道测试重复性差温度漂移或电源噪声监控温度和电源稳定环境后重测6.3 链路训练与时钟测试的避坑经验链路训练最常见的问题是训练卡在 Polling 或 Configuration 阶段。原因可能是参考时钟频偏太大、Tx 幅度不够、或者双方协商的速率不匹配。排查时先用协议分析仪看训练过程中的有序集交换确认卡在哪个阶段再针对性检查。时钟测试的坑主要在测试点选择。我见过有人在时钟缓冲器输入端测抖动结果很好但 PHY 引脚处抖动超标。原因是缓冲器本身引入了抖动。所以测试点一定要靠近 PHY 引脚如果做不到就要把缓冲器的抖动贡献算进去。提示Gen5 的链路训练对电源噪声很敏感。如果训练不稳定先检查电源纹波特别是 PHY 的模拟电源。我遇到过一次训练随机失败最后发现是电源纹波在 10 MHz 附近有尖峰加了个 LC 滤波器就好了。7. 我个人在实际操作中的几点体会做 Gen5 PHY 测试这几年最大的感受是测试规范是死的信道是活的。规范里定义的测试条件都是理想化的但实际系统的信道千差万别。所以测试不能只满足于“规范通过”还要根据实际应用场景做额外的压力测试。另外测试设备的校准比测试本身更重要。我见过太多案例测试结果异常排查半天发现是设备没校准好。所以我的习惯是每次正式测试前花半小时做设备校准和验证这半小时能省下后面几小时的排查时间。最后分享一个小技巧建立自己的测试数据基线。每次测试后把关键参数眼高、眼宽、抖动分量、BER记录下来形成历史数据。这样下次测试时如果某个参数突然偏离基线你能立刻发现异常。这个习惯帮我抓到了好几次器件批次性问题。

相关新闻

场景语义分割毕设指南:从模型选型到mIoU调优实践

场景语义分割毕设指南:从模型选型到mIoU调优实践

简介:一份面向计算机视觉方向毕设与课程作业的深度学习场景语义分割项目资源包。内容聚焦图像像素级分类任务,覆盖从数据准备、模型设计、训练优化到评估部署的完整流程,适合需要搭建可复现语义分割系统的学生开发者参考。压缩包共二十四个文…

2026/10/9 8:55:32 阅读更多 →
深度学习语义分割实战:从U-Net到DeepLabv3+毕设全流程指南

深度学习语义分割实战:从U-Net到DeepLabv3+毕设全流程指南

简介:面向高校毕设与课程作业场景,这份语义分割项目包整合了深度学习模型实现、Python/C混合编程与系统化工程配置,适合需要完成场景解析任务的学生参考。包内共24个文件,以Python训练/测试脚本为主,辅以XML工程配置、…

2026/10/7 18:34:29 阅读更多 →
从关键词检索到RAG增强检索:企业搜索的落地实战指南

从关键词检索到RAG增强检索:企业搜索的落地实战指南

企业搜索这个事儿,做了几年的人都有体会:内部系统里堆了几百万份文档,真要查个东西,搜出来一堆标题匹配、关键词里带“报告”两个字的结果,翻三页都找不到想看的那个版本。这不是个例,而是关键词检索这套老…

2026/10/7 18:34:29 阅读更多 →

最新新闻

从零跑通大模型应用全链路:模型选型、OCR、知识库与Agent框架实战

从零跑通大模型应用全链路:模型选型、OCR、知识库与Agent框架实战

大模型这两年从“新鲜玩意”变成了日常工具,但真正落到自己手里跑通一条完整链路的人其实没想象中多。我身边不少朋友的状态是:聊天窗口里用得挺溜,一到要接自己的数据、要批量处理文档、要搭一个能持续用的服务,就卡住了。这篇东…

2026/10/9 8:55:22 阅读更多 →
给Claude Code装上长期记忆:claude-mem如何突破上下文窗口限制

给Claude Code装上长期记忆:claude-mem如何突破上下文窗口限制

如果你也在用 Claude Code 干活,多半遇到过同一个尴尬:上一个会话里刚交代清楚的偏好,下一个会话它全忘了。我折腾 claude-mem 之前,几乎每天都要把“接口返回格式用 camelCase”“日志必须打印 requestId”“测试命令用 pnpm tes…

2026/10/9 8:55:22 阅读更多 →
Python统一身份认证服务设计与实现:JWT多端登录毕设项目全解析

Python统一身份认证服务设计与实现:JWT多端登录毕设项目全解析

最近来问毕设选题的同学特别多,十个里有七八个都在犹豫做什么才能既好写又能顺利答辩。我个人的建议非常明确:如果你不想被简单管理系统卷死,又没精力挑战算法难度,那用 Python 做一个统一身份认证服务,绝对是性价比很…

2026/10/9 8:55:22 阅读更多 →
pytest自动化测试失败现场回放:自动截图与日志捕获机制详解

pytest自动化测试失败现场回放:自动截图与日志捕获机制详解

自动化测试跑完一看报告,一堆失败用例,但是除了一个红叉和一个异常栈之外什么线索都没有——这种体验我相信做自动化的小伙伴都经历过。尤其是UI自动化,定位元素失败、弹窗遮挡、网络延迟导致的加载慢,光靠报错信息很难还原现场。…

2026/10/9 8:55:22 阅读更多 →
PHP性能优化实战:从版本选型到代码、并发与SQL的完整地图

PHP性能优化实战:从版本选型到代码、并发与SQL的完整地图

做PHP做了这么多年,隔三差五就会看到有人在技术群里问“PHP怎么优化”。问的人多了,答案也很散:有人说换PHP 8,有人说开OPcache,有人上来就让你上Redis、上队列。说实话这些都对,但如果你脑子里没有一张完整…

2026/10/9 8:55:22 阅读更多 →
pstack-claude:Linux下Claude服务进程级诊断方法论

pstack-claude:Linux下Claude服务进程级诊断方法论

1. “pstack-claude”不是工具名,而是调试现场的命名习惯——先破除一个普遍误解很多人第一次在GitHub Issues、运维日志或团队内部文档里看到pstack-claude这个词,第一反应是:“这是个新出的Claude配套CLI工具?还是某个开源项目代…

2026/10/9 8:54:19 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →