<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>JerryMain Island</title><description>Stay stupid, stay android</description><link>https://jerrymain.top</link><item><title>Analog Integrated Circuits Design</title><link>https://jerrymain.top/blog/analogic/analogicdesign</link><guid isPermaLink="true">https://jerrymain.top/blog/analogic/analogicdesign</guid><description>A curricular notebook.</description><pubDate>Wed, 27 May 2026 11:52:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;写在前面：&lt;/p&gt;
&lt;p&gt;本笔记是个人学习拉扎维的《模拟CMOS集成电路设计》的心得总结，由于正在学习模拟电子电路和半导体器件，所以对书中的一些关键内容理解稍有偏差，还请谅解！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;MOS器件物理基础&lt;/h1&gt;
&lt;p&gt;数字电路中常常用MOS管的通电断电来控制导通与截止，从而控制01信号以及逻辑操作。但是我们更加疑惑：在导通和截止之间发生了什么，多大的电压可以导通，导通沟道有压降存在吗，等等，这也是模拟电路的研究范畴。&lt;/p&gt;
&lt;p&gt;针对这些问题，理想的学习路径分为两条，一是从固体物理或半导体物理出发进行器件推导，二是从电路层面学习黑盒子进行拼接组装。幸运又不幸的是，我正在同时学习两门课程。&lt;/p&gt;
&lt;h2&gt;I-V特性推导&lt;/h2&gt;
&lt;p&gt;我们已知，MOS管的G和B之间有电容的性质，可以通过控制栅极电压，从而控制导电沟道。这种假设下的沟道两端的D和S，他们的电势完全相同，但实际应用中，由于有电流流动，就必然会带来电势的不平衡，也就是$V_D&gt;V_S$。&lt;/p&gt;
&lt;p&gt;在这种情况下的氧化层电容，其中的电荷分布也会有所不同。粗略来看，必然是压差大的地方电荷多，压差小的地方电荷少。这种情况下我们做一个近似：&lt;strong&gt;缓变沟道近似&lt;/strong&gt;。我们假设沟道中纵向的电场远小于横向的电场。基于这个假设，我们可以把沟道看作无数个微小的MOS电容串联，每一处的电荷密度只由该处的局部电压决定。&lt;/p&gt;
&lt;p&gt;我们以源极为原点 $x=0$，且设 $V_S = 0$，漏极 $x=L$ 处 $V_D = V_{DS}$。在距离S极 $x$ 的位置，沟道电势为 $V(x)$。&lt;/p&gt;
&lt;p&gt;因此，单位面积上的自由电子电荷密度 $Q_n(x)$ 为：
$$
Q_n(x) = -C_{ox} [V_{GS} - V_{TH} - V(x)]
$$&lt;/p&gt;
&lt;p&gt;根据半导体物理的漂移电流公式，电流等于电荷密度乘以载流子漂移速度 $v(x)$，再乘以沟道宽度 $W$。漂移速度与电场成正比：$v(x) = \mu_n E_x = \mu_n \frac{dV(x)}{dx}$所以沿 $x$ 方向的漏极电流 $I_D$ 可以写为：
$$
I_D = W \cdot \mu_n \cdot C_{ox} [V_{GS} - V_{TH} - V(x)] \frac{dV(x)}{dx}
$$&lt;/p&gt;
&lt;p&gt;由于稳态下电流 $I_D$ 在沟道各处处处相等，我们可以对上式分离变量，并在整个沟道长度 $L$ 上进行积分：
$$
\int_{0}^{L} I_D , dx = \int_{0}^{V_{DS}} W \mu_n C_{ox} [V_{GS} - V_{TH} - V(x)] , dV(x)
$$&lt;/p&gt;
&lt;p&gt;左边积分得到 $I_D \cdot L$，右边是对 $V(x)$ 的多项式积分。将 $L$ 除过去，我们就得到了大名鼎鼎的线性区（Triode Region）电流公式：
$$
I_D = \mu_n C_{ox} \frac{W}{L} \left[ (V_{GS} - V_{TH})V_{DS} - \frac{1}{2}V_{DS}^2 \right]
$$&lt;/p&gt;
&lt;p&gt;我们分析此公式可以得到他有一个最大值为：
$$
I_{D,max} = \frac{1}{2}\mu_n C_{ox} \frac{W}{L} (V_{GS}-V_{TH})^2
$$&lt;/p&gt;
&lt;p&gt;最大值在$V_{DS}=V_{GS}-V_{TH}$取得，从这个角度出发，我们得到了模拟电子电路上对MOS管的三段描述：
|$V_{DS}&gt;V_{GS}-V_{TH},V_{GS}&gt;V_{TH}$|$V_{DS}&amp;#x3C;V_{GS}-V_{TH},V_{GS}&gt;V_{TH}$|$V_{GS}&amp;#x3C;V_{TH}$|
|---|---|---|
|饱和区|线性区|截止区|&lt;/p&gt;
&lt;h2&gt;MOSFET跨导&lt;/h2&gt;
&lt;p&gt;跨导是MOS管在饱和区工作时，电压随电流的变化，用$g_m$表示，为：
$$
g_m=\frac{\partial I_D}{\partial V_{GS}}|&lt;em&gt;{V&lt;/em&gt;{DS,const}}=\mu_n C_{ox}\frac{W}{L}(V_{GS}-V_{TH})=\sqrt{2\mu_n C_{ox}\frac{W}{L}I_D}=\frac{2I_D}{V_{GS}-V_{TH}}
$$&lt;/p&gt;
&lt;h2&gt;二级效应&lt;/h2&gt;
&lt;h3&gt;体效应&lt;/h3&gt;
&lt;p&gt;在多管串联的电路（如源极跟随器、共源共栅放大器）中，很多MOS管的源极电位并不为0（$V_S &gt; 0$），而为了防止正向偏置，P型衬底通常统一接最低电位（$V_B = 0$）。这就导致了源衬底反向偏压 $V_{SB} &gt; 0$。&lt;/p&gt;
&lt;p&gt;当 $V_{SB} &gt; 0$ 时，PN结反偏加剧，表面势垒变高。从半导体物理的角度来看，反偏电压吸引了更多的空穴向衬底深处移动，导致沟道下方的耗尽层电荷（固定负离子）增多。要想重新开启沟道（达到强反型），栅极就必须额外施加电压，去抵消这些变多了的耗尽层固定电荷。在宏观上表现为阈值电压 $V_{TH}$ 升高。&lt;/p&gt;
&lt;p&gt;引入体效应后的阈值电压公式为：
$$
V_{TH} = V_{TH0} + \gamma \left( \sqrt{2\phi_F + V_{SB}} - \sqrt{2\phi_F} \right)
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$V_{TH0}$：$V_{SB}=0$ 时的理想阈值电压。&lt;/li&gt;
&lt;li&gt;$\gamma$：体效应系数（Body Effect Coefficient），其数学表达式为 $\gamma = \frac{\sqrt{2q\varepsilon_{si}N_{sub}}}{C_{ox}}$，可见衬底掺杂浓度 $N_{sub}$ 越高，体效应越明显。&lt;/li&gt;
&lt;li&gt;$2\phi_F$：强反型时的表面势（通常约为 $0.6\text{V} \sim 0.8\text{V}$）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;电路影响降低过驱动电压：由于 $V_{TH}$ 变大，过驱动电压 $V_{GS} - V_{TH}$ 减小，在相同偏置下会导致电流 $I_D$ 下降。&lt;/p&gt;
&lt;p&gt;引入背栅跨导（$g_{mb}$）：在小信号模型中，衬底（B）变成了第二个“栅极”。衬底电压的变化也能控制电流，这被称为背栅效应，其跨导定义为：
$$
g_{mb} = \frac{\partial I_D}{\partial V_{BS}} = \eta g_m \quad \left( \eta = \frac{\gamma}{2\sqrt{2\phi_F + V_{SB}}} \approx 0.1 \sim 0.3 \right)
$$&lt;/p&gt;
&lt;p&gt;在源极跟随器中，体效应会直接导致其电压增益无法达到理想的 1，而是退化为 $\frac{g_m}{g_m + g_{mb} + g_{mb_load}}$。&lt;/p&gt;
&lt;h3&gt;沟道长度调制&lt;/h3&gt;
&lt;p&gt;在前面的推导中，我们假设一旦 $V_{DS} \ge V_{GS} - V_{TH}$，沟道就在漏端夹断，此后电流完全水平。但实际上，夹断点是会移动的。&lt;/p&gt;
&lt;p&gt;当 $V_{DS}$ 进一步增大，多出来的电压（$V_{DS} - V_{ov}$）并不会平白无故消失，它会降落在漏极与夹断点之间的那段耗尽区上。随着该段耗尽区横向扩展，实际的有效沟道长度被“蚕食”了，变成了 $L_{eff} = L - \Delta L$。由于 $I_D \propto \frac{1}{L_{eff}}$，有效长度减小导致沟道内的横向电场增强，从而使饱和区电流随 $V_{DS}$ 的增加而继续微微上升。&lt;/p&gt;
&lt;p&gt;为了在数学上简便修正，我们仿照三极管的厄尔利效应（Early Effect），在线性区电流公式的基础上引入修正项 $(1 + \lambda V_{DS})$：
$$
I_D = \frac{1}{2} \mu_n C_{ox} \frac{W}{L} (V_{GS} - V_{TH})^2 (1 + \lambda V_{DS})
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\lambda$：沟道长度调制系数（Channel Length Modulation Coefficient），它与工艺和沟道长度成反比（$\lambda \propto \frac{1}{L}$）。这意味着工艺越先进、管子尺寸越短，该效应越剧烈。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使电流镜失配：在模拟电路中，复制偏置电流的“电流镜”如果两端 $V_{DS}$ 不等，由于 $\lambda$ 的存在，会导致电流复制不精准。&lt;/p&gt;
&lt;p&gt;产生有限的输出电阻（$r_o$）：饱和区的 MOSFET 别想做成绝对理想的恒流源了，它具有一个有限的漏源输出电阻：
$$
r_o = \left( \frac{\partial I_D}{\partial V_{DS}} \right)^{-1} \approx \frac{1}{\lambda I_D}
$$&lt;/p&gt;
&lt;p&gt;这个 $r_o$ 是模拟电路的“命根子”。单管共源放大器的内在增益上限就是 $-g_m r_o$。为了提高增益，我们必须增大 $L$（减小 $\lambda$）来逼高 $r_o$。&lt;/p&gt;
&lt;h3&gt;亚阈值导电性 (Subthreshold Conduction)&lt;/h3&gt;
&lt;p&gt;数字电路中我们坚信：$V_{GS} &amp;#x3C; V_{TH}$ 时管子就彻底关断。但对模拟电路和固体物理来说，世事皆连续，断灭非瞬间。&lt;/p&gt;
&lt;p&gt;当 $V_{GS}$ 略低于 $V_{TH}$ 时，半导体表面虽然没有达到“强反型”，但也进入了“弱反型（Weak Inversion）”。此时表面虽然电子极少，但并非为零。在强反型区，电流是由纵向电场驱动的漂移电流（Drift）；而在亚阈值区（弱反型区），由于漏端电势高、源端电势低，两端的载流子浓度差占据了主导，此时的电流主要是扩散电流（Diffusion）。这就让 MOSFET 在微观行为上突然变成了一个 BJT（双极型三极管）！&lt;/p&gt;
&lt;p&gt;因为是扩散机制，电流与栅源电压不再是平方关系，而是变成了指数关系：
$$
I_D \approx I_{D_0} \cdot \exp ( \frac{V_{GS}}{\zeta V_T} )
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;$V_T = \frac{kT}{q}$：热电压（常温下约为 $26\text{mV}$）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$\zeta$：亚阈值理想因子（通常 $&gt;1$），由栅氧化层电容和表面耗尽层电容分压决定。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;亚阈值摆幅（Subthreshold Swing, SS）：指电流改变一个数量级（10倍）所需要改变的栅电压 $V_{GS}$。定义为 $SS = \ln 10 \cdot \zeta V_T$。在常温下，室温物理极限约为 $60\text{mV/decade}$，实际器件通常在 $70 \sim 90\text{mV/decade}$。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;超低功耗电路的福音：在生物医疗芯片、智能手表等对功耗要求极其严苛的场景下，可以故意让偏置电流降到 $\text{nA}$ 级别，使管子工作在亚阈值区。此时它的跨导效率 $\frac{g_m}{I_D} = \frac{1}{\zeta V_T}$ 达到理论最高值，非常省电。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数字电路的静态功耗（漏电）：即便数字芯片在休眠，由于 $SS$ 的限制，成百上千亿个管子的亚阈值漏电流累加起来也会消耗巨大的能量，这是现代先进纳米工艺（如3nm / 2nm）面临的重大物理挑战。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;亚阈值导电性&lt;/h3&gt;</content:encoded><h:img src="/_astro/images.CRsqeyeH.jpg"/><enclosure url="/_astro/images.CRsqeyeH.jpg"/></item><item><title>Number Analysis</title><link>https://jerrymain.top/blog/numberanalysis/numberanalysis</link><guid isPermaLink="true">https://jerrymain.top/blog/numberanalysis/numberanalysis</guid><description>A curricular review.</description><pubDate>Tue, 12 May 2026 19:01:00 GMT</pubDate><content:encoded>&lt;h1&gt;数值分析复习总结&lt;/h1&gt;
&lt;h2&gt;1.多元函数误差传播公式&lt;/h2&gt;
&lt;p&gt;$$\varepsilon(z) \leq \left|\frac{\partial z}{\partial x}\right|\varepsilon(x) + \left|\frac{\partial z}{\partial y}\right|\varepsilon(y)$$&lt;/p&gt;
&lt;h3&gt;例题&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;设 $x = 1.025$，$y = 2.301$ 均具有 4 位有效数字，给定函数
$$z = e^{xy} + \sin!\left(2xy^2 + 3\frac{x}{y}\right)$$
试分析计算 $z$ 的绝对误差限、相对误差限以及有效数字位数。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;第一步：确定 x, y 的误差限&lt;/h4&gt;
&lt;p&gt;4 位有效数字的误差限为末位的半个单位：&lt;/p&gt;
&lt;p&gt;$$\varepsilon(x) = 0.0005, \quad \varepsilon(y) = 0.0005$$&lt;/p&gt;
&lt;h4&gt;第二步：计算各中间量的值&lt;/h4&gt;
&lt;p&gt;$$xy = 1.025 \times 2.301 = 2.35853$$&lt;/p&gt;
&lt;p&gt;$$xy^2 = xy \cdot y = 2.35853 \times 2.301 = 5.42607$$&lt;/p&gt;
&lt;p&gt;$$\frac{x}{y} = \frac{1.025}{2.301} = 0.44546$$&lt;/p&gt;
&lt;p&gt;$$2xy^2 + 3\frac{x}{y} = 2 \times 5.42607 + 3 \times 0.44546 = 10.85214 + 1.33638 = 12.18852$$&lt;/p&gt;
&lt;p&gt;$$z = e^{2.35853} + \sin(12.18852)$$&lt;/p&gt;
&lt;p&gt;$$e^{2.35853} \approx 10.5737, \quad \sin(12.18852) \approx -0.4941$$&lt;/p&gt;
&lt;p&gt;$$z \approx 10.5737 + (-0.4941) = 10.0796$$&lt;/p&gt;
&lt;h4&gt;第三步：用误差传播公式求绝对误差限&lt;/h4&gt;
&lt;p&gt;令 $u = xy$，$v = 2xy^2 + 3\dfrac{x}{y}$，$z = e^u + \sin v$，则：&lt;/p&gt;
&lt;p&gt;$$\frac{\partial z}{\partial x} = e^{xy} \cdot y + \cos(v)\left(2y^2 + \frac{3}{y}\right)$$&lt;/p&gt;
&lt;p&gt;$$\frac{\partial z}{\partial y} = e^{xy} \cdot x + \cos(v)\left(4xy - \frac{3x}{y^2}\right)$$&lt;/p&gt;
&lt;p&gt;已知 $e^{xy} = 10.5737$，$\cos(12.18852) \approx 0.8693$：&lt;/p&gt;
&lt;p&gt;$$\frac{\partial z}{\partial x} = 10.5737 \times 2.301 + 0.8693 \times \left(2 \times 2.301^2 + \frac{3}{2.301}\right) = 24.330 + 0.8693 \times 11.893 = 34.667$$&lt;/p&gt;
&lt;p&gt;$$\frac{\partial z}{\partial y} = 10.5737 \times 1.025 + 0.8693 \times \left(4 \times 1.025 \times 2.301 - \frac{3 \times 1.025}{2.301^2}\right) = 10.838 + 0.8693 \times 8.850 = 18.531$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;绝对误差限&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$\varepsilon(z) = 34.667 \times 0.0005 + 18.531 \times 0.0005 = 0.01733 + 0.00927 = \boxed{0.0266}$$&lt;/p&gt;
&lt;h4&gt;第四步：相对误差限&lt;/h4&gt;
&lt;p&gt;$$\varepsilon_r(z) = \frac{\varepsilon(z)}{|z|} = \frac{0.0266}{10.0796} \approx \boxed{0.264%}$$&lt;/p&gt;
&lt;h4&gt;第五步：有效数字位数&lt;/h4&gt;
&lt;p&gt;由 $\varepsilon_r \approx 0.264%$，有效数字位数 $n$ 满足：&lt;/p&gt;
&lt;p&gt;$$\frac{1}{2} \times 10^{1-n} \geq \varepsilon(z) = 0.0266 \implies 10^{1-n} \geq 0.0532 \implies 1-n \geq -1.274 \implies n \leq 2.274$$&lt;/p&gt;
&lt;p&gt;$$\boxed{z \approx 10.08 \text{ 具有 4 位有效数字}}$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;2.Horner 算法（嵌套乘法）&lt;/h2&gt;
&lt;h3&gt;核心思想&lt;/h3&gt;
&lt;p&gt;Horner 算法通过&lt;strong&gt;嵌套乘法&lt;/strong&gt;（重新括号化）消除多项式求值中的重复计算，显著减少乘法次数。&lt;/p&gt;
&lt;h3&gt;简单例子对比&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;普通写法&lt;/strong&gt;（直接计算）：&lt;/p&gt;
&lt;p&gt;$$f(x) = 5x^4 + 3x^3 + 2x^2 + 4x + 1$$&lt;/p&gt;
&lt;p&gt;逐项计算，需要 &lt;strong&gt;10 次乘法&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Horner 改写&lt;/strong&gt;（层层提取 $x$）：&lt;/p&gt;
&lt;p&gt;$$f(x) = ((((5)x + 3)x + 2)x + 4)x + 1$$&lt;/p&gt;
&lt;p&gt;从最内层括号开始计算，只需 &lt;strong&gt;4 次乘法 + 4 次加法&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;算法步骤（$n$ 次多项式）&lt;/h3&gt;
&lt;p&gt;对于多项式 $f(x) = a_n x^n + a_{n-1} x^{n-1} + \cdots + a_1 x + a_0$，在 $x = x_0$ 处的递推公式：&lt;/p&gt;
&lt;p&gt;$$\begin{cases} b_n = a_n \ b_k = a_k + b_{k+1} \cdot x_0, \quad k = n-1, n-2, \ldots, 0 \end{cases}$$&lt;/p&gt;
&lt;p&gt;最终 $b_0 = f(x_0)$。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;3.非线性方程数值解&lt;/h2&gt;
&lt;h3&gt;1. 二分法&lt;/h3&gt;
&lt;p&gt;每次二分后区间长度减半，第 $n$ 次迭代后的误差满足：&lt;/p&gt;
&lt;p&gt;$$|x_n - x^*| \leq \frac{b-a}{2^n}$$&lt;/p&gt;
&lt;p&gt;其中 $[a, b]$ 为初始区间，$x^*$ 为精确根，$x_n$ 为第 $n$ 次迭代的近似根。&lt;/p&gt;
&lt;h4&gt;例程&lt;/h4&gt;
&lt;p&gt;求方程：&lt;/p&gt;
&lt;p&gt;$$f(x)=x^3-x-2=0$$&lt;/p&gt;
&lt;p&gt;在区间 $[1,2]$ 内的一个近似根。&lt;/p&gt;
&lt;p&gt;因为：&lt;/p&gt;
&lt;p&gt;$$f(1)=-2&amp;#x3C;0,\qquad f(2)=4&gt;0$$&lt;/p&gt;
&lt;p&gt;所以该区间内至少存在一个实根。&lt;/p&gt;
&lt;p&gt;| 迭代次数 | 区间 | 中点 $x_n$ | $f(x_n)$ |
|---|---|---|---|
| 1 | $[1,2]$ | 1.5 | -0.125 |
| 2 | $[1.5,2]$ | 1.75 | 1.609 |
| 3 | $[1.5,1.75]$ | 1.625 | 0.666 |
| 4 | $[1.5,1.625]$ | 1.5625 | 0.252 |
| 5 | $[1.5,1.5625]$ | 1.53125 | 0.059 |&lt;/p&gt;
&lt;p&gt;最终得到近似根：&lt;/p&gt;
&lt;p&gt;$$x \approx 1.52$$&lt;/p&gt;
&lt;h3&gt;2. 不动点迭代&lt;/h3&gt;
&lt;p&gt;$$x_{n+1} = \varphi(x_n)$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;收敛条件&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$\forall x \in [a,b], |\varphi(x)| \in [a,b] $&lt;/p&gt;
&lt;p&gt;$\forall x \in [a,b], |\varphi&apos;(x)| &amp;#x3C; 1$&lt;/p&gt;
&lt;h4&gt;例程&lt;/h4&gt;
&lt;p&gt;求解方程：&lt;/p&gt;
&lt;p&gt;$$x^3+x-1=0$$&lt;/p&gt;
&lt;p&gt;将方程化为：&lt;/p&gt;
&lt;p&gt;$$x=\frac{1}{1+x^2}$$&lt;/p&gt;
&lt;p&gt;构造迭代函数：&lt;/p&gt;
&lt;p&gt;$$\varphi(x)=\frac{1}{1+x^2}$$&lt;/p&gt;
&lt;p&gt;取初值：&lt;/p&gt;
&lt;p&gt;$$x_0=0.5$$&lt;/p&gt;
&lt;p&gt;迭代过程：&lt;/p&gt;
&lt;p&gt;| $n$ | $x_n$ |
|---|---|
| 0 | 0.5000 |
| 1 | 0.8000 |
| 2 | 0.6098 |
| 3 | 0.7280 |
| 4 | 0.6537 |
| 5 | 0.7006 |&lt;/p&gt;
&lt;p&gt;逐步收敛到方程的实根：&lt;/p&gt;
&lt;p&gt;$$x \approx 0.682$$&lt;/p&gt;
&lt;h3&gt;3. 牛顿法（切线法）&lt;/h3&gt;
&lt;p&gt;在当前点 $x_n$ 处作函数 $f(x)$ 的切线，用切线与 $x$ 轴的交点作为下一个近似根：&lt;/p&gt;
&lt;p&gt;$$\boxed{x_{n+1} = x_n - \frac{f(x_n)}{f&apos;(x_n)}}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;几何意义&lt;/strong&gt;：用切线近似曲线，将非线性方程的求根问题转化为线性方程求解。&lt;br&gt;
&lt;strong&gt;收敛阶&lt;/strong&gt;：通常为&lt;strong&gt;二阶收敛&lt;/strong&gt;（平方收敛）。&lt;/p&gt;
&lt;h4&gt;例程&lt;/h4&gt;
&lt;p&gt;求方程：&lt;/p&gt;
&lt;p&gt;$$x^2-2=0$$&lt;/p&gt;
&lt;p&gt;即求：&lt;/p&gt;
&lt;p&gt;$$\sqrt{2}$$&lt;/p&gt;
&lt;p&gt;设：&lt;/p&gt;
&lt;p&gt;$$f(x)=x^2-2,\qquad f&apos;(x)=2x$$&lt;/p&gt;
&lt;p&gt;牛顿迭代公式：&lt;/p&gt;
&lt;p&gt;$$x_{n+1}=x_n-\frac{x_n^2-2}{2x_n}$$&lt;/p&gt;
&lt;p&gt;取初值：&lt;/p&gt;
&lt;p&gt;$$x_0=1.5$$&lt;/p&gt;
&lt;p&gt;迭代过程：&lt;/p&gt;
&lt;p&gt;| $n$ | $x_n$ |
|---|---|
| 0 | 1.500000 |
| 1 | 1.416667 |
| 2 | 1.414216 |
| 3 | 1.414214 |&lt;/p&gt;
&lt;p&gt;因此：&lt;/p&gt;
&lt;p&gt;$$\sqrt{2}\approx1.414214$$&lt;/p&gt;
&lt;h3&gt;4. 割线法（牛顿法的变体）&lt;/h3&gt;
&lt;p&gt;当 $f&apos;(x)$ 难以计算时，用&lt;strong&gt;差商&lt;/strong&gt;近似代替导数：&lt;/p&gt;
&lt;p&gt;$$\boxed{x_{n+1} = x_n - \frac{f(x_n)(x_n - x_{n-1})}{f(x_n) - f(x_{n-1})}}$$&lt;/p&gt;
&lt;h4&gt;例程&lt;/h4&gt;
&lt;p&gt;求方程：&lt;/p&gt;
&lt;p&gt;$$x^3-x-2=0$$&lt;/p&gt;
&lt;p&gt;取初值：&lt;/p&gt;
&lt;p&gt;$$x_0=1,\qquad x_1=2$$&lt;/p&gt;
&lt;p&gt;对应函数值：&lt;/p&gt;
&lt;p&gt;$$f(1)=-2,\qquad f(2)=4$$&lt;/p&gt;
&lt;p&gt;迭代过程：&lt;/p&gt;
&lt;p&gt;| $n$ | $x_n$ |
|---|---|
| 0 | 1.000000 |
| 1 | 2.000000 |
| 2 | 1.333333 |
| 3 | 1.462687 |
| 4 | 1.531169 |
| 5 | 1.521376 |&lt;/p&gt;
&lt;p&gt;最终得到近似根：&lt;/p&gt;
&lt;p&gt;$$x \approx 1.521$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;4.矩阵范数&lt;/h2&gt;
&lt;p&gt;设 $A = (a_{ij}) \in \mathbb{R}^{m \times n}$：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;列和范数（1-范数）&lt;/strong&gt;：$|A|&lt;em&gt;1 = \max_j \sum_i |a&lt;/em&gt;{ij}|$（列绝对值和的最大值）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;谱范数（2-范数）&lt;/strong&gt;：$|A|_2 = \sqrt{\rho(A^T A)}$（$\rho$ 为谱半径）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行和范数（∞-范数）&lt;/strong&gt;：$|A|&lt;em&gt;\infty = \max_i \sum_j |a&lt;/em&gt;{ij}|$（行绝对值和的最大值）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;5.迭代法收敛性判别准则&lt;/h2&gt;
&lt;h3&gt;准则一：谱半径（充要条件）&lt;/h3&gt;
&lt;p&gt;$$\boxed{\rho(B) &amp;#x3C; 1 \iff \text{迭代收敛}}$$&lt;/p&gt;
&lt;p&gt;其中 $\rho(B)$ 是迭代矩阵 $B$ 的&lt;strong&gt;谱半径&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$\rho(B) = \max_i |\lambda_i|$$&lt;/p&gt;
&lt;p&gt;| 条件 | 结论 |
|------|------|
| $\rho(B) &amp;#x3C; 1$ | 收敛，且 $\rho(B)$ 越小收敛越快 |
| $\rho(B) \geq 1$ | 发散 |&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;充要条件&lt;/strong&gt;，理论完备&lt;/li&gt;
&lt;li&gt;❌ 需要计算特征值，计算量大&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;准则二：严格对角占优（充分条件）&lt;/h3&gt;
&lt;p&gt;$$\boxed{|a_{ii}| &gt; \sum_{j \neq i} |a_{ij}| \quad \forall i \implies \text{Jacobi 和 Gauss-Seidel 均收敛}}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$A = \begin{bmatrix} 4 &amp;#x26; 1 &amp;#x26; 1 \ 1 &amp;#x26; 3 &amp;#x26; 1 \ 1 &amp;#x26; 1 &amp;#x26; 5 \end{bmatrix}$$&lt;/p&gt;
&lt;p&gt;| 行 | 对角元 $|a_{ii}|$ | 其余元素和 | 是否满足 |
|----|------------------|------------|----------|
| 1 | 4 | 1+1=2 | ✅ 4&gt;2 |
| 2 | 3 | 1+1=2 | ✅ 3&gt;2 |
| 3 | 5 | 1+1=2 | ✅ 5&gt;2 |&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;：$A$ 严格对角占优 → Jacobi 和 Gauss-Seidel 均收敛。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ 仅为充分条件：不满足严格对角占优的矩阵&lt;strong&gt;不一定发散&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;准则三：对称正定（充分条件，仅对 Gauss-Seidel）&lt;/h3&gt;
&lt;p&gt;$$\boxed{A \text{ 对称正定} \implies \text{Gauss-Seidel 收敛}}$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;两个条件&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;对称&lt;/strong&gt;：$A = A^T$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;正定&lt;/strong&gt;：所有特征值 $&gt; 0$（或对所有非零向量 $x$，有 $x^T A x &gt; 0$）&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ 此条件&lt;strong&gt;只保证 Gauss-Seidel 收敛&lt;/strong&gt;，对 Jacobi 迭代无法保证。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;6.数值积分方法&lt;/h2&gt;
&lt;h3&gt;1. 基本求积公式&lt;/h3&gt;
&lt;p&gt;$$\int_a^b f(x),dx \approx \sum_k A_k f(x_k)$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;左矩形公式&lt;/strong&gt;：$\displaystyle\int_a^b f(x),dx \approx (b-a)f(a)$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中矩形公式&lt;/strong&gt;：$\displaystyle\int_a^b f(x),dx \approx (b-a)f!\left(\frac{a+b}{2}\right)$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;梯形公式&lt;/strong&gt;（$n=1$）：$\displaystyle\int_a^b f(x),dx \approx \frac{b-a}{2}[f(a)+f(b)]$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Simpson 公式&lt;/strong&gt;（$n=2$）：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$\int_a^b f(x),dx \approx \frac{b-a}{6}\left[f(a) + 4f!\left(\frac{a+b}{2}\right) + f(b)\right]$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cotes 公式&lt;/strong&gt;（$n=4$）：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$\int_a^b f(x),dx \approx \frac{b-a}{90}\left[7f_0 + 32f_1 + 12f_2 + 32f_3 + 7f_4\right]$$&lt;/p&gt;
&lt;h3&gt;2. 复合求积公式&lt;/h3&gt;
&lt;p&gt;设 $h = \dfrac{b-a}{n}$，节点 $x_k = a + kh$：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;复合梯形公式&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$T_n = \frac{h}{2}\left[f(a) + 2\sum_{k=1}^{n-1}f(x_k) + f(b)\right]$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;复合 Simpson 公式&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;$$S_n = \frac{h}{6}\sum_{k=0}^{n-1}\left[f(x_k) + 4f!\left(x_k+\frac{h}{2}\right) + f(x_{k+1})\right]$$&lt;/p&gt;
&lt;h3&gt;3. Romberg 算法&lt;/h3&gt;
&lt;p&gt;利用梯形公式外推逐步提高精度（Richardson 外推）：&lt;/p&gt;
&lt;p&gt;$$R(n,1) = T_{2n} + \frac{T_{2n} - T_n}{3}$$&lt;/p&gt;
&lt;p&gt;Romberg 表逐列精度依次提升。&lt;/p&gt;
&lt;h3&gt;4. Gauss 求积公式（高斯–勒让德公式）&lt;/h3&gt;
&lt;p&gt;$$\int_{-1}^{1} f(x),dx \approx \sum_{k=1}^n A_k f(x_k)$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;高斯点&lt;/strong&gt;：Legendre 多项式 $P_n(x)$ 的零点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代数精度&lt;/strong&gt;：$2n-1$（$n$ 个节点）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;区间变换&lt;/strong&gt;（$[a,b]$ 变换到 $[-1,1]$）：&lt;/p&gt;
&lt;p&gt;$$\int_a^b f(x),dx = \frac{b-a}{2}\int_{-1}^1 f!\left(\frac{b-a}{2}t + \frac{a+b}{2}\right)dt$$&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;7.常微分方程数值解&lt;/h2&gt;
&lt;p&gt;考虑初值问题 $y&apos; = f(x, y)$，$y(x_0) = y_0$，步长 $h$。&lt;/p&gt;
&lt;h3&gt;1. Euler 法（显格式，一阶）&lt;/h3&gt;
&lt;p&gt;$$y_{n+1} = y_n + h,f(x_n, y_n)$$&lt;/p&gt;
&lt;p&gt;局部截断误差 $O(h^2)$，整体误差 $O(h)$。&lt;/p&gt;
&lt;h3&gt;2. 隐式 Euler 法（梯形格式）&lt;/h3&gt;
&lt;p&gt;$$y_{n+1} = y_n + h,f(x_{n+1}, y_{n+1})$$&lt;/p&gt;
&lt;h3&gt;3. 改进 Euler 法（预估–校正，Heun 方法，二阶）&lt;/h3&gt;
&lt;p&gt;$$\begin{cases} \tilde{y}&lt;em&gt;{n+1} = y_n + h,f(x_n, y_n) \ y&lt;/em&gt;{n+1} = y_n + \dfrac{h}{2}\left[f(x_n, y_n) + f(x_{n+1}, \tilde{y}_{n+1})\right] \end{cases}$$&lt;/p&gt;
&lt;p&gt;整体误差 $O(h^2)$。&lt;/p&gt;
&lt;h3&gt;4. Runge–Kutta 三阶法&lt;/h3&gt;
&lt;p&gt;$$y_{n+1} = y_n + \frac{h}{6}(k_1 + 4k_2 + k_3)$$&lt;/p&gt;
&lt;p&gt;$$k_1 = f(x_n, y_n), \quad k_2 = f!\left(x_n+\frac{h}{2},, y_n+\frac{h}{2}k_1\right), \quad k_3 = f(x_n+h,, y_n - hk_1 + 2hk_2)$$&lt;/p&gt;
&lt;p&gt;整体误差 $O(h^3)$。&lt;/p&gt;
&lt;h3&gt;5. Runge–Kutta 四阶法（经典 RK4）&lt;/h3&gt;
&lt;p&gt;$$y_{n+1} = y_n + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4)$$&lt;/p&gt;
&lt;p&gt;$$
\begin{array}{l}
k_1 = f(x_n, y_n) \
k_2 = f!\left(x_n+\frac{h}{2},, y_n+\frac{h}{2}k_1\right) \
k_3 = f!\left(x_n+\frac{h}{2},, y_n+\frac{h}{2}k_2\right) \
k_4 = f(x_n+h,, y_n+hk_3)
\end{array}
$$
整体误差 $O(h^4)$。&lt;/p&gt;
&lt;hr&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>Plants VS Jombies</title><link>https://jerrymain.top/blog/music/pvj</link><guid isPermaLink="true">https://jerrymain.top/blog/music/pvj</guid><description>Some magic music.</description><pubDate>Fri, 24 Apr 2026 20:45:01 GMT</pubDate><content:encoded>&lt;h2&gt;成品&lt;/h2&gt;
&lt;p&gt;老蒋大战僵尸，不多说了，请看视频。&lt;/p&gt;
&lt;h2&gt;过程&lt;/h2&gt;
&lt;h3&gt;使用器材&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;软件：MuseScore Studio 4, Quartus II 13.0 sp1&lt;/li&gt;
&lt;li&gt;硬件：Cyclone IV EP4CE6F17C8N（学校发的数电板子）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;构建过程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;新建&lt;code&gt;New Project Wizard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;填入信息：第一栏填项目地址，一般是个空文件夹；第二栏填项目名字，第三栏会自动复写第二栏的名字。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./1.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;这一页不动。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./2.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;填入芯片信息：&lt;code&gt;Family:Cyclone IV E&lt;/code&gt;和&lt;code&gt;EP4CE6F17C8&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./3.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;这一页不动。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./4.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;直接点Finish。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./5.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;7&quot;&gt;
&lt;li&gt;&lt;code&gt;Ctrl + N&lt;/code&gt;新建&lt;code&gt;Verilog HDL File&lt;/code&gt;文件。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./6.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;复制下列代码进入：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-verilog&quot;&gt;// =====================================================
//  植物大战僵尸主题曲 - 小节 20~28 高音部
//  开发板 : EP4CE6F17C8N    时钟 : 50MHz
//  BPM    : 125             占空比 : 30%
//  蜂鸣器 : PNP 三极管驱动，低电平响
//
//  引脚分配:
//    clk   -&gt; PIN_E1
//    rst_n -&gt; PIN_E15
//    beep  -&gt; PIN_L3
// =====================================================
module pvz_buzzer (
    input  clk,       // 50MHz
    input  rst_n,     // 复位，低电平有效
    output reg beep   // 蜂鸣器，低电平响
);

