好文档 - 专业文书写作范文服务资料分享网站

高速电路设计的经典案例 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

高速数字设计的经典案例若干则

【摘要】

随着这些年半导体工艺突飞猛进的发展,“高速数字设计”对广大硬件工程师来说,已经不再是一个陌生的词。从航空、雷达到汽车电子,从无线通信到有线接入,甚至在一些低端的嵌入式系统上,高速数字电路都已经在大行其道。目前行业内已经有不少关于高速数字电路理论的好文章,笔者就不在这上面掺和了。本文着眼于理论和实际相结合,所用的素材都来自笔者亲历过的案例,相信活生生的事实,比空洞的理论更有说服力,也希望能使入行不久的硬件工程师们得到他们想要的信息,今后少走弯路。由于不会对理论作过多的阐述,因此,本文的阅读对象应该具有一点点高速数字设计的理论基础,请知。

【关键词】

高速数字设计 高速数字电路 案例

1 信号完整性

什么词汇在高速数字设计中出现得最多?对了,SI(Signal Integrity),也就是信号完整性。信号完整性问题的表现形式多种多样,主要有如下种类:

图 1 过冲(OVERSHOOT) 图 2 振铃(RING)

图 3 非单调性(NON MONOTONIC)

过冲:当较快的信号沿驱动一段较长的走线,而走线拓扑上又没有有效的匹配时,往往会产生过冲。过冲带来的问题主要是“1”电平高于接收端器件的输入最大电压值(VIHmax),或“0”电平低于接收端器件的输入最小电压值(VILmin),这样可能给器件带来潜在的累积性伤害,缩短其工作寿命,从而影响产品的长期稳定性。

Smarteebit Page 1 of 17

其实,大多数的器件允许一定的超过器件标称耐压值的瞬态过冲,有些厂家甚至详细规定了瞬态过冲的参数,例如Altera的CycloneIII器件,其器件手册标称的最大正耐压值VImax值为3.95V,但这指的是直流电平。如果是过冲的话,另有一套限制参数。怎么个限制法,请看下面的图和表:

图表 1 CycloneIII对过冲参数的规定

规定:器件的工作年限是10年,我们设定一个门限4.10V,那么输入电平超过这个门限的时间总和不得超过10年的31.97%。或者换一种说法,在这10年里,管脚上始终输入一个翻转率100%,占空比50%的时钟信号,其周期为T,在一个周期里,输入电平超过4.10V的时间为△T,则△T/T的百分比不得超过31.97%。如果输入信号的翻转率低于100%(即一般的非时钟信号)的话,则意味着同等的过冲条件下,器件可以有更长的工作寿命。

由于很多的器件没有给出瞬态过冲指标,硬件设计人员若按直流输入的上下限来要求瞬态过冲,在复杂的拓扑中,很难有SI措施能够满足要求。这样做有过度约束之嫌。在没有更好的方法之前,我们采用下面的方案:

当器件没有给出瞬态过冲指标时,硬件设计者应该尽可能向器件供应商索取准确数据, 在确实要不到数据而且没有找到更加可性的计算方法的情况下,可以按下例方法估算:

图 4

Smarteebit Page 2 of 17

其中:

S_Overshoot_High / S_Overshoot_Low 为器件允许的静态过冲,即允许的直流输入VIH的上限和下限。

D_Overshoot_High / D_Overshoot_Low 为器件允许的动态过冲,相当于瞬态 Input 的上限和下限。 公式中的T 反映的是工作频率, t是电压超过静态过冲持续的时间,由仿真或测量获得。

对付过冲的一般方法是匹配,或叫端接(Termination)。匹配的方法五花八门,网上的文章一搜一大把,这里不再赘述了。匹配的中心思想是消灭信号路径端点的阻抗突变,归纳一下,无非可以总结为两种形式:源端的串行匹配,用于消灭二次反射,以及终端的并行匹配,用于消灭一次反射。不是每种匹配方式都适用于任何场合,例如,50ohm并行匹配一般不用于LVTTL/LVCMOS等电平逻辑,因为电阻上消耗的功耗大得难以接受;又例如,源端匹配用于链型拓扑时,靠近驱动端的接收点波形较差,对此,我们有“案例:源端匹配用于链型拓扑的缺陷”详细说明。

