基本上,我想知道ARM模拟器是什么?它是不是有点像汇编语言模拟器?如果是这样,与Verilog模拟器相比有什么不同?
发布于 2013-05-29 11:00:55
你的问题相当宽泛[含糊]。但这是开始了。
从您所问的上下文来看,arm模拟器很可能是一个指令集模拟器。软件就像处理器一样解码指令,跟踪寄存器,并模拟执行(如果一条指令说将1加到r1中,那么在软件中有一个表示r1的变量,然后将其加1)。
一个verilog模拟器,实际上并没有什么不同,只是一种不同的语言。verilog是一种硬件设计语言,在你模拟它之前,你需要编译它。就像任何其他高级语言一样,它需要被编译成与目标相关的东西。模拟器将有自己的目标逻辑块。verilog被编译成这些块,然后模拟该逻辑,这与arm模拟器没有什么不同。对于每个时钟周期,您可以根据前一个周期的连接块的输出更新每个逻辑元素的输入,然后评估每个逻辑元素并确定输出。永远重复。对于每个verilog模拟器,其核心都有一个不同的目标,这就是为什么对于相同的代码,您(可以)从每个模拟器获得不同的结果。同样,当您针对实际目标、fpga、asic等进行编译时,它的编译方式与模拟器不同(也可以根据环境、模拟器等而定)。
这些模拟器中的任何一个都没有任何魔力,指令集模拟器通常很容易编写,对于任何想要很好地掌握指令集或计算机如何工作的人来说,这是一个有价值的任务(从像lc-3这样的小东西开始,应该不到半个小时)。快速模拟器,这是另一回事,但功能模拟器很容易编写。一旦编译成简单逻辑组件的网表,verilog模拟器也很容易,不过最大的任务是评估和解析代码的数量,以获得信号和逻辑函数的列表,以及谁与什么绑定。不像指令集模拟器那么简单,但它的工作原理和任务是很容易理解的,因为它把它变成几行C++代码,很多行,即使在尖叫的机器上编译一个大的项目也需要几个小时到几天的时间。(提示关闭波形以减少编译时间)。但是,当你看到正在发生的事情时,这项任务是可以理解的。
https://stackoverflow.com/questions/16803872
复制相似问题