// =====================================================
//  音符参数：每个音符存高电平时长和低电平时长
//  计算公式：
//    高电平 = 50_000_000 / 频率 * 0.30
//    低电平 = 50_000_000 / 频率 * 0.70
//  修改占空比只需改这里的数值
// =====================================================

//  休止符（特殊标记，用最大值表示）
parameter REST_H = 32&apos;hFFFFFFFF;
parameter REST_L = 32&apos;d0;

//  G4  392Hz
parameter G4_H = 32&apos;d38265;
parameter G4_L = 32&apos;d89285;

//  A4  440Hz
parameter A4_H = 32&apos;d34090;
parameter A4_L = 32&apos;d79545;

//  B4  494Hz
parameter B4_H = 32&apos;d30364;
parameter B4_L = 32&apos;d70850;

//  C5  523Hz
parameter C5_H = 32&apos;d28680;
parameter C5_L = 32&apos;d66921;

//  D5  587Hz
parameter D5_H = 32&apos;d25553;
parameter D5_L = 32&apos;d59625;

//  E5  659Hz
parameter E5_H = 32&apos;d22761;
parameter E5_L = 32&apos;d53110;

//  G5  784Hz
parameter G5_H = 32&apos;d19132;
parameter G5_L = 32&apos;d44642;

//  A5  880Hz
parameter A5_H = 32&apos;d17045;
parameter A5_L = 32&apos;d39772;

//  B5  988Hz
parameter B5_H = 32&apos;d15182;
parameter B5_L = 32&apos;d35425;

//  C6  1047Hz
parameter C6_H = 32&apos;d14326;
parameter C6_L = 32&apos;d33428;

// =====================================================
//  节拍时长（BPM=125，四分音符 = 60/125*50M = 24,000,000）
//  修改 BPM 只需改 QUARTER，其余自动对应
// =====================================================
parameter QUARTER  = 32&apos;d24_000_000;   // 四分音符
parameter EIGHTH   = 32&apos;d12_000_000;   // 八分音符
parameter HALF     = 32&apos;d48_000_000;   // 二分音符
parameter HALF_DOT = 32&apos;d72_000_000;   // 附点二分音符

// =====================================================
//  音符序列，共 43 个音符
//  每行：[高电平计数, 低电平计数, 时长]
// =====================================================
parameter NOTE_TOTAL = 7&apos;d43;

reg [31:0] seq_h   [0:42];   // 高电平计数
reg [31:0] seq_l   [0:42];   // 低电平计数
reg [31:0] seq_dur [0:42];   // 音符时长

initial begin
    //  小节 20
    seq_h[0]=A4_H;   seq_l[0]=A4_L;   seq_dur[0]=HALF;
    seq_h[1]=REST_H; seq_l[1]=REST_L; seq_dur[1]=QUARTER;
    seq_h[2]=E5_H;   seq_l[2]=E5_L;   seq_dur[2]=EIGHTH;
    seq_h[3]=G5_H;   seq_l[3]=G5_L;   seq_dur[3]=EIGHTH;
    //  小节 21
    seq_h[4]=A5_H;   seq_l[4]=A5_L;   seq_dur[4]=QUARTER;
    seq_h[5]=A5_H;   seq_l[5]=A5_L;   seq_dur[5]=EIGHTH;
    seq_h[6]=A5_H;   seq_l[6]=A5_L;   seq_dur[6]=EIGHTH;
    seq_h[7]=G5_H;   seq_l[7]=G5_L;   seq_dur[7]=QUARTER;
    seq_h[8]=E5_H;   seq_l[8]=E5_L;   seq_dur[8]=EIGHTH;
    seq_h[9]=D5_H;   seq_l[9]=D5_L;   seq_dur[9]=EIGHTH;
    //  小节 22
    seq_h[10]=E5_H;  seq_l[10]=E5_L;  seq_dur[10]=QUARTER;
    seq_h[11]=G5_H;  seq_l[11]=G5_L;  seq_dur[11]=EIGHTH;
    seq_h[12]=E5_H;  seq_l[12]=E5_L;  seq_dur[12]=EIGHTH;
    seq_h[13]=D5_H;  seq_l[13]=D5_L;  seq_dur[13]=HALF;
    //  小节 23
    seq_h[14]=E5_H;  seq_l[14]=E5_L;  seq_dur[14]=QUARTER;
    seq_h[15]=E5_H;  seq_l[15]=E5_L;  seq_dur[15]=QUARTER;
    seq_h[16]=D5_H;  seq_l[16]=D5_L;  seq_dur[16]=EIGHTH;
    seq_h[17]=E5_H;  seq_l[17]=E5_L;  seq_dur[17]=EIGHTH;
    seq_h[18]=D5_H;  seq_l[18]=D5_L;  seq_dur[18]=EIGHTH;
    seq_h[19]=C5_H;  seq_l[19]=C5_L;  seq_dur[19]=EIGHTH;
    //  小节 24
    seq_h[20]=A4_H;  seq_l[20]=A4_L;  seq_dur[20]=QUARTER;
    seq_h[21]=G4_H;  seq_l[21]=G4_L;  seq_dur[21]=EIGHTH;
    seq_h[22]=B4_H;  seq_l[22]=B4_L;  seq_dur[22]=EIGHTH;
    seq_h[23]=A4_H;  seq_l[23]=A4_L;  seq_dur[23]=QUARTER;
    seq_h[24]=A4_H;  seq_l[24]=A4_L;  seq_dur[24]=EIGHTH;
    seq_h[25]=C5_H;  seq_l[25]=C5_L;  seq_dur[25]=EIGHTH;
    //  小节 25
    seq_h[26]=D5_H;  seq_l[26]=D5_L;  seq_dur[26]=QUARTER;
    seq_h[27]=A4_H;  seq_l[27]=A4_L;  seq_dur[27]=EIGHTH;
    seq_h[28]=C5_H;  seq_l[28]=C5_L;  seq_dur[28]=EIGHTH;
    seq_h[29]=D5_H;  seq_l[29]=D5_L;  seq_dur[29]=QUARTER;
    seq_h[30]=D5_H;  seq_l[30]=D5_L;  seq_dur[30]=EIGHTH;
    seq_h[31]=E5_H;  seq_l[31]=E5_L;  seq_dur[31]=EIGHTH;
    //  小节 26
    seq_h[32]=G5_H;  seq_l[32]=G5_L;  seq_dur[32]=HALF_DOT;
    seq_h[33]=E5_H;  seq_l[33]=E5_L;  seq_dur[33]=EIGHTH;
    seq_h[34]=G5_H;  seq_l[34]=G5_L;  seq_dur[34]=EIGHTH;
    //  小节 27
    seq_h[35]=A5_H;  seq_l[35]=A5_L;  seq_dur[35]=QUARTER;
    seq_h[36]=C6_H;  seq_l[36]=C6_L;  seq_dur[36]=QUARTER;
    seq_h[37]=B5_H;  seq_l[37]=B5_L;  seq_dur[37]=EIGHTH;
    seq_h[38]=A5_H;  seq_l[38]=A5_L;  seq_dur[38]=EIGHTH;
    seq_h[39]=G5_H;  seq_l[39]=G5_L;  seq_dur[39]=QUARTER;
    //  小节 28
    seq_h[40]=A5_H;  seq_l[40]=A5_L;  seq_dur[40]=QUARTER;
    seq_h[41]=REST_H; seq_l[41]=REST_L; seq_dur[41]=QUARTER;
    seq_h[42]=REST_H; seq_l[42]=REST_L; seq_dur[42]=HALF;
