电信行业要求具有很高的服务可用性-正如你一拿起电话就希望听到拨号音一样。随着宽带服务提供商争相进入音频和视频领域(伴随所谓的"三重播放"的展开),用户期望他们可以在这些领域实现同样的高可用性。
高可用性只能通过为构成系统的硬件提供冗余性来实现。然而,为了有效管理这种冗余,系统必须能够监控自己的运行状态,如果发生故障,系统必须在用户觉察到任何故障停机之前切换到备用硬件。对物理环境的密切监控,让运营商可以在发生任何部件故障时采取积极行动。这涉及到监控机架内部的物理环境,利用各种传感器来记录相关变量,比如温度、电源电压、湿度和冷却性能等。
FPGA是高可用性基础设施中的重要构建模块。因此,应该密切监控系统内FPGA的片上环境及其周围环境。Xilinx Virtex-5系统监控器可以更加轻松地监控FPGA及其外部环境。
Virtex-5系统监控器
Virtex-5系统监控器能够让用户轻松获得FPGA片上(晶片)温度和电源条件方面的信息。它还可以通过外部模拟输入通道获取外部传感器信息(最多可以监控17个外部传感器)。获取上述信息需要很少的设计努力,甚至不需要,具体取决于所需的功能。常见的功能,比如报警、自动通道定序器和数据平均,都可以从系统监控器模块中得到,这样设计人员就能够轻而易举地开发出一个解决方案。
图1给出了Virtex-5系统监控器的结构图。该监控器的核心是一个10位(每秒200,000个采样)模数转换器(ADC)。ADC的模拟输入范围是0~1V。在10比特的分辨率下,该ADC能够处理的输入电压精度大约为1mV。
如图1所示,片上传感器和外部模拟输入通道都通过模拟多路复用器与ADC输入端相连。因此,从不同传感器获得的电压必须由ADC转化成数字量。测量结果被写入状态寄存器,并能够利用FPGA架构或者通过FPGA和PCB的JTAG基础设施从外部轻松读取上述状态寄存器中的数据。利用同样的接口也可以对监控器的控制寄存器进行读写操作。控制寄存器对系统监控器的操作(例如,针对测试、编程报警极限和传感器平均的要求选择合适的传感器通道)进行配置。加电后不久系统监控器就完全进入工作状态,而且在不配置FPGA的条件下就能够进行正确的操作。默认情况下,加电后只会监控片上传感器;但也可以启用外部模拟输入。配置前只能通过JTAG测试访问端口(TAP)获取测量信息。
1. 用户报警
系统监控器的实用内置特性之一是,它能为片上传感器生成报警信号。设计师能够设定上述报警信号的阈值。系统监控器可以自主监控这些传感器,并且只有在检测到报警状态时才会对系统发出报警。
系统监控器还含有一个工厂设置的报警状态,被称为过热报警(OT)。一旦启用该功能,如果检测到晶片温度高于125℃,系统监控器就会请求关闭整个芯片。当晶片冷却到设定的温度水平时,才给晶片加电。在芯片掉电期间,系统监控器会继续操作片上传感器,并且对其进行监控。
默认情况下不会启用OT功能,如果需要,必须明确启用此功能方可生效。
2. 对“检验器”进行检验
为了让Virtex-5系统监控器提供精确而又可靠的环境信息,需要对测量数据和系统监控器操作进行可靠性检查。系统监控器拥有大量有助于保证操作可靠性的功能。ADC的内置自动校准功能和传感器可以纠正模拟测量系统中由工作环境造成的任何漂移。自检功能还能让系统主机对系统监控器的运行状态进行监控。
利用系统监控器JTAG访问功能
Virtex-5系统监控器还具备一个新功能,即通过JTAG TAP访问模块的所有功能。通过实现模拟测试和访问模拟信息,您能够利用系统中现有的JTAG获得更大的价值和效率。在配置FPGA(该FPGA作为实际生产中PCB测试方案的一部分)之前或正常操作的过程中,可以访问这些功能,从而简化了调试。
为了简化PCB的电源电压和电流之类的片外测量,您可以在配置FPGA之前使用特殊的JTAG命令来为外部模拟输入创造条件。即使配置完FPGA,系统监控器也不需要在设计中进行明确例示,因此可以通过JTAG TAP访问那些用于实现调试功能的特性,即使是在设计后期。为了确保系统监控器的可用性,唯一的要求在于,必须提供正确的PCB支持。这涉及与系统监控器用户指南中描述的外部2.5V参考IC进行连接的问题。
图2显示了一个典型诊断应用,在正常操作时对FPGA的物理运行环境进行监控。在图2的例子中,系统监控器用于观察大电流需求期间(从t0时刻开始)功率分配系统(PDS)中的电压(IR)降。在上述高活动期间,我们还监控了FPGA的温度。能够在开发阶段迅速确定电源或PCB设计的潜在问题。JTAG访问功能还提供了一个简便的方法,能够确认特定设计是否配有适当的冷却系统。ChipScope Pro分析器可以轻松访问系统监控器;而且,这种访问功能还能够轻松地集成到其它JTAG测试和编程环境中。
系统集成
除了能够利用JTAG TAP轻松访问系统监控器之外,还可以通过FPGA架构访问系统监控器的控制和状态寄存器。利用FPGA架构可以在任何时刻对这些寄存器进行配置和读取。允许通过JTAG TAP控制器和架构接口对系统监控器的寄存器进行双重访问,并提供了相应的仲裁方案来管理可能出现的争用现象。
在设计中例示系统监控器,并在FPGA配置过程中对其初始化时,还能够定义这些寄存器的内容。因此,可以对系统监控器进行配置使其以用户自定义的运行(后配置)模式启动。架构接口就是我们所熟知的动态重配置端口(DRP)。DRP是一个并行的16位同步数据端口(类似于block RAM)。
对于需要对系统监控器进行更多控制的高级应用(此时)而言,DRP能够让系统监控器轻松地映射到硬/软微处理器的外设地址空间中。图3显示了一个典型系统管理应用,这里MICroBlaze处理器运行一个类似于协议的智能平台管理接口(IPMI),并且通过管理通道(如以太网,甚至是简单的UART/调制解调器)与系统主机进行通信。
系统监控器还以通用ADC的形式提供了一个重要的微处理器外设。这是业界首次将微控制器中常见的模拟外设集成到FPGA中。此外,该系统还可以完全控制ADC操作。ADC提供了大量采样模式,并且支持单极、双极和全差分模拟输入方案。
本文小结
Virtex-5系统监控器为一般的片上和外部环境监控需求提供了一个大大简化了的解决方案。其功能访问需要极少的开发和设计工作。通过将系统监控器和JTAG TAP控制器连接在一起,JTAG功能已经延伸到新的应用领域,从而实现了新的测试能力。我们非常希望收到您对本文所提到的任何专题的意见和反馈信息,特别是我们的开发队伍如何更好地为您的系统监控和测试需求提供支持。