IC代烧网


首页 -- IC代烧-- IC编程器-- 适配器座子-- 仿真器-- 相关知识解答 --关于我们
 
IC代烧网 >> 适配器座子 >> 当前位置

仿真器实时跟踪(Trace)功能的剖析与应用

Trace(跟踪)是仿真技术中最为重要的一部分功能,也是最能体现仿真技术层次的一
组功能。国际上几乎所有的微处理器开发系统都含有此部分功能,没有此部分功能的廉价仿
真器几乎已没有市场。在国内,含有此功能的仿真器相对来说还比较少。究其原因,一方面
是技术上实现还有困难;其次,国内大多数用户对Trace 在仿真时的作用还不甚了解。本文
就对仿真器的这种实时跟踪(Trace)功能及作用作一些较深入的剖析。
一. 什么是Trace 功能?
Trace 功能,中文解释即连续记录程序执行过程的功能,英文解释即“A history of what
happened”。这里要强调的是“连续”两字。一般来说,采集频率通常采用两种方式,即机
器周期(cycle)方式和时钟周期(clock)方式。时钟周期方式要求的技术更高,也有它存
在的必要性,尤其在高档CPU 上。机器周期方式,是连续记录每一个机器周期的变化,而
且应该是零等待地实现,即该指令在用户目标总线上实际执行的时候,它也被同时记录到仿
真器的一块缓冲区中,一般称为“Trace Buffer”。时钟周期方式,是连续记录每一个时钟周
期的变化。为什么有些仿真器需要采用时钟周期方式呢?因为在386 以上的CPU 中,CPU
内部含有Cache,出现在总线上的指令数据不一定会真正地执行。为了真实再现执行过程,
必须采用更加细密的采集频率才能得到指令在用户目标总线上实际执行过程。另外,是否能
实现零等待也是仿真器非常关键的地方,主要取决于仿真器中的Trace 逻辑电路的设计和采
用的Trace RAM 有多快。而实现零等待(real-time)Trace 的意义在于用户可完全信赖Trace
提供的各种信息以及信息和时间的对应关系,这对于用户关心一段程序执行花了多少时间的
时候就特别有用。说到这里,用户可能会问Trace 到底提供了哪些信息?
二. Trace 功能可提供的信息
先举一个按机器周期采样的例子,如 8051 系列CPU,一般用户会在仿真器Trace 显示
窗口中看到如下一些信息:地址(16-bit),数据(8-bit),总线状态(3-bit),外部被跟踪信
号(5~8 个通道),I/O 口数据传送情况(8-bit),可能还会包含时间信息(每一个cycle 的)。
所有以上这些信息在每一个机器周期组成了一个信息单位,一般称为“帧”(Frame),也就
是Trace Buffer 的宽度,而Trace Buffer 的深度即表示用户可检索多少个机器周期。一般为
几到几十K 不等。
三. Trace 功能的用途
Trace 功能的意义在于把简单的逻辑调试器上升到逻辑、时序都能调试的实时在线仿真
器。由于Trace 能告诉我们一段程序执行的连续过程,故在适当地址设置一个断点后,就可
以看到当前状态是怎样形成的。如果配合双CPU 结构的仿真器,用户可清晰看到仿真CPU
死机的全过程;配合执行时间显示,我们可看到一个中断服务程序是否在指定时间内完成;
配合事件中各种条件的设置,我们既可以得到所有I/O 口读写的纪录(此时设事件与R/W
总线状态有关),也可得到几个多重中断响应的全过程。更有甚者,我们可以指定在总线上
出现某几个高离散地址中的一个时即停止仿真,或是在总线上出现某种数据时即停止仿真,
所有这一切的实现,仅仅是指定这些事件的条件即可。
返回顶部


2013-2015 IC代烧网 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市星光芯电子有限公司 版权所有
深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面)
联系人:周工  手机:13713820066


站点地图

粤ICP备12084176号