ARM模拟器和Verilog模拟器的区别?

ARM模拟器和Verilog模拟器的区别?,arm,verilog,simulator,Arm,Verilog,Simulator,基本上,我想知道什么是ARM模拟器?它有点像汇编语言模拟器吗?如果是这样的话,与Verilog模拟器相比有什么区别?您的问题相当广泛/模糊。但事情是这样的 从您所要求的上下文来看,arm模拟器很可能是一个指令集模拟器。软件就像处理器一样对指令进行解码,跟踪寄存器,并模拟执行(如果指令说将1添加到r1,则软件中有一个表示r1的变量,并向其中添加一个) 一个verilog模拟器,其实并没有什么不同,只是一种不同的语言。verilog是一种硬件设计语言,在模拟它之前,您需要编译它。就像其他高级语言一样

基本上,我想知道什么是ARM模拟器?它有点像汇编语言模拟器吗?如果是这样的话,与Verilog模拟器相比有什么区别?

您的问题相当广泛/模糊。但事情是这样的

从您所要求的上下文来看,arm模拟器很可能是一个指令集模拟器。软件就像处理器一样对指令进行解码,跟踪寄存器,并模拟执行(如果指令说将1添加到r1,则软件中有一个表示r1的变量,并向其中添加一个)

一个verilog模拟器,其实并没有什么不同,只是一种不同的语言。verilog是一种硬件设计语言,在模拟它之前,您需要编译它。就像其他高级语言一样,它需要编译成与目标相关的东西。模拟器将有自己的目标逻辑块。verilog被编译成这些块,然后逻辑被模拟,这与arm模拟器没有什么不同。对于每个时钟周期,根据上一周期连接块的输出更新每个逻辑元件的输入,然后评估每个逻辑元件并确定输出。永远重复。对于每个verilog模拟器,其核心都有一个不同的目标,这也是为什么对于相同的代码,您可以从每个模拟器获得不同的结果的部分原因。同样,当您为实际目标、fpga、asic等进行编译时,它的编译方式与模拟器不同(或者可能不同,取决于环境、模拟器等)


这些仿真器没有任何魔力,指令集仿真器通常很容易编写,对于任何想充分了解指令集或计算机工作原理的人来说,这是一项很有价值的任务(从像lc-3这样的小东西开始,应该不到半小时)。一个快速的模拟器,这是另一个故事,但一个功能模拟器是相当容易编写。一旦编译成简单逻辑组件的网络列表,verilog模拟器就很容易了,但最大的任务是评估和解析代码的信号量和项目,以获得信号和逻辑函数列表,以及谁与什么相关。不像指令集模拟器那么简单,但是它是如何理解的,它的任务是什么…Vielor很酷,因为它把它变成C++代码行,很多行,一个好的项目需要花费很多时间甚至几天才能编译在一个尖叫机器上。(提示关闭波形以缩短编译时间)。但是,当你看到正在发生的事情时,这项任务是可以理解的。

我尝试过谷歌搜索,我发现的都是相同的文档,但是有没有任何链接更能说明这个ARM模拟器?有很多ARM指令集模拟器,开源的。例如,qemu,mame有一个。ARM自己的armulator可以在几个地方找到,我想是gdb和skyeye吧……ARM在infocenter.ARM.com上有很好的指令集文档。