除了匹配之外,还有另外一种改善过冲的行之有效的方法,那就是令驱动端的信号沿变缓,使得原先的高速信号变得不那么“高速”。使信号沿变缓的最常用的手法,就是降低驱动器的驱动电流。这种手法在FPGA/CPLD设计中尤为常用。通过“案例:通过修改驱动电流的方法改善过冲”,我们将对此法有更深的体会。

振铃:过冲往往伴随有振铃,或者说,过冲是振铃的一部分。振铃产生的第一次峰值电压,就是过冲。之所以要将二者区分来讲,是因为振铃的危害除了过冲外,还有其产生的电压波动可能多次跨越逻辑电平的阈值电压,使得接收端产生误判,对于CMOS器件来说,振铃过程中还可能使得上、下MOS管同时导通的时间延长,急剧地增加功耗,影响器件寿命。既然振铃和过冲的产生机理一致,对它的处理方式也就和处理过冲无异,这里仅作简要的理论阐述。

非单调性:绝大多数的非单调性都是复杂的信号拓扑造成的,因此,在一个CPU或DSP芯片的本地总线上,非单调性的问题最为常见,也最难解决。非单调性按表现分类,可以分为两种:回钩和台阶。对于一个沿有效的时钟来说,信号沿上的回钩或台阶是致命的,因为一个非单调的时钟沿,可能被接收端认做多个有效沿,或在器件内部产生亚稳态,导致时序逻辑的功能错误。对于数据来说,非单调性的危害则主要是时序裕量的减小,这也是复杂的总线系统往往要进行时序仿真的原因之一。非单调性的案例,请见“案例:时钟的非单调性带来的时序逻辑错误”,“案例:数据的非单调性带来的时序裕量问题”。

对于时钟信号来说,避免出现非单调性问题的最好方式是使用时钟驱动器,用点对点的方式驱动每一个负载;对于有复杂拓扑的总线信号来说,则建议使用总线驱动芯片,这样可以将一个复杂的拓扑分解为两个或两个以上较为简单的拓扑,同时也不要忘记加入合适的匹配电阻,具体的匹配方法,可以通过仿真得到。

1.1 案例:源端匹配用于链型拓扑的缺陷

如图 5,这是一个典型的链型拓扑:最右端的U48为驱动端,经过一个串阻后,一条走线上呼啦啦挂了9个负载。

图 5 典型的链型拓扑实例

由远及近,拓扑上的仿真波形分别如图 6(a)、(b)、(c)、(d):

Smarteebit Page 3 of 17

OSCILLOSCOPEDesign file: SAT7_682D.HYP Designer: songminHyperLynx V7.74000.0V [UD2.13 (at die)]V [U74.11 (at die)]V [U70.11 (at die)]4000.0OSCILLOSCOPEDesign file: SAT7_682D.HYP Designer: songminHyperLynx V7.7V [UC2.13 (at die)]V [U32.11 (at die)]3500.03500.03000.03000.02500.0Voltage -mV-Voltag2500.02000.02000.01500.0e -mV-1500.01000.01000.0500.0500.00.000.00-500.0-500.00.004.0008.000Time (ns)12.00016.0000.004.0008.000Time (ns)12.00016.000Date: Thursday Dec. 17, 2009 Time: 18:04:48Net name: P_SCKShow Latest Waveform = YESDate: Thursday Dec. 17, 2009 Time: 18:05:31Net name: P_SCKShow Latest Waveform = YES

(a) (b)

OSCILLOSCOPEDesign file: SAT7_682D.HYP Designer: songminHyperLynx V7.74000.0V [UB2.13 (at die)]V [U31.11 (at die)]4000.0OSCILLOSCOPEDesign file: SAT7_682D.HYP Designer: songminHyperLynx V7.7V [UA2.13 (at die)]V [U30.11 (at die)]3500.03500.03000.03000.02500.0Voltage -mV-Voltag2500.02000.02000.01500.0e -mV-1500.01000.01000.0500.0500.00.000.00-500.0-500.00.004.0008.000Time (ns)12.00016.0000.004.0008.000Time (ns)12.00016.000Date: Thursday Dec. 17, 2009 Time: 18:06:14Net name: P_SCKShow Latest Waveform = YESDate: Thursday Dec. 17, 2009 Time: 18:06:59Net name: P_SCKShow Latest Waveform = YES

