首先高级篇讨论第二章《第2章 Altera器件高级特性与应用》
可编程逻辑器件,尤其是高性能、大容量的FPGA,正逐渐成为系统中的核心组成部分,因此工程师们对其功能和性能的要求也在逐步增加。为了适应这种发展趋势,Altera在对传统的逻辑单元结构进行改进的同时,也逐渐在其FPGA中增加了越来越多的专用电路,用来实现复杂的功能,实现高速的接口和互连,使得FPGA看起来就像一个可编程的片上系统(SOPC)。
理解和掌握这些专用电路的原理和用法,对设计工程师来说非常重要。因为,在一些高速的设计中,如DDR SDRAM控制器和LVDS高速接口,纯粹依靠传统的逻辑电路难以达到理想的性能要求,这时就必须依赖FPGA内部的专用硬件电路来辅助实现高性能的设计。这一点也使得设计与器件更加相关(Device Dependent),有人认为这会在一定程度上影响设计的可移植性,但是目前这的确是一个发展趋势。
在本章内容中,我们将逐一介绍Altera器件中的一些专用电路以及它们的用法,希望能够对读者有帮助。本章主要内容如下:
•时钟管理;
•片内存储器;
•数字信号处理;
•片外高速存储器;
•高速差分接口和DPA;
•高速串行收发器。
2.1 时钟管理
这一节给出的是Altera Timing的基本概念
一、时钟偏斜(Skew)和抖动(Jitter)
时钟偏斜(Skew)是指在时钟分配系统中到达各个时钟末端(器件内部触发器的时钟输入端)的时钟相位不一致的现象,如图2-1所示。
时钟偏斜主要由两个因素造成:一是时钟源之间的偏差,例如同一个PLL所输出的不同的时钟信号之间的偏斜;另一个是时钟分配网络的偏斜。时钟偏斜是永远存在的,但是其大到一定程度,就会严重影响设计的时序,因此需要用户在设计中尽量减小其影响。
时钟抖动是指时钟边沿的输出位置和理想情况存在一定的误差,如图2-2所示为抖动的示意图。抖动一般可以分为确定性抖动和随机抖动:确定性抖动一般比较大,而且可以追踪到特定的来源,如信号噪声、串扰、电源系统和其他类似的来源;随机抖动一般是由环境内的因素造成的,如热干扰和辐射等,而且往往难以追踪
二、时序余量(Timing Margin)
在一个同步设计中,可以说时序决定一切。为了保证同步系统可以正常工作,设计中所有的时序路径延时都必须在系统规定的时钟周期以内,如果某一个路径超出了时间限制,那么整个系统都会发生故障。
尤其是在目前的高速系统设计中,如何在保证设计功能正确的前提下,满足设计的时序要求,是工程师们面临的一大挑战。所以设计者通常需要考虑各种可能的因素,精确计算时序的余量,使系统可靠地工作。
在计算设计内部的时序余量时,工程师通常会考虑的一些延时因素是:源触发器的时钟到输出延时tco,触发器到触发器的走线及逻辑延时tlogic,目的触发器的建立时间tsu和保持时间th。假设设计规格需要跑的时钟周期为T,因此需要满足时钟建立的要求:
tco + tlogic + tsu ≤ T…………………………………………(公式1)
同时也需要满足目的端触发器的保持时间th要求。
在同步接口的设计中,另一个需要重点考虑的就是FPGA和周围(上游和下游)器件的接口时序。由于芯片I/O管脚的输入输出存在相对较大的延时,同时还涉及到和时钟信号之间的相位关系,所以接口电路的时序往往成为设计中的难点。
在计算同步I/O管脚的时序余量时,用户通常会考虑发送器件的时钟到输出延时Tco,单板走线延时Tfight,以及接收器件的建立时间Tsu和保持时间Th。假设设计规格需要跑的时钟周期是T,需要满足:
Tco + Tfight + Tsu ≤ T………….………………………………………………...(公式2)
同样也需要满足接收器件的外部保持时间Th的要求。
如图2-3所示为同步设计时序示意图。
图2-3 同步设计时序模型图
当然,以上的时序余量计算是基于这样一个基本的出发点:芯片内部的时钟和单板的系统时钟是完美的时钟,也就是说,时钟永远具有恒定的周期而且没有抖动(Jitter),但是在实际的系统中,这样的时钟是不存在的。
在进行FPGA或ASIC设计中,以前工程师们往往只关注逻辑级数、平面布局和布线延时,认为这些才是设计中面临的最大的时序问题,很少关心时钟本身的特性,如偏斜(Skew)、抖动(Jitter)和占空比失真(Duty Cycle Distortion)等。在低速设计的年代,用户基本上不用考虑这些因素,然而随着设计时钟频率的不断提高,时钟本身的缺陷也在不断地吞噬着宝贵的时序余量。同时,由于时钟本身的问题造成设计性能下降的情况越来越普遍,使设计工程师们不得不对以前很少关心的时钟质量问题给予关注。
在一个实际的系统中,这里我们把同一个时钟源分布到不同的时钟目的端的延时差叫做tskew(如果到源端触发器比到目的触发器延时小,tskew为正值,否则为负值)。而时钟沿的到达时间也会与理想情况有一些差别,这里把理想的时钟周期与实际的时钟周期的差别叫做tjitter(如果理想的时钟周期大于实际的时钟周期,tjitter为正值,否则为负值)。如果时钟信号的下一个有效边沿超前于预定时间到达,这样时钟的有效周期缩短,而在这个时钟周期内,电路同样需要正常工作。这样,在考虑时序余量时,就需要把时钟的偏斜和抖动计算在内,满足:
tco + tlogic + tsu ≤ T + tskew – tjitter……………………………..…………(公式3)
与此类似,在考虑同步I/O接口时序时,也必须考虑单板上时钟分配系统之间的偏斜以及时钟抖动。
[此贴子已经被作者于2005-12-6 13:53:35编辑过]
在I/O设计中,除了传统的系统同步方案以外,也有源同步方案。该方案中,采样时钟是与数据一起随路传送的,数据和时钟之间有已知的固定相位关系。在接收端必须根据这一固定的相位关系对数据和时钟分别进行相应的延时处理,以满足数据的采样要求。当然,如果使用动态相位调整(DPA)电路,数据与时钟之间的相位关系就不用那么严格。
CDR(时钟数据恢复)电路也逐渐成为许多高速高带宽系统互连的方案。在该方案中,数据以串行的方式传送,同时采用一定的编码格式(如8B/10B)保证数据的跳变率。这样在接收端,就可以根据输入的数据恢复出数据和时钟,完成对数据的采样。
关于Altera器件中的DPA和CDR,我们将在本章2.5~2.6小节中描述,读
者可以参考相关内容。
三、使用全局时钟网络和锁相环改善时钟
在可编程逻辑器件中,一般都有全局时钟网络,可以驱动全片的所有触发器和时序电路,包括LE、IOE、RAM和DSP等资源中的触发器。
要提醒大家注意的是,许多逻辑设计工程师对全局时钟网络的特性有一个曲解,认为其延时很小。其实,全局时钟网络的特点是:为了保证到芯片的各个角落的延时尽量相等,时钟分配树首先是走到芯片的中间,再向芯片的四周分布,如图2-4所示。所以从时钟的源端到所驱动的触发器走过的路径比较长,延时比较大,但是到各个时序元件(触发器)时钟输入端等长,保证时钟偏斜(Skew)很小。同时全局时钟网络具有很强的驱动能力,而且在芯片设计的时候对时钟网络做了保护,尽量防止芯片内部的信号对时钟信号质量有影响,这样可以保证时钟信号引入的抖动非常小。
[此贴子已经被作者于2005-12-6 13:55:22编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |