现场可编程逻辑系统的设计技巧.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《现场可编程逻辑系统的设计技巧.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现场 可编程 逻辑 系统 设计 技巧
- 资源描述:
-
1、5.1 同步电路设计技巧 v FPGA具有丰富的触发器资源,灵活、低延时的多时钟资源和三态的总线结构资源,有利于同步电路的设计实现。同时,FPGA的也存在极大的弱点:由内部逻辑实现中的布局布线的不确定性所带来的系统时延的不确定性。因此,特别是对于时延关系要求苛刻的异步电路,用FPGA实现起来相对较困难。v 5.1.1 同步电路与异步电路的基本概念v 数字系统的电路通常由组合逻辑、时序逻辑或者两者混合构成。对于时序逻辑电路,其基本结构如图 5-1所示。图 5-1 时序逻辑电路的结构框图 组 合逻 辑存 储器 件x1xnZ1ZmY1y1yrYrv 时序逻辑电路一般由组合逻辑、存储器件和反馈网络3部
2、分组成。v 图5-1中,X1,Xn为时序逻辑电路的输入或称外部输入;v Z1,Zm 为时序电路的输出或称外部输出;v y1,yr为时序逻辑电路的状态或称内部输入;v Y1,Yr为时序逻辑电路的激励或称内部输出。v 时序逻辑电路的组合逻辑只用来产生电路的输出和激励,存储器部分是由其不同的状态(y1,yr)来“记忆”电路过去的输入情况的。其逻辑功能的函数一般表达为:v Zi=gi(X1,Xn,y1,yr)i=1,m (5.1)v Yj=hj(X1,Xn,y1,yr)j=1,r (5.2)v 时序逻辑电路按其工作方式可分为同步时序逻辑和异步时序逻辑,其结构如图 5-2所示。图 5-2 时序电路结构框
3、图(a)同步时序逻辑电路;(b)异步时序逻辑电路组合逻辑存储元件X1XnZ1ZmY1y1yr存储元件Yr时钟脉冲(a)组合逻辑存储元件X1XnZ1ZmY1y1yr存储元件(b)Yrv 其中,同步时序逻辑电路中的存储元件为触发器,而异步时序逻辑电路中的存储元件往往是延迟元件。v 从图 5-2(a)中可见,同步时序电路的存储元件由钟控触发器组成,时钟脉冲信号加在每个触发器的时钟输入端。只有当时钟信号到来时,电路状态(y1,yr)才能发生变化,而且只改变1次。如果时钟信号非有效,即使输入发生变化,电路的状态也不会改变。v 通常将时钟到达之前的电路状态称为现态,记作y(n);将时钟到达之后的电路状态称
4、为次态,记为y(n+1)。由于始终是时钟信号起着同步作用,故称此电路为同步时序逻辑电路。v 从图 5-2(b)中可见,异步时序电路的存储元件主要由延迟元件组成,电路中不需要统一的时钟信号,输入的变化有时将直接导致电路状态的变化。时序逻辑电路的输入信号有脉冲形式和电平形式两种,如图 5-3所示。按照输入信号形式的不同,时序逻辑电路又可分为脉冲型和电平型。图 5-3 时序逻辑电路的输入信号波形 时钟脉冲(CP)01101011同步脉冲异步脉冲10101011同步电平01101011异步电平10101010v 同步时序逻辑电路的行为虽然可以由式(5.1)和式(5.2)描述,但从这些表达式中并不能清楚
5、地了解其输入、输出、现态、次态之间的转移关系。在实际的电路设计和分析中,我们通常采用所谓的状态表和状态图的方式。v 最流行的两类时序逻辑电路模型是Mealy模型和 Moore模型。如第1章的图1-31和图1-32所示,当电路的输出是输入和现态的函数,即Zi=Fi(X1,Xn,y1,yr)(i=1,m)时,称作Mealy型电路;同样,当电路的输出信号是现态的函数,Zi=Fi(X,y1,yr)(i=1,m)时,则称该电路为Moore型电路。v 5.1.2 FPGA现场集成中常见的问题v 对于时序逻辑的系统要求,可以采用时序逻辑电路的形式去实现,这可称作硬件解决方案;也可以采用基本微控制器、微处理中
6、的内嵌微程序的时序操作形式来实现,这常称作计算机型的解决方案。v 两者在设计方式以及逻辑实现的形式上,都有着不同之处和相异的性能特点。v 在采用FPGA这样已规范的可编程逻辑阵列和可编程连线的有限资源,去实现不同功能的时序逻辑电路系统时,如何把握随机的布局、布线带来的时延对系统逻辑的影响,如何避免局部逻辑资源时延特征和不同的时序电路形式的制约,如何有效利用FPGA的特征逻辑结构去优化电路设计,都是一个设计工程师在设计中必须考虑的问题。v 在采用FPGA的数字时序逻辑的现场集成,特别是对于同步电路的设计实现中,我们常遇到的主要问题有以下几种。v建立时间:在时钟跳变前数据必须保持稳定(无跳变)的时
7、间。v保持时间:在时钟跳变后数据必须保持稳定的时间。v如图5-1所示。每一种具有时钟和数据输入的同步数字电路都会在技术指标表中规定这两种时间。数据时钟建立时间 保持时间图5-1 建立时间和保持时间v 数据稳定传输必须满足建立和保持时间的要求,否则输出数据就可能有错误,或变得不稳定。在FPGA设计中,应对信号的建立和保持时间做充分考虑,尽量避免在数据建立时间内或其附近读取数据。对于级联的功能模块或者数字逻辑器件,后一模块或器件的工作时钟一般取前一模块或器件工作时钟的反相信号,这样就可以保证时钟的边沿位于数据的保持时间内。v 当数据刚好在时钟边缘前后发生变化时,此时的时钟不知道时输入边沿前的数据还
8、是边沿后的数据,完全取决于触发器内部的,这样会导致亚稳定性。如图5-2图5-2 违反建立和保持时间原则v解决办法:将非同源时钟同步化v v 图5-3 非同源时钟同步化v时序波形图v冒险现象冒险现象v 1)定义:数字电路设计中,当多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。v2)原因:v(1)由于延时所产生。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。v(2)信号的高低电平转换也需要一定的过渡时间
9、。v 3冒险的缺点:v 影响到逻辑电路的稳定性。时钟端口,清零和置位端口对毛刺都十分敏感,任何一个毛刺都可能会使系统出错。v4 避免毛刺的方法:v(1)增加冗余项。v(2)采用格雷码计数器v(3)采用同步电路v(4)采用D触发器输出v(5)采用脉冲在数据的保持时间内采样v采用脉冲在数据的保持时间内采样毛刺信号采样脉冲去除毛刺后的输出信号OUTTESTSAMPLEDCBAName:Value:1011010100.0ns200.0ns300.0ns400.0ns消除毛刺方法:利用采样信号及其波形消除毛刺方法:利用采样信号及其波形v利用触发器消除毛刺方法二:利用触发器及其波形毛刺信号采样时钟去除毛
10、刺后的输出信号Name:Value:200.0ns400.0ns600.0ns800.0nsABCDCLKTESTOUT0010010消除毛刺方法三:利用RC滤波器滤除毛刺v 1.在同步电路设计中,如何使用时钟(clock)使能信号的问题v 所谓同步电路,就是指电路在时钟信号有效时,来捕捉电路的输入信号和输出信号,规范电路的状态变化。v 因此,在同步电路设计中,时钟信号是至关重要的。但是,直接用门控时钟来控制电路的状态变化,由于各种原因造成的时钟信号的毛刺将直接影响电路的正常工作,特别对于高速FPGA的结构,会影响电路逻辑的正常响应。因此,在电路结构中,增加时钟使能信号,无论对于防止时钟信号随
11、机毛刺的影响,还是严格规范电路逻辑的时序对应,都是非常重要的。图 5-4 所示为时钟使能信号CE的电路实现。图 5-4 时钟使能信号电路 PDQCERPDQCER输入时钟CEv 有的电路采用图 5-5(a)所示的对触发器增添CE脚的形式,而有的设计则采用图5-5(b)所示的附加逻辑控制端CE的方式来实现CE的控制功能。v 不管采用何种形式,如果在电路中不使用CE信号时,则要将CE端接至高电平。同样,当在设计中需要多重时钟时,时钟使能也可用来维护电路状态变化的同步性。有时,时钟使能信号可由图 5-4 的电路来实现。图 5-5 在电路中加入CE信号的形式(a)增添具有CE脚的触发器;(b)附加逻辑
12、控制端CEFDxEDQCE(a)DQCE(b)v 2.在同步电路设计中,如何合理布置时钟分配的问题v 同步电路中的多时钟产生,往往采用时钟分配电路来实现。这时,首先要关注的是如何降低分配时钟之间的时钟偏移问题。对于如图 5-6所示的时钟分配电路,为了减少时钟CLK1和CLK2之间的时钟偏移,可采用额外的缓冲器BUFG来降低CLK2的时钟偏移。v 但是,这样的电路并不能完全抑制时钟波形的变形。若需完全抑制CLK1和CLK2-CE之间的时钟偏移,可尝试如图 5-7所示的电路。该电路中的BUFG为可选缓冲器。当CLK2-CE信号是高扇出时,可省略BUFG缓冲器。图 5-6 不好的时钟分配电路 DQC
13、LK2DQBUFGBUFGCLK1 图 5-7 好的时钟分配电路CLK2_CEBUFG(可选)CLK1PDQCERPDQCERv 3.在同步电路设计中应严格避免时钟信号(CLK)、置位(Set)/复位(Reset)信号的毛刺v 由于亚微米技术的成熟,目前的FPGA中的触发器的响应速度越来越快,其可以响应非常窄的时钟脉冲。因此,往往触发器会响应时钟信号中的毛刺,导致逻辑发生误动作。图 5-8 门控时钟的毛刺产生原理FF计数器glitch may occur here(毛刺也许会在这里出现)Shorter routing(短的布线)LSBMSB10001111011101111000MSB由于快速
14、的MSB的过渡可能是v 为了避免时钟等信号的毛刺,在设计中应严格注意不能采用所谓的“门控时钟”,即由组合逻辑输出直接作为时钟的现象发生。如图 5-8所示,如果与门的MSB输入连线较短,则在计数器输出信号“01111000”的瞬变,在与门输入端就可以瞬间出现“011111111000”的过程。这个“1111”的出现,将在触发器FF的时钟输入端形成毛刺。v 为了防止这类情况的发生,建议采用如图 5-9所示的电路,这样便可以实现相同的逻辑功能,却不会导致时钟产生毛刺。也可以有意识地对与门输入端引入一个CLB时延,如图 5-10所示,同样可以将门控时钟毛刺形成的可能性降低。图 5-9 避免时钟毛刺的电
15、路 计数器DQ3Q2Q1Q0输入时钟FF输出CEDQ图 5-10 对与门引入CLB的时延 CLB 时延v 在同步电路中,异步清除或预置输入信号的毛刺,同样会导致电路逻辑出错。如图 5-11 所示中的“Reset”信号,虽然是可执行一个异步的清除,但由于其信号源于一个组合逻辑与门,其中可能的毛刺会使电路出错。图 5-11 异步“清除”电路 时钟ResetQ(X)Q(O)FFDQR输入异步清除二进制计数器v 解决该问题的原则和上述克服时钟信号毛刺的原则一样,如图5-12 所示。可以采用方法A,即采用同步化的Reset控制的触发器FF;也可采用方法B,即在电路中将Reset信号改为时钟使能信号来控制
16、电路逻辑,从而避免Reset信号中的毛刺。图 5-12“清除”信号的同步化解决方案 (a)方法A;(b)方法B 时钟ResetQ(X)Q(O)FFDQR输入同步复位二进制计数器(a)图 5-12“清除”信号的同步化解决方案 (a)方法A;(b)方法B 时钟ResetQ(X)Q(O)FFDQ输入计数器(b)v 图 5-13所示是对于具有异步复位的计数器,如何避免复位信号中的毛刺影响的不同设计。v 其中图5-13(a)的设计不能克服异步复位信号中毛刺的影响,而图5-13(b)的设计则可有效地克服异步复位信号中毛刺的影响。图 5-13 避免Set/Reset信号中毛刺的影响的分析 (a)不好的设计;
17、(b)好的设计计数器AsyntRQ1Qm时钟输入(a)计数器AsyntRQ1Qm时钟输入(b)v 4.在同步电路设计中,时钟偏移及不确定信号电平的影响v 时序电路在FPGA中实现时,由于各部分连线长短不一致,导致其虽然多个触发器共用一个时钟信号,但触发器时钟端的信号延时并不相同,信号会发生不同的畸变,构成时钟信号偏移。v 如图 5-14所示,图5-14(a)中标出时钟信号的不同时延,对照图5-14(c)的信号波形,可以分析,由于时钟信号到达触发器的端口处的信号发生畸变和不同的时延,该移位寄存器将不能正常工作。v 在同步电路的设计实现中,我们还应注意信号建立和保持时间的需要,特别是触发器输入信号
18、的变化不能距离时钟信号边缘太近,如图 5-15所示。图 5-14 同步电路中时钟偏移的影响 D Q_AA3.03.1时钟输入D Q_BB12.53.1D Q_CC3.03.3(a)Expected operationCQ_AQ_BQ_C3个周期(b)Clock skewed versionA&CQ_AQ_BQ_C2个周期(c)MC图 5-15 时钟信号建立与保持时间的影响Setup-建立时间Hold-保持时间CLKDD的原值D的新值不确定值关于Q的可能出现的状态Possiblebehavioron Qv如果两者太接近的话,触发器输出将会形成如下3种情况:v (1)维护输入D的原值;v (2)改
19、变成输入D的新值;v (3)输出是不确定的。图 5-16 异步输入信号同步化电路 DQDQDQDQR外围设备确保没有不确定状态Sync input(同步输入)System clock(系统时钟)Asyncinput(异步输入)v 5.1.3 同步逻辑电路设计中的基本技巧 v 1.对于输入信号是异步的情况v 在同步逻辑电路设计中,对于异步的输入信号,首先要做的工作是同步异步信号。图 5-16所示为异步输入信号同步化的电路举例。v 2.两个独立时钟的情况v 在同步逻辑电路的系统中,如果存在两个时钟信号,且对于包容于CLK1和CLK2之间的信号,需要和CLK2信号同步。图 5-17 双CLK的电路
20、DQDQCLK1CLK2v 对于如图 5-17所示电路,前后两个触发器之间为某一逻辑功能,CLK1和CLK2分别是前后两个触发器的时钟信号。这时需要分两种情况考虑:v CLK1慢于CLK2(CLK1的脉宽大于CLK2);v CLK1快于CLK2(CLK1的脉宽小于CLK2)。v 对于CLK1的脉宽大于CLK2的情况,一般要求输入信号脉冲至少为1个CLK2的周期以上(慢于CLK2);同时,在电路中需要附加一个触发器,以防止出现不确定态,如图 5-18(a)所示,FF1是一个用于防止不确定态出现的触发器,FF2输出被同步于CLK2。v 图5-18(b)为该电路各信号的波形示意。图 5-18 附加触
21、发器以防止出现不确定态(a)电路图;(b)电路波形示意FF2DQFF1DQSignal synched to CLK2(同步于CLK2的信号)Signal from CLK1 domain(CLK1的相关信号)CLK2Guards against metastability(防止不确定状态)(a)CLK2Signal from CLK1FF1OutputFF2OutputSampleWaveform(b)图 5-19 电路原理和波形示意FF3DQFF2DQSignal synched to CLK2(同步于CLK2的信号)Signal from CLK1 domain(CLK1的相关信号)CL
22、K2Guards against metastability(防止不确定状态)CLK2Signal from CLK1FF2OutputFF3OutputFF1DQVCCFF1Outputv 对于CLK1的脉宽小于CLK2时,输入脉冲宽度也许会小于1个时钟周期宽度。同样,如图 5-19 所示,需要再增加一个触发器,以防止出现不确定状态,且输出信号仍需同步于CLK2。v 双时钟电路可用于异步输入信号的同步化实现中。当输入脉冲宽于1个时钟周期时,可使用CLK1慢于CLK2的信号同步化电路(如图 5-19所示)。同样,当输入脉冲宽度小于1个时钟周期时,需要使用CLK1快于CLK2的信号同步化电路。5
23、.2 多级逻辑的设计技巧 v FPGA主要由可编程逻辑单元模块(CLB)、可编程输入/输出模块(IOB)和可编程内连线(PI)3 种基本资源构成。因此,在采用FPGA来实现电路逻辑时,其基本的时延来源于这3种基本资源。v 其中,CLB和IOB内的逻辑资源虽会随不同的逻辑需求而实现不同的重构,但其单元时延的离散性不大。而PI则根据不同的逻辑需求及不同的连线要求,使各处连线的延时差异会非常大。v 因此,对FPGA实现中的延时分析,需要根据具体情况,具体地由这些基本时延的叠加来加以分析。v 5.2.1 FPGA实现中的基本时延v信号的延时信号的延时 v1定义:由于信号传输路径必须通过电晶体开关,因此
24、产生连线延时。另外,信号每通过一个逻辑单元,就会产生一定的延时。v2 影响因素:延时的大小除了受路径长短的影响外,还受器件内部结构特点、制造工艺、工作温度、工作电压等条件的影响。信号的延时v 实际上,在采用FPGA来实现同步逻辑电路时,我们可以利用器件内部资源的某些特征参数来预测电路设计的性能指标或评估电路性能是否优化。例如:可以采用内部单元模块的时延作为评估网络时延的基本依据;也可以反过来,采用预期的时钟频率来决定电路设计中允许使用的CLB的串级数。通过功能需求比较和设计修正,来使设计达到所需求的指标。v 例如:如果需要在XC4000XL-3的芯片中实现50 MHz时钟频率,由于系统时钟周期
25、为20 ns,如图 5-20所示,1 级 C L B 的 延 时 约 8 n s(包 括tCO+tNET+tSU),还有时延冗余量12 ns。图 5-20 多级CLB的时延模型 CLBtCOCLBtNETtPDtNETCLBtPDtNETCLBtSUv 考虑中间每个附加CLB的组合逻辑延时为6 ns(tPD+tNET),则该系统中可串联两级内嵌附加CLB组合逻辑。v 那么,如图 5-21所示的的三级串联逻辑,其中总的时延为多少?最高能实现多高的系统频率呢?图 5-21 内嵌三级串联逻辑的时延模型 SDQCERSDQCERv 稍作分析,其总的延时是由串联于其中的布线延时tNET和单级CLB组合延
展开阅读全文