(c) (d)

图 6 链型拓扑的仿真波形

可以看到,末端的波形(a)是最好的,由远及近(b)-> (c) ->(d),信号沿的非单调性问题开始出现,越靠近驱动端,非单调性越严重。实测波形与仿真基本接近,这里就不再贴出来了。像(b)、(c)、(d)这样的信号质量,如果是数据,只要能保证不影响时序,倒也无妨,但如果是沿有效的时钟,则是不能接受的。该实例证明,串行匹配用于链型拓扑时,只能保证末端负载的波形。从理论上理解:源端匹配消灭的是二次反射,当信号行波的一次反射从末端往回走的途中,与驱动信号叠加,便有了这样的波形。有兴趣钻研的朋友可以看看Howard W. Johnson的“HIGH-SPEED DIGITAL DESIGN: A Handbook of Black Magic”,里面的“Source Terminators”一节中有类似的阐述。

关于信号的非单调性带来的问题,后文将有另外的案例详细说明。

1.2 案例:通过修改驱动电流的方法改善过冲

每个网络拓扑都有自己的等效电容、等效电阻和等效电感,这几个参数一起,构成了网络上的一套充放电电路,驱动端的电流越大,这套电路的充/放电时间就越快,由此产生的信号沿就越陡;反之,信号沿越缓。这就是降低驱动电流能够使信号沿变缓的原理。

下面两个图是在不同管脚驱动能力配置下,对同一网络拓扑的同一测试点的实测结果,驱动端为Altera的MAXII器件的LVTTL33输出,测试点在接收端管脚。可以看到,当输出驱动能力为8mA时,接收端的过冲比16mA时明显减小。

Smarteebit Page 4 of 17

图 7 驱动电流16mA 图 8 驱动电流8mA

管脚驱动能力的可编程能力,其实并不限于FPGA和CPLD,一些专用IC也具备这样的功能,如TI的ADC芯片ADS62C15,其数字输出管脚的驱动能力就是可编程的。用降低管脚驱动电流的方法来改善信号完整性,比电阻匹配的方式更加经济,因为不需要额外的分立元件,不但简化了硬件设计,降低了物料成本,节省了PCB空间,而且能降低功耗,同时还可以提高单板的可生产性。设计者唯一需要做的,就是修改对芯片的配置。当然,效果如何,请一定要记得先通过仿真验证。

1.3 案例:时钟的非单调性带来的时序逻辑错误

一个以ADI的BlackFin DSP为核心的嵌入式系统,DSP通过其SPORT1口与CPLD通信,但这个简单的端口,通信却频繁发现异常,严重影响系统的运行稳定性。软件工程师、逻辑工程师费尽了心思走查代码,也没发现任何问题。硬件工程师发现这个端口的时钟信号因为挂了不止一个负载,有一个很长的分叉,于是拿了个带宽600MHz的示波器测量这个时钟的SI,结果也没测出什么异常。后来老大说,600MHz的带宽可能不够啊,用2GHz带宽的示波器再测一下吧!这一测,还真发现问题了,请看图 9时钟沿上的回钩:

图 9 时钟信号的非单调性

逻辑工程师随后把这个时钟从CPLD通过测试管脚引出来测试,发现时钟沿上这个小小的回钩,不但给时钟引入了不期望的毛刺,而且还测到了亚稳态。

回钩的出现就是一个长达5inch的分叉(stub)导致的。针对这个信号拓扑进行SI仿真,得到的结

Smarteebit Page 5 of 17

高速电路设计的经典案例 - 图文

高速数字设计的经典案例若干则【摘要】随着这些年半导体工艺突飞猛进的发展,“高速数字设计”对广大硬件工程师来说,已经不再是一个陌生的词。从航空、雷达到汽车电子,从无线通信到有线接入,甚至在一些低端的嵌入式系统上,高速数字电路都已经在大行其道。目前行业内已经有不少关于高速数字电路理论的好文章,笔者就不在这上面掺和了。本文着眼于理论和实际相结合,所用的素材都来自笔者
推荐度:
点击下载文档文档为doc格式
0545k9k36n75cln2zb6p
领取福利

微信扫码领取福利

微信扫码分享