简介:这份文档面向电子信息工程、通信工程、电气类专业的应届生与转岗求职者,聚焦技术面试中反复出现的基础知识考点,帮助读者在有限时间内梳理模拟电路、数字电路与电路理论的复习框架。内容以面试题为主线,串联基尔霍夫定理、平板电容、三极管曲线、负反馈类型、运放加减法电路、差分与共模差模、卡诺图化简、CMOS反相器、门级设计及时序建立保持时间等要点,并保留题目出处与解题切入角度,便于对照查漏补缺。压缩包仅含1个doc文件,约102KB,属于轻量级单文档资料,适合打印批注或按知识模块检索。已有1707人学习,说明其在同类面试资料中具有一定参考价值。读者可据此快速定位薄弱环节,形成从电路理论到数字时序的答题思路,适合面试前集中复盘与日常基础巩固。
1. 从基尔霍夫到 setup 违例:这套题的真正主线不是知识点
电子信息工程、通信工程、电气类的校招面试里,题目种类看着极杂:算一段时序电路能跑多高的时钟、判断一个 CMOS 门哪个输入翻转更快、给一条差分电路从两个输出反推共模分量。把历年面试题汇总成一份试题大全摊开来看,像是六七个不相干的学科硬拼在一起——模拟电路、数字电路、IC 流程、半导体工艺、信号与系统、单片机、C 语言。
但把答案拆开就会发现,几乎所有题最后都收敛到同一件事:在一个被物理条件卡死的预算里,判断哪个量在挤压哪个量。建立时间那道题,表面是套公式,实际是在时钟周期、触发器延迟、组合逻辑延迟、时钟偏移之间画一条不等式;PMOS 宽长比那道题,表面是记一个 2 到 3 的系数,实际是在载流子迁移率差异、面积、延迟三者之间做交换。这就是"背过答案"和"真懂"在面试桌上的分水岭:前者只能答问过的那一问,后者在面试官随手改一个条件之后还能重新推一遍。
2. 模拟电路的面试题:为什么负反馈几乎能"自动"修好一切
模拟部分的问题是整套题库里最容易被低估的。基尔霍夫、平板电容、三极管曲线、反馈组态、频率补偿,看起来都是课本前三章的东西,很多人翻两页就觉得"这个我会"。但面试官真正的追问从来不是"内容是什么",而是"它凭什么成立"——尤其是负反馈那五条优点,能背出来的人很多,能说清"自动"这两个字背后发生了什么的人很少。
2.1 基尔霍夫定律被当成公式背,其实它是两个守恒律
KCL 说的是流入一个节点的电荷等于流出的电荷,本质是电荷守恒:在集总参数假设下,一个节点没有地方把电荷存起来,所以进出必须相等。KVL 说的是一个回路绕一圈电压之和为零,本质是静电场是保守场,绕闭合路径走一圈做功为零,能量不会凭空多出来。
这两句话里各藏着一个前提,而这恰恰是面试的分水岭。KCL 在节点电容不可忽略时不严格成立,因为电荷会真的"存"在节点上,需要补上 C·dV/dt 这一项——IC 里互连线的延迟、串扰,根子都在这里。KVL 在回路包围了变化磁通时不成立,此时 ∮E·dl = -dΦ/dt ≠ 0,变压器、电流环、高频走线里"电压和为零"这条就要打折扣。能把这两个适用条件说出来的候选人,和只会写两个公式的候选人,面试官心里的评分完全不在一个档位。
2.2 四种负反馈组态:输入输出电阻为什么朝相反方向变
四种组态不是四组需要死记的名词,而是一个二维坐标系:输入端看反馈信号怎么接(串联还是并联),输出端看反馈信号怎么取(电压还是电流)。
| 组态 | 输入电阻 | 输出电阻 | 被稳定的量 | 典型用途 |
|---|---|---|---|---|
| 电压串联 | 增大(1+AF 倍) | 减小(1+AF 倍) | 输出电压 | 同相放大、电压缓冲 |
| 电压并联 | 减小 | 减小 | 输出电压 | 反相放大、跨阻放大 |
| 电流串联 | 增大 | 增大 | 输出电流 | 电压控电流源 |
| 电流并联 | 减小 | 增大 | 输出电流 | 电流放大 |
输入端的规律好理解:串联负反馈是把反馈电压和输入电压在输入端串起来相减,净输入变成一个电压差,电路"看起来"对输入源的索取变小了,输入电阻增大;并联负反馈是把反馈电流注入输入节点做分流,输入节点电压被钳住,输入电阻减小。
输出端的规律要绕一个弯。电压取样意味着反馈网络盯着输出电压看,输出一旦被负载拉低,环路立刻把净输入推大去补,表现出来就是一个低输出电阻的恒压源;电流取样盯的是输出支路电流,负载变化时环路维持电流不变,表现出来就是一个高输出电阻的恒流源。所谓"电压负反馈稳压、电流负反馈稳流",讲的就是这件事。
至于那些优点,真正的来源只有一个:闭环增益 A_f = A/(1+AF)。对它求全微分,dA_f/A_f = (1/(1+AF))·(dA/A),增益的相对变化被压缩了 1+AF 倍。失真、噪声、温漂本质上都是"增益随幅度或随环境变化",所以一并被压下去。带宽的扩展也是同一个式子的另一面:增益带宽积近似恒定,增益降多少倍,带宽就宽多少倍。这不是什么巧合,而是"用多余的增益换稳定度"这条设计哲学最直白的体现。
2.3 频率补偿:加一个电容,为什么就能让运放不振荡
振荡的条件是环路增益幅度为 1 且总相移达到 360°,换算成负反馈电路的常用说法,就是环路增益在相位滞后 180° 的时候幅度还大于等于 1。运放的每一个极点贡献 90° 滞后,两级运放有两个主极点,高频处相位很容易滑到 180° 附近,如果那个频率上增益还大于 1,闭环就会自激。
补偿的本质是重新安排极点的位置,让增益在相位"用光"之前先掉到 1 以下。主极点补偿的做法是把第一极点故意往低频推,使整个幅频特性在 0dB 穿越前只有 -20dB/dec 这一段的斜率,相位裕度就保住了。
工程上最常用的是 Miller 补偿:在第二级增益级的输入和输出之间跨接一个电容 Cc。因为 Miller 效应,这个电容等效到第一级输出端的大小是 Cc(1+A2),A2 是第二级的增益,通常几十倍,所以一个几皮法的电容能顶一个几十皮法的负载。代价写在两个式子里:
主极点:f_p1 ≈ 1 / (2π · R1 · (1+A2) · Cc) 单位增益带宽:GBW ≈ gm1 / Cc 压摆率:SR ≈ I_tail / CcCc 越小,GBW 越大、速度越快,但主极点被推得越高,相位裕度越紧张;Cc 越大越稳定,带宽和压摆率一起被牺牲。这颗电容的取值本质上是在"稳定性"和"速度"之间画一条线。判断补偿够不够,看闭环阶跃响应的过冲量最直接:过冲小于 10% 大致对应 60° 以上的相位裕度,有过冲但收敛通常还有 45° 左右,等幅振荡说明已经贴着 0° 了。面试里问"频率补偿的方法有哪些",答 Miller、超前、滞后、调零电阻只是起点,能把"补偿就是用带宽换相位裕度"这句话说出来,才算答到了点子上。
2.4 差分放大与共模抑制:为什么第一级几乎总是差分对
给出一对输出 Y+ 和 Y-,求共模和差模分量,公式本身很朴素:共模分量是 (Y+ + Y-)/2,差模分量是 (Y+ - Y-)。这道题考的是能不能立刻反应过来,"这两个量在电路里是被分开处理的"。
差分对的做法是把两个管子的源极并在一起,下面接一个恒流源。共模输入升高时,两侧电流同时想增大,但总电流被恒流源钉死,于是两侧电流几乎不变,输出共模电平纹丝不动;差模输入时,一侧要增另一侧必须减,电流从尾电流源里"借"过去,输出就出现了差值。共模增益约等于 -R_C/(2·R_TAIL),R_TAIL 是尾电流源的输出电阻,所以共模抑制比 CMRR ≈ gm·R_TAIL,全压在尾电流源的输出电阻上——这就是为什么好的运放第一级尾电流源要用共源共栅结构,而不是一个简单的电流镜。
差分结构被广泛采用,还有几层原因:它的传输特性做泰勒展开只保留奇次项,偶次谐波相互抵消;电源和衬底噪声对两侧是同相干扰,被共模抑制掉;双端输出摆幅是单端的两倍;各级之间可以直接直流耦合,省掉耦合电容。差分对的失调则来自失配,阈值电压差和负载电阻的失配都会直接变成输入失调电压,这也是版图上差分对要做交叉对称的原因。
3. CMOS 门的面试题:PMOS 天生比 NMOS 弱,代价藏在宽长比里
数字电路那一半的题目,表面上考的是画图:画反相器剖面图、画与非门的晶体管级电路、画 D 触发器。但画得出来和画得对是两回事,画出宽度标注才是真的懂——因为 CMOS 电路里所有的性能取舍,最后都落在"每个管子做多宽"这一件事上。
3.1 反相器的电压传输曲线,五段工作区是怎么来的
CMOS 反相器把输入从 0 扫到 VDD,输出会走出一条陡峭的 S 形曲线,中间划成五段。判断工作区的唯一依据就是每个管子的 VGS 和 VDS 组合。
| 区间 | 输入范围 | NMOS | PMOS | 输出 |
|---|---|---|---|---|
| A | Vin < Vtn | 截止 | 线性 | 保持 VDD |
| B | Vtn < Vin < VM | 饱和 | 线性 | 开始下降 |
| C | Vin ≈ VM | 饱和 | 饱和 | 急剧翻转 |
| D | VM < Vin < VDD- | Vtp | 线性 | |
| E | Vin > VDD- | Vtp | 线性 |
C 区是整条曲线的核心,两个管子同时处于饱和区,流过同一个电流,所以可以令两个饱和区电流相等:kn'·(W/L)n·(Vin-Vtn)² = kp'·(W/L)p·(VDD-Vin-|Vtp|)²。这个等式直接决定了开关阈值 VM 的位置——想让反相器在 VDD/2 处翻转,就必须让两边的"增益因子"相等。整章内容几乎都是从这一个等式里长出来的。
3.2 宽长比之比:用饱和区电流公式反推 2~3 这个系数
令 βn = μn·Cox·(W/L)n,βp = μp·Cox·(W/L)p,对称翻转要求 βn = βp,即 (W/L)p / (W/L)n = μn / μp。
体硅工艺里电子的迁移率大约是空穴的两到四倍,具体数值依工艺节点和晶向而变,所以 PMOS 的宽长比通常要做到 NMOS 的 2 到 3 倍,才能让上升沿和下降沿的时间接近。这不是什么经验口诀,而是把两个饱和区电流画等号之后剩下的唯一选择。
代价立刻显现出来。下面这张粗略的面积账里,取 Wp = 2·Wn:
| 门 | 上拉网络 | 下拉网络 | 相对面积 |
|---|---|---|---|
| 反相器 | 1 个 PMOS,宽 2 | 1 个 NMOS,宽 1 | 3 |
| 二输入与非 | 2 个 PMOS 并联,各宽 2 | 2 个 NMOS 串联,各宽 2 | 8 |
| 二输入或非 | 2 个 PMOS 串联,各宽 4 | 2 个 NMOS 并联,各宽 1 | 10 |
串联会让等效宽长比缩水,k 个同尺寸管子串联,等效 W/L 变成原来的 1/k。所以与非门下拉网络的两个 NMOS 每个都得加宽一倍补回来,或非门串联的 PMOS 则要加宽两倍补回来,再叠加上 PMOS 本身就宽这个前提,或非门的面积和延迟劣势就被放大了。标准单元库里与非门用得比或非门频繁得多,根子不在逻辑层面,而在载流子迁移率这个物理事实上。
另一个常考题是"与非门哪个输入翻转时输出响应更快",答案同样藏在这条串联路径里。靠近输出的那个 NMOS 源极接的是内部节点,电位高于地,体效应会让它的阈值电压变大、电流能力变弱;靠地的管子源极直接接地,没有这个问题。再加上内部节点电容需要额外充放电,两个因素同向叠加,结论就是靠近地的那一端输入翻转时,输出下降更快。上拉网络的两个 PMOS 是并联的,路径对称,差别只来自版图寄生。所以问"或非门哪个输入快"时,方向正好反过来——因为串联的变成了 PMOS。
3.3 从布尔式到晶体管级:逻辑展开的固定套路
拿到一个表达式要画 CMOS 电路,套路是固定的:把表达式拆成"上拉网络"和"下拉网络",两者互为对偶——上拉里并联的,下拉里就串联,反之亦然。原因是下拉网络实现的是反变量,上拉网络实现的是原变量的补,两者必须严格互补,否则会出现电源到地的直通。
与非门:两个 PMOS 并联做上拉,两个 NMOS 串联做下拉,输出 Y = (A·B)'。或非门:两个 PMOS 串联,两个 NMOS 并联。与门和或门不是基本门,而是与非/或非后面接一个反相器,多一级延迟,所以综合工具会尽量把逻辑往与非门形态上凑。
异或是个有意思的例子:用纯 CMOS 互补网络实现要 12 个管子,改用传输门只要 6 个。因为异或的本质是"MUX 结构"——B 为 1 时输出 A 的反,B 为 0 时输出 A,用一对传输门直接把信号导过去,比用上拉下拉网络硬算要省得多。这也是全加器实现的两种流派:用四个与非门搭,还是用两个异或加几个门搭,前者面积小延迟大,后者反过来。
级联时还有一个容易被忽略的细节:多级门的总延迟并不等于单级延迟乘以级数。门的延迟本身依赖负载电容,而负载电容又取决于扇出和下一级的输入电容,所以加大管子宽度降低驱动电阻,同时也加大了前一级的负载,这是一场自己和自己打架的博弈,最优解通常出现在每一级的等效扇出等于自然对数的底数附近。
3.4 传输门、D 锁存器与 D 触发器:一字之差的本质
传输门是 CMOS 里最基础的"开关":一个 NMOS 加一个 PMOS 并联,栅极分别接互补的控制信号。单用 NMOS 传高电平时,输出最高只能到 VDD - Vtn,因为栅极电压也是 VDD,VGS 无法维持;单用 PMOS 传低电平时同理只能到 |Vtp|。两个并联之后,高电平由 PMOS 负责,低电平由 NMOS 负责,整个 0 到 VDD 的区间都能无损失地传过去。
锁存器(latch)是电平敏感的:使能有效期间,输入直通输出,电路是"透明"的;使能撤销后,两个反相器首尾相接把状态锁住。触发器(flip-flop)是边沿敏感的:把两个反相的锁存器串起来,主锁存器在时钟低电平时采样、高电平时保持,从锁存器反过来,结果只在时钟沿那一瞬间把数据搬一次。
这个"主从"结构解释了一切:为什么触发器的建立时间是数据在时钟沿之前必须稳定的时间(主锁存器要在关断前完成采样),为什么保持时间是时钟沿之后数据不能立刻变的时间(主锁存器刚关断,数据变化不能透过寄生通路影响从锁存器)。面试里问"D 触发器和 D 锁存器的区别",能答出"一个边沿敏感一个电平敏感"是及格,能把它和建立/保持时间的物理来源连起来,才算讲通了。
// 异步复位、同步使能的 8 位 D 触发器 module dff8 ( input wire clk, input wire rst_n, // 低电平异步复位 input wire en, // 同步使能 input wire [7:0] d, output reg [7:0] q ); always @(posedge clk or negedge rst_n) begin if (!rst_n) q <= 8'd0; // 复位优先,不依赖时钟 else if (en) q <= d; // 非阻塞赋值,综合成边沿触发器 end endmodule这段代码里有两个关键点。敏感列表同时包含posedge clk和negedge rst_n,综合工具据此推断出带异步复位端的触发器;如果只写posedge clk而在块内判断复位信号,综合出来的是同步复位触发器,两者的复位释放时序行为完全不同。第二,赋值用的是非阻塞<=,它保证所有的更新都发生在时间步的末尾,多个触发器因此表现为并行搬运,而不是顺序传递。
4. 时序面试题:setup/hold 不是两个参数,而是一条不等式的两端
时序题是整个题库里区分度最高的一类。它能一眼看出候选人是"记得公式"还是"能自己推"。原因很简单:公式只有两行,但这两行里包含了时钟周期、触发器输出延迟、组合逻辑延迟、时钟偏移、建立/保持时间五个量,任何一个量变动,结论的方向都不一样。
4.1 建立时间不等式是怎么推出来的
假设数据从触发器 D1 出发,经过一段组合逻辑,到达触发器 D2 的 D 端。D2 要在下一个时钟沿把它打进去,那么数据必须在那个时钟沿到来之前至少 Tsetup 就已经稳定。
把这条路径上的时间账列出来:数据从 D1 的时钟沿开始,先经过 D1 的 clk-to-q 延迟 Tcq 才出现在 Q 端;再经过组合逻辑的最大延迟 Tcomb_max 到达 D2 的 D 端;到达之后还要再稳定 Tsetup 的时间,D2 才能可靠采样。这三段时间加起来,必须小于等于两个时钟沿之间的间隔,同时还要考虑两个触发器的时钟不是同时到达的——如果 D2 的时钟比 D1 晚到 Tskew,那么留给数据的时间就更少。
Tcq + Tcomb_max + Tsetup + Tskew ≤ Tclk整理一下就是 Tclk ≥ Tcq + Tcomb_max + Tsetup + Tskew。建立时间违例的本质是"数据来晚了",所以修复方向永远是让这条路径变快:缩短组合逻辑、加大驱动、插入流水级寄存器、或者干脆降频。
题库里那道"D1 建立时间最大 T1max、最小 T1min,组合逻辑最大延迟 T2max、最小延迟 T2min,问 D2 的建立时间 T3 和保持时间 T4 应满足什么条件",套的就是这个式子:T3 ≤ T - T1max - T2max,T4 ≤ T1min + T
本文还有配套的精品资源,点击获取