Xcell出版物
  杂志
    嵌入式杂志
   
  给Xcell投稿
  在Xcell杂志做广告
  免费订阅
   
  联系我们

    

主页 : Xcell出版物 : 杂志 : 嵌入式杂志 : 文章
使用逻辑分析仪跟踪MicroBlaze处理器



作者:Joel Woodward,Agilent Technoligies公司产品经理
joel_woodward@agilent.com (9/1/05)


Agilent的MicroBlaze跟踪核和逆汇编程序简化了任务的完成
文章的英文版PDF链接
文章英文版PDF 270 KB


逻辑分析仪为捕捉软件踪迹提供深度跟踪和复杂的触发。 在跟踪导致毁损的事件、评价软件和硬件的相互作用或者分析软件性能时,逻辑分析仪进行的这些测量是至关重要的。

不过,由于微处理器技术的发展(如高速缓冲存储器应用的增长),在独立微处理器管脚上捕捉的信息不太恰当。 这使得嵌入式系统的调试越来越困难。 幸好,出现了一种新的、用于Xinlinx® FPGA的逻辑分析创新方法,使您可以快速进行MicroBlazeTM软核处理器测量。

利用逻辑分析仪跟踪软件执行从二十世纪八十年代开始,设计队伍大量使用逻辑分析仪调试嵌入式系统,设计形式是个人计算机板连接器,并具有一个专门的电路用于跟踪处理器。 对32位处理器,一般包括102-136个信号,包括数据、地址和状态信号。

逻辑分析仪还需要处理器地址、状态和数据信号的特定排列,以便在您的目标系统上进行上述排列。 每个处理器有一个相关的逻辑分析配置文件和逆汇编程序,与特定的个人计算机板一起工作。 逆汇编程序软件把需要的1和0变换为指令助记符。

在20世纪90年代末,32位嵌入式处理器开始配备某些新技术,使得逻辑分析跟踪测量更难以进行。 缩小用于调试的硬件的尺寸,包含用于跟踪的连接器变得更加困难。 即使设计队伍设计了用于跟踪测量的连接器,如果处理器在高速缓冲存储器外执行的话,就没有相关信号传送到逻辑分析仪监视的管脚上了。 关闭高速缓冲存储器,会使系统在降低的速率下运行,并可能掩盖真实系统速度下才会发生的问题。 另外,流水线和无序执行使得逻辑分析供应商更难于弄清总线上的信息。

最近,Agilent和Xilinx合作,为MicroBlaze处理器开发出一种逻辑分析跟踪解决方案,克服了使用逻辑分析仪跟踪软件执行时遇到的传统难题。

MicroBlaze逆汇编
对个人计算机板,设计队伍至少将MicroBlaze程序计数器信号(PC_Ex)和有效周期信号(Valid_Instr)发送到管脚,以此实现了逆汇编程序。 将这些信号发送到特定的布局,通过Mictor、Samtec或软接触探针,可以实现与逻辑分析仪的快速连接。 使用单独的探头钩,您也可以使用带缆探头,将这些信号与逻辑分析仪连接。

由于具有可编程特性,可以在开发周期的后期,跟踪使用MicroBlaze处理器的FPGA。 只要保留了足够的调试管脚,您就可以将需要的MicroBlaze信号发送到特定的管脚,而无需改变个人计算机板。

用于MicroBlaze处理器的Agilent逆汇编程序,通过捕捉每个执行过的指令的地址并在OMF (目标模块格式)文件中查找相关的opcode,重新组织程序流程。 然后,它将opcode解码为MicroBlaze助记符,如图1所示。

由于用于调试的管脚通常是不够的,逆汇编程序具有一种能力,可以降低需要的管脚数。 虽然存在32 PC_Ex信号,但通常捕捉一个逻辑分析轨迹需要的外部信号数目更少。 使用两种不同的技术,实现数目的降低。

首先,您不需要跟踪高地址位。 对于任何给定的设计,某些高地址位是静态的。 您可以削减更多的管脚;在程序计数器中,每个静态高地址位可以额外再削减一个管脚。

其次,您也不需要跟踪较低的两个地址位。 所有的指令在4字节边界上开始。 使用这些技术,跟踪一个1MB程序的软件执行,仅需要18个管脚。 同时捕捉数据需要附加的管脚。

