FPGA/ASIC技术
提出了由于FPGA容量的攀升和配置时间的加长,采用常规设计会导致系统功能失效的观点。通过详细描述Xilinx FPGA各种配置方式及其在威廉希尔官方网站 设计中的优缺点,深入分析了FPGA上电时的配置步骤和工作时序以及各阶段I/O 管脚状态,说明了FPGA上电配置对威廉希尔官方网站 功能的严重影响,最后针对不同功能需求的FPGA外围威廉希尔官方网站 提出了有效的设计建议。
随着半导体和芯片技术的飞速发展,现在的FPGA集成了越来越多的可配置逻辑资源、各种各样的外部总线接口以及丰富的内部RAM资源,使其在国防、医疗、消费电子等领域得到了越来越广泛的应用。但是FPGA 大多数是基于SRAM工艺的,具有易失性,因此FPGA 通常使用外部存储器件(如PROM)存储必需的配置信息,防止设备掉电后FPGA丢失自我配置能力。但FPGA配置在一定的条件和时间下才能成功完成,随着FPGA容量的不断攀升,配置时间也被大大加长,上电时如不充分考虑FPGA的配置时序以及对其他器件的影响,根据常规经验设计威廉希尔官方网站 ,往往会影响系统其他外围器件的正常工作,严重时会导致整个系统的失效。因此,FPGA的配置方式和上电时序已成为系统设计的重要一环。
Xilinx FPGA支持多种配置方式,其中包括串行主模式(Master Serial)、串行从模式(Slave Serial)、并行主模式(Master SelectMAP)、并行8 位从模式(Slave Select MAP8)、并行32 位从模式(Slave Select MAP32),以及边界扫描模式(JTAG),Virtex5器件后还增加了对SPI和BPI接口Flash的支持。
现在设计中通常用到的是串行主模式和并行主模式两种配置方式,它们共同的特点是威廉希尔官方网站 硬件设计时不需再接入一个配置时钟,配置时由FPGA 自身提供时钟,这样减小了PCB设计难度以及时钟带来的时序干扰。但是它们也有各自的优缺点。并行配置的威廉希尔官方网站 设计相对复杂,需要使用到一些多功能的配置引脚,如果在复杂或高速的配置威廉希尔官方网站 中还要考虑到数据线的阻抗匹配和等长,从而加大了PCB设计难度。因此,在选择FPGA配置方式时需要根据外围器件的上电初始化时间和受FPGA配置影响程度以及威廉希尔官方网站 复杂特性等正确选择,同时也需要对必要的配置管脚做相应处理,后面会进行详细分析。表1为FPGA 重要的配置管脚和定义,可以看到,有些配置管脚在并行模式下才需要用到。
FPGA和CPLD不同,上电不能直接工作,它需要一个配置过程。Xilinx FPGA需要经过8个步骤才能运行正常的运行用户逻辑,整个流程如图1所示
3.1 FPGA上电启动
FPGA工作的第一步就是给器件加电。Xilinx要求VCCINT(核心电压)先动,然后再是VCCO(I/O电压),最坏情况是它们之间不能相差1s以上。在并行配置模式下,VCCO_2 要求参考电压必须和PROM参考电压相同,上电的过程如图2所示。其中,TPOR(Power-on-Reset)为5~30ms,T(PL)(Program Latency)为Max 4ms,T(icck)(CCLK (output delay)为Min500ns。
在系统正常上电或者PROG-B是一个低脉冲时,FPGA开始配置寄存器空间。这段时间除定义好的配置管脚外,其他I/O 管脚均被设置为高阻态(High-Z)。经多次测试,这个阶段需要30ms左右的时间。
FPGA启动阶段最后一步就是配置启动模式。在PROG-B变高时,FPGA 开始采集配置方式引脚(M3、M2、M1),并同时驱动CCLK输出。在这个阶段,有两种方法可以延迟FPGA的配置时序,一种是拉低INIT-B管脚,这是由于FPGA检测到自身还没有初始化完毕,不会进行接下来的操作步骤,直到INIT-B管脚变高。另一种就是拉低PROG-B管脚,使FPGA还处于等待配置状态。
3.2 FPGA数据加载
FPGA 正常数据加载前,需要做一个器件与PROM之间的同步检查。方法是传输一个特殊的32位数值(0xAA995566)到FPGA中,提示FPGA下面开始传输的是配置数据。这个步骤对用户来说是透明的,因为在Xilinx ISE Bitstream Generator 中生成的.bit文件中已经自动加入了这个校验码。
在做完配置前的通信同步后,FPGA 与PROM之间还无法识别相互间是个什么器件,于是Xilinx 就给每一个型号的FPGA 设计了一个唯一的器件ID号,这个ID号可以在Xilinx 配置手册中查到。如上述例子中用到的XC4VS35,其ID 号为0x02088093。FPGA需要从PROM中读出这个器件号和自身比对,如果相同就继续下面的步骤,不同的话,配置失败,并打印出配置故障信息。
所有准备工作正常完成后,FPGA 开始载入配置文件。这一步对大多数用户也是透明的,由器件自行完成。这也是配置过程中最耗时的步骤,时间从100ms到几秒不等。这个过程中,FPGA 的所有可配置I/O根据HSWAPEN管脚的设置变为弱上拉(HSWAPE=1)或者高阻态(HSWAPE=0)。这个阶段的I/O管脚还没有变为用户需要的状态,也最有可能影响到其他外围威廉希尔官方网站 的上电时序和运行。设计硬件威廉希尔官方网站 时要特别注意并采取必要措施,如加入上下拉电阻,改变器件加电顺序等来尽量避免或减少FPGA配置时对威廉希尔官方网站 其他器件的影响。
配置文件载入完成后,为了验证数据的正确性,FPGA还自动设置了CRC校验(这个在ISE配置选项中也可以去掉,但是为了确保载入数据的正确性,这个是必须选择的)。如果CRC 校验不正确,FPGA会自动把INIT-B拉低,放弃这次配置。用户必须把PROG-B引脚拉低,才能进行重新配置。
3.3 启动序列
CRC校验正确后,FPGA不会马上执行用户的逻辑,它还要进行一些自身内部威廉希尔官方网站 的配置,如DCM锁定(DCMs to Lock)、全局写信号使能(Global Write Enable)等,这些信号的启动顺序也是在ISE配置选项中设置的。必须的启动序列为:释放DONE引脚;释放GTS信号,激活IO管脚;设置全局读写使能,使能内部RAM和FIFOAssert;结束上电配置。
从上面论述可知,整个FPGA 的上电配置正常时序如图3所示。
FPGA上电配置整个过程大约需要200ms~2s,这段时间其他外围威廉希尔官方网站 器件绝大部分都已经上电并正常工作了,而FPGA 的通用I/O 管脚还处于弱上拉(HSWAPEN=0)或者不定态(HSWAPEN=1),设计时就需要考虑到这些器件上电初始化和FPGA通用I/O管脚有无时序冲突。例如:上电时,外围器件要求I/O管脚都为低电平,而FPGA默认是弱上拉,初始化电平产生了冲突;外围器件要求在上电复位后马上采集配置管脚进行初始化,而FPGA还处在配置状态,没法正确上拉或下拉I/O管脚,器件初始化错误;外围器件要求上电初始化前需要时钟锁相,FPGA配置时产生不了时钟,导致器件初始化失败等。解决这些冲突大致有3 种方法,但前提都是要正确配置HSWAPEN管脚。因为在FPGA执行“器件上电”步骤后(5~30ms时间),它输出的I/O管脚状态是可以通过HSWAPEN设定的。
方法1:在FPGA 的I/O 管脚外加上下拉电阻,阻值在1~10kΩ之间,根据实际需要确定。FPGA在上电后10ms内能通过上下拉电阻把I/O 管脚拉到用户需要的电平上,这样能解决上电较慢但是又要求固定电平的外围威廉希尔官方网站 ,如功放发射开关和保护开关等。
方法2:FPGA可以在配置完成后产生一个全局复位信号,使外围威廉希尔官方网站 硬件复位,再进行一次初始化操作。这样能解决PowrerPC、ARM这种上电初始化很快(在100ms内就能完成),而FPGA没有配置完成,导致PowrerPC 初始化错误的问题。而且这种方式不用外接多余的上下拉电阻,减少了威廉希尔官方网站 设计复杂性。
方法3:FPGA可以在配置完成后产生一个Power Good信号,系统根据此标志再给外围其他有时序要求的器件上电,这样能解决DSP或者高速AD 这种需要时钟锁定后再进行初始化的器件。
这三种方法也可根据具体情况混合使用,能达到更好的效果。
通过上述分析可知,FPGA上电是一个短暂而复杂的过程,设计时需要充分考虑FPGA上电配置时序和在这过程中I/O管脚的各种状态对外围威廉希尔官方网站 的影响。根据系统设计的具体情况,通过选用最合理的配置方式以及外围威廉希尔官方网站 连接,达到了既不影响其他器件性能和整个系统功能,同时又简化和完善了整个威廉希尔官方网站 设计的效果。
全部0条评论
快来发表一下你的评论吧 !