首页 > 范文大全 > 正文

FPGA 自适应软件调试和性能分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇FPGA 自适应软件调试和性能分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

简介

采用了硬核ARM应用处理器的器件与片内fpga架构相连接,这为电子设计人员开辟了新天地,但是也带来了设计、调试和优化难题,超出了他们的专长范围。中小公司需要新的开发方法来解决软件和硬件集成问题,以能够承受的成本来优化系统级性能。本文介绍了能够解决这些难题的片内调试逻辑、FPGA工具以及软件调试和分析工具的最新创新。

嵌入式软件开发工具和FPGA分析工具

在开始深入分析混合SoCFPGA器件需求之前,最好先了解嵌入式处理器软件开发和FPGA硬件开发传统的设计方法。

基于ARM处理器的器件一般都有一个JTAG或者串行连线调试端口,用于进行软件调试。嵌入式软件调试人员可以使用硬件调试探针来连接这一端口,停止处理器的运行,读取并修改处理器、存储器以及与其AMBA总线连接的外设的状态。在开发早期阶段需要这种调试连接,包括建立电路板、启动代码、外设功能验证以及内核空间驱动开发等。

很多基于ARM处理器的器件还采用了EmbeddedTraceMacrocell(ETM)或者ProgramTraceMacrocel(PTM)。这些片内模块以非置入式方式监视处理器执行的指令,压缩信息,将其发送至片内存储器缓冲或者外部跟踪端口。当这一信息导入到调试器中后,开发人员可以实时查看在某一点处理器执行的所有指令,这有助于对复杂错误的调试:对于这些偶尔出现的错误,当工程师想要查看代码打算调试时,这些错误却消失了。

FPGA还提供跟踪功能。它们也包括JTAG端口,FPGA工具通过这些端口来配置片内逻辑分析器,在某一次触发之前、之后或者期间采集片内存储器的RTL信号。通常将这种触发配置为硬件错误状态,以RTL中几路信号的组合功能进行计算——例如,当硬件状态机进入某一级,或者当一个输入引脚变为高电平或者低电平的情况。

目前,很多市场上提供的工具能够很好的处理软件问题和FPGA问题,但是,对解决软件和硬件集成带来的问题帮助不大,当管芯中混合了处理器和FPGA时一定会出现这类问题。RTL仿真和模拟环境中的EDA工具已经解决了这些集成问题,但是,对于硅片供应商之外的其他公司而言,EDA解决方案通常很复杂,而且也很昂贵。

Altera和ARM在片内调试逻辑、FPGA工具和软件调试工具方面进行了合作,目的是建立新方法,以便在AlteraSoCFPGA新器件上进行软件开发。在本文中,我们将使用基于ARMDevelopmentStudio5(DS-5)软件工具链和AlteraSignalTap工具的实例,采用的技术虽然非常普遍,其目的是为了解释我们的解决方案。

通用调试

解决某一问题的第一步一般是确定复杂问题是否是由硬件故障或者软件问题引起的。通用调试的主要方法包括:

1.在软件中设置一个错误条件,实时分析围绕这一点的硬件状态。

2.在硬件中设置一个错误条件,实时研究软件围绕这一点所进行的工作。

3.查看软件指令和硬件RTL波形历史,将其与感兴趣的事件相关联,以便研究两者的关系。

所有这些方法都需要在硬核处理器子系统和FPGA架构之间的边界上有专用调试硬件。AlteraSoCFPGA器件含有非常全面的ARMCoreSight片内调试和跟踪逻辑,包括,交叉触发器矩阵,它连接来自所有处理器的输入和输出触发器,以及处理器子系统中的跟踪宏单元和FPGA架构中的硬件触发器。很容易采用DS-5调试器对交叉触发矩阵进行编程,配置哪些硬件模块生成触发,哪些组件会受到它们的影响。

软件开发人员通常知道出现了哪些错误,这是因为出现了置位失败,或者因为软件执行到了错误处理函数。或者,它们可以步进调试代码,直到找到导致错误的指令。一旦找到软件中的关键点之后,他们只需要使用DS-5来配置跟踪宏单元,对这一指令产生一个触发,使用SignalTap来配置FPGA,采集所产生的触发周围的RTL信号。

下一次执行软件时,当处理器到达该指令时,FPGA会实时采集这一点周围的RTL信号。开发人员一般会决定采集处理器系统总线的第一个波形,以便确定此时访问了哪一存储器映射组件。但是,一旦找到故障组件后,就可以使用相同的方法来分析其内部硬件。

相似的,当出现了某一RTL组合信号后,可以使用SignalTap来配置FPGA产生一个触发,而采用DS-5来配置交叉触发矩阵,这样,FPGA触发器停止处理器执行,或者开始采集软件指令跟踪信号。

研究软件和硬件之间的关系

交叉触发的功能虽然很强大,但是,不能满足软件和硬件集成开发人员的所有需求。其主要局限是不能将其作为研究工具:因为它要求开发人员定义错误条件,它只能用于纠正问题,而不是找到问题。

AlteraSoC实现了CoreSightSystemTraceMacrocel(STM),提供了更合适的工具来研究软件和硬件之间的关系。STM同时支持对软件和硬件的测量。当出现了感兴趣的事件时,工程师可以通过向STM“打印”字符串来测量软件。相似的,工程师可以让STM在某一段时间中监视RTL信号,测量硬件。这些硬件信号每次出现了变化或者软件每次出现了工程师感兴趣的事件时,STM会产生跟踪数据包,将其发送至DS-5调试器进行调试。

降低软件开发成本

开发工具的目的不仅仅是用于调试复杂问题,而且还提高了开发效率,通常缩短了产品面市时间。常用的标准产品特性有时候要比功能强大的特性发挥更大的用处。

大部分专业调试器中“最常用的特性”是以寄存器组来显示存储器映射SoC外设寄存器,包括其名称、比特域和描述,这与外设文档中的相一致。例如,如果您希望采用某一波特率来配置UART,您只需要找到UART外设窗口,选择其CONTROL寄存器,从列表中选中正确的波特率。软件调试器会自动将其转换为采用正确的数据值对正确存储器地址的写访问。这极大的方便了硬件功能验证和驱动开发。

当针对FPGA进行开发时,这要复杂一些。Altera等FPGA供应商通常会提供FPGA硬件库,例如,加密/解密模块、数学算法加速模块和外设控制器等。但是,需要硬件开发人员来确定将多少模块综合到FPGA中,确定它们位于处理器存储器映射的哪些位置,这意味着,软件调试人员不可能立即提供外设寄存器视图。

这一问题的解决方法要求在FPGA综合工具和软件调试器之间进行通信。特别是,AlteraQSys系统配置工具能够产生并导出外设寄存器描述文件,以完成FPGA设计,DS-5调试器能够自动导入它们,这样,随着FPGA硬件的变化,能够无缝适应其系统视图。

FPGA设计的大部分会包括由FPGA供应商提供的很多IP模块。对于定制FPGA模块,软件开发人员能够手动生成外设描述文件,但是手动编辑非常耗时,容易出错,因此,并不是标准IP模块最好的方法。

结论

采用含有ARM应用处理器和FPGA架构的新一代器件,能够以更低的成本,更迅速的实现低功耗电子产品。片内调试硬件、FPGA工具和软件调试以及分析工具创新与硬件创新相结合,开发这些器件,充分发挥其功耗特性优势与在固定SoC上开发软件一样简单高效。

关于AlteraSoC器件与DS-5的更多详细信息,可以访问http:///soc和/ds5。