【layout理解篇之:寄生电容/寄生电阻】

模拟集成电路版图设计:从Virtuoso Layout入门到匹配与寄生优化 在集成电路设计中,物理实现是将电路原理转化为可制造芯片的关键环节,其核心在于版图设计。版图设计遵循严格的物理设计规则,通过几何图形定义晶体管、互连线等元件的精确位置与尺寸,直接影响芯片的性能、功耗和可靠性。其技术价值在于确保电路功能正确实现的同时,优化面积、匹配性和信号完整性。在模拟与混合信号电路等应用场景中,版图设计尤为关键,需要精细处理器件的匹配性、对称性,并优化寄生参数以提升电路性能。本文聚焦于使用Cadence Virtuoso Layout工具进行模拟版图设计的实践,深入探讨了匹配性设计、寄生参数 阅读详情
AI摘要

本文详解集成电路版图中的寄生电容和寄生电阻成因及其优化方法。重点分析金属-衬底、金属间耦合电容及电阻公式,提出通过缩短导线、提升金属层、增加宽度或多根并联等方式抑制寄生效应,从而改善RC延迟、信号完整性与时序收敛。

寄生电容 & 寄生电阻(Parasitic C / R)

寄生电容(Parasitic Capacitance)与寄生电阻(Parasitic Resistance)是
版图设计中最核心的影响电路性能的寄生效应。

它们直接影响:

  • 信号延迟(delay)
  • RC time constant
  • 上升下降时间
  • 噪声耦合
  • 功耗
  • 模拟电路的增益/带宽/稳定性

下面分两大部分展开。


4.1 寄生电容(Parasitic Capacitance)

在这里插入图片描述
寄生电容通常来自三种主要来源:

(1)金属—硅衬底电容(Metal–Substrate C)

金属线下面是硅衬底(或 nwell/pwell)。
金属面积越大、越靠近硅 → 电容越大。

(2)金属—金属(间隙方向)C

Metal 间的左右平行耦合电容。
间距越小,耦合越大。

(3)金属—金属(上下方向)C

不同 metal 层之间的耦合电容。
层间介质越薄、面积越大 → 电容越大。


在这里插入图片描述

✔ 如何减少寄生电容?

方法 1:减少导线长度

导线越短,和衬底之间的面积越小,耦合就越小。

适用:数字信号高频路径、模拟敏感节点。


方法 2:提高金属层次

不同金属层到衬底的距离:

  • M1/M2 距离硅最近 → 电容最大
  • 越往上层(M6、M7、M8…)→ 距离远 → 电容显著变小

因此高频或关键路径多走高层金属,可以有效降低寄生 C。


方法 3:减少金属重叠

两个金属线若上下重叠,会产生较大的 上下方向 C。
避免对准、错开布线,可减少耦合。

例子:

  • analog routing 避免关键信号正上方有其他 metal
  • clock tree 避免被上层线覆盖


4.2 寄生电阻(Parasitic Resistance)

金属电阻由:
R = ρ · L / A
= (方块电阻 Rsheet) × (长度 / 宽度)
高 RC 值会导致:

  • 信号上升下降慢
  • 时序变差
  • IR-drop
  • 电流路径电压下降
  • 模拟电路带宽下降

✔ 如何减少寄生电阻?

方法 1:加大金属宽度(W↑)

金属越宽,截面积越大 → 电阻下降。

常用于:

  • 电源线(VDD/VSS)
  • 时钟树(clock)
  • 模拟大电流路径

方法 2:使用高 Metal 层(金属厚度更大)

工艺结构中越高层金属越厚:

  • M1/M2:薄
  • M6/M7:厚
  • M8/M9:power metal,最厚

因此高电流路径要走高 metal。


方法 3:多根并联布线(并联等效降低电阻)

如果 W=20,但工艺限制单根不能太宽,可以:

  • 画两根 W=10 的 metal 并联
  • 或 3–4 根一起

等效图:
R_total = R1 || R2 || R3
非常适合:

  • LDO 输出
  • 大电流 analog path
  • 电源回路(GND return path)

4.3 寄生电容与寄生电阻的工程影响(扩展)

(1)RC 延迟变大 → 时序失败

delay ≈ R×C
越大的 RC → 越慢的信号。

(2)模拟电路带宽下降

带宽 ∝ 1/(RC)
导致放大器、滤波器性能下降。

(3)高频信号严重变形(slew rate 下降)

(4)噪声耦合

大寄生 C 会把干扰从 aggressor 传到 victim。


4.4 面试总结(背诵版)

