1. 概述与分类
本文所述IO(Input/Output PAD)主要是指集成在CMOS芯片中的连接模块,其负责芯片引脚的外部信号与芯片内部的数字/模拟模块的交互,它是一颗完整芯片设计中不可或缺的组成部分。 文章首先根据IO的使用类型,介绍了IO的分类;紧接着重点介绍了GPIO的输入/输出功能和模式,以及输入/输出模式下的一些特点和设计考虑;最后简要介绍了GPIO的功耗/静电保护/tolerance IO等一些问题
1.1 电源IO
电源IO的典型应用如下图所示:
hljs-center
电源IO主要作用就是提供电源在整芯片中的连接方式以及对电源本身的ESD保护方案。 对于电源IO, 简单归类:1. 是否需要连接到IO power ring上?通常认为可以直接连接到IO power ring上的电源对噪声不敏感; 2. 高压电源/低压电源的分类,这可能会涉及到ESD保护方案的不同
1.2 晶振IO
晶振IO的主要作用就是提供给外部的晶体一定的驱动能力,配合振荡晶体和外围电路产生振荡信号,为系统提供稳定可靠的时钟。目前较为常见的是皮尔斯振荡器,这种振荡器需要占有2个IO。
皮尔斯晶体振荡器的典型应用如下图所示:
hljs-center
Notes: 晶振的Cload值一般是以无源晶体本身来定义;CL1和CL2的串联值为Cload,即Cload=0.5CL1=0.5CL2 (一般CL1=CL2) 通常这个IO的开发都是专用IO电路,当晶体振荡器功能不用时,无法复用为GPIO。后续开发倾向于单独开发晶振驱动电路,和GPIO复用在一起;当晶体振荡器功能不用时,也能将这两个IO复用为GPIO。
1.3 GPIO
GPIO(General Purpose Input Output)的典型框图如下图所示:
ST GPIO Diagram
能就是实现芯片内外隔离,实现电平变化以及缓冲输入/输出的作用。具体的作用和工作模式详见第二章节介绍。
1.4 特殊引脚IO
在芯片设计中,可能会存在某些特殊的引脚。例如RESET复位PIN就通常设定为一个上拉输入的GPIO; SWD通信中SWDIO和SWDCLK也有一个上拉电阻的要求。
2. GPIO基本工作模式
本章节针对GPIO的输入输出工作模式进行描述。
2.1 输入接口电路
输入接口电路负责处理从芯片外部输入信号到芯片内部。
2.1.1 输入接口电路的主要作用
- 提供适当的电平转换
- TTL电平和CMOS电平
- Schmitt触发器输入
- 对片内电路起保护作用
- 注意ESD二级保护的电阻应用。一般ESD保护电阻的阻值在250欧姆作用;对输入缓冲,保护电阻可以设计的大一些,电源/高速时钟信号则要相对选小一些
施密特(Schmitt)触发器的基本架构和工作模式如下所示:
施密特触发器的主要作用:施密特触发器存在一个明显的迟滞窗口,有利于提高输入的噪声容限;尤其是输入上升沿/下降沿不够理想的应用环境
2.1.2 输入接口电路的模式
PAD模拟输入 需要注意对模拟内部信号的二次ESD保护 直接将模拟信号精确的输入或输出,无需额外的缓冲电路,而且保护电路也不可对模拟信号有所扭曲,使其有所失真 PAD数字输入 严禁浮空输入 上拉输入 下拉输入 上拉/下拉输入电阻阻值一般在几十K的数量级,且随电源电压变化较大
输入模式下的真值表
2.1.3 输入模式下的注意点
在所有输入信号中尤其需要注意VDDC_OFF(POC)功能 该信号为高电压域信号 该信号的作用:在电源上电过程,如果VDDC或VDDIO还没有稳定的时候,VDDC_OFF处于有效保护状态,保证IO处于High-Z状态,防止输出的大MOS管发生贯通电流或IO上有强驱动输出 如果是多管脚输出设计(例如管脚数量大于64),建议逐步释放VDDC_OFF信号,防止产生瞬间的大电流
2.2 输出接口电路
输出接口电路负责从芯片内部输出信号。
2.2.1 输出接口电路的主要作用
电平转换 提高信号的驱动能力; 提高足够大的驱动能力。通常片外负载会在pF数量级别,同时还需要提供适当的上升/下降时间 输出缓冲的总延迟时间小 Slew rate控制 对片内电路起保护作用;
2.2.2 输出接口电路的模式
CMOS推挽(Push-Pull)输出 开漏(Open-Drain)输出 典型应用场景:I2C 开源(Open-Source)输出
输出模式下的真值表 2.2.2.I 开漏(Open-Drain)输出说明 需要注意的时开漏输出,其典型的几种情况如下:
开漏输出的主要作用:1. 实现“线与”逻辑,即多个开漏输出的管脚可以直接并在一起;2. 实现不同逻辑电平的转换(如3.3V和5V之间), 但可能要注意IO的耐压tolerance问题 2.2.2.II 输出驱动能力说明 GPIO的输出驱动能力一般可选:2mA/4mA/…/24mA等 驱动能力的衡量是在外部管脚拉/灌标称的驱动电流时,输出还能维持一定的VOH/VOL为判定标准 驱动能力越强,GPIO自身消耗的功耗越大,电源/地线引起的扰动噪声也越大;所以建议选择满足需求的合适的驱动能力 虽然驱动能力不同,但一般来说,IO的面积大小相同。主要因为驱动管和ESD管一般都是共用在一起;而ESD管的面积基本决定了IO的面积大小 输出驱动管(也包含部分ESD管)一般都会有比较大的PMOS/NMOS尺寸,容易引发latch-up特性。所以在版图上都会有双重保护环(double guard ring)的设计要求 2.2.2.III 输出延迟时间说明 关于IO的延迟时间: 输出接口电路最重要的一点是对负载电容必须有足够的驱动能力,以达到适当的上升时间和下降时间。当输出要驱动一个很大的负载电容时,为保证电路的工作频率,就必须使电路的输出级能够提供够的驱动电流,电路的延迟时间可 以近似用下式表示:
其中,CL是电路要驱动的总负载电容,V是电路的输出摆幅,Id是输出级的驱 动电流。 从上面的式子可以看出,在负载电容和摆幅一定的情况下,若想减小电路的延迟时间,必须增大MOS管的宽长比。然而,输出级MOS管的宽长比增大,又 将增大前一级的负载电容,影响前一级的工作速度。因此,常采用级联反相器 作为输出缓冲电路。且使反相器的尺寸逐级增大;通过设计适当的级数比例, 以使总延迟最小。
按固定的比例因子逐级增大器件尺寸: 这样,每级反相器有近似相等的延迟时间,对级联反相器的总延迟最有利。 当n = ln (CL/Cin), S = e时,级联反相器的总延迟最小。延迟时间约为:
上面的结论只是从速度优化方面考虑的结果。在实际缓冲器的设计中不能简单的套用, 而要从速度/功耗和面积多方面综合考虑。一般这个值会取4~8
3. GPIO的功耗等影响因素
3.1 GPIO的功耗分布
动态功耗如下图所示 对整个充放电的电流积分乘以电源,可以得到充放电一次消耗的能量为C¬LVDD^2; 因此在一定频率下的平均功耗为P = Freq* C¬LVDD^2
贯通功耗如下图所示 大驱动PAD的最后一级MOS管的Size非常大,如果存在P/N管同时导通的情况, 会有很大贯通电流 静态电流功耗如下图所示 大驱动PAD的最后一级MOS管的Size非常大。因此,在IO PAD不翻转时的静态功耗(漏电流)可能也会比较大,在设计中,必须进行仿真确认。
IO PAD的整体功耗分布如下图所示
3.2 GPIO的ESD保护
IO的ESD保护是个复杂的大课题,在这里只是简单介绍一些ESD保护的基本概念。 随着工艺尺寸的发展,ESD设计挑战越来越大。因为gate oxide break down电压越来越低,ESD设计窗口越来越小
IO的ESD目前而言,一般来说电源IO的power clamp会选用RC trigger; GPIO会利用NMOS的snapback特性
3.3 GPIO的其他注意事项
Cu bonding要求有一定的抗压能力,对顶层金属以及通孔阵列有一定的要求 在某些情况下,可能还需要一种类型IO需要tolerance高压设计,即接口信号电压高于电源电压的情况下的应用 Tolerance IO主要应用环境包括 输入高压,输入电压高于电源电压 输出开漏,Termination电压高于电源电压 带charge pump功能的LCD驱动输出,LCD电压高于电源电压 Tolerance IO设计需要考虑的因素 器件的耐压特性 PMOS器件的漏极和衬底之间的寄生二极管 Tolerance IO的负面影响 IO单元的面积有明显变大 相同面积下,驱动能力减弱 相同面积下,ESD能力相对下降 Tolerance IO设计下存在的寄生二极管,示意图如下:
本文作者:yangyf
点击查看原文