Xilinx FPGA的Fast Startup
的有效部分比特流。[4] 低优先级分区的实现 为了创建低优先级的部分比特流,首先,您要创建含有这两个分区(即高优先级分区和低优先级分区)的完整FPGA设计的实现。从以前的实现中导入高优先级分区,从而保证其实现方法与原来的实现方法相同。 对于Virtex-6器件而言,部分重配置(PR)流程可用于所有上述的实现。这样,就会自动得到针对低优先级分区的部分比特流。由于Spartan-6器件 系列不支持PR流程,在实现针对Spartan-6设计的Fast Startup时,我们使用了针对差异化的部分重配置的BitGen选项,以获得低优先级分区的部分比特流。[5]图3给出了该工具流程的高层概览。 图3 – Fast Startup工具流程 实验与结果 为了在硬件中验证Fast Startup配置方法,我们的研究小组在一块Virtex-6 ML605板和一块Spartan-6 SP605板上实现了这种方法。 Virtex-6实现的应用背景源自视频领域。用户接通视频系统电源时,他们总是希望立刻就看到系统有所响应,而不用等待数秒。因此,在图4所示的系统中,一个配备了TFT控制器的高优先级子系统可以迅速点亮TFT屏幕。对于其他低优先级应用,即第二个设计提供了对以太网内核、UART和硬件计时器的控制和访问。 图4 – Virtex-6和Spartan-6演示(Virtex-6包括TFT模块,Spartan-6仅包括CAN模块)的基本框图 对于这种演示来说,我们使用带BPI的外置闪存作为配置接口。一旦初始高优先级比特流配置完该处理器子系统,在BRAM外运行的软件将初始化TFT控制器,并将数据写入DDR内存中的帧缓冲器。这样就能确保启动时屏幕迅速显示在TFT上面。之后,从BPI闪存中读出第二个比特流,并配置低优先级分区,这样处理器子系统可以运行其他应用程序,如Web服务器。 为方便扩展和清晰隔离两个分区,我们使用了AXI至AXI桥接器。这也在最大程度上减少了穿过两个设计分区边界的网络。低优先级分区与高优先级分区共享系统时钟。 表1表示FPGA资源利用情况,表2表示传统启动方法、仅有高优先级分区压缩比特流的启动方法[6]和Fast Startup配置方法的配置时间。每种方法都使用BPIx16配置接口,而采用的配置速率(这个选项决定了目标配置时钟频率)为2 MHz和10 MHz。我们使用一台示波器测量了该数据,捕获了FPGA的“init”和“done”信号。 表2中“压缩的”一栏表示仅有高优先级分区的压缩比特流。含有两个分区的完整FPGA设计的压缩比特流将达到3.1 Mbyte。 表2 – 测得的配置时间(Virtex-6视频设计) SPARTAN-6汽车ECU设计 为了验证针对Spartan-6的Fast Startup方法,我们选择了汽车领域的ECU应用情形。每当您在汽车电子控制单元中看到一个FPGA器件时,它一般都仅由ECU的主应用处理单元使用(见图5)。我们的目标是实现一种将系统处理器放入FPGA中的设计。这样我们就能避免对外置处理器的需要,从而降低整个系统的成本、复杂性、空间和功耗。 图5 – 现代汽车ECU中的FPGA应用,FPGA中集成了处理器(虚线) 系统分区 对于这种情形,系统分区是显而易见的。我们把我们ECU设计分成作为高优先级分区的系统处理器部分和作为低优先级分区的应用处理部分。 这种设计与Virtex-6设计存在很多相似之处,但不同的是,我们用SPI取代BPI作为外置闪存的接口,因此必须用CAN控制器取代TFT控制器。上电后,系统控制器只有有限的时间引导并准备好处理第一个通信数据。由于ECU使用CAN总线用于通信,这个引导时间一般限制为100毫秒。按照传统配置方法,使用带低成本配置接口(如SPI或Quad-SPI)的大型Spartan-6很难达到如此严格的时序要求。而使用速度更快、更加昂贵的配置接口在汽车领域中是无法接受的。 测量装置 对于SP605汽车ECU演示来说,我们在实验室中进行了测量,图6给出了测量装置。图中左侧是一个基于Spartan-3的X1500汽车平台,它实现了针对CAN总线的网络发包器,该发生器能够收发CAN消息并使用硬件计时器测量CAN消息之间的时间。右侧为目标平台,它没有直接与CAN总线相连,而是使用来自额外的定制电路板的CAN收发器。除了提供一个CAN PHY之外,这个定制电路板还要控制目标电路板的电源。 图6 – 汽车ECU的测量装置 测量配置时间的程序从网络发包器处于空转(空档)状态下开始,此时CAN PHY电路板上的CAN收发器也处于睡眠模式,SP605也与电源断开。接着,网络发包器启动一个硬件计时器并发送一条CAN消息。识别CAN总线上的事件后,CAN PHY被唤醒并重新让SP605接通电源。然后FPGA开始载入来自SPI闪存的初始比特流。 由于没有接收器确
- 可扩展的嵌入式网络平台(07-07)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- 如何快速启动嵌入式系统开发(01-06)
- 利用XPS工具快速生成Virtex FPGA的板级支持包(03-18)
- 设计可靠性: MTBF—这只是开始!(09-17)
- 将SoC平台设计与DSP系统生成器相集成(07-01)