寄生电容来自金属间、金属对衬底、电线长度与重叠面积。
减少方法:缩短导线、提高金属层、避免重叠。

寄生电阻来自金属长度和宽度。
减少方法:加宽金属、使用高层金属、多根并联。

核心影响:RC 延迟、信号畸变、噪声耦合、电源压降。

版图设计中的隐形杀手:寄生电容与寄生电阻的实战分析与优化 本文深入剖析了集成电路版图设计中寄生电容与寄生电阻这两个“隐形杀手”的来源与危害。通过实战案例,详细阐述了如何通过优化走线长度、利用高层金属、加宽走线及并联布线等核心策略,有效降低寄生效应,提升电路性能与信号完整性。文章强调了寄生参数提取与后仿真在版图迭代优化中的关键作用。 阅读详情

相关推荐

RLC电阻电容电感基础知识——电感篇

电感 等效电路 电感线圈由铜导线绕制,等效电路如图所示。 寄生电阻RS,包括了绕线电阻、引脚串联电阻以及磁芯损耗电阻三部分组成,其中绕线电阻与线径、长度、铜线电阻率有关;引脚电阻与引线长短、粗细有关;磁芯损耗电阻与磁芯材料特性有关,显然磁芯损耗电阻还与工作频率有关.寄生电容C主要是绕线圈与圈之间的杂散电容(为PF级),与绕线工艺有关。 等效导纳 显然: (1)当角频率ω(频率f)较小时,呈电感性. (2)当角频率ω等于ω0时,导纳Y虚部为0,呈现电阻性,即发生共振。令导纳Y虚部为0,即可求出共振角频率ω

azj2019的博客 1万+

使用dataTables组件制作可编辑table单元格时blur、 mouseleave以及mouseenter事件的冲突...

问题出现的场景是:使用dataTables组件,但是该组件没有自带的编辑功能,所以需要自己处理table在行内编辑的效果。 目标效果是:1.当hover到当前tr的时候,该行tr中可以编辑的td中出现一个input框: 2.当离开当前tr的时候,该行退出可编辑的状态,恢复到没有hover上去之前的效果。 3.当td变成可编辑状态,即出...

weixin_34216036的博客 268

I2C总线PCB Layout布线注意事项:快速理解上拉电阻位置

深入解析I2C总线在pcb layout中的关键布线技巧,重点说明上拉电阻的合理放置对信号完整性的提升,帮助工程师快速掌握高速稳定设计要点。

weixin_36431145的博客 1304

电阻的寄生电感、寄生电容

电阻的寄生电感、寄生电容是在高频的场景下才有体现的,现在的我也用不到,菜嘛,所以看到此处只是了解一下。首先想到的是看电阻的数据手册,翻了很多,发现压根没有提到这两个参数,我想呢是因为在高频的条件下,既然电阻都要考虑寄生电感、寄生电容的影响,那么PCB上的那么多走线、过孔的寄生电感、寄生电容的影响也是要考虑的,所以高频的时候应该是整个PCB画好了,然后仿真或怎么样来解决/利用这个的寄生参数而不是一个个电阻去算。

人非生而知之者 1万+

Buck电路振铃解析与抑制:寄生参数、RC吸收到Layout实测

开关电源设计中,Buck电路的开关节点(SW)常出现高频衰减振荡,即振铃(ringing)。这种现象并非外部干扰,而是由电路寄生电感与寄生电容组成的LC网络在开关瞬间被激励产生的谐振,其频率通常在数十至数百MHz,直接影响MOSFET耐压、EMI辐射与整机效率。从示波器探头选择、带宽设置到空满载对比,准确测量是分析振铃的前提。通过实测波形频率,可反推功率回路的寄生电感与电容量级,进而用RC吸收电路、栅极电阻或优化PCB布局来降低过冲与振荡能量。在12V转3.3V同步Buck实测案例中,综合采用RC吸收与栅极

weixin_34166847的博客 461

HFSS线圈寄生参数仿真全流程:从建模到提取电感电阻Q值

在高频线圈、无线充电和RFID天线设计中,寄生参数直接决定系统性能与可靠性。趋肤效应和邻近效应使得高频下的交流电阻远大于直流电阻,传统公式难以精确估算,因此借助全波电磁仿真工具进行建模与参数提取成为工程实践的关键环节。HFSS作为主流三维电磁仿真软件,能够通过精细的几何建模、材料属性设置、边界条件配置和网格剖分策略,准确求解线圈的电感、寄生电阻与Q值。掌握从螺旋线圈建模、端口激励设置到L/R参数提取的完整流程,能够帮助工程师用仿真替代部分实测,加速无线充电线圈、高频变压器甚至NFC天线的设计优化。本文系统梳

