My first week started with tons of reading. I read about the architecture of MicroBlaze. Shawn also told Mostafa and I about the difference between MicroBlaze and AEMB. The most important thing to note is the process of running multiple threads concurrently. I must be able to implement that with the simulator. Nice to meet you Mostafa 🙂
Since the s3laku will be coded from scratch, I also studied various microprocessor simulators’ code. I was able to identify the main framework used by them and identify a few main libraries that I would have to write to keep everything nice and neat.
http://bellard.org/jslinux/tech.html
https://github.com/s-macke/jor1k
https://github.com/ozaki-r/arm-js
https://github.com/copy/v86
I found arm-is to be the most useful as I have more experience with arm’s isa.
After fighting with the VPN, taming it and getting it to dance for me, I started working on the preliminary design of the code. I will be using two client-side scripts. The first one will be initializing the simulator to the default state and handling the users’ Â action sent from the second script while the second script will serve as an interface for the GUI interface, detection of users’ action and I/O by data transfers with the first script. The reason of doing so is for abstraction. Ultimately the user doesn’t have to care how the code functions. He/she will directly see how their code is affecting the simulator.
I also finished working on libraries that I have identified as useful in the previous microprocessor simulator. They are the bitOperations and utilities library. The bitOperations will handle all bit operations including 2-complements handling for signed integers. The utilities library will handle the conversion of datatypes to string for various bits since inside EDK6.3 there will be 16-bit immediate operand and some of them needs to be extended to 32-bit. Conversion to string allows logs to be printed in the display for debugging purposes. I also set up a simple HTML file to test the bitOperations.
The goal of next week will be finishing more opcodes and the core structures that needs to be set up for AEMB. I will also need to read up on how to implement the concurrent structure for the simulator.
p.s. Sometimes, JavaScript is a prick.
0 Comments