激活高速缓冲存储器并使用源相关进行跟踪
对于激活高速缓冲存储器的独立处理器而言,逻辑分析跟踪就变得不可行了。 幸好,对嵌入到FPGA中的处理器而言,情况不是这样。 即使在激活高速缓冲存储器时,一个逻辑分析仪也可以跟踪MicroBlaze处理器。 捕捉的信号从MicroBlaze流水线的执行阶段开始发送。

Agilent具有一个标准配置的源相关窗口。 通过阅读一个符号文件(.elf格式),逻辑分析仪可以将捕捉的地址和与那个地址相关的高级软件相联系。 Opcode可以在.elf目标文件的文本部分找到。 在您一步一步运行汇编指令时,源代码中这个指令的相应行也被突出出来。 您可以交替地从高级源代码步进,同时逻辑分析仪在较低的窗口中显示相关的指令助记符。 仅需要在源代码中进行右击操作,为下一个采集设置逻辑分析触发(跟踪的指标),如图1所示。

MicroBlaze跟踪核(MTC)
一个可选择的MicroBlaze跟踪核或MTC,减少了使用逻辑分析仪跟踪MicroBlaze处理器所需要的时间和管脚数目(如图2所示)。 MTC核,由Agilent和Xilinx联合开发,仅能和包括嵌入式开发套件的Xilinx Platform Studio一起使用。 设计队伍可以将一个MTC用图形化的方式加入他们的设计中。 核参数包括使用时分多工(TDM)、管脚定位和I/O标准的管脚压缩。

MTC核心提供4种关键性能:

  1. MTC核将需要的MicroBlaze信号与管脚连接(预综合)。
  2. 核包括TDM,可以将需要的管脚数目降低一半。 两个MicroBlaze信号,通过TDM送到一个管脚上,在时钟的上升沿信号1的数据有效,在时钟的下降沿信号2的数据有效。 逻辑分析仪中的多路分解时钟模式将信息解压缩,并将它分为两个独立的逻辑分析通道。
  3. MTC核包括将初始设置时间从小时级降低到秒级的技术,并消除了个人计算机板布局过程中可能发生的手动错误。 对MicroBlaze处理器的跟踪可以在产品开发的后期进行,这是因为使用MTC核时,不需要根据Mictor、 Samtec或软接触探针的特定MicroBlaze信号类型,在个人计算机板上进行布局。 通过JTAG,逻辑分析仪向MTC核发送一个自动设置信息。 核在特定的MTC管脚上输出一个训练模式。 逻辑分析仪在其通道中寻找这个训练模式,找到哪个通道与MTC管脚连接。 通过与MTC核的通信,逻辑分析仪知道每个MTC核输入是如何从核发送到管脚的。 使用这个相关性,现在,逻辑分析仪有足够的信息,可以决定如何设置特定微处理器信号和逻辑分析仪输入通道之间的物理连接。 每个MTC输出管脚按顺序重复这个过程。
  4. 4. 最后,完全由触发器和LUT组成的MTC核心,使用多级流水线(通常是4级),插入核时,可以将对器件定时的影响降至最小(如图3所示)。 MTC核很小。 Xilinx XC2V3000器件中的MTC核大约占用1%的LUT和触发器。
结论
FPGA实现了快速、准确的处理器执行跟踪,单独的处理器是不具备这个功能的。 Agilent的用于MicroBlaze软处理器核的逆汇编程序,为您提供了跟踪软件执行的有效工具。 Agilent的逻辑分析仪,具有精确的时间分辨率,可以将MicroBlaze的执行信息与其它需要的软件或硬件事件同时关联。 这样,您就可以快速分离出与硬件和软件相互作用有关的问题。

Agilent的免版费MTC核,作为Xilinx嵌入式开发套件的组成部分发售(从8.1i开始),缩短了测量的设置时间,不需要专门的个人计算机板。 了解更多信息,请访问www.agilent.com/find/microblaze。

带图形的、可打印PDF英文版文章。 PDF标识 (9/1/05) 270 KB

 
职位招聘 本地活动及在线座谈 本地新闻稿 投资者关系 反馈 法律声明 网站地图
© 1994-2008 Xilinx, Inc. All Rights Reserved.