weixin_34356555的博客 305

寄生电容/寄生电阻/寄生电感

电阻材料也是一样,自身的显著特征是阻值和阻抗,但是它也同样具备着容性和容抗,只不过我们使用的时候,经过我们筛选后的电阻材料的容抗较小,通常不会影响到电路设计需求,并且不会对于具体的使用造成明显干扰,所以我们依然会说忽略不计,但是在一些设计要求较高或者较为敏感的电路中,我们却需要将其他特性同样考虑在内。寄生电感和前面二者同理。所以,在各类电子元器件的设计当中,材料会体现出极其明显的我们需要的特性,比如说电阻,我们能够明确的测量出电阻的阻值,就意味着电阻实现了我们的设计需求,它的确有效的消耗或阻碍了电流。

Cupido 1万+

模拟版图设计入门指南:从设计规则到寄生效应

在集成电路设计流程中,版图设计是连接电路原理与芯片制造的桥梁,其本质是将晶体管、电阻等器件转化为工艺可实现的几何图形。设计规则(DRC)是保障制造良率的底线,而器件匹配和寄生效应控制则直接决定模拟电路的实际性能。对于模拟版图而言,工程师不仅需要理解层次结构与剖面关系,还需掌握共质心布局、隔离保护等技巧,以应对工艺偏差和噪声耦合挑战。从反相器到差分运放,从物理验证到后仿真,系统性的认知框架能帮助新人快速建立“硅片视角”,避免常见踩坑。本文围绕版图设计的基础概念、核心器件画法、寄生效应与验证流程,为初入行的工程

weixin_33816300的博客 385

《涨知识啦15》---pn结寄生电阻的估算

在前面的《涨知识啦13》中我们提到过二极管并不仅仅由一个理想的pn结构成,还存在着各种各样的寄生电阻,总体可按与pn结串并联情况分为串联电阻(Rs)与并联电阻(Rp),如下图。有些时候我们需要估算这些寄生电阻的电阻值,才能方便我们进行下一步的研究分析,然而这些寄生电阻寄生在器件内部而无法直接对其进行测量,因此今天我们主要介绍一种估算寄生电阻值的方法。 从下图中我们可以得知在二极管正向导通之前,IV特性斜率与Rp基本相同,正向导通之后,其IV特性斜率与Rs类似。这是因为当二极管正向导通前PN结电阻无穷大,在

simucal的博客 3119

PCB寄生参数与特征阻抗:高速电路信号完整性的核心控制

在高速数字电路和射频设计中,信号完整性是决定系统成败的关键。其核心原理在于理解并控制信号传输路径上的分布参数——即由PCB走线、过孔和介质材料引入的寄生电感、寄生电容和寄生电阻。这些寄生参数共同决定了传输线的特征阻抗,而阻抗匹配是确保信号能量高效传输、避免反射和失真的技术基础。从DDR内存、PCIe总线到千兆以太网,任何高速接口的设计都离不开对特征阻抗的精确控制。本文聚焦于PCB寄生参数这一根本成因,深入剖析其如何影响特征阻抗,并结合串扰、反射等典型信号完整性问题,提供从层叠设计、布线规则到测量调试的全流程

cnracht8153的博客 407

元器件应用中的寄生电容、电容寄生效应

寄生电容一般是指电感,电阻,芯片引脚等在高频情况下表现出来的电容特性。实际上,一个电阻等效于一个电容,一个电感,和一个电阻的串连,在低频情况下表现不是很明显,而在高频情况下,等效值会增大,不能忽略。在计算中我们要考虑进去。ESL就是等效电感,ESR就是等效电阻。不管是电阻,电容,电感,还是二极管,三极管,MOS管,还有IC,在高频的情况下我们都要考虑到它们的等效电容值,电感值。 寄生的含义就是本来没有在那个地方设计电容,但由于布线构之间总是有互容,互感就好像是寄生在布线之间的一样,所以叫寄生电容。ESL是英文缩写:equivalent serial inductance(L),即等效串连电感

什么是寄生电阻,寄生电感和寄生电容?

为了减小寄生电容,应选择具有低介电常数的材料制作电路,并尽可能减小元件之间的距离和连接长度,以及避免使用过大的元件表面面积等措施。是由于电路中不同元件之间的互感以及导线之间的自感产生的。为了减小寄生电感,应选择具有低磁导率的材料制作电路,并尽可能减小元件之间的距离和连接长度,以及使用屏蔽线等措施。综上所述,寄生电阻、寄生电感和寄生电容是电路中不可避免的寄生物,对电路的性能产生不利影响。作为电路中常见的三种寄生物,寄生电阻、寄生电感和寄生电容是指在电路中由于元件之间的相互作用而产生的额外电阻、电感和电容。

