网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA 自适应软件调试和性能分析.doc

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实现

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档