多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

传输管逻辑信号恢复:原理、方案与工程实践

传输管逻辑信号恢复:原理、方案与工程实践 1. 项目概述为什么我们需要在传输管逻辑中恢复信号在数字电路设计的工具箱里传输管逻辑Pass-Transistor Logic, PTL一直是个让人又爱又恨的存在。爱它是因为它用极少的晶体管就能实现复杂的逻辑功能比如一个简单的二选一多路复用器MUX用传统CMOS门可能需要6个晶体管而用传输管可能只需要2个。这种面积和功耗上的优势在追求极致能效比和集成度的芯片里比如移动设备、物联网节点吸引力巨大。但恨它也恨得牙痒痒——信号经过传输管后经常会“掉血”变得不伦不类不再是那个干净利落的“0”或“1”导致后续电路无法正确识别整个系统都可能因此崩溃。这个“掉血”的过程就是信号完整性的退化。想象一下你是一个快递员信号要穿过一扇只能半开的门传输管。第一次穿过去你可能只是有点喘电压略有衰减。但如果要你连续穿过好几扇这样的门多级PTL串联等你到达目的地时可能已经累趴下了电压严重衰减甚至逻辑电平错误。更糟糕的是这扇门对胖瘦不同的快递员高电平‘1’和低电平‘0’的阻力还不一样导致一个跑得快一个跑得慢信号上升/下降时间不对称。“Restoring Digital Signals in Pass-Transistor Logic”这个项目要解决的就是如何给这些累趴下的快递员“打一针强心剂”让他们在每一段旅程后都能恢复满血状态确保数字世界的秩序井然。这不仅仅是学术问题而是当前许多低功耗、高密度芯片设计能否成功落地的关键。2. 传输管逻辑的信号退化机理深度解析要治病先得明白病根。传输管逻辑的信号退化不是玄学其背后有深刻的物理和电路原理。2.1 电压阈值损失那道过不去的坎这是PTL最经典的问题。以一个NMOS传输管为例。当栅极Gate加高电压比如VDD时源极Source和漏极Drain之间理论上应该导通。但如果源极输入一个高电平‘1’VDD这个电压传到漏极输出时最高只能达到VDD - Vthn。这里的Vthn就是NMOS的阈值电压。为什么呢因为当源极电压升高到VDD - Vthn时栅源电压Vgs就等于VDD - (VDD - Vthn) Vthn晶体管刚好处于导通的临界点。要想它继续完全导通源极电压就不能再高了否则Vgs将小于Vthn晶体管会进入线性区甚至截止。所以高电平被无情地砍掉了一截。对于PMOS传输管情况类似但对象相反。它传递低电平‘0’时输出低电平最低只能被拉到|Vthp|Vthp的绝对值因为当源极此时接输入电压降到|Vthp|时栅源电压Vsg注意PMOS是看源栅电压也等于|Vthp|达到了导通的临界点。注意这就是为什么单用NMOS或PMOS做传输管会有问题。NMOS传‘1’有损失但传‘0’很完美可以拉到地GND。PMOS传‘0’有损失但传‘1’很完美可以拉到VDD。这个特性后来催生了传输门Transmission Gate TG即NMOS和PMOS并联用互补信号控制从而实现对‘0’和‘1’的无损传输。但TG用了两个晶体管和反相器生成互补信号面积和功耗又上去了背离了PTL的初衷。2.2 电荷共享与动态节点泄露PTL电路常常与动态逻辑结合使用其输出节点是一个高阻抗的电容性节点。这里存在两个陷阱电荷共享假设输出节点预先存储了电荷比如为高电平当传输管导通连接到一个带有相反电荷或不同电压的输入源时两个电容上的电荷会重新分配导致最终输出电压既不是原来的值也不是输入的值而是一个中间值。这个中间电压可能处于后续反相器的阈值电压附近造成逻辑误判。漏电流在深亚微米工艺下晶体管的亚阈值漏电和栅极漏电不可忽视。对于一个浮空的动态节点即使传输管关闭微弱的漏电流也会缓慢地改变节点电压随着时间的推移存储的逻辑值就会“挥发”掉。这对于需要保持状态的电路如某些类型的锁存器是致命的。2.3 噪声容限恶化与性能不对称由于阈值损失输出高电平的VOH降低例如从VDD降到VDD-Vthn输出低电平的VOL升高例如从GND升到|Vthp|。这直接导致电路的噪声容限Noise Margin大幅缩水。噪声容限是电路抵抗电源波动、串扰等干扰的能力缓冲区。缓冲区变小了电路自然就变得“神经质”更容易出错。此外NMOS和PMOS的载流子迁移率不同电子迁移率通常高于空穴导致传输管对信号上升沿和下降沿的驱动能力不同。这种不对称性会引起信号边沿畸变增加时序分析的复杂性并可能产生不必要的毛刺。3. 主流信号恢复技术方案对比与选型知道了问题所在我们就可以对症下药。恢复信号的核心思想就是在PTL级联的中间或末端插入一个“再生”电路将衰减的、不完整的信号整形为轨到轨Rail-to-Rail的、干净的数字信号。以下是几种主流方案各有优劣。3.1 反相器缓冲器简单粗暴的万能药这是最直接、最常用的方法。在PTL模块的输出端直接连接一个标准CMOS反相器。工作原理反相器有一个明确的开关阈值电压通常设在VDD/2附近。只要PTL的输出电压能够超过这个阈值反相器就能将其果断地判决为高或低并利用其PMOS和NMOS对将输出强力上拉至VDD或下拉至GND。// 这是一个概念性描述并非可综合代码 module ptl_mux_with_inverter (input a, b, sel, output y); wire ptl_out; // Pass-Transistor Logic for 2:1 MUX assign ptl_out sel ? a : b; // 实际是晶体管级连接 // Signal Restoration INVX1 restore_inv (.A(ptl_out), .Y(y)); endmodule优点完全恢复输出绝对是干净的VDD或GND。驱动能力强可以为后续大量扇出电路提供驱动。设计简单标准单元无需特殊设计。缺点与注意事项引入延迟反相器本身有延迟增加了关键路径时间。消耗静态功耗当输入电压处于反相器阈值附近时PMOS和NMOS会短暂同时导通产生直流通路功耗。如果PTL输出变化缓慢由于衰减这个“短路电流”窗口期会变长功耗显著增加。面积开销至少需要2个晶体管部分抵消了PTL的面积优势。选型心得对于大多数中低速、对面积不是极度敏感的场景在PTL后加反相器是最稳妥、最可预测的选择。在标准单元库中它被广泛使用。3.2 电平恢复器Level Restorer巧妙的动态搭档常用于动态PTL电路如多米诺逻辑。它通常是一个弱反馈的PMOS晶体管。工作原理在动态节点预充电阶段假设预充到高电平恢复管关闭。在求值阶段如果动态节点被PTL网络下拉至低电平恢复管仍保持关闭。关键来了如果PTL网络未能将节点下拉即逻辑上应为高但由于漏电或电荷共享节点电压开始从VDD衰减一旦它降到VDD - |Vthp|以下这个弱PMOS的栅源电压Vsg就会大于其阈值电压从而被开启从VDD向该节点补充电荷将其电压“钳位”在VDD - |Vthp|左右。优点低功耗只有在需要时才补充电荷静态功耗极低。无缝集成非常适合动态电路流程。缺点与挑战恢复不完全只能将高电平恢复到VDD - |Vthp|并非完整的VDD。通常后面仍需跟一个反相器进行最终判决和驱动。设计复杂恢复管的尺寸需要精心设计。太弱则恢复速度慢太强则会与下拉路径竞争可能阻止节点被正确拉低导致功能错误。噪声敏感弱反馈机制对噪声更敏感。实操要点电平恢复管的宽度通常设计为下拉网络PDN中最强下拉路径晶体管宽度的1/3到1/5。需要通过后仿真Post-layout simulation仔细验证最坏工艺角如慢PMOS快NMOS下的功能正确性。3.3 差分 Cascode Voltage Switch Logic (DCVSL)自恢复的优雅结构这是一种完全不同的思路。它采用差分对结构天生具备信号恢复能力。工作原理DCVSL由两个互补的NMOS逻辑树实现函数F和其互补!F和一对交叉耦合的PMOS负载组成。两个输出OUT和!OUT也是互补的。工作时一个输出被拉低另一个则通过交叉耦合的PMOS负载被拉高。由于PMOS负载的交叉耦合形成了正反馈类似一个锁存器这个过程会加速直到输出达到完整的VDD和GND从而实现信号的完全恢复。优点真轨到轨输出无需额外缓冲器。高噪声容限差分结构对共模噪声有很好的抑制能力。可实现复杂逻辑逻辑功能在NMOS树中实现设计灵活。缺点面积大需要互补的逻辑树和额外的PMOS负载晶体管数量比单端PTL多很多。功耗可能更高每次切换时总有一个分支的NMOS树和PMOS负载会导通存在直流通路。设计复杂需要同时设计真值和互补两套逻辑树。应用场景主要用于对噪声、可靠性要求极高且面积和功耗有裕度的关键路径例如某些存储器周边电路或高性能计算单元。3.4 方案对比速查表恢复方案核心原理输出质量面积开销功耗特点设计复杂度典型应用场景反相器缓冲器电压阈值判决 全摆幅驱动轨到轨 (VDD/GND)中等 (2T)有短路电流功耗低 (标准单元)通用中低速PTL标准单元库电平恢复器弱PMOS反馈补偿漏电高电平≈VDD-Vthp小 (1T)动态功耗为主低静态功耗差分CVSL交叉耦合PMOS负载正反馈轨到轨 (VDD/GND)大 (逻辑树x2 2P)存在直流通路功耗高高噪声容限要求电路关键路径4. 基于反相器恢复的完整设计流程与参数考量我们以最常用的“PTL 反相器”方案为例拆解一个完整的设计实现流程。假设我们要设计一个采用PTL的4输入多路选择器MUX4:1局部电路并完成信号恢复。4.1 电路结构设计与晶体管级实现一个PTL实现的MUX4:1需要两级选择先用两位选择信号S[1:0]的高位S[1]在两组输入间做一次二选一再用低位S[0]在组内做一次二选一。为了驱动能力和信号完整性我们计划在最后一级PTL输出后加入恢复反相器。第一级PTLNMOS实现使用两个NMOS管由S[1]控制在输入D[3:2]和D[1:0]两组之间选择一组输出中间信号int0和int1每组一个信号。这里面临阈值损失。为了减轻影响我们可以考虑将第一级PTL的电源电压适当提高如果系统允许或者接受这个损失因为后面还有反相器可以恢复。第二级PTLNMOS实现同样使用两个NMOS管由S[0]控制分别从int0和int1中选择一个输出最终PTL结果ptl_out。此时ptl_out的高电平已经历两级NMOS衰减可能低至VDD - 2*Vthn非常脆弱。恢复反相器一个标准CMOS反相器输入接ptl_out输出为最终信号Y。反相器的PMOS和NMOS尺寸比β ratio需要仔细设计。4.2 反相器晶体管尺寸的精细化设计反相器的尺寸不是随便取的它直接影响恢复效果、延迟和功耗。关键参数是开关阈值电压V_M即输入电压等于输出电压的点。目标我们希望反相器的V_M设置在VDD/2附近吗对于恢复衰减信号不一定因为ptl_out的高电平只有VDD - 2*Vthn低电平是完好的GND。这是一个不对称的输入摆幅。设计策略为了对衰减的高电平有更好的识别容限我们可以将反相器的V_M适当调低。这样即使输入高电平较低也更容易超过V_M被判决为‘1’。尺寸计算在长沟道模型下反相器阈值V_M的近似公式为V_M (VDD Vthp sqrt(β_n/β_p) * Vthn) / (1 sqrt(β_n/β_p))其中β_n μ_n * Cox * (W/L)_n,β_p μ_p * Cox * (W/L)_p。μ_n和μ_p分别是电子和空穴迁移率通常μ_n ≈ 2.5 * μ_p。 要降低V_M就需要减小β_n/β_p的比值即增大PMOS相对于NMOS的宽度。实操步骤确定最小沟道长度L由工艺决定如28nm工艺L30nm。先确定NMOS的宽度W_n。通常为了驱动后续负载和速度会取一个稍大于最小宽度的值例如W_n 2 * L_min。根据工艺库数据估算μ_n/μ_p的比值例如2.5。设定目标V_M。假设VDD1.0VVthn|Vthp|0.3VPTL输出高电平约0.4V。为了留出约0.1V的噪声容限我们希望当输入为0.5V时反相器就发生翻转。即设V_M ≈ 0.5V。代入公式反推(W_p/W_n)的比值。经过计算过程略可能需要W_p / W_n的比值达到3甚至4。这意味着PMOS要比NMOS宽很多。在EDA工具如Cadence Virtuoso中搭建测试电路进行DC扫描分析仿真V_out随V_in变化的曲线验证实际的V_M是否满足要求并观察输出曲线的陡峭度增益。4.3 布局布线Layout的特别考量PTL电路的布局对性能影响极大因为寄生参数会加剧信号退化。对称布线对于选择信号S[1:0]到各级传输管栅极的走线要尽量等长以减少时序偏差Skew。缩短高阻抗路径int0,int1,ptl_out这些PTL内部节点是高阻抗点其金属连线必须尽可能短以减小对地电容和耦合电容从而降低延迟和受串扰影响的风险。恢复反相器就近放置恢复反相器应紧挨着最后一级PTL的输出点放置中间不要穿插长线。最好是将PTL的漏极扩散区Drain直接通过接触孔连接到反相器输入多晶硅栅Poly Gate上。电源/地线加固恢复反相器承担着最终驱动任务其电源VDD和地GND线需要足够宽并确保有良好的接触以避免IR压降影响输出电平质量。5. 设计验证、常见问题与调试实录设计完成后的仿真和调试是确保信号恢复成功的关键。5.1 必须执行的仿真 Corner Case不能只做典型情况TT Corner仿真。必须覆盖工艺、电压、温度PVT的极端情况。慢NMOS快PMOSSF Corner这是对PTL最不利的情况之一。NMOS的Vthn升高、迁移率下降导致其导通能力变差传递高电平的损失更大VDD - Vthn值更小。而PMOS变快会使恢复反相器的V_M升高因为β_p相对变大。双重打击下PTL输出的高电平可能无法达到反相器升高后的V_M导致功能失败。仿真时必须确认在此Corner下最慢的输入组合仍能正确翻转。低电压、高温Low VDD, High Temp低电压缩小了信号摆幅高温增加了漏电和降低了载流子迁移率。这同样会恶化PTL性能和反相器阈值。需要验证在最低工作电压和最高结温下电路功能、时序和噪声容限是否达标。输入信号斜率Slew Rate给PTL的输入信号不能理想方波。需要用带有实际上升/下降时间的信号如20ps~30%*周期进行仿真观察信号通过PTL链后的边沿退化情况以及恢复反相器在缓慢输入下的短路电流功耗。5.2 常见问题与排查技巧问题现象可能原因排查思路与解决方案功能错误输出始终为低1. PTL输出高电平不足。2. 反相器阈值V_M设置过高。1. 检查PTL网络NMOS尺寸是否过小或级联过多。考虑改用传输门或插入中间缓冲。2. DC仿真反相器转移特性曲线测量实际V_M。增大反相器PMOS宽度以降低V_M。输出波形有台阶或缓慢上升1. PTL输出节点电容过大走线太长。2. 恢复反相器驱动能力不足。1. 检查版图缩短高阻抗节点走线。2. 适当增大反相器晶体管尺寸尤其是PMOS增强上拉能力。注意这会增加输入电容影响前级。动态电路在特定频率下出错电荷共享或漏电导致动态节点保持时间不足。1. 仿真中观察动态节点在求值阶段的电压保持情况。2. 增大保持电容谨慎增加延迟。3. 优化电平恢复管的尺寸或引入更复杂的保持电路。功耗远超预期1. PTL输出变化慢导致反相器处于线性区时间过长短路电流大。2. 存在竞争冒险Glitch。1. 优化PTL速度减少信号衰减使边沿变陡。2. 检查输入信号时序是否存在毛刺通过PTL传播。可考虑在PTL前对选择信号进行整形。后仿真带寄生参数与原理图仿真结果差异大高阻抗节点的寄生电阻电容RC效应显著。1. 这是正常现象凸显了PTL对布局敏感的缺点。2. 必须进行后仿真验证。根据后仿真结果返回修改布局缩短关键走线加宽导线以减少电阻。5.3 一个真实的调试案例MUX链的恢复失败我曾设计过一个三级PTL MUX串联的电路。前仿真在TT Corner下一切正常。后仿真在SS Corner慢NMOS慢PMOS、低电压下输出偶尔出错。使用仿真器中的模拟波形探测工具逐级查看信号第一级PTL输出高电平从1.0V衰减到0.75V。第二级PTL输出高电平衰减到0.55V。第三级PTL输出高电平仅剩0.38V。恢复反相器输入就是这个0.38V。而在SS Corner下反相器的V_M仿真出来是0.52V。因此输入0.38V被判决为低输出错误。解决方案我无法改变工艺角但可以调整设计。我做了两处修改在第二级PTL后插入一个弱反相器进行中间恢复。这个反相器尺寸很小主要起信号整形作用将0.55V恢复为全摆幅再驱动第三级PTL。这打破了级联衰减的恶性循环。重新设计最终恢复反相器的尺寸进一步增大PMOS宽度将V_M从0.52V降低到0.45V左右为衰减的信号提供更大容限。修改后即使在最恶劣的Corner下电路也能稳定工作。代价是增加了两个晶体管和一点点延迟但换来了可靠性。这个案例让我深刻体会到PTL设计不能只看典型情况必须把恢复环节的容限设计放在首位尤其在深亚微米工艺下阈值电压变异Vth variation的影响必须纳入考量。
返回列表