仿真器可以替代你的目标系统中的MCU,仿真其运行。 仿真器运行起来和实际的目标处理器一样,但是增加了其它功能,使你能够通过桌面计算机或其它调试界面来观察MCU中的程序和数据,并控制MCU的运行。随着IC和软件集成平台的飞速发展,仿真器也不断赋予新的内容和新的挑战,因为它的发展必须与CPU同步,要想在总线速度为150Mhz 64bit的情况下实现TRACE已经成为不可能。
由于[1] 仿真器属于一种高科技含量的开发工具,其实现的方式比较复杂。
1).商用CPU这是一种最简单的实现方式,直接采用最普通的商用CPU去设计仿真器。一般来说,CPU都有一些资源,如非屏蔽中断,NMI,TRAP指令,Ready信号等等。在用商用CPU去设计仿真器时,基本上都会采用这些指令式信号,以达到单步Step,全速运行Go,断点Breakpoint的功能。用商用CPU去设计仿真器,一般来说其CPU的速度不能很快,
如像8051,196等是可以采用这种方式的。若CPU的速度很快,则无法去实现。因为仿真器要在CPU的地址,数据总线上截取或插入某些资讯。CPU的速度太快,则根本无法在时序上去做截取或插入资讯的动作。用商用CPU去做仿真CPU,一般来说会碰到I/O管脚重整的困难,就像最简单的8051或83C196,其A/D总线都可复用成I/O。而仿真器是要提供所有有关CPU的资料给用户。所以,实际上CPU是以地址/数据总线的方式在运行。如用户的设计是用I/O方式的话,仿真器就一定要重新整合一套I/O线路出来。这一点是最麻烦的地方,往往有些简单的仿真器就不能做到这一点。
.2)采用特殊的仿真模式有的商用CPU会提供一些特殊的仿真模式,其CPU还是采用商用CPU。但当CPU在上电或复位时,如果在CPU的某些管脚上灌一些特殊的电平或序列,则CPU就会进入一种特殊的仿真模式,如Philips的8051CPU,就是有一种叫“Hooks”的模式。进入这种模式之后,CPU会在地址数据总线上分时地提供一些用于I/O重建的信息。有了这种特殊的仿真模式,仿真器进行I/O重建相对来说比较简单一些,但往往会存在着一些时序方面的问题。毕竟进入仿真模式之后的CPU的时序与普通CPU是有所不同的。如果用户的设计非常苛刻的话,有时会存在连不上目标板的问题,并且,这时的CPU在跑很高的时钟频率会遇到困难。
3.)使用专用仿真CPU–BondoutSilicon一般来说,当CPU的速度很快时,往往就需要专用的仿真CPU了。这时仿真器在控制方面,相对来说设计起来就比较简单。但此时仿真器的性能,已在很大程度上取决于仿真CPU了。仿真CPU设计得好,则相对来说仿真器的功能及稳定度都会比较好。但是,由于仿真CPU是一款专用的CPU,对于芯片厂商来说生产的数量非常少,往往其测试程度不会很高,专用的仿真CPU或多或少都会有些问题,就像目前国内仿真器普遍采用的W78958仿真CPU。这是Winbond为8051做的一种仿真CPU,其在中断,I/O的驱动能力等存在着问题。