AFDX-ES SoC验证平台的构建与实现
平台的构建
在芯片的FPGA原型构建过程中采用基于ARM922T-
Core Module+验证母板的模式。ARM922T Core Module板卡实现ARM922T处理器的功能,并且提供一组标准的接口;验证母板实现AFDX-ES中除了处理器之外的其他功能模块的功能及其他测试手段。
验证母板上包含了AFDX-ES逻辑单元及外围的辅助测试资源,验证母板的结构如图1所示。
3.2 基于芯片FPGA原型平台的验证程序的开发
此阶段的程序开发主要有4个方面。
(1)对于虚拟原型中使用的基本资源、基本功能及部分系统级功能验证程序,需要移植到FPGA验证平台。由于FPGA验证平台与虚拟原型的验证平台有一定的差异,包括地址空间分配等,需要把原来在虚拟原型平台上的程序做相应的移植。本部分软件支持3.3节完成芯片的基本资源、基本功能和系统级功能的验证工作。
(2)开发典型的AFDX协议验证程序。在虚拟原型验证平台上受验证速度等因素的限制,一些系统级的验证和协议验证必须在FPGA验证平台上实现。本阶段开发的软件完成3.4节AFDX协议的软硬件协同验证;
(3)嵌入式操作系统的移植与应用验证程序的开发。本阶段开发的软件完成3.5节基于芯片FPGA原型的嵌入式操作系统协同验证。
(4)开发典型应用验证程序,本阶段开发的软件可完成3.6节的典型应用验证。
3.3 基于芯片FPGA原型平台基本功能验证
基于FPGA原型的验证要对虚拟原型验证平台的所有验证项进行验证,保证虚拟平台的所有验证内容在真实环境中也是正确的[6]。首先要进行的是资源和功能的验证。在此阶段主要还是使用虚拟原型阶段开发的验证程序对于资源和功能进行验证。但是需要注意的是,由于受ARM922TCore Module的限制,虚拟原型和FPGA原型的地址空间分配等有所不同,需要根据具体情况进行相应的修改。
在此阶段,对每一个设计模块都必须进行详细的测试验证,尤其是验证在真实的硬件环境中各个模块的特性和功能是否满足要求。针对核心模块ES-CCU还需要进行大量帧收发的验证,确保在大数据量传输时该功能模块无缺陷。
3.4 基于芯片FPGA原型AFDX协议的软硬件协同验证
芯片实现了AFDX协议功能,在实际应用中必须开发相应的协议软件以满足系统要求,在设计阶段需要开发协议软件进行软硬件协同验证。主要包括驱动层软件和协议层软件。
驱动软件实现设备管理并提供用户或操作系统访问网络通道硬件设备的接口,设备驱动程序采用结构化的设计思想。遵循Linux、Windows等系统的程序设计规范,提供一个通用的与设备无关的程序结构,方便系统移植和维护。按照通用设备结构,为上层用户提供一组通用的设备管理和通信函数。驱动层软件主要包括初始化软件和接口函数。初始化软件包括上电初始化、通信协议初始化、DMA初始化配置、PCI初始化配置、协议初始化配置和中断初始化等初始化过程。
协议层软件主要实现针对协议层要求对数据进行分片、打包等转换,并对从MAC端口接收的数据进行完整性检查和余度管理,完成数据与包头的分离、校验和计算、UDP协议类型提取等操作,为片上处理器进行协议栈处理提供必要信息。
3.5 基于芯片FPGA原型的嵌入式操作系统协同验证
芯片FPGA原型的验证能够最直接和全面地验证设计的正确性和完备性,是虚拟原型验证通过之后最接近真实硬件设计的验证。虽然完成了模块级、系统级的验证程序对片上各个模块之间的互动操作进行模块级、系统级功能验证,但这种方法仍然很难保证验证的充分性。
在此情况下,往往采用基于嵌入式操作系统的系统级软件,从资源管理者的角度进行功能的充分验证。
嵌入式操作系统作为嵌入式系统的灵魂,对整个系统进行硬件资源管理、多任务协调调度、任务间同步和通信、存储管理、设备管理等。在SoC验证中,通过运行嵌入式操作系统及基于操作系统的应用程序,模拟真实的软件应用环境;通过验证平台的搭建,能够移植操作系统和各种实际应用软件,更加真实地模拟应用环境,操作系统的移植和运行能够更高效地覆盖硬件设计IP及互联的验证项,实现较高的验证覆盖率。可以在芯片的设计阶段发现操作系统是否能够对硬件资源进行管理、能否有效地进行任务管理等问题,能否对设计中各模块功能以及系统功能进行更为有效的验证,尽早地发现SoC硬件设计中的缺陷,确保设计的正确性和可靠性,为芯片的充分验证提供了有效手段。同时,为流片后的芯片测试及应用工作提供了一个良好的测试平台和应用软件的开发平台,加速SoC应用开发的进度,加速芯片推广和尽快上市。
日益复杂的应用需求,加快了嵌入式操作系统的发展。目前国内外已有几十种商业化操作系统可供选择,如VxWorks、
- 用USB连接线构建网络(12-13)
- 自动化控制系统中屏蔽接地的应用探讨(02-26)
- 利用精密模拟微控制器ADuCM360和外部热电偶构建基于USB的温度监控器(09-28)
- 在构建好XPE操作系统上增加EWF功能(08-24)
- 嵌入式Linux NFS 根文件系统的构建及研究(06-06)
- PXA255的嵌入式Linux应用平台的构建(04-12)