我认为如果我可以在ARM模拟器上应用我学到的东西会更有用…编写代码然后观察结果和不同的执行阶段会更有趣……
我已经搜索过了,但我找到的只是linux上的免费软件或Windows上的演示
是否有模拟器允许我查看在Windows上运行的ARM处理器(任何版本!)的执行步骤和不同更改?
谢谢
妈妈有一两个手臂核心.视觉男孩前进有一个手臂核心. nds仿真器有arm核心.
或者你可以做我用缩略图做的事情并自己编写,我发现它比让其他人向我展示我想看的东西更容易.当然我很懒,只做拇指指令集模拟器而不是全臂模拟器.这并不困难,只是耗费时间.
编辑
好的,我的立场得到纠正.谷歌的话verilog. isc.tgz包含一个手臂的行为模型模型,它可以编译并运行icarus verilog(免费).
注释掉所有$save_store();行(就像C使用//).
添加几行代码到testarm.v(在arm10之后和初始开始之前).
初始
开始
$转储文件( “test.vcd”);
$dumpvars(0,ARM10);
结束
永远#50000 $完成;
然后
iverilog -o hello testarm.v arm10.v
vvp你好
它将运行50000单位的时间,完成SIM卡并关闭vcd文件.要使SIM卡更长或更短,请更改总是#50000线.
获取gtkwave(免费)的副本以查看vcd文件.使用gtkwave是另外一篇文章,你需要点击test_arm旁边的标志,然后点击那里的arm10,在信号下点击说addr_bus突出显示该行,然后点击追加框,点击在data_bus上,点击追加按钮,可能会添加一些寄存器,r1,r2等.有一个工具栏,你也可以使用菜单时间 – > zoom-> zoom full,这是我安装的ALT-F .然后你将学习如何放大和缩小事物.
从个人经验来看,你不会“看到你的代码”比使用hdl模拟器更好.实际上,一旦你习惯了这一点,你可能很难在硅片上运行,你几乎看不到任何东西.
我做的不仅仅是运行该行为模型中包含的测试程序.不知道你能做什么或不能做什么.
verilog $readmemh非常简单,它只是想读取十六进制行到指定的内存中.因此,您可以轻松地创建一个工具来获取编译后的arm代码并创建verilog模拟所需的ascii文件.