EDN China > 技术文章 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) Xilinx FPGA的Fast Startup

2011年11月17日 ?? 收藏0

实验与结果

为了在硬件中验证Fast Startup配置方法,我们的研究小组在一块Virtex-6 ML605板和一块Spartan-6 SP605板上实现了这种方法。

Virtex-6实现的应用背景源自视频领域。用户接通视频系统电源时,他们总是希望立刻就看到系统有所响应,而不用等待数秒。因此,在图4所示的系统中,一个配备了TFT控制器的高优先级子系统可以迅速点亮TFT屏幕。对于其他低优先级应用,即第二个设计提供了对以太网内核、UART和硬件计时器的控制和访问。

Virtex-6和Spartan-6演示的基本框图
图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。

FPGA资源利用情况

仅有高优先级分区的压缩比特流

SPARTAN-6汽车ECU设计

为了验证针对Spartan-6的Fast Startup方法,我们选择了汽车领域的ECU应用情形。每当您在汽车电子控制单元中看到一个FPGA器件时,它一般都仅由ECU的主应用处理单元使用(见图5)。我们的目标是实现一种将系统处理器放入FPGA中的设计。这样我们就能避免对外置处理器的需要,从而降低整个系统的成本、复杂性、空间和功耗。

现代汽车ECU中的FPGA应用,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之外,这个定制电路板还要控制目标电路板的电源。

汽车ECU的测量装置
图6 – 汽车ECU的测量装置

测量配置时间的程序从网络发包器处于空转(空档)状态下开始,此时CAN PHY电路板上的CAN收发器也处于睡眠模式,SP605也与电源断开。接着,网络发包器启动一个硬件计时器并发送一条CAN消息。识别CAN总线上的事件后,CAN PHY被唤醒并重新让SP605接通电源。然后FPGA开始载入来自SPI闪存的初始比特流。

由于没有接收器确认由网络发包器发送的消息,这条消息立刻重复发送,直至FPGA已经完成其配置并用有效的波特率配置了CAN内核。一旦 Spartan-6设计的CAN内核确认了这条消息,网络发包器的CAN内核将触发一个中断,由这个中断停止硬件计时器。该计时器现在保存着SP605设计的引导时间。测量结果包括SP605设计内一个额外的硬件计时器,此结果表明,当执行该软件来配置内置BRAM内存的CAN内核时,软件启动时间可以忽略不计。

表3表示每个分区的FPGA资源消耗。百分比信息是用来表示使用的XC6S45LXT器件的有效资源的总数量。

每个分区的FPGA资源消耗

表4表示配置时间的测量结果。对于这些结果,我们实现并比较了完整设计的一个标准比特流和一个压缩比特流以及使用部分初始比特流的Fast Startup方法。该表列出了针对不同SPI总线带宽和不同配置速率(CR)设置的配置时间。不出所料,配置时间与比特流大小成正比。由于使用快速配置,时钟没有影响清仓过程(housecleaning process),高CR设置的比率(按百分比)发生了变化。

配置时间的测量结果

在硬件中验证

我们开发的高级配置方法可以称为优先化的FPGA启动,因为它分两步配置器件。这种方法不仅对于解决现代FPGA中配置时间不断增加的挑战是必不可少,而且也能在很多现代应用中得到使用,如PCI Express或基于CAN的汽车系统。

除了提出高优先级初始配置方法,我们还在硬件中对这种方法进行了验证。我们使用并测试了针对Fast Startup的工具流程和方法,以在Spartan-6评估板(SP605)上实现基于CAN的汽车ECU,以及在Virtex-6原型板上实现视频设计。通过使用这种新颖的方法,我们减小了初始比特流大小,从而使配置时间改进了84%(与标准完整配置方案相比)。

Xilinx将在针对7系列FPGA的软件中支持针对 PCI Express应用的Fast Startup概念,并通过优化的实现方法简化其使用。在7系列中,新的两步比特流方法是实现起来最简单最低成本的方法。设计FPGA时,用户可以通过一个简单的软件开关实现两级比特流。该比特流的第一级仅包含配置时序关键模块需要的配置帧。配置时,会产生一个FPGA STARTUP序列,关键模块变成活动模块,这样就可轻易满足100毫秒时序要求。当时序关键模块运行时(例如PCI Express枚举/配置系统过程正在进行),剩下的FPGA配置得以加载。两级比特流方法能够使用便宜的闪存器件存储比特流。

参考资料

[1]PCI Express底层规范(PCI Express Base Specification),版本1.1,PCI-SIG,2005年3月

[2]M. Huebner, J. Meyer, O. Sander, L.Braun, J. Becker, J. Noguera和R.Stewart, “基于部分及动态重配置的快速顺序FPGA启动”( PCI Express Base Specification),IEEE计算机学会VLSI年度研讨会(ISVLSI),2010年7月

[3]层次设计方法指南,UG748, v12.1, Xilinx,2010年5月

[4]B. Sellers, J. Heiner, M. Wirthlin和J. Kalb, “通过帧摘除和部分重配置压缩比特流”( Bitstream compression through frame removal and partial reconfigura- tion),现场可编程逻辑(和应用国际大会FPL),2009年9月

[5]J. Meyer, J. Noguera, M. Huebner, L. Braun, O. Sander, R. Mateos Gil, R. Stewart, J. Becker, “利用动态部分重配置快速启动Spartan-6 FPGA”( Fast Startup for Spartan-6 FPGAs using dynamic partial reconfiguration),欧洲设计、自动化与测试研讨会(DATE ‘11),2011年

[6]“通过部分重配置快速配置PCI Express技术”( Fast Configuration of PCI Express Technology through Partial Reconfiguration),XAPP883, v1.0, Xilinx, 2010年11月,http://www.xilinx.com/ support/documentation/application_notes/xapp883_Fast_Config_PCIe.pdf.


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? CAN总线? 汽车?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