2013-05-29 121 views

回答

3

你的问题相当宽泛/模糊。但是在这里。

从你所问的背景来看,手臂模拟器可能是一个指令集模拟器。就像处理器一样,软件解码指令,跟踪寄存器并模拟执行(如果一条指令说r1加1,那么你的软件中有一个代表r1的变量,并且你加了一个r1)。

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

这些模拟器对于任何这些模拟器都没有什么神奇的地方,一个指令集模拟器通常很容易编写,对于想要获得对指令集或计算机工作方式的深入了解的任何人来说,这是一项有价值的任务(从某件事开始小如lc-3,应该少于半小时)。一个FAST模拟器,这是另一个故事,但是一个FUNCTIONAL模拟器相当容易编写。一旦编译到简单逻辑组件的网表,一个verilog模拟器也是很容易的,但最大的任务是评估和解析代码以获取信号和逻辑功能列表的信号和项目的数量,以及谁与什么。不像指令集模拟器那么简单,但它的工作原理和工作原理是非常容易理解的...... Verilator非常酷,因为它将它变成C++代码行,很多行,而且大小合适的项目可能需要几个小时甚至在尖叫的机器上进行编译。 (提示关闭波形以缩短编译时间)。但是当你看到正在发生的事情时,这个任务是可以理解的。

+0

我尝试了谷歌搜索,我发现的所有文档都是相同的,但是有没有更多关于此ARM模拟器的链接? – chitranna

+0

有没有“一个”手臂模拟器,有很多。 –

+0

我的意思是其中的任何一个详细阅读 – chitranna