Hexo + Butterfly 搭建个人博客随记
Hexo + Butterfly 搭建个人博客随记
本地部署
首先得有一个GitHub账号
这里就不赘述如何注册一个GitHub账号了,如果大家能够科学上网想必能轻松完成。
打开你的repo,new一个名字叫YourName.github.io的repo。这里我演示的名字叫BlogDemo,大家也可以挑自己喜欢的。
注意这里可以下载安装GitHub Desktop,便于不想学git指令的小伙伴管理仓库。此外,需要将HTTPS和SSH对应的网址https://github.com/Loli-Eternally/BlogDemo.github.io.git和地址git@github.com:Loli-Eternally/BlogDemo.github.io.git记录下来,便于后面修改配置进行博客的部署。
下载安装好GitHub Desktop并启动后,cloneBlogDemo,URL地址为上面提到的https://github.com/Loli-Eternally/BlogDemo.github.io.git
这个时候我们的repo是空的,需要在本地将BlogDe ...
THE DESIGNER’S GUIDE TO SPICE AND SPECTRE
THE DESIGNER’S GUIDE TO SPICE AND SPECTRE
前言
前面对 DC 分析,瞬态分析和 AC 分析进行了比较详细的介绍,现在就能对 THE DESIGNER’S GUIDE TO SPICE AND SPECTRE 这本书进行快速概括与整合了。像我这种普通人也没很多时间对书本进行详阅,只需要提炼出最关键的内容和知识点即可,这大概也算我学过这本书了吧。
第一章:电路仿真
第一章不是教你怎么用仿真器,而是回答三个根本问题:
电路仿真是怎么发展到今天这一步的?
现代电路仿真器在算法层面到底在做什么?
DC / AC / Transient 分析在数学与算法上有什么本质区别?
可以理解为给后面所有“MNA + 数值算法 + 收敛性问题”的章节打地基。
历史视角(Historical Perspective)
为什么需要电路仿真?
1970 年代 IC 复杂度急剧上升
实物原型:
成本高
调试困难
必须在流片前评估设计
两条技术主线
IBM ASTAP:发展数值计算方法
Berkeley SPICE:
成为事实上的工业标准
核心成功 ...
电路仿真器中的交流分析
电路仿真器中的交流分析
前言
前面已经介绍了电路仿真器中 DC 分析和瞬态分析的基本机制与流程。可以看到,仿真器的核心任务始终是构造并求解由电路节点方程得到的代数方程组。对于包含非线性器件的电路,该方程组本质上是非线性的,通常通过 Newton 迭代在每一步将其线性化,并求解相应的线性子问题。
在瞬态仿真中,电路的微分方程通过数值积分方法(如后向欧拉法)在时间上离散,将时间微分算子替换为由当前时刻未知量和历史状态共同构成的代数表达式,例如
xn+1=xn+Δt f(xn+1),x^{n+1} = x^n + \Delta t\, f(x^{n+1}) ,
xn+1=xn+Δtf(xn+1),
从而把瞬态问题转化为一系列离散时间点上的非线性代数方程,并通过 Newton 迭代逐步求解。
J(xk) Δx=−f(xk)xk+1=xk+Δx⇒xk+1=xk−J−1(xk)f(xk)\begin{aligned}
J(x_k)\,\Delta x &= -f(x_k)\\
x_{k+1}&=x_k+\Delta x
\end{aligned}
\quad\Rightarrow\ ...
电路仿真器是如何工作的
电路仿真器是如何工作的
前言
THE DESIGNER’S GUIDE TO SPICE AND SPECTRE 的作者说:
被动用户受模拟器控制,而积极主动的用户则掌控模拟器。
被动用户运行模拟器时只是希望一切顺利,一旦出现问题,就从一堆解决办法中逐一尝试,却并不真正理解其原理,只希望其中一种能解决问题。如果问题仍未解决,要么重新设计电路以避免问题,要么干脆不用模拟器。而积极主动的用户会预料到可能出现的问题,当问题出现时,他们知道问题的原因,并且清楚该如何解决。
这句话我觉得特别有道理,是否掌握了仿真技术,就得看 TA 对于仿真器的理解,知道仿真器内部是如何运作得到结果的,而不是一味地假设仿真器正常运作而不断尝试修改参数(我以前就是这样的)。
仿真器流程简述
这里介绍 Spectre / SPICE 实现的流程,DC / 瞬态每一步的真实算法流程
写出 MNA 非线性方程
F(x)=0F(x) = 0
F(x)=0
x:节点电压 + 电压源电流
F:KCL + 器件本构关系
给定初始猜测
x(0)x^{(0)}
x(0)
在当前点做一阶泰勒展开
F(x(k)+Δ ...
Virtuoso 中直接运行 Spectre 脚本
Virtuoso 中直接运行 Spectre 脚本
前言
前面我在 LTspice 中运行了 SPICE 脚本,现在想运行它的加强版 Spectre,但我发现直接运行 Spectre 是挺麻烦的,因为它已经和 Virtuoso 集成在了一起。如果想在 Virtuoso 中单独运行 Spectre 脚本也不是不行,就是得先了解 ADE L 的设计逻辑:
ADE L 只能“附着”在一个 schematic testbench 上工作
ADE L(Cadence Advanced Design Environment L),是virtuoso定制设计平台的入门级模拟设计仿真环境,不是一个纯 netlist runner。它必须先 netlist 一个 schematic,再允许你附加 simulation files(include / model / stimulus)。相当于是我们想直接运行 Spectre 脚本仿真就必须先得有个“宿主”,即新建一个什么都没有的 schematic testbench,让 ADE L 指向这个 schematic,再在 ADE L 中 include ...
CMOS 反相器理论与仿真
CMOS 反相器理论与仿真
前言
了解 EDA 软体的发展历史的时候 EDA 軟體是怎麼發明的?從 Virtuoso 到 Verilog,看到了一张图
我突然就想读懂这张图及其背后的物理过程,将自己的心得记录下来。
这是一张电路 Layout 的绘图,该图描述的器件是一个反相器。为什么这些红的蓝的绿的图案组合起来是一个反相器?内部的工作原理是怎样的呢?我挺感兴趣的!
CMOS 基础概述
首先介绍一下 CMOS 的基础原理,想必我们在电路图中也经常看到下面这些器件
我们管将器件导通的载流子叫多数载流子,如果多数载流子为电子,则该 MOS 器件为 NMOS,如果是空穴,则为 PMOS。
MOS 管相比BJT,除了栅极源极和漏极(对应 BJT 的基极发射极和集电极),还有一个体区。体区(通常称为衬底 Substrate 或 Bulk)是 MOSFET 结构的基础,通常连接到源极或一个特定的偏置电压,用于控制器件的阈值电压或提供静电保护。下面是 NMOS 管的物理结构
电路图中 MOS 器件符号中有个箭头符号,这个符号代表体区的 PN 指向。如果是 NMOS 管,体区是 P 掺杂,那么 ...
SPICE 入门
SPICE 入门 (The SPICE Book Ch.1)
电路计算模拟介绍
电气电路计算机模拟的目的
要了解电路的行为特性,就需要同时求解多个方程。其中最简单的问题是确定线性电路的直流工作点,这需要解出由基尔霍夫电压定律(KVL)、基尔霍夫电流定律(KCL)以及支路特性方程(BCE)推导出的一组方程。对于由线性支路电压-电流关系描述的小型线性电路,通过手算可以很容易地得出精确的直流解。而对于较大的线性电路,直流解以及尤其是频域或时域解则非常复杂。包含由电流和电压之间的非线性关系描述的元件的电路的分析会增加另一层复杂性,需要同时求解非线性支路方程以及基于基尔霍夫定律的方程。只有小型电路可以通过手算求解,但所得结果只是近似值。在电子学课程中,工程师们学习进行某些近似处理,以便通过手算来预测小型电路的直流工作状态。
当需要预测电路在时间或频率上的行为时,又增加了一层复杂性。此时的非线性方程就变成了积分微分方程,这些方程只有在采用诸如小信号近似或其他限制性条件等近似方法的情况下才能通过手算求解。
多年来,从事分立元件设计的人员一直使用面包板来分析和测试电子电路的行为。直到今天,仍有一些设计 ...
从电路到光电仿真
从电路到光电仿真
前言
光电联合仿真技术的历史演进(从 1960s → 2020s)
SPICE → Spectre → Verilog(HDL) → Verilog-A → Verilog-AMS
这条路线就是从“电路模拟”走向“光电混合联合仿真”的历史脉络。
年代
技术阶段
对应关键词
关键意义
1970s
电路仿真起源
SPICE
模拟求解器的祖先
1980s
数字电路描述
Verilog(HDL)
数字 IC/FPGA 标准语言
1990s
模拟仿真增强
Spectre
高级 SPICE,工业标准
1990s
模拟行为建模
Verilog-A
高层次模拟行为模型
2000s
混合信号统一
Verilog-AMS
数模统一仿真语言
2010s–2020s
光电联合仿真
ADS + VPI + MATLAB
电子 + 光 + DSP 全链路仿真
1970s:SPICE — 一切模拟电路仿真的起点
1973:SPICE1(伯克利)
电路仿真的“祖先级”工具
基于 KCL/KVL、电路方程求解
面向模拟电路(Analog)
为什么重要? ...
光电联合仿真知识谱图
光电联合仿真知识谱图
模拟电路仿真域(Electronics / SPICE Domain)
SPICE 基础
KCL/KVL 数学框架
瞬态 / 直流 / 交流分析
器件模型(MOSFET、BJT、RLC)
.MODEL、.SUBCKT、.PARAM、.MEAS
数值求解(Newton–Raphson、稀疏矩阵)
先进 SPICE 求解器
Spectre / HSPICE / ADS Transient
Shooting method
Harmonic Balance (HB)
Envelope Simulation(高速链路必用)
X-parameters(非线性大型信号行为模型)
S 参数与电路网络表示
S 参数、Z/Y/ABCD Matrix
Touchstone 文件 (.s2p/.s4p)
级联、去嵌、端口匹配
频域 → 时域:IDFT/HT
行为模型 / Mixed-Signal
Verilog-A
Verilog-AMS
SystemVerilog-AMS(高级)
IBIS / IBIS-AMI(SerDes 模型)
光学仿真域(Optics / Ph ...
三个量子数的由来
三个量子数的由来
前言
前面介绍了球谐函数,里面包括了两个量子数 lll 和 mmm,它们分别代表角动量量子数和磁量子数,因为拉普拉斯算子在球坐标下可写为:
∇2=1r2∂∂r (r2∂∂r)+1r2∇Ω2,(1)\nabla^2 = \frac{1}{r^2}\frac{\partial}{\partial r}\!\left(r^2 \frac{\partial}{\partial r}\right)
+ \frac{1}{r^2}\nabla_\Omega^2,\tag{1}
∇2=r21∂r∂(r2∂r∂)+r21∇Ω2,(1)
其中 ∇Ω2\nabla_\Omega^2∇Ω2 仅作用在角变量 (θ,ϕ)(\theta,\phi)(θ,ϕ)。
梯度算子 ∇\nabla∇ 本质是一个动量算符,因为 ∇\nabla∇ 是作用在空间维度上的微分算子,它的作用是将空谐函数 eik⋅xe^{ik\cdot x}eik⋅x 中的空间系数取下来,因此本征值是 ikikik,这也是为什么动量算符 p=ℏk=−iℏ⋅∇p=\hbar k=-i\hbar\cdot \nablap= ...









