FPGA设计中的基本问题.ppt

上传人:豆**** 文档编号:24147045 上传时间:2022-07-03 格式:PPT 页数:126 大小:4.71MB
返回 下载 相关 举报
FPGA设计中的基本问题.ppt_第1页
第1页 / 共126页
FPGA设计中的基本问题.ppt_第2页
第2页 / 共126页
点击查看更多>>
资源描述

《FPGA设计中的基本问题.ppt》由会员分享,可在线阅读,更多相关《FPGA设计中的基本问题.ppt(126页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.7 信号的延时信号的延时 6.8 器件结构与实际系统的匹配器件结构与实际系统的匹配 6.9 电路结构与器件速度和成本之间的关系电路结构与器件速度和成本之间的关系 6.10 器件加密器件加密 6.11 设计文档设计文档 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1 数的表示方法数的表示方法 在数字系统中, 各种数据要转换为二进制代码才能进行处理, 而人们习惯于使用十进制数, 所以在数字系统的输入输出中仍采用十进制数, 这样就需要用二进制数来表示十进制数。 用二进制数表示十进制数的方式有很多种, 表6

2、.1汇总了几种二进制计数方式, 并指出了其优缺点。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.1 二进制计数方式 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 记数方式 数值范围 优 点 缺 点 浮点数_ 具有很大的动态范围 执行算术运算时需要大量的硬件资源 块浮点数_ 具有很大的动态范围,所需的硬件资源最少 在给定时间内所有数都具有相同的指数第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.2 3位二进制数与其对应的十进制数值 二进制数无符号整数二进制补码 格雷码带符号整数偏移二进制补码二进制反码 000 0 0 0 0

3、 4 0 00l 1 1 1 1 3 1 010 2 2 3 2 2 2 0ll 3 3 2 3 1 3 100 4 4 7 0 0 3 10l 5 3 6 1 l 2 110 6 2 4 2 2 1 111 7 1 5 3 3 0第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 在使用FPGA器件执行数值运算的电路设计中, 以及在FPGA与外围电路(如A/D、 D/A器件)接口中, 经常用到不同的计数方式, 特别是二进制计数方式与十进制计数方式之间的转换。 为了让大家能够对二进制计数方式有一个清晰的认识, 下面分别对几种常用的计数方法进行简单介绍。 第第6 6章章 FPGAF

4、PGA设计中的基本问题设计中的基本问题 表6.3 无符号整数的权值 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.1 无符号整数 无符号整数的计数方法是我们经常用到的, 它将一个整数用一个二进制代码序列表示, 每个二进制代码的权值是2P, P为该代码在序列中的序号, 如表6.3 所示。 表6.4给出了几个无符号整数与十进制数的转换实例。 无符号整数非常适于执行算术运算, 图6.1是一个加法运算的例子。 这种计数方法的缺点就是只能表示 02N-1(N为二进制序列的长度)范围内的整数, 而无法表示负数, 这就在很大程度上限制了这种计数方法的使用范围。 第第6 6章章 F

5、PGAFPGA设计中的基本问题设计中的基本问题 表6.4 无符号整数与十进制数的转换实例 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图 6.1 无符号整数的加法 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.5 二进制补码的权值 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.2 二进制补码 二进制补码也是常用的计数方法, 它既可以表示正数, 也可以表示负数。 与无符号整数的记数方式类似, 二进制补码也是用一个二进制代码序列表示一个整数, 唯一不同之处在于最高有效位的权值是-2N-1。 每一位二进制代码对应的权值已在表

6、6.5中给出。 表6.6 给出了二进制补码与十进制数的转换实例。 用二进制补码计数方法, 将一个整数进行正负值变换是很简单的, 只需将原数中“1”和“0”反相, 然后再加上“1”即可, 如表6.6中“29”的二进制补码的表示。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.6 二进制补码与十进制数的转换实例(N8) 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 二进制补码的最大优点就是可以像无符号整数那样方便地进行加减运算。 需要注意的是, 最高有效位的进位必须舍去。 图6.2给出了三个加减运算的例子。 第第6 6章章 FPGAFPGA设计中的基本

7、问题设计中的基本问题 图6.2 二进制补码的加减运算 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.3 无符号小数 无符号小数是无符号整数的扩展, 它将一个数分为整数部分和小数部分, 通常用“N.M”表示一个无符号小数的格式, 其含义是整数部分用N位二进制代码表示, 小数部分用M位二进制代码表示。 小数点左侧第一位二进制代码是整数部分的最低有效位, 右侧第一位二进制代码是分数部分的最高有效位。 权值是不同的, 表6.7给出了不同位置上的二进制代码所对应的权值的大小。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.7 无符号小数的权值 第第6

8、 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.8给出了几个无符号小数与十进制数的转换实例。 两个无符号小数进行加减运算时, 首先把小数点位置对齐, 然后再进行相加或相减。 如果两个无符号小数的格式不相同, 即N与M值不相等, 则可用补零的方法取齐。 图6.3是一个加法运算的实例, 标有下划线的“0”为添加的辅助位。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.8 无符号小数与十进制数的转换实例(N.M4.3) 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.3 无符号小数的加法 第第6 6章章 FPGAFPGA设计中的基本

9、问题设计中的基本问题 6.1.4 带符号小数的二进制补码 带符号小数的二进制补码可以表示正的或负的小数, 它的格式通常用“N.M”表示。 带符号小数的二进制补码与无符号小数的记数方法十分相似, 唯一不同之处是整数部分最高有效位对应的权值是-2N-1。 表6.9给出了不同位置上的二进制代码所对应的权值。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.9 带符号小数二进制补码的权值 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.10是几个带符号小数二进制补码与十进制数的转换实例。 用这种计数方法, 将一个数进行正负值变换是很简单的, 只需将原数中

10、的“1”和“0”反相, 然后再在最后一位(即小数部分的最低有效位)加“1”即可, 如表6.10中的“3.625”。 在进行加减运算时, 首先把小数点位置对齐, 然后再进行相加或相减。 如果两个数的格式不相同, 即N与M值不相等, 则可用补零的方法取齐。 图6.4是一个加法运算的实例, 标有下划线的“0”为添加的辅助位。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.10 带符号小数二进制补码与十进制数的转换实例(N.M4.3) 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.4 带符号小数二进制补码的加法 第第6 6章章 FPGAFPGA设计中

11、的基本问题设计中的基本问题 与二进制补码类似, 在执行算术运算时, 如果整数部分的最高有效位出现进位, 则必须将该进位舍去。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.5 格雷码 格雷码的特点是任意两个相邻的码之间只有一个数不同。 另外, 由于最大数与最小数之间也仅有一位不同, 故通常又叫格雷反射码或循环码。 表6.11给出了格雷码与二、 十进制数的关系。 由于编码方式的特殊性, 格雷码具有很强的抗干扰能力。 但是格雷码不便于直接执行算术运算, 需要转换为无符号整数或二进制补码, 再进行运算。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表

12、6.11 格雷码与二、 十进制数的关系 十进制数 二进制数 格雷码 0 0000 0000 l 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 Olll 0100 8 1000 1100第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.

13、6 带符号整数 带符号整数由“符号位”和“数值位”两部分组成。 最高有效位是符号位, 表示数值的正负, 类似于十进制数中的“”号, 一般用“0”表示正数, “1”表示负数。 除去最高有效位以外的部分是数值位, 它实际上是一个无符号整数, 表示数值的大小。 这种计数方法与十进制整数的表示方法很相似。 表6.12给出了3位带符号整数与十进制整数之间的对应关系。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.7 偏移二进制补码 偏移二进制补码常用于A/D和D/A变换器上, 它将采样点的取值范围从小到大顺序编码。 表6.13是3位偏移二进制补码与十进制数和二进制补码之间的对

14、应关系。 从表中可看出, 虽然偏移二进制补码是顺序编码的, 但它对应的十进制数值不连续。 将最高有效位反相, 可以实现偏移二进制补码和二进制补码之间的转换。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.12 带符号整数与十进制数的转换 带符号整数 十进制数 000 0 001 l 010 2 011 3 100 0 101 1 110 2 111 3第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 表6.13 偏移二进制补码与十进制数 偏移二进制补码二进制补码 十进制数 000 100 4 001 101 3 010 110 2 011 111 1

15、100 000 0 101 001 1 110 010 2 111 011 3第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.1.8 浮点数和块浮点数 浮点数具有很大的动态范围, 可以非常精确地表示一个数值。 由于在执行算术运算时需要大量的硬件资源, 所以浮点数计数方法的使用成本很高。 块浮点数计数方法广泛用于信号处理领域, 如执行FFT变换, 它消耗的硬件资源要比浮点数少得多。 块浮点数可以跟踪数值动态范围的变化, 例如做256点FFT变换, 数据宽度为16位, 动态范围是-32 76832 767, 经过FFT的第一级运算后, 取值范围是-65 53665 535。

16、第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 为了保持数据宽度不变, 可以将所有256个点的数值均除以2, 然后在寄存器中置入一个“1”, 这样通过增加一位寄存器, 达到了既增加了数据的动态范围, 又未增加数据宽度的目的。 这种计数方法就是块浮点数。 需要提醒大家的是, 不要将浮点数和块浮点数相混淆, 二者之间是有较大区别的, 它们的动态范围不同, 执行算术运算所需的硬件资源也不相同。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.2 有限字长的影响有限字长的影响 在6.1节我们给大家讲述了数的二进制表示方法, 任何一个数值都是用有限字长的二进制数表

17、示的, 也就是说数值的表示精度和动态范围不会是无限大, 所以在FPGA设计时必须考虑有限字长的影响。 有限字长的影响主要带来三方面的误差: 输入量化误差、 系数量化误差和运算量化误差。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 模拟量值在进入FPGA器件之前, 需要A/D变换, A/D采样时所得到的数值只能以有限字长的二进制代码表示, 与真实值之间存在偏差, 这就是输入量化误差。 提高A/D器件的采样精度可以减小输入量化误差。 在用FPGA器件设计数字滤波器时, 数字滤波器系数必须用二进制代码表示, 并按规定位数进行量化。 由于量化处理引起量化误差, 滤波器实际系数偏离

18、理论计算值, 从而使滤波性能变差, 其原因就是系数量化误差的影响。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 在数据处理电路中经常需要进行算术运算, 例如将两个N位字长的二进制数做乘法运算, 乘法器的结果输出一般用2N位字长表示, 这就需要舍位处理, 然后再进行下一步运算,否则最终结果的数据宽度是难以想象的。 但是舍位就引入了误差, 这种误差属于运算量化误差,也称为运算噪声。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 为了得到精确结果, 一方面可以选用合适的运算结构, 尽量减少有限字长效应, 另一方面可以采用合适的字长以降低运算噪声。 FPGA器

19、件的字长可以根据需要任意指定, 字长越大, 量化误差就越小, 但与此同时电路占用的片内资源就越多, 编译、 仿真时间和系统成本也会因之而上升。 图6.5给出了利用FLEX10K器件实现44、 88、 1212和1616位乘法器所分别占用的LE和EAB的数目, 由图可见, 字长的增加会导致片内资源占用率呈几何级数增大。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.5 乘法器所占用的资源 EABLE4488121216161324169941317729第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3 时钟问题时钟问题 无论是用离散逻辑、 可编程

20、逻辑, 还是用全定制器件实现任何数字电路, 设计不良的时钟在极限温度、 电压或制造工艺存在偏差的情况下将导致系统错误的行为, 所以可靠的时钟设计是非常关键的。 在FPGA设计时通常采用以下四种时钟: 全局时钟、 门控时钟、 多级逻辑时钟和波动式时钟, 多时钟系统是这四种时钟类型的任意组合。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3.1 全局时钟 对于一个设计项目来说, 全局时钟(或同步时钟)是最简单和最可预测的时钟。 在FPGA设计中最好的时钟方案是: 由专用的全局时钟输入引脚驱动单个主时钟去控制设计项目中的每一个触发器。 FPGA一般都具有专门的全局时钟引脚,

21、 在设计项目时应尽量采用全局时钟, 它能够提供器件中最短的时钟到输出的延时。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.6给出全局时钟的一个实例, 定时波形显示出触发器的输入数据D3 .1应遵守建立时间tsu和保持时间th的约束条件。 如果在应用中不能满足建立和保持时间的要求, 则必须用时钟同步输入信号。 有关建立和保持时间的介绍请参见6.4节内容, 其具体数值可在FPGA器件的数据手册中找到, 当然也可用开发软件的定时分析器计算出来。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.6 全局时钟 QDPRNCLRN组合逻辑D1D2D3Gl

22、obal CLKOUTD3.1CLKtsuth改变稳定改变第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3.2 门控时钟 在许多应用中, 整个设计项目都采用外部的全局时钟是不可能或不实际的, 所以通常用阵列时钟构成门控时钟。 门控时钟常常同微处理器接口有关, 例如用地址线去控制写脉冲。 每当用组合逻辑来控制触发器时, 通常都存在着门控时钟。 在使用门控时钟时, 应仔细分析时钟函数, 以避免毛刺的影响。 如果设计满足下述两个条件, 则可以保证时钟信号不出现危险的毛刺, 门控时钟就可以像全局时钟一样可靠工作: 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题

23、 驱动时钟的逻辑必须只包含一个“与门”或一个“或门”, 如果采用任何附加逻辑, 就会在某些工作状态下出现由于逻辑竞争而产生的毛刺。 逻辑门的一个输入作为实际的时钟, 而该逻辑门的所有其它输入必须当成地址或控制线, 它们遵守相对于时钟的建立和保持时间的约束。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.7和图6.8是可靠门控时钟的实例。 在图6.7中, 用一个“与门”产生门控时钟, 在图6.8中, 用一个“或门”产生门控时钟。 在这两个实例中, 将引脚nWR和nWE作为时钟引脚, 引脚ADD3 .0是地址引脚, 两个触发器的数据是信号Dn .1经组合逻辑产生的。 第第

24、6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.7 “与门”门控时钟 改变稳定改变改变稳定Dn.1nWRADD3.0tsuthtsuthQDPRNCLRN组合逻辑D1DnOUTnWRADD0ADD1ADD2ADD3第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.8 “或门”门控时钟 QDPRNCLRN组合逻辑D1DnOUTnWEADD0ADD1ADD2ADD3改变稳定改变Dn.1nWEADD3.0tsuthtsuth改变稳定改变改变第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.7和图6.8的波形图显示出有关的建立时间和保持时

25、间的要求, 这两个设计项目的地址线必须在时钟保持有效的整个期间内保持稳定(nWR和nWE是低电平有效)。 如果地址线在规定的时间内未保持稳定, 则在时钟上会出现毛刺, 造成触发器发生错误的状态变化。 另一方面, 数据引脚Dn.1只要求在nWR和nWE的有效边沿处满足标准的建立和保持时间的规定。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 设计人员往往可以将门控时钟转换成全局时钟以改善设计项目的可靠性。 图6.9给出如何用全局时钟重新设计图6.7所示的电路, 即让地址线去控制D触发器的输入使能。 许多FPGA设计软件, 如MAX+PLUS软件都提供这种带使能端的D触发器。

26、当ENA为高电平时, D输入端的状态被时钟激励到触发器中, 当ENA为低电平时, 则维持现有状态。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.9 将“与门”门控时钟转化成全局时钟 QDPRNCLRNENA组合逻辑D1DnOUTnWRADD0ADD1ADD2ADD3第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.9 将“与门”门控时钟转化成全局时钟 Dn.1nWRADD3.0改变稳定改变tsuthtsuth改变稳定第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.9中重新设计的电路的定时波形表明地址线不需要在nWR有效的

27、整个期间内保持稳定, 而只要求它们和数据引脚一样符合同样的建立和保持时间, 这样对地址线的要求就少很多。 图6.10给出了一个不可靠的门控时钟的例子。 3位同步加法计数器的RCO输出用来作为触发器的时钟端, 由于计数器的多个输出都起到了时钟的作用, 这就违反了可靠门控时钟所需的条件之一。第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 在产生RCO信号的触发器中, 没有一个能考虑为实际的时钟, 这是因为所有触发器几乎在相同的时刻都发生翻转, 但是我们并不能保证在FPGA器件内部QA、 QB、 QC到D触发器的布线长短一致。 因此, 正如图6.10的时间波形所示, 在计数器从3计

28、到4时, RCO线上会出现毛刺(假设QC到D触发器的路径较短, 即QC的输出先翻转)。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.10 不可靠的门控时钟 QDPRNCLRNOUTQAQBQC ENCLKENABLERCODATACLKQAQBQCRCO不允许的毛刺第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.11给出一种可靠的全局时钟控制电路, 它是图6.10的改进, 即用RCO来控制D触发器的使能输入。 这个改进并不需要增加PLD的逻辑单元, 而且图6.11电路等效于图6.10电路, 但却可靠得多。 第第6 6章章 FPGAFPGA设计

29、中的基本问题设计中的基本问题 图6.11 不可靠的门控时钟转换为全局时钟QDPRNCLRNENAOUTQAQBQC ENCLKENABLERCODATA3位二进制可逆计数器第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3.3 多级逻辑时钟 当产生门控时钟的组合逻辑超过一级, 即超过单个的“与门”或“或门”时, 该设计项目的可靠性将变得很差。 在这种情况下, 即使样机或仿真结果没有显示出静态险象, 但实际上仍然可能存在危险, 所以我们不应该用多级组合逻辑去作为触发器的时钟端。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.12 有静态险象的多级时

30、钟 QDPRNCLRN组合逻辑D1DnOUTQDPRNCLRNDIV2SELCLKACLKDIV2SELA不允许的时钟毛刺第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.12给出了一个含有险象的多级时钟的例子。 时钟由SEL引脚控制的多路选择器输出端提供多路选择器的输入是时钟(CLK)和该时钟的2分频(DIV2)。 由图6.12的定时波形图可以看出, 在两个时钟均为“1”的情况下, 当SEL的状态改变时, 存在静态险象。 多级逻辑的险象是可以去除的, 例如可以插入“冗余逻辑”到设计项目中, 但是FPGA编译器在逻辑综合时会去掉这些冗余逻辑, 这就使得验证险象是否真正被去

31、除变得十分困难。 为此, 设计人员应必须寻求其它方法来实现电路的功能。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.13给出了图6.12电路的一种单级时钟的替代方案。 图中SEL引脚和DIV2信号用作D触发器的使能输入端, 而不是用于该触发器的时钟引脚。 采用这个电路并不需要附加逻辑单元,工作却可靠得多了。 不同的系统需要采用不同的方法消除多级时钟, 并没有一个固定的模式。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.13 无静态险象的单级时钟 组合逻辑D1DnOUTQDPRNCLRNDIV2SELCLKQDPRNCLRNENA第第6 6

32、章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3.4 行波时钟 所谓行波时钟是指一个触发器的输出用作另一个触发器的时钟输入。 如果仔细设计, 行波时钟可以像全局时钟一样可靠工作, 但是行波时钟使得与电路有关的定时计算变得很复杂。 行波时钟在行波链上各触发器时钟之间产生较大的时间偏移, 并且会超出最坏情况下的建立时间、 保持时间和电路中时钟到输出的延时, 使系统的实际速度下降。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 用计数翻转型触发器构成异步计数器时, 常采用行波时钟, 一个触发器的输出作为时钟控制下一个触发器的输入, 参见图6.14。 同步计数器通常是

33、代替异步计数器的更好方案, 这是因为两者需要同样多的宏单元而同步计数器有较短的时钟到输出的延时。 图6.15所示为具有全局时钟的同步计数器, 这个3位计数器是图6.14异步计数器的替代电路, 它用了同样的3个宏单元, 却有较高的工作速度。 现在几乎所有FPGA开发软件都提供各种各样的同步计数器, 设计人员可以直接调用, 不需要自己从底层开始设计。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.14 行波时钟 CLKQTPRNCLRNQTPRNCLRNQTPRNCLRNENABLETFFVCCTFFVCCTFFOUT第第6 6章章 FPGAFPGA设计中的基本问题设计中

34、的基本问题 图6.15 行波时钟转换成全局时钟 QTPRNCLRNCLKENABLEQTPRNCLRNQTPRNCLRNOUTTFFTFFTFF第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.3.5 多时钟系统 许多系统要求在同一设计内采用多时钟, 最常见的例子是两个异步微处理器之间的接口, 或微处理器和异步通信通道的接口。 由于两个时钟信号之间要求一定的建立和保持时间, 所以上述应用引进了附加的定时约束条件, 它们会要求将某些异步信号同步化。 图6.16给出了一个多时钟系统的实例。 CLK_A用于控制REG_A, CLK_B用于控制REG_B。 由于REG_A驱动着进入

35、REG_B的组合逻辑, 由定时波形显示出CLK_A的上升沿相对于CLK_B的上升沿有建立时间和保持时间的要求。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 由于REG_B不驱动REG_A的逻辑, CLK_B的上升沿相对于CLK_A没有建立时间的要求。 此外, 由于时钟的下降沿不影响触发器的状态, 所以CLK_A和CLK_B的下降沿之间没有时间上的要求。 在图6.16 中, 如果CLK_A和CLK_B是相互独立的, 那么它们之间的建立时间和保持时间的要求是不能保证的, 所以在REG_A的输出馈送到REG_B之前, 必须将电路同步化。 第第6 6章章 FPGAFPGA设计中的

36、基本问题设计中的基本问题 图6.17显示了REG_A的输出如何与CLK_B的同步化。 该电路在图6.16的基础上增加了一个新的触发器REG-C, 它由CLK_B控制, 从而保证了REG-C的输出符合REG_B的建立时间。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.16 多时钟系统 QDPRNCLRNOUTREG_BQDPRNCLRNDATA_ACLK_ADATA_BCLK_BDATA_ACLK_ACLK_BDATA_Btsuthtsuthtsuth改变稳定改变改变稳定改变REG_A第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.17 具有同

37、步寄存器输出的多时钟系统 QDPRNCLRNOUTREG_BQDPRNCLRNDATA_ACLK_ADATA_BCLK_BREG_AQDPRNCLRNREG_C第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.18 不同源时钟 QDPRNCLRN3M_CLKData inData outQDPRNCLRN5M_CLKData inData out第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 在许多应用中只将异步信号同步化还是不够的, 当系统中有两个或两个以上非同源时钟的时候, 数据的建立和保持时间很难得到保证, 设计人员将面临复杂的时间分析问题。 最好

38、的方法是将所有非同源时钟同步化。 使用FPGA内部的锁相环(PLL)是一个效果很好的方法, 但并不是所有FPGA都带有PLL, 而且带有PLL功能的芯片大多价格昂贵, 所以除非有特殊要求, 一般场合不建议使用带PLL的PLD。 这时就需要使用带使能端的D触发器, 并引入一个高频时钟来实现信号的同步化。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 如图6.18所示, 系统有两个不同源时钟, 一个为3 MHz, 一个为5 MHz, 不同的触发器使用不同的时钟。 为了保证系统能够稳定工作, 现引入一个20 MHz时钟, 将3 MHz和5 MHz 时钟同步化, 如图6.19所示。

39、 该图中的D触发器及紧随其后的非门和与门构成了时钟上升沿检测电路, 检测电路的输出分别被命名为3M-EN和5M-EN。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 把20 MHz的高频时钟作为系统时钟,输入到所有触发器的时钟端, 同时让3M-EN和5M-EN控制所有触发器的使能端。 也就是说, 在图6.18中接3 MHz时钟的触发器, 接20 MHz时钟, 同时用3M-EN控制该触发器的使能端, 在图6.18中接5 MHz 时钟的触发器, 也接20 MHz时钟, 同时用5M-EN控制该触发器的使能端, 这样我们就实现了任何非同源时钟同步化。 第第6 6章章 FPGAFPG

40、A设计中的基本问题设计中的基本问题 图6.19 同步化任意非同源时钟 QDPRNCLRNENA3M_ENData inData outQDPRNCLRNENAData inData outQDPRNCLRNQDPRNCLRN20M_CLKQDPRNCLRNQDPRNCLRN3M_CLK5M_CLK5M_EN第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 稳定可靠的时钟是保证系统可靠工作的重要条件, 设计中不能够将任何可能含有毛刺的输出作为时钟信号, 并且尽可能只使用一个全局时钟, 对多时钟系统要特别注意异步信号和非同源时钟的同步问题。 第第6 6章章 FPGAFPGA设计中的

41、基本问题设计中的基本问题 6.4 建立和保持时间建立和保持时间 “建立时间”定义为在时钟跳变前数据必须保持稳定(无跳变)的时间。 “保持时间” 定义为在时钟跳变后数据必须保持稳定的时间, 如图6.20所示。 每一种具有时钟和数据输入的同步数字电路都会在技术指标表中规定这两种时间。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.20 建立时间和保持时间 数据时钟建立时间 保持时间第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 数据稳定传输必须满足建立和保持时间的要求, 否则输出数据就可能有错误, 或变得不稳定。 在FPGA设计中, 应对信号的建立和保持

42、时间做充分考虑, 尽量避免在数据建立时间内或其附近读取数据。 对于级联的功能模块或者数字逻辑器件, 后一模块或器件的工作时钟一般取前一模块或器件工作时钟的反相信号, 这样就可以保证时钟的边沿位于数据的保持时间内。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.5 冒险现象冒险现象 信号在FPGA器件内部通过连线和逻辑单元时, 都有一定的延时。 延时的大小与连线的长短和逻辑单元的数目有关, 同时还受器件的制造工艺、 工作电压、 温度等条件的影响。 信号的高低电平转换也需要一定的过渡时间。 由于存在这两方面因素, 多路信号的电平值发生变化时, 在信号变化的瞬间, 组合逻辑的

43、输出状态不确定, 往往会出现一些不正确的尖峰信号, 这些尖峰信号称为“毛刺”。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 如果一个组合逻辑电路中有“毛刺”出现, 就说明该电路存在“冒险”。 图6.21给出了一个逻辑冒险的例子, 从图6.22的仿真波形可以看出, “A、 B、 C、 D”四个输入信号的高低电平变换不是同时发生的, 导致输出信号“OUT”出现了毛刺。 由于信号路径长度的不同, 译码器、 数值比较器以及状态计数器等器件本身容易出现冒险现象, 将这类器件直接连接到时钟输入端、 清零或置位端口的设计方法是错误的, 它可能会导致严重的后果。 第第6 6章章 FPGA

44、FPGA设计中的基本问题设计中的基本问题 图6.21 存在逻辑冒险的电路示例 ABCDINPUTINPUTVCCVCCINPUTINPUTVCCVCCOUTOUTPUT第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.22 图6.21所示电路的仿真波形 毛刺信号01000Name:ABCDOUTValue:100.0ns200.0ns300.0ns400.0ns第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 冒险往往会影响到逻辑电路的稳定性, 时钟端口、 清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错, 因此判断逻辑电路中是否存在冒险以

45、及如何避免冒险是设计人员必须要考虑的问题。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 判断一个逻辑电路在某些输入信号发生变化时是否会产生冒险, 可以从逻辑函数的卡诺图或逻辑函数表达式来进行判断。 对此问题感兴趣的读者可以参考有关脉冲与数字电路方面的书籍和文章。 在数字电路设计中, 采用格雷码计数器、 同步电路等, 可以大大减少毛刺, 但它并不能完全消除毛刺。 毛刺并不是对所有的输入都有危害, 例如D触发器的D输入端, 只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间, 就不会对系统造成危害, 因此我们可以说D触发器的D输入端对毛刺不敏感。 第第6 6章章 FPG

46、AFPGA设计中的基本问题设计中的基本问题 消除毛刺信号的方法有很多, 通常使用“采样”的方法。 一般说来, 冒险出现在信号发生电平转换的时刻, 也就是说在输出信号的建立时间内会发生冒险, 而在输出信号的保持时间内是不会有毛刺信号出现的。 如果在输出信号的保持时间内对其进行“采样”, 就可以消除毛刺信号的影响。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 有两种基本的采样方法: 一种方法是在输出信号的保持时间内, 用一定宽度的高电平脉冲与输出信号做逻辑“与”运算, 由此获取输出信号的电平值。 图6.23说明了这种方法, 采样脉冲信号从输入引脚“SAMPLE”引入。 从图6

47、.24的仿真波形上可以看出, 毛刺信号出现在“TEST”引脚上, 而“OUT”引脚上的毛刺已被消除了; 另一种方法是利用D触发器的D输入端对毛刺信号不敏感的特点, 在输出信号的保持时间内, 用触发器读取组合逻辑的输出信号。 图6.25给出了这种方法的示范电路, 图6.26是仿真波形。 第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.23 消除毛刺信号的方法之一 ABCDINPUTINPUTVCCVCCINPUTINPUTVCCVCCTESTOUTSAMPLEOUTPUTOUTPUTINPUTVCC第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.2

48、4 图6.23所示电路的仿真波形 毛刺信号采样脉冲去除毛刺后的输出信号OUTTESTSAMPLEDCBAName:Value:1011010100.0ns200.0ns300.0ns400.0ns第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 去除FPGA器件输出引脚上的毛刺, 还可以采用低通滤波的方法。 由于毛刺信号的持续时间很短, 从频谱上分析, 毛刺信号相对于有用信号来讲, 它的能量分布在一个很宽的频带上。 所以在对输出波形的边沿要求不高的情况下, 在FPGA的输出引脚上串接一个RC电路, 构成一个低通滤波器, 能够滤除毛刺信号的大部分能量, 如图6.27所示。 图中给

49、出滤波前后“A”点和“A”点处的波形, 毛刺信号经过RC低通滤波器后, 残余信号很小, 不会对后续电路带来危害。 为了避免使正常信号的波形畸变过于严重, 应仔细选择电阻和电容的参数。第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.25 消除毛刺信号方法之二 ABCDINPUTINPUTVCCVCCINPUTINPUTVCCVCCTESTOUTCLKOUTPUTOUTPUTINPUTVCCQDPRNCLRNCLK第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.26 图6.25所示电路的仿真波形 毛刺信号采样时钟去除毛刺后的输出信号Name:Valu

50、e:200.0ns400.0ns600.0ns800.0nsABCDCLKTESTOUT0010010第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 图6.27 利用RC滤波器滤除毛刺 组合逻辑输入信号AARCtAtA毛刺第第6 6章章 FPGAFPGA设计中的基本问题设计中的基本问题 6.6 清零和置位信号清零和置位信号 清零和置位信号对毛刺也是非常敏感的, 最好的清零和置位信号是从器件的输入引脚直接引入。 给数字逻辑电路设置一个主复位“CLRN”引脚是常用的好方法, 该方法是通过主复位引脚给电路中每个功能单元馈送清零或置位信号。 与全局时钟引脚类似, 几乎所有FPGA器件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