pysvp64db: fix traversal
[openpower-isa.git] / src / openpower / decoder / isa / README.txt
1 Power ISA Simulator in python
2 ---------
3
4 This simulator is not in the least bit designed for performance, it is
5 designed for understandability of the Power ISA Specification. It uses
6 compiler technology and the pseudocode and tables from the actual PDF
7 (v3.0B initially) and has made it executable.
8
9 A class called SelectableInt makes it possible to access numbers in MSB0
10 order due to the Power ISA Spec being MSB0 order.
11
12 A RADIX MMU based on Microwatt and gem5-experimental is available.
13
14 There are thousands of unit tests in this subdirectory (and many more
15 in openpower/tests).
16
17 Boris Shingarov has created a Power ISA Formal Correctness Proof using
18 the machine-readable spec and the compiler.
19
20 A "co-execution" Test API is available which allows single-stepping and
21 extraction of memory and registers for comparison. Qemu and HDL is supported.
22
23 Some unit tests also have "Expected Results" and the rest will be converted
24 over time.
25
26 In conclusion this Simulator's purpose is for validation and correctness
27 rather than high performance.
28
29 The main simulator class is ISACaller. Compiling the psedudocode is done
30 with the command "pywriter" and the helper routines (extracted from the
31 Power ISA Appendices) with "pyfnwriter".
32
33 Unit tests are both stand-alone executable as well as automatically
34 picked up by "nosetests3". Most but not all of the unit tests are for
35 SVP64 in this subdirectory: see test_caller.py for Standard Scalar Power
36 ISA 3.0 which picks up tests from openpower/tests
37
38 Also of interest is pypowersim which is a standalone Power ISA bare metal
39 simulator. More details at https://libre-soc.org/docs/pypowersim