weixin_54787054的博客 1070

TLSR8258蓝牙Mesh实战:从SDK下载到自定义通信指令全流程(附避坑指南)

本文详细介绍了TLSR8258蓝牙Mesh开发的完整流程,从SDK下载、环境搭建到自定义通信指令的实现。通过实战案例和避坑指南,帮助开发者快速掌握低功耗蓝牙Mesh网络构建技巧,适用于智能家居、工业监控等物联网场景。

weixin_29176179的博客 199

版图学习一一寄生效应

任何两个导体间只要存在介质(任何两个非绝缘体层次之间)都会产生寄生电容任何导体都存在寄生电阻,金属,栅,衬底,扩散区,都存在寄生电阻。

weixin_52567455的博客 1万+

基于eBPF的零侵入LLM智能体观测:AgentSight架构与实战

在分布式系统和云原生架构中,可观测性是保障应用稳定运行与高效排障的核心能力。其原理在于通过日志、指标和追踪三大支柱,从外部视角持续收集和分析系统状态,而非依赖应用内部埋点。这一技术价值在于能以统一、低开销的方式,理解复杂系统的内部行为,尤其在微服务、容器化及Serverless等动态环境中至关重要。应用场景广泛覆盖了性能监控、安全审计、故障诊断与根因分析。当我们将这一基础理念应用于当下快速发展的AI智能体领域时,便自然引出了对LLM智能体进行无侵入、系统级行为观测的需求。传统的应用层方案需要集成SDK,对闭

weixin_28696185的博客 324

Zotero+WPS文献引用跳转功能缺失?3分钟教你用VBA宏搞定(附完整代码)

本文针对WPS用户使用Zotero时文献引用无法点击跳转的痛点,提供了一套完整的VBA宏解决方案。通过解析Zotero的域代码,自动在文内引用和文末参考文献之间创建超链接,实现一键跳转,极大提升了学术写作与文献查阅的效率。

weixin_28419039的博客 671

硬件工程师必读:寄生电容的危害、测量与PCB设计实战解决方案

在电路设计中,电容是基础的无源元件,用于存储电荷和滤波。其原理基于导体间的电场存储能量。寄生电容作为非意图引入的电容效应,是影响电路性能的关键因素,尤其在高速和高频场景下。它由物理结构(如平行走线、器件封装)自然产生,遵循C=εA/d的规律。理解并管理寄生电容,对于保障信号完整性、提升系统稳定性和降低功耗具有重要技术价值。在高速数字电路、射频设计、精密模拟前端及电源完整性等应用场景中,寄生电容是导致信号振铃、带宽限制、串扰乃至系统振荡的常见根源。本文聚焦于寄生电容这一核心挑战,系统阐述了其危害,并提供了从理

weixin_34228387的博客 397

Vue集成飞书前端JSSDK

文章目录前言<1>飞书前端JSSDK<2>使用步骤1.将JSSDK引入到VUE2.读入数据总结 前言 公司需要使用飞书软件,所以转战飞书开发,也是对新知识的探索与研究,飞书SDK也一直都在更新,路虽远,行必达。 <1>飞书前端JSSDK 1、官网地址:https://open.feishu.cn/document/uYjL24iN/uITO4IjLykDOy4iM5gjM 2、当前使用的飞书前端JSSDk的版本:1.5.4 <!-- 在html文档中 --&gt

A 1万+

MOSFET寄生电容Cgd/Cgs的物理本质与动态建模

MOSFET寄生电容Cgd(栅漏电容)和Cgs(栅源电容)并非固定参数,而是由器件内部电场分布、沟道状态及工艺结构共同决定的动态物理量。其核心原理源于SiO₂/高k介质介电特性、耗尽区与反型层的电压依赖性演化,以及交叠、沟道、耗尽区三重电容机制的实时权重切换。这种非线性行为直接决定开关损耗、Miller效应强度与驱动电荷Qgd精度,对LLC谐振、ZVS软开关等高频功率拓扑设计具有决定性影响。深入理解Cgd/Cgs的微观起源,是实现低EMI、高效率、高可靠性电源系统的关键技术基础。

weixin_33834628的博客 778

全网首发--Unet3+改进16:在不同位置添加RepLKBlock超大卷积核

