
Reverse engineering the ARM1, ancestor of the iPhone's processor (2015) - mariuz
http://www.righto.com/2015/12/reverse-engineering-arm1-ancestor-of.html
======
jchw
It feels weird to see the ARM1 described as an 'ancestor of the iPhone's
processor.' Of course, it is... but that feels like describing the 8086 as the
ancestor of the PlayStation 4's processor. ARM was popular in embedded devices
prior to the iPhone, after all; I had at least a couple ARM powered devices
well prior to the iPhone's launch. Not even obscure: GameBoy Advance is an
example.

This is really just a nitpick, though, I definitely find these in-browser
gate-level chip emulators to be fascinating. It makes me wonder if we will
some day see realtime gate-level emulation of entire machines... It may be too
soon to ask given that state-of-the-art cycle-level CPU emulation is already
pretty limited by performance, but perhaps for some really old devices, it'll
happen. It would just be really cool to be able to do things like play with
fault injection on an emulated processor and watch what actually happens.

~~~
analognoise
You could use Verilator to stimulate a processor, and SDL to give you a
graphical output, if so desired. If you detest Verilator, Modelsim DE or above
comes with TCL embedded, you could use Tk to build a graphical interface.

~~~
twtw
Sorry if this is too unrelated to the original post.

I just recently discovered verilator, and it seems pretty awesome. I'm curious
if there are some drawbacks that you are aware of that make people dislike it?

~~~
analognoise
It will never be able to simulate encrypted RTL - so any design using vendor
IP is out (so lots of Xilinx cores, for example). It is a cycle simulator (not
a delta time simulator), so no back annotated timing is possible. It does not
support mixed language simulation (I know, it is a Verilog simulator, but you
don't always get to choose what language a vendor supplies IP in). So that's
just to start.

Writing C++ to toggle clocks then force the simulator to re-evaluate
everything is terrible (opinion). The primary tutorials I've found are Dan
Gisselquest's (ZipCpu) and (iirc) he recommends running your testbench in a
delta simulator as well, to make sure it's giving you what you expect. So it
isn't much of a "standalone" tool.

All that said, it seems like it could be useful - it wasn't in my case, but
ymmv.

~~~
twtw
Thanks!

------
dang
Discussed at the time:
[https://news.ycombinator.com/item?id=10819025](https://news.ycombinator.com/item?id=10819025)

