仿真器仿真器的基本实现方式由于 仿真器属于一种高科技含量的开发工具,其实现的方式比较复杂
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的驱动能力等存在着问题
4).利用BDM,JTAG方式当CPU越来越复杂,速度越变越快时,以上方式都已不能满足要求了
像PowerPC或Pentium,其内部有MMU,Cache,并且可乱序执行,以往传统的总线方式都不可行了
JTAG的提出,最初是给测试用的,主要目的是为了测试器件是否焊好,是否存在短路或断路
后来,一些CPU的厂商把这一概念引进到了用于CPU内部
把JTAG的移位寄存器全部连到CPU内部的控制状态寄存器,并增加一些仿真器专用的寄存器,如控制Memory的读写等
这时,仿真器在硬件上面已变得很简单了,用户设计目标板时,只要把几个控制管脚电平设计正确,就可以实现在线实时控制
目前,32位元以上的CPU普遍支持这种调试方式
5.ROM-Monitor绝大多数CPU厂商在新推出他的新一代CPU的同时,会相应的推出他的参考设计原型,这就是大家所熟知的ADS开发板,配上第三方的集成开发环境,就可以实现对相应CPU的软件开发,这就是ROM-Monitor仿真器的实现构成
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。