FPGA设计中关键问题的研究
发布时间:2008/5/28 0:00:00 访问次数:490
陕西省西安电子科技大学综合业务网国家重点实验室(710071) 李刚强 田斌 易克初 |
随着fpga(field programmable gate array)容量、功能以及可靠性的提高,其在现代数字通信系统中的应用日渐广泛。采用fpga设计数字电路已经成为数字电路系统领域的主要设计方式之一[1]。在信号的处理和整个系统的控制中,fpga不但能大大缩减电路的体积,提高电路的稳定性,而且其先进的开发工具使整个系统的设计调试周期大大缩短[2~3]。本文结合作者的经验和体会,指出fpga设计中的一些难点问题,分析问题产生的原因并给出解决方案,有利于fpga设计者少走弯路,在较短的时间内掌握fpga设计技术。 1 fpga设计流程
fpga设计大都采用自顶向下的设计流程,大体上分为设计说明书、设计输入、综合、功能仿真(前仿真)、逻辑实现、时序仿真(后仿真)、配置下载等七个步骤,设计流程如图1所示。 2 fpga设计的核心问题 2.1 时钟设计 在任何数字电路设计中,可靠的时钟是非常关键的。时钟一般可分为全局时钟、门控时钟和多级逻辑时钟等几种类型。 2.1.1 全局时钟 全局时钟或同步时钟是最简单、可靠的时钟。在fpga设计中时钟的最好解决方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计中的每一个时序器件,只要有可能就应尽量在设计项目中采用全局时钟。fpga都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。在器件中,这种全局时钟能提供最短的时钟延时(数据输入到数据到达输出的时间)。图2是全局时钟的一个实例。 2.1.2 门控时钟
在许多应用中,都采用外部的全局时钟是不实际的,通常要用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:(1)驱动时钟的逻辑必须只包含一个"与"门或"或"门;(2)逻辑门的一个输入是实际的时钟,而该逻辑门的所有其它输入必须是地址或控制线,它们约束时钟的建立和保持时间。当然也可以将门控时钟转换成全局时钟以改善设计项目的可靠性。 2.1.3 多时钟系统 许多应用要求在同一个fpga内采用多个时钟,比如两个异步微处理器之间的接口或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以引进了附加的定时约束条件,将某些异步信号同步化。在许多系统中只将异步信号同步化是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,最好的解决办法是将所有非同源时钟同步化。使用fpga内部的锁相环(pll)模块是一个很好的方法。如果不用pll,当两个时钟的频率比是整数时,同步的方法比较简单;当两个时钟的频率比不为整数时,处理方法要复杂得多。这时需要使用带使能端的d触发器,并引入一个高频时钟来实现。 2.1.4 时钟歪斜 时钟歪斜是fpga设计中最严重的问题之一。电路中控制各元件同步运行的时钟源到各元件的距离相差很大,时钟歪斜就是在系统内不同元件处检测到有效的时钟跳变沿所需的时间差异。为了保证各个元件的建立保持时间,歪斜必须足够小。若歪斜的程度大于从一边缘敏感存储器的输出到下一级输入的延迟时间,就能使移位寄存器的数据丢失,使同步计数器输出发生错误,故必须设法消除时钟歪斜。减少时钟歪斜的方法有以下几种:(1)采用适当的时钟缓冲器,或者在边缘敏感器件的输出与其馈给的任何边缘敏感器件输入端之间加入一定的延迟以减小歪斜。(2)严重的时钟歪斜往往是由于在fpga内的时钟及其它全局控制线(如复位线)使负载过重造成的,在信号线上接一串线形缓冲器,使驱动强度逐步增大,可以消除时钟歪斜。(3)在受时钟控制的部件之后分别接入缓冲器,并在两个缓冲器输出端之间接一平衡网络。(4)采用fpga内的pll模块可以对输入时钟进行很好的分频和倍频,从而使时钟歪斜减到最低程度。 2.2 毛刺信号及其消除
在组合逻辑电路中,信号要经过一系列的门电路和信号变换。由于延迟的作用使得当输入信号发生变化时,其输出信号不能同步地跟
陕西省西安电子科技大学综合业务网国家重点实验室(710071) 李刚强 田斌 易克初 | 随着fpga(field programmable gate array)容量、功能以及可靠性的提高,其在现代数字通信系统中的应用日渐广泛。采用fpga设计数字电路已经成为数字电路系统领域的主要设计方式之一[1]。在信号的处理和整个系统的控制中,fpga不但能大大缩减电路的体积,提高电路的稳定性,而且其先进的开发工具使整个系统的设计调试周期大大缩短[2~3]。本文结合作者的经验和体会,指出fpga设计中的一些难点问题,分析问题产生的原因并给出解决方案,有利于fpga设计者少走弯路,在较短的时间内掌握fpga设计技术。 1 fpga设计流程
fpga设计大都采用自顶向下的设计流程,大体上分为设计说明书、设计输入、综合、功能仿真(前仿真)、逻辑实现、时序仿真(后仿真)、配置下载等七个步骤,设计流程如图1所示。 2 fpga设计的核心问题 2.1 时钟设计 在任何数字电路设计中,可靠的时钟是非常关键的。时钟一般可分为全局时钟、门控时钟和多级逻辑时钟等几种类型。 2.1.1 全局时钟 全局时钟或同步时钟是最简单、可靠的时钟。在fpga设计中时钟的最好解决方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计中的每一个时序器件,只要有可能就应尽量在设计项目中采用全局时钟。fpga都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。在器件中,这种全局时钟能提供最短的时钟延时(数据输入到数据到达输出的时间)。图2是全局时钟的一个实例。 2.1.2 门控时钟
在许多应用中,都采用外部的全局时钟是不实际的,通常要用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:(1)驱动时钟的逻辑必须只包含一个"与"门或"或"门;(2)逻辑门的一个输入是实际的时钟,而该逻辑门的所有其它输入必须是地址或控制线,它们约束时钟的建立和保持时间。当然也可以将门控时钟转换成全局时钟以改善设计项目的可靠性。 2.1.3 多时钟系统 许多应用要求在同一个fpga内采用多个时钟,比如两个异步微处理器之间的接口或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以引进了附加的定时约束条件,将某些异步信号同步化。在许多系统中只将异步信号同步化是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,最好的解决办法是将所有非同源时钟同步化。使用fpga内部的锁相环(pll)模块是一个很好的方法。如果不用pll,当两个时钟的频率比是整数时,同步的方法比较简单;当两个时钟的频率比不为整数时,处理方法要复杂得多。这时需要使用带使能端的d触发器,并引入一个高频时钟来实现。 2.1.4 时钟歪斜 时钟歪斜是fpga设计中最严重的问题之一。电路中控制各元件同步运行的时钟源到各元件的距离相差很大,时钟歪斜就是在系统内不同元件处检测到有效的时钟跳变沿所需的时间差异。为了保证各个元件的建立保持时间,歪斜必须足够小。若歪斜的程度大于从一边缘敏感存储器的输出到下一级输入的延迟时间,就能使移位寄存器的数据丢失,使同步计数器输出发生错误,故必须设法消除时钟歪斜。减少时钟歪斜的方法有以下几种:(1)采用适当的时钟缓冲器,或者在边缘敏感器件的输出与其馈给的任何边缘敏感器件输入端之间加入一定的延迟以减小歪斜。(2)严重的时钟歪斜往往是由于在fpga内的时钟及其它全局控制线(如复位线)使负载过重造成的,在信号线上接一串线形缓冲器,使驱动强度逐步增大,可以消除时钟歪斜。(3)在受时钟控制的部件之后分别接入缓冲器,并在两个缓冲器输出端之间接一平衡网络。(4)采用fpga内的pll模块可以对输入时钟进行很好的分频和倍频,从而使时钟歪斜减到最低程度。 2.2 毛刺信号及其消除
在组合逻辑电路中,信号要经过一系列的门电路和信号变换。由于延迟的作用使得当输入信号发生变化时,其输出信号不能同步地跟
热门点击
推荐技术资料
| |