Study Mic-1 architecture through simulation.
Find a file
2018-09-03 16:26:14 +02:00
MicSim Update gitignore, clean code 2018-09-03 16:26:14 +02:00
supports Add source code 2018-08-31 18:42:12 +02:00
.gitignore Update gitignore, clean code 2018-09-03 16:26:14 +02:00
LICENSE Add LICENSE 2018-09-03 08:32:42 +02:00
README.md Update README 2018-09-03 13:30:28 +02:00

MicSim

Hi! Welcome to MicSim project repository. MicSim is a Mic-1 architecture simulator written in python. It is specially designed for studying purpose.

How it works ?

It is simple, you have to:

  1. Clone the repo
  2. Execute micsim.py
  3. Enjoy !

I want to know more about it....

Source code is located in MicSim/ directory. All the components used for the Mic-1 architecture are located in MicSim/components/ directory:

  • ijvm.py Contains standard IJVM constant
  • microprogram.py Contains IJVM implementation that use Mic-1 architecture
  • caretaker.py Hold all the Mic-1 architecture components (registers, ram etc..)
  • ram.py Contains a simple RAM implementation

How to load code in memory ?

Simply by editing ram.txt. Each line corresponding to a byte entry starting from address 0x0 to whatever. Each line can be an IJVM opcode or a random byte. Here is an example of how to add two numbers:

BIPUSH
12
BIPUSH
5
IADD

Kind of output:

---------- Ram Before Execution ----------
0    : 0x10  (16)
1    : 0xc   (12)
2    : 0x10  (16)
3    : 0x5   (5)
4    : 0x60  (96)
------------------------------------------
---------- Ram After Execution ----------
0    : 0x10  (16)
1    : 0xc   (12)
2    : 0x10  (16)
3    : 0x5   (5)
4    : 0x60  (96)
4099 : 0x0   (0)
4098 : 0x0   (0)
4097 : 0x0   (0)
4096 : 0x11  (17)
4103 : 0x0   (0)
4102 : 0x0   (0)
4101 : 0x0   (0)
4100 : 0x5   (5)
-----------------------------------------