本文提出了一种基于大核卷积的神经网络架构RepLKNet,旨在缩小CNN与ViTs之间的性能差距。通过重新审视CNN中的大核设计,研究证明使用少量大卷积核替代多个小核能获得更强大的性能。提出的RepLKNet采用31×31大卷积核,在ImageNet和下游任务上取得了与SwinTransformer相当或更好的结果,同时具有更低延迟。文章详细介绍了实现步骤:(1)创建RepLKBlock模块文件;(2)在模型层中添加注意力机制;(3)在UNet模型中集成RepLKBlock;(4)完成训练流程。该方法展现了

AIcurator的博客 622

LVGL(lv_canvas)

这篇文章介绍了LVGL图形库中的lv_canvas组件,主要内容包括: lv_canvas是一个绘图缓冲区对象,提供丰富的绘图API,可以理解为LVGL的"离屏画布"。 基本使用流程:创建缓冲区->创建canvas对象->设置缓存和尺寸->进行绘图操作。 详细列举了常用的绘图函数,如绘制线条、矩形、文字、图片等。 提供了示例代码展示如何创建画布并绘制一条红色线段。 介绍了canvas的典型应用场景,如动态波形绘制、自定义控件底图等。 对比了canvas与普通img的区别

m0_49476241的博客 1029

电阻电容电感等效模型解析:寄生参数、阻抗曲线与高频设计实战

在硬件电路设计中,理想元件模型常常无法解释高频下的异常行为。电阻、电容、电感实际上都包含寄生参数,如等效串联电阻(ESR)和等效串联电感(ESL),这些寄生参数决定了元件的自谐振频率与阻抗特性。理解等效模型是进行电源完整性、信号完整性分析的基础,也是高频电路设计中选型与布局的关键。通过阻抗分析仪测量或查看数据手册中的阻抗曲线,工程师可以准确掌握元器件的真实频率响应,从而合理配置去耦电容、避开反谐振峰、选择合适饱和电流的电感。本文结合工程实践,系统梳理三类基本元件的等效模型、关键参数及其在DC-DC滤波、分压

weixin_33778544的博客 382

SAP 公司间采购简介

SAP公司间采购(Intercompany Procurement)是指企业集团内部不同法人实体之间的采购和销售流程。这种流程在跨国公司或有多个独立运营子公司的企业中非常常见。SAP提供了标准的功能来处理公司间采购,确保财务和物流流程的透明性和效率。以下是SAP公司间采购的基本流程及其相关模块的简介。

我小时候很黑的博客 1378

射频在片测试Pad Layout设计:从可靠落针到传输线过渡的工程实践

在射频在片测试中,GSG探针的可靠接触与信号完整性高度依赖Pad版图设计。Pad尺寸需匹配针尖几何,Pitch间距应预留横向偏移余量,而共面波导过渡段的阻抗控制则直接影响S参数精度。合理的Pad Layout能显著降低接触电阻波动与高频反射,广泛应用于芯片级S参数提取、毫米波器件表征及校准件设计。本文结合实测经验,系统梳理从落针可靠性到低反射过渡的完整设计链路。

weixin_33901926的博客 371

手把手教你学Simulink实例:基于Simulink的超级电容器充放电仿真

超级电容器(Supercapacitor)是一种高容量电容器,具有快速充放电能力、长寿命和高功率密度等优点。它在能量存储系统、电动汽车、不间断电源(UPS)等领域有广泛应用。为了更好地理解和设计超级电容器的应用系统,通常需要进行详细的仿真分析。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证超级电容器充放电系统的控制策略。本教程将详细介绍如何使用 Simulink 进行超级电容器充放电的仿真实例。通过本教程,我们详细介绍了如何使用 Simulink 进行超级电容器充放电的仿真实例。

MHD0815的博客 581

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

开关电源振铃本质与Ltspice寄生建模实战

开关电源振铃并非故障噪声,而是由寄生电感、寄生电容和寄生电阻构成的RLC谐振网络在开关瞬态下激发的物理振荡;其频率遵循f₀≈1/(2π√LC),直接反映PCB布局、器件封装及变压器结构等硬件细节。理解该原理是EMI抑制、环路稳定与可靠性设计的基础,而Ltspice仿真通过注入非线性Coss、引脚电感、漏感及传输线模型,可构建逼近实测的‘寄生镜像’,实现从理论分析到工程验证的闭环。本文聚焦反激式开关电源pcb中Vds/Vgs振铃的溯源与建模,覆盖cm6800、viper22a等典型方案,为硬件调试与开关电源环

weixin_33858485的博客 392

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 【layout理解篇:Bump】
下一篇: 【layout理解篇之:AAinjector】
锦锦锦aaa
博客等级 码龄8年 87粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值