一、ccs的两种仿真方式:simulator和emulator两者有何区别

解释一emulator

n.[计]仿真器。通过软件方式,精确地在一种处理器上仿真另一种处理器或者硬件的运行方式。其目的是完全仿真被仿真硬件在接收到各种外界信息的时候的反应。我们现在常见的MAME、ePSXe等都是这一类。

simulator?simulation 与 emulation 的区别(转)

simulator

n.模拟器。通过某种手段,来模拟某些东西。不一定要完全正确的原理,追求的只是尽可能的相像。比如DWI、BandJAM等都属于这一类。解释二模拟(Simulation)即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。

模拟技术的高级阶段称为仿真模拟(Emulation)、系统仿真,即用一数据处理系统来全部或部分地模拟某一数据处理系统,以致于模仿的系统能想被模仿的系统一样接受同样的数据、执行同样的程序、获得同样的结果。

二、simulation 与 emulation 的区别(转)

simulation与 emulation的区别

simulator?simulation 与 emulation 的区别(转)

解释一:

模拟(Simulation)即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。模拟技术的高级阶段称为仿真模拟(Emulation)、系统仿真,即用一数据处理系统来全部或部分地模拟某一数据处理系统,以致于模仿的系统能想被模仿的系统一样接受同样的数据、执行同样的程序、获得同样的结果。

解释二:

仿真(Emulation)是试图模仿一个设备的内部设计;模拟(Simulation)是试图模仿一个设备的功能。

解释三:

Emulation:When one system performs in exactly the same way as another, though perhaps not at the same speed. A typical example would be emulation of one computer by( a program running on) another. You migh use emulation as a replacement for a system whereas you would use a simulation if you just wanted to analyse it and make predictions about it.

Simulation: Attempting to predict aspects of the behaviour of some system by creating an approximate(mathematical) model of it. This can be done by physical modelling, by writing a special-purpose computer program or using a more general simulation package, probably still aimed at a particular kind of simulation(e.g. structural engineering, fluid flow). Typical examples are aricraft flight simulators or electronic circuit simulators. A great many simulation languages exist, e.g.{Simula}

解释四:

Simulation,是指用软件去模拟某个系统的功能,并不要求实现该系统的内部细节,只要在同样的输入下,软件的输出和所模拟系统的输出一致就可以了。比如你在 PC机上用一个软件去 simulate红白机的游戏“超级玛莉”,你只要让你的软件运行出来的效果和红白机上“超级玛莉”游戏一样就可以,至于这个软件你是怎么实现则无关紧要。

Emulation,是指用软件去模拟出某个系统中各个部件的组成,真实地模拟出系统的运行机制。这就要求软件的作者需要非常了解所模拟系统的内部结构,能够利用各种数据结构实现出各个部件的模型。同样去 emulate红白机的游戏“超级玛莉”,首先就要用软件模拟出红白机中的各种硬件,如 CPU、内存、图形处理芯片、声音处理芯片以及游戏手柄等,再通过将加载游戏的 ROM来运行该游戏。现在各种游戏模拟器,如 MAME、VirtualNes都是采用 emulation的手段去实现游戏的模拟,所以它们又叫做 emulator。

模拟就是指用在某个平台上用纯软件的方法去模拟另一个平台上程序的运行,模拟包含“Simulation”和“Emulation”,通过上面对这两者的分析大家可以知道,“Simulation”是一种高层次上的模拟,类似于“黑盒”,而“Emulation”更注重于对底层的模拟,类似于“白盒”。

仿真的解释就比较多了,有的说仿真是指用机器底层的微指令来解释执行另一个平台的指令,有的说仿真是软件结合硬件来模拟另一种平台程序的运行,即“硬件仿真+软件模拟”。其实这两者是针对不同仿真对象和宿主平台而言的:前者具体的是讲系统仿真,是以大型机 CPU(现在也可以指 PC机)为仿真对象的,通常在研制 CPU的过程中,用宿主机的 CPU去仿真其软件的运行,这样可以使硬件和软件的研发过程同步,加快整体系统的研发进度;后者一般指嵌入式仿真,做过嵌入式开发的朋友都知道,开发过程中经常要用仿真器去调试程序,我们可以在 PC机上调试嵌入式系统中的某个程序,通过仿真器向嵌入式微控制器发送调试信号(如 JTAG),使微控制器执行某条指令,而 PC机上会相应地显示出该条指令执行的结果,看上去似乎是 PC在“执行”这条指令一样,这样来达到仿真的目的。但不管怎样,仿真总是与硬件相关的,这一点与模拟是有区别的。

