随着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)逻辑门的一个输入是实际的时钟,而该逻辑门的所有其它输入必须是地址或控制线,它们约束时钟的建立和保持时间。当然也可以将门控时钟转换成全局时钟以改善设计项目的可靠性。 |