end

// =====================================================
//  播放状态机
//  state=0 : 输出高电平阶段
//  state=1 : 输出低电平阶段
// =====================================================
reg [6:0]  note_idx;   // 当前音符索引
reg [31:0] dur_cnt;    // 音符时长计数器
reg [31:0] wave_cnt;   // 波形计数器（高/低电平）
reg        state;      // 0=高电平 1=低电平

always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
        note_idx &amp;#x3C;= 7&apos;d0;
        dur_cnt  &amp;#x3C;= 32&apos;d0;
        wave_cnt &amp;#x3C;= 32&apos;d0;
        state    &amp;#x3C;= 1&apos;b0;
        beep     &amp;#x3C;= 1&apos;b1;
    end else begin

        // ---- 音符时长：到期就切换到下一个音符 ----
        if (dur_cnt &gt;= seq_dur[note_idx] - 1) begin
            dur_cnt  &amp;#x3C;= 32&apos;d0;
            wave_cnt &amp;#x3C;= 32&apos;d0;
            state    &amp;#x3C;= 1&apos;b0;
            beep     &amp;#x3C;= 1&apos;b1;   // 音符间隙拉高，避免连音粘连
            if (note_idx &amp;#x3C; NOTE_TOTAL - 1)
                note_idx &amp;#x3C;= note_idx + 7&apos;d1;
            else
                note_idx &amp;#x3C;= 7&apos;d0;   // 循环播放
        end else begin
            dur_cnt &amp;#x3C;= dur_cnt + 1;

            // ---- 休止符：保持高电平（不响） ----
            if (seq_h[note_idx] == REST_H) begin
                beep &amp;#x3C;= 1&apos;b1;

            // ---- 普通音符：产生占空比 30% 的方波 ----
            end else begin
                case (state)
                    1&apos;b0: begin  // 高电平阶段
                        beep &amp;#x3C;= 1&apos;b0;   // PNP低电平响
                        if (wave_cnt &gt;= seq_h[note_idx] - 1) begin
                            wave_cnt &amp;#x3C;= 32&apos;d0;
                            state    &amp;#x3C;= 1&apos;b1;
                        end else begin
                            wave_cnt &amp;#x3C;= wave_cnt + 1;
                        end
                    end
                    1&apos;b1: begin  // 低电平阶段
                        beep &amp;#x3C;= 1&apos;b1;
                        if (wave_cnt &gt;= seq_l[note_idx] - 1) begin
                            wave_cnt &amp;#x3C;= 32&apos;d0;
                            state    &amp;#x3C;= 1&apos;b0;
                        end else begin
                            wave_cnt &amp;#x3C;= wave_cnt + 1;
                        end
                    end
                endcase
            end
        end
    end
end

endmodule
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;9&quot;&gt;
&lt;li&gt;保存文件，这里的&lt;code&gt;module&lt;/code&gt;是&lt;code&gt;pvz_buzzer&lt;/code&gt;，所以保存为&lt;code&gt;pvz_buzzer&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;进行&lt;code&gt;Start Analysis &amp;#x26; Synthesis&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./7.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;11&quot;&gt;
&lt;li&gt;使用快捷键&lt;code&gt;Ctrl + Shift + N&lt;/code&gt;，进入&lt;code&gt;Pin Planner&lt;/code&gt;配置引脚。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./8.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;12&quot;&gt;
&lt;li&gt;点击&lt;code&gt;Start Compilation&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./9.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;13&quot;&gt;
&lt;li&gt;编译完成之后进入&lt;code&gt;Tools -&gt; Programmer&lt;/code&gt;进行烧录。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./10.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;ol start=&quot;14&quot;&gt;
&lt;li&gt;点击&lt;code&gt;Start&lt;/code&gt;，等待&lt;code&gt;Progress&lt;/code&gt;变绿即可。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;./11.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>Minecraft Multiplayer Game</title><link>https://jerrymain.top/blog/record/minecraft_multiplayer_game</link><guid isPermaLink="true">https://jerrymain.top/blog/record/minecraft_multiplayer_game</guid><description>Moment Record</description><pubDate>Wed, 22 Apr 2026 23:12:28 GMT</pubDate><content:encoded>&lt;h2&gt;2026.4.22&lt;/h2&gt;
&lt;p&gt;这是堂吉诃德雕像重建，屏幕中的是CatHateStudying：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../record/CSMP/1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2026.4.24&lt;/h2&gt;
&lt;p&gt;还是小帽咪~~怎么天天都是小帽咪~~，想在雷雨天劈村民，但是准备好了雨停了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./CSMP/3.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;p&gt;这次不是小帽咪了，这次是构思学家发现的~~不知道谁建的~~神秘小玩意儿。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./CSMP/4.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;h1&gt;补档&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;著名构思学家JerryMain曾回忆道&lt;/p&gt;
&lt;p&gt;这里都是古老的回忆了。细细整理来，高考结束的暑假开了一个互通服务器，但是内容早已忘却，也没有什么留存；大一寒假开了第二个服务器，印象中有CatHatStudy搭的红石滚动显示屏，还有MYSBF留下的小构思高塔，不知道现在有没有了，留存的东西较多，不一一展开；大一暑假开了第三个服务器，是个三角洲河岸，看到了anchor搭的小村民房子和养的几只乐魂，虽然房子后来着火了，还有_chest_搭的菲圣索亚大白房子，里面有个没有鱼的鱼缸，还有两个BYD在天上玩儿空岛生存去了，我搞了点儿赤石科技，这里解释一下，赤石是因为真的炸过膛；同期还有第四个服务器，加入了一堆模组，出生点在雨林的湖中央，有宇姐造的雨林小房子，后来这个出生点还有一堆出生在雨林打枪；最近第五个服务器是Cat用整合包搭建的，依稀记得想给猫娘接本地API的Cat和被掏空的猴面包树，还有一个出生天天偷我锅盖，导致我想做饭都做不了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;图中是爱学习的小帽咪（CatHatStudying）在自动巡航：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../record/CSMP/2.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>README</title><link>https://jerrymain.top/blog/readme/readme</link><guid isPermaLink="true">https://jerrymain.top/blog/readme/readme</guid><description>The first description file.</description><pubDate>Tue, 21 Apr 2026 17:17:28 GMT</pubDate><content:encoded>&lt;p&gt;人类著名构史学家&lt;em&gt;JerryMin&lt;/em&gt;曾经说过：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个Astro模板是我目前见过最舒适的模板了！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;JerryMin&lt;/em&gt;对这个网页爱不释手，他不仅立flag说要频繁更新~~开始画饼~~，也希望给想要基于此模板进行客制化的各位提供一种方案~~又画一张~~，以及试图以最简单的方式，说明对原项目做了哪些更改以及更改的方式。&lt;/p&gt;
&lt;p&gt;所以他就写了这样一段markdown作为参考，而我跟着他的教程，创建了此网站，遂将其搬运过来。&lt;/p&gt;
&lt;h2&gt;图片替换&lt;/h2&gt;
&lt;h3&gt;网页图标替换&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;网页图标就是最上面那个图片，最初大概是这样的：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;old_header.png&quot; alt=&quot;old_header&quot;&gt;&lt;/p&gt;
&lt;p&gt;我们的目标是变成这样：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;new_header.png&quot; alt=&quot;new_header&quot;&gt;
下面是简单的操作步骤。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;下图为示例图标，用这个网站 &lt;a href=&quot;https://favicon.io&quot;&gt;favicon.io&lt;/a&gt; 将其转化为&lt;code&gt;.ico&lt;/code&gt;文件：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;android-chrome-192x192.png&quot; alt=&quot;favicon&quot;&gt;&lt;/p&gt;
&lt;p&gt;你会得到一个&lt;code&gt;.zip&lt;/code&gt;压缩包，解压后的一堆文件是这样：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;android-chrome-192x192.png
android-chrome-512x512.png
apple-touch-icon.png
favicon-16x16.png
favicon-32x32.png
favicon.ico
site.webmanifest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接原封不动的复制（替换）到目录即可：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./public/favicon
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;主页头像替换&lt;/h3&gt;
&lt;p&gt;主页头像的位置在：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/assets/avatar.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接用你保存好的图片替换即可，不过需要文件名和后缀相同，否则需要更改源码。&lt;/p&gt;
&lt;h2&gt;网站的基本信息更改&lt;/h2&gt;
&lt;h3&gt;site.config.ts更改&lt;/h3&gt;
&lt;p&gt;此文件直译过来是：&lt;strong&gt;网站注册表&lt;/strong&gt;，个人理解为网站信息的注册地，&lt;code&gt;.ts&lt;/code&gt;后缀代表用&lt;code&gt;typescript&lt;/code&gt;编写。此文件在项目中的地址为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/site.config.ts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;利用&lt;code&gt;Ctrl + F&lt;/code&gt;查找文件的一些关键字，这里一一列出，注释都已表明在源文件，这里不作展示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;title 即网页的名字，如下图：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;./old_header.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./new_header.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;它们写在下列字段，你可以用你的眼睛一行一行搜索，但还是建议使用&lt;code&gt;Ctrl + F&lt;/code&gt;查找：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;title: &apos;Astro Theme Pure&apos;
title: &apos;JerryMain Island&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然title的改变也会影响导航栏的改变，如下图左侧内容：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./old_nav.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./new_nav.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;author 即网页的所有者，如下图：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;|  |  |
|:---:|:---:|
| &lt;img src=&quot;./old_avatar.png&quot; alt=&quot;&quot;&gt; | &lt;img src=&quot;./new_avatar.png&quot; alt=&quot;&quot;&gt; |&lt;/p&gt;
&lt;p&gt;与上述同理，使用&lt;code&gt;Ctrl + F&lt;/code&gt;查找下列字段并修改：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;author: &apos;Pure Lab&apos;
author: &apos;JerryMain&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然这里只说明了author的更改，至于定位、网页以及头像的更改可以跳转到&lt;a href=&quot;#%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A1%B5%E9%9D%A2mainpage%E6%9B%B4%E6%94%B9&quot;&gt;下文&lt;/a&gt;的第一部分。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;description 个人介绍，原文是乔布斯的名言，可以自行更改：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;description: &apos;Stay hungry, stay foolish&apos;
description: &apos;Stay stupid, stay android&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;navigation 即导航栏，也就是下图右侧的内容：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;./old_nav.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./new_nav.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;你可以找到这样的字段进行更改，我个人删除了&lt;code&gt;Docs&lt;/code&gt;官方说明文档：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;  header: {
    menu: [
      { title: &apos;Blog&apos;, link: &apos;/blog&apos; },
      //docs是官方说明文档，可以有选择性的删除此行
      { title: &apos;Docs&apos;, link: &apos;/docs&apos; },   
      { title: &apos;Projects&apos;, link: &apos;/projects&apos; },
      { title: &apos;Links&apos;, link: &apos;/links&apos; },
      { title: &apos;About&apos;, link: &apos;/about&apos; }
    ]
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;ICP 即网络内容服务商，按照相关要求进行填写即可，它的显示位置在页脚左侧：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;./old_footer.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./new_footer.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;title: &apos;Moe ICP 114514&apos;
title: &apos;Your ICP&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;GitHub Page 即页脚指向的仓库，位置在上图右侧，可通过以下字段查询：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;social: [
  { icon: &apos;github&apos;, label: &apos;GitHub&apos;, href: &apos;https://github.com/cworld1/astro-theme-pure&apos; },
  { icon: &apos;rss&apos;, label: &apos;RSS&apos;, href: &apos;/rss.xml&apos; }
]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对于这条代码的处理方法稍有不同，各位可&lt;strong&gt;酌情借鉴&lt;/strong&gt;，这里不作展开：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;social: { github: &apos;https://github.com/JerryMain521/website&apos; }
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Link 即你网站的主页地址：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;name: &apos;Link&apos;, val: &apos;https://astro-pure.js.org/&apos;
name: &apos;Link&apos;, val: &apos;https://jerrymain.top/&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Avatar 就是显示在页面上的头像图片，它直接引用了你网站&lt;code&gt;/favicon/&lt;/code&gt;目录下的图标文件作为头像，我们直接替换前面的网址就可以：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;name: &apos;Avatar&apos;, val: &apos;https://astro-pure.js.org/favicon/favicon.ico&apos; 
name: &apos;Avatar&apos;, val: &apos;https://jerrymain.top/favicon/favicon.ico&apos; 
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;博客主页面（MainPage）更改&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;./new_mainpage.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;这是我们一进来的界面，这个界面就是主页面。前面只介绍了部分细节的更改，这里做全部的解释。&lt;/p&gt;
&lt;p&gt;你需要在这个路径中找到MainPage的源代码：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/pages/index.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在前面我们已经讲过了关于&lt;code&gt;author&lt;/code&gt;的更改，这里再放出对比图，下面就是要换地址和仓库：&lt;/p&gt;
&lt;p&gt;|  |  |
|:---:|:---:|
| &lt;img src=&quot;./old_avatar.png&quot; alt=&quot;&quot;&gt; | &lt;img src=&quot;./new_avatar.png&quot; alt=&quot;&quot;&gt; |&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这里是地址，搜索到此字段后，可以将&lt;code&gt;Somewhere&lt;/code&gt;改成你想改的地址：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Label title=&apos;Somewhere&apos;&gt;
&amp;#x3C;Label title=&apos;Southeast University&apos;&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;这里是你的GitHub仓库地址，搜到后可以将&lt;code&gt;title&lt;/code&gt;和&lt;code&gt;href&lt;/code&gt;字段改成你的信息：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Label
  title=&apos;Source code&apos;                                 //here
  as=&apos;a&apos;
  href=&apos;https://github.com/cworld1/astro-theme-pure&apos;  //here
  target=&apos;_blank&apos;
&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;细心一点的话可以观察到在下方有一个图标：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;get_template.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;这是作者给此模板建立的一个仓库通道，你可以选择利用注释删除获保留。它的源代码是这样的：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;{/* Get template */}
&amp;#x3C;a
href=&apos;https://github.com/cworld1/astro-theme-pure&apos;
target=&apos;_blank&apos;
class=&apos;flex flex-row items-center gap-x-3 rounded-full border bg-background px-4 py-2 text-sm shadow-sm transition-shadow hover:shadow-md&apos;
&gt;
  &amp;#x3C;span class=&apos;relative flex items-center justify-center&apos;&gt;
    &amp;#x3C;span
    class=&apos;absolute size-2 animate-ping rounded-full border border-green-400  bg-green-400 opacity-75&apos;
    &gt;&amp;#x3C;/span&gt;
    &amp;#x3C;span class=&apos;size-2 rounded-full bg-green-400&apos;&gt;&amp;#x3C;/span&gt;
  &amp;#x3C;/span&gt;
  &amp;#x3C;p class=&apos;font-medium text-muted-foreground&apos;&gt;Get Template&amp;#x3C;/p&gt;
&amp;#x3C;/a&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;下面是首页介绍更改，在页面位置如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;image.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;p&gt;代码如下，可以自行更改如&lt;code&gt;Developer / Designer&lt;/code&gt;的字样：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;About&apos;&gt;
  &amp;#x3C;p class=&apos;text-muted-foreground&apos;&gt;Developer / Designer&amp;#x3C;/p&gt;
  &amp;#x3C;p class=&apos;text-muted-foreground&apos;&gt;
    Lorem ipsum dolor sit amet, vidit suscipit at mei. Quem denique mea id. Usu ei regione
    indoctum dissentiunt, cu meliore fuisset mei, vel quod voluptua ne. Ex dicat impedit mel,
    at eum oratio possit voluptatum.
  &amp;#x3C;/p&gt;
  &amp;#x3C;Button title=&apos;More about me&apos; class=&apos;w-fit self-end&apos; href=&apos;/about&apos; variant=&apos;ahead&apos; /&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;教育经历更改：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;image-1.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;p&gt;源码如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;Education&apos;&gt;
  &amp;#x3C;Card
    as=&apos;a&apos;
    heading=&apos;Lorem ipsum&apos;
    subheading=&apos;Lorem ipsum dolor sit amet, vidit suscipit at mei.&apos;
    date=&apos;August 2021 - July 2025&apos;
    href=&apos;https://www.youtube.com/watch?v=dQw4w9WgXcQ&apos;
  &gt;
    {
      /* &amp;#x3C;ul class=&apos;ms-4 list-disc text-muted-foreground&apos;&gt;
    &amp;#x3C;li&gt;
      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolore debitis recusandae, ut
      molestiae laboriosam pariatur!
    &amp;#x3C;/li&gt;
    &amp;#x3C;li&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae, pariatur!&amp;#x3C;/li&gt;
  &amp;#x3C;/ul&gt; */
    }
  &amp;#x3C;/Card&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我做了一点更改：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;Education&apos;&gt;
  &amp;#x3C;Card
    as=&apos;a&apos;
    heading=&apos;Southeast University&apos;
    subheading=&apos;Majoring in Integrated Circuit Design and Integrated System&apos;
    date=&apos;August 2024 - July 2028&apos;
    href=&apos;https://www.seu.edu.cn/&apos;
  &gt;
    &amp;#x3C;img
      class=&apos;absolute end-0 z-0 m-0 -my-3 h-full w-1/2 object-cover opacity-40&apos;
      src=&apos;/images/seu.svg&apos;
    /&gt;
    {
      /* &amp;#x3C;ul class=&apos;ms-4 list-disc text-muted-foreground&apos;&gt;
    &amp;#x3C;li&gt;
      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolore debitis recusandae, ut
      molestiae laboriosam pariatur!
    &amp;#x3C;/li&gt;
    &amp;#x3C;li&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae, pariatur!&amp;#x3C;/li&gt;
  &amp;#x3C;/ul&gt; */
    }
  &amp;#x3C;/Card&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Website List&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;Website List&apos;&gt;
  &amp;#x3C;div class=&apos;grid grid-cols-1 gap-3 sm:grid-cols-2&apos;&gt;
    &amp;#x3C;ProjectCard
      href=&apos;https://www.youtube.com/watch?v=dQw4w9WgXcQ&apos;
      heading=&apos;Lorem ipsum&apos;
      subheading=&apos;Do not go gentle into that good night&apos;
      imagePath=&apos;/src/assets/projects/1.avif&apos;
    /&gt;
    &amp;#x3C;ProjectCard
      href=&apos;https://www.youtube.com/watch?v=dQw4w9WgXcQ&apos;
      heading=&apos;Lorem ipsum&apos;
      subheading=&apos;Old age burn and rave at close of day&apos;
      imagePath=&apos;/src/assets/projects/2.avif&apos;
    /&gt;
    &amp;#x3C;ProjectCard
      href=&apos;https://www.youtube.com/watch?v=dQw4w9WgXcQ&apos;
      heading=&apos;Lorem ipsum&apos;
      subheading=&apos;Rage, rage against the dying of the light&apos;
      imagePath=&apos;/src/assets/projects/3.avif&apos;
    /&gt;
    &amp;#x3C;ProjectCard
      href=&apos;/projects&apos;
      heading=&apos;More projects&apos;
      subheading=&apos;Check out more projects&apos;
      imagePath=&apos;/src/assets/projects/4.avif&apos;
    /&gt;
  &amp;#x3C;/div&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Certifications更改&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;Certifications&apos;&gt;
  &amp;#x3C;Card
     as=&apos;a&apos;
    heading=&apos;Lorem ipsum&apos;
    subheading=&apos;Lorem ipsum dolor sit amet, vidit suscipit at mei. Quem denique mea id. Usu ei regione indoctum dissentiunt, cu meliore fuisset mei, vel quod voluptua ne. Ex dicat impedit mel, at eum oratio possit voluptatum. Dicat ceteros cu vim. Impetus fuisset ullamcorper pri cu, his posse iisque ad, aliquam honestatis usu id.&apos;
    date=&apos;July 2024&apos;
    href=&apos;https://www.youtube.com/watch?v=dQw4w9WgXcQ&apos;
  /&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;&amp;#x3C;Section title=&apos;Skills&apos;&gt;
  &amp;#x3C;SkillLayout title=&apos;Languages&apos; skills={languages} /&gt;
  &amp;#x3C;SkillLayout title=&apos;Frontend&apos; skills={frontend} /&gt;
  &amp;#x3C;SkillLayout title=&apos;Backend&apos; skills={backend} /&gt;
&amp;#x3C;/Section&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;about的index.astro&lt;/h3&gt;
&lt;p&gt;文件地址为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/pages/about/index.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下面拆解这个文件的内容，当然如果你能看懂HTML的话就可以跳过：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自我介绍&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;image-2.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;p&gt;Developer / Designer&amp;#x3C;/p&gt;
  &amp;#x3C;p&gt;
    Lorem ipsum dolor sit amet, vidit suscipit at mei. Quem denique mea id. Usu ei regione indoctum
    dissentiunt, cu meliore fuisset mei, vel quod voluptua ne. Ex dicat impedit mel, at eum oratio
    possit voluptatum.
  &amp;#x3C;/p&gt;
  &amp;#x3C;p&gt;
    Motto: Stay hungry, Stay foolish. &amp;#x3C;Spoiler&gt;这里可以夹私货，比如为什么要演奏春日影！&amp;#x3C;/Spoiler&gt;
  &amp;#x3C;/p&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;赞助按钮，可以选择删除与否&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;image-3.png&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;Button title=&apos;Sponsor Me&apos; class=&apos;w-fit&apos; href=&apos;/projects#sponsorship&apos; variant=&apos;ahead&apos; /&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  {/* general-talk */}
  &amp;#x3C;h2 id=&apos;hobbies&apos;&gt;Hobbies&amp;#x3C;/h2&gt;
  &amp;#x3C;ul&gt;
    &amp;#x3C;li&gt;Lorem ipsum dolor sit amet, vidit suscipit at mei.&amp;#x3C;/li&gt;
    &amp;#x3C;li&gt;
      Quem denique mea id. Usu ei regione indoctum dissentiunt, cu meliore fuisset mei, vel quod
      voluptua ne.
    &amp;#x3C;/li&gt;
    &amp;#x3C;li&gt;Ex dicat impedit mel, at eum oratio possit voluptatum.&amp;#x3C;/li&gt;
    &amp;#x3C;li&gt;Impetus fuisset ullamcorper pri cu, his posse iisque ad, aliquam honestatis usu id.&amp;#x3C;/li&gt;
  &amp;#x3C;/ul&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;ToolSection
    class=&apos;mb-5&apos;
    title=&apos;Design&apos;
    tools={[
      {
        name: &apos;Photoshop&apos;,
        description: &apos;Picture Editing&apos;,
        href: &apos;https://www.adobe.com/products/photoshop&apos;,
        icon: import(&apos;@/assets/tools/photoshop.svg?raw&apos;)
      }
    ]}
     ...
  /&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  {/* social-networks */}
  &amp;#x3C;h2 id=&apos;social-networks&apos;&gt;Social Networks&amp;#x3C;/h2&gt;
  &amp;#x3C;p&gt;
    Lorem ipsum dolor sit amet, vidit suscipit at mei. Quem denique mea id. Usu ei regione indoctum
    dissentiunt, cu meliore fuisset mei, vel quod voluptua ne.
  &amp;#x3C;/p&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;Substats
    stats={[
      {
        platform: &apos;GitHub&apos;,
        icon: &apos;github&apos;,
        link: &apos;https://github.com/cworld1&apos;,
        text: &apos;followers&apos;,
        api: &apos;github/cworld1&apos;
      }
    ]}
    ...
  /&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  {/* gossips */}
  &amp;#x3C;h2 id=&apos;gossips&apos;&gt;Gossips&amp;#x3C;/h2&gt;
  &amp;#x3C;Collapse title=&apos;Lorem ipsum&apos;&gt;
    Lorem ipsum dolor sit amet, vidit suscipit at mei. Quem denique mea id. Usu ei regione indoctum
    dissentiunt, cu meliore fuisset mei, vel quod voluptua ne. Ex dicat impedit mel, at eum oratio
    possit voluptatum.
  &amp;#x3C;/Collapse&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;Timeline
    events={[
      {
        date: &apos;2024-04-29&apos;,
        content:
          &apos;Website refactored using &amp;#x3C;a href=&quot;https://astro.build/&quot; target=&quot;_blank&quot;&gt;Astro&amp;#x3C;/a&gt; and &amp;#x3C;a href=&quot;https://github.com/srleom/astro-theme-resume&quot; target=&quot;_blank&quot;&gt;Astro Theme Resume&amp;#x3C;/a&gt;&apos;
      }
    ]}
    ...
  /&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;  &amp;#x3C;p&gt;
    The smooth operation and personalized customization of website also rely on the resources and
    technical support provided by the following excellent projects/service providers:
  &amp;#x3C;/p&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-astro&quot;&gt;    &amp;#x3C;li&gt;
      Domain: &amp;#x3C;a href=&apos;#&apos; target=&apos;_blank&apos;&gt;Vercel&amp;#x3C;/a&gt;
    &amp;#x3C;/li&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;links的index.astro&lt;/h3&gt;
&lt;p&gt;文件地址为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/pages/links/index.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是这只是一个调用文件，真正的内容在：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./public/links.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以按照下方的格式更改：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;friends&quot;: [
    {
      &quot;id_name&quot;: &quot;cf-links&quot;,
      &quot;desc&quot;: &quot;Common links included in circle friends&quot;,
      &quot;link_list&quot;: [
        {
          &quot;name&quot;: &quot;ByteString&quot;,
          &quot;intro&quot;: &quot;我去，不早说&quot;,
          &quot;link&quot;: &quot;https://bytestring.top&quot;,
          &quot;avatar&quot;: &quot;/friends/bytestring.webp&quot;
        }
      ]
    },
    {
      &quot;id_name&quot;: &quot;inactive-links&quot;,
      &quot;desc&quot;: &quot;Inactive or rule-breaking friends&quot;,
      &quot;link_list&quot;: []
    },
    {
      &quot;id_name&quot;: &quot;special-links&quot;,
      &quot;desc&quot;: &quot;Other special links&quot;,
      &quot;link_list&quot;: []
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;projects的index.astro&lt;/h3&gt;
&lt;p&gt;文件地址为：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./src/pages/projects/index.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;页面分为三部分&lt;strong&gt;My Repositories&lt;/strong&gt;,&lt;strong&gt;Friends Repositories&lt;/strong&gt;和&lt;strong&gt;SponsorShip&lt;/strong&gt;&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item></channel></rss>