现在还出现了“虚拟机”一词,在我看来,虚拟机更多地采用了模拟技术,而不是仿真,但是虚拟机相对于一个模拟器而言要复杂很多,像 Bochs这样的虚拟机实质上应该是一个 emulator,而像 VirtualPC、VMWare和 VirtualBox这样的虚拟机,则采用了更为复杂的技术,既有 simulation,也有 emulation,甚至还有系统仿真,所以不能单纯地将它认为是一个模拟器。

解释五

simulation是模拟出原系统的一个抽象模型,而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能,只是当某一功能执行时,通常不必输出功能执行的结果,只是在 simulator中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。

emulation则更进一步,要真正地去做所有真实系统能做的事情,只不过做的“过程”不同,它一般用于处理兼容性问题和在资源有限的条件下完成系统原型的实现。

如果把真实系统比作一个人的话,simulator就是这个人的一幅肖像画,而 emulator则是这个人的一个克隆人

举个例子,我们要实现一个 p2p文件分发系统。

最开始的时候我们可以实现一个 simulator:它用一个函数来模拟节点间的通信,这个函数的输入是网络性能(带宽,跳数…),输出是通信时延————注意,并没有真正的数据在传输和拷贝,甚至都没有真正的节点,我们只是模拟了通信时延这个“特征(feature)”。

接下来,我们把这个分发系统实现了,编译成一个 exe文件,但这时我们发现我们没有足够多的计算机来组成一个真实的、具有足够规模的网络来进一步测试(通常 p2p网络的节点数成百上千),这时,我们可以写一个 emulator:它可以区分同一个计算机上的不同进程,因此我们可以在一台计算机上开 100个进程,这样可以用 100台计算机模拟出 10000台计算机的网络————注意,此时数据真的是通过 Socket在传输,只不过有的数据走的是 loopback口,并没有真的进网卡。

解释六

simulation是用软件实现,emulation要涉及到硬件实现的部分。这个区分很简单明了,在很多情况下也是适用的(包括上面举的 p2p分发系统的例子)。但是这种说法只是对于大多数情况的一种归纳性解释,因此在某些情况下就无法区分二者了。比如,这种解释无法区分 Operating System Emulator和 Operating System Simulator————这个时候二者都不涉及硬件,这是因为真实系统(Operating System)本身就不涉及硬件。

再说说“模拟”与“仿真”。首先,即使在正式场合下(如论文标题),{模拟,仿真}和{simulation,emulation}这两个集合并不是一一映射的。你可以看到"模拟- simulation"的组合,也可以看到"仿真- simulation"的组合。显然,这个不一致现象是由于同时存在两种一一映射造成的。这个问题不是说理能解决的,还得随着使用次数越来越大,看大多数人的习惯。个人感觉,simulation翻译成“模拟”,而 emulation翻译成“仿真”的情况多一些。

最后,提一下“虚拟”这个概念。这个概念最近火的不行,英文名叫 virtualization。我还没有仔细调查它和前两个概念的细微差别,但是可以肯定的是,virtualization和 emulation比较相似,和 simulation不是一回事。其他的,以后查到再补进来吧。

解释七

维基百科上对仿真器(emulator)和模拟器(simulator)的解释如下:

仿真器(Emulator),又称仿真程序,在软件工程中指可以使计算机或者其他多媒体平台(掌上电脑,手机)能够运行其他平台上的程序,常被错误的称为模拟器。仿真器多用于电视游戏和街机,也有一些用于掌上电脑。仿真器一般需要 ROM才能执行,ROM的最初来源是一些原平台的 ROM芯片,通过一些手段将原程序拷贝下来(这个过程一般称之为“dump”)然后利用仿真器加载这些 ROM来实现仿真过程。( E6% A8% A1% E6%8B%9F% E5%99% A8)

模拟器(simulator),又称模拟程序,在计算机科学技术的软件工程中,是指完全基于主机程序并模拟了目标处理器的功能和指令系统的程序。而仿真器(emulator)具有更强大的硬件模仿功能。( E4% BB% BF% E7%9C%9F% E5%99% A8&variant=zh-cn)

直观解释这两者的区别,可以比较 Palm Os的仿真器(emulator)和模拟器(simulator)。

Palm Os的仿真器(emulator)

Palm Os仿真器(emulator)显得更真实一些,在使用中,需要载入实际 Palm上的 ROM文件,而且,从外观,界面到操作上,也逼真地再现实际 Palm。可以说,仿真器(emulator)就是一个用软件实现的 Palm PDA.

Palm Os的模拟器(simulator)的使用相对比较简单一些,也可以测试和实现 Palm上的绝大多数功能。

解释八

Simulator纯粹以软件来模拟源平台的功能和运行结果;Emulator以软件和硬件来模拟源平台的内部设计、行为和运行结果。

举例来说:

有使用硬件来模拟的,都是 Emulator。比如基于单片机的模拟。(什么是叫使用硬件模拟?比如模拟源平台的 Timer/PPU/SPU,直接使用目标平台的 Timer/PPU/SPU,那么就是硬件模拟)。

一般的,在 PC上运行的模拟器都叫 Simulator,常见的是模拟 LCD的显示画面;在嵌入平台上运行的模拟器都是 Emulator,因为在嵌入平台运行的话,为了提高效率,都会以对应的硬件模块来模拟源平台。

PC上的模拟器如果模拟其内部设计、行为,比如读取 ROM文件,精确中断、异常,OS等都是 Emulator。

解释九

Simulator都是软件,Emulator有硬有软也可以软硬结合

比如 pc上常说的 GBA、PS游戏模拟器,严格意义上讲,应该是仿真器才对!它从二进制 rom文件中取出一行行电视游戏机 CPU的机器码,识别后再仿真该游戏机 cpu的行为。即在 PC上仿真执行其他 CPU的机器码,称之为 binary level仿真,因为它是直接执行机器码。

下次你再见到什么“wm模拟器”、“iphone模拟器”,一定要对它有深入理解,知道它是否真的仿真到机器码的级别才能给出它真正的名字。因为我对他们不了解,所以我也不敢妄下结论。

总的来说,接触仿真器(emulator)的机会更多一些,我一时居然想不到有什么著名的开发用的真正的模拟器(simulator)

另外就是硬件仿真器,MDK的 debug选项下有两个选择

左上的 use simulator,指使用软件仿真。

右上的 ULINK指使用实时仿真器,即硬件仿真器。ADS下使用另外一种实时仿真器叫 ICE(In Circuit Emulator,ICE)。

经常看见这两个词,很容易混淆,按我的理解如下:

Simulator是模拟目标系统的功能和行为。Simulator和目标系统看上去是一样的。

Emulator是模拟目标系统的底层接口。目标系统直接运行于 Emulator之上。

三、gtsimulator3仿真如何使用

gtsimulator3仿真使用,选simulator要在gx simulator设置里面没法选择works2的工程文件,如果没有真实的PLC,就用电脑仿真。先运行GX Works2,要另存成GX Developer格式或者GX Developer仿真,再打开GT Designer3设计好的画面,设置好参数即可模拟仿真。

在没有触摸屏和PLC的情况下应该同时在电脑中安装PLC模拟软件GX Simulator,GX Simulator有中文版、英文版,在使用时应保持和GOT仿真软件的一致。在有PLC的情况下,采用直接连接电脑GT Simulator和PLC,可以在没有GOT时进行调试,可以连接的PLC为三菱或是欧姆龙。

gtsimulator3仿真的话是可以设置,不知道你用的是Designer2还是3,3的话,有两种办法,一直比较笨,就是把你想要设置的那个画面做成基本画面的第一个,那样启动之后自然就显示它,另外可以单独设置,设置的过程是这样的:

公共设置→GOT环境设置→画面切换/窗口把黑框里面的内容前面的勾打上,后面再设置好你想要开机显示的画面的画面编号即可。