Skip to content

Simulator (more accurately: an assembler and an emulator) for Xilinx PicoBlaze, runnable in a browser.

License

Notifications You must be signed in to change notification settings

FlatAssembler/PicoBlaze_Simulator_in_JS

Repository files navigation

PicoBlaze Assembler and Emulator in JavaScript

Picture of PicoBlaze

This is my attempt to implement a Xilinx PicoBlaze assembler and emulator in JavaScript. My Computer Architecture professor Ivan Aleksi asked me to make it in case physical laboratory exercises need to be canceled because of a pandemic, so that students can do the laboratory exercises in spite of not having access to a real PicoBlaze. Fortunately, thus far, that hasn't happened.

It is available live on SourceForge. In case that doesn't work (for instance, if I got a cross-site scripting attack), the front-end-only version is available on GitHub Pages. As the assembler is written in JavaScript, rather than in PHP, the basic functionality is available even in the front-end-only version. The fork of this program maintained by @agustiza is available live on his website.

Right now, this program has no back-end. Maybe I will add some back-end to enable users to share their own examples and comment on other users' examples later, but, for that, I will need to learn quite a bit of PHP, and it will work only on SourceForge because GitHub Pages supports no back-end scripting.

The documentation, in Croatian, is available in the seminar folder, in DOCX, DOC, ODT, PDF and RTF formats. (UPDATE: I received a message telling me that me hosting the documentation on my website and my GitHub profile is a copyright infringement. So, the documentation, in Croatian, is available on DABAR in the PDF format.)

If you want to host this project yourself, you might want to edit the lines following the 17th line of the PicoBlaze.html file:

<script>
  var URL_of_JSON_with_examples =
      "https://flatassembler.github.io/PicoBlaze/examples.json",
    URL_prefix_of_the_examples =
      "https://raw.githubusercontent.com/FlatAssembler/PicoBlaze_Simulator_in_JS/master/";
</script>

and modify them to point to where you will host the examples.

Note to the contributors: While there are some JEST tests in this project, the test coverage is pretty low, so don't rely solely on them. Please do some manual testing. And, if possible, do that manual testing in Firefox 52 (the last version of Firefox to work on Windows XP, and it's also the version of Firefox that comes with Solaris 11.4), as it is important to me not to break the compatibility with Firefox 52. Many computers at my university are running Windows XP and are using Firefox 52 as the browser, and it is important to me that this program works on those computers.

UPDATE on 24/01/2021: I've started developing a version of this app for Android. As I am not a skilled Android developer, any help will be appreciated.

UPDATE on 18/07/2023: I have started a forum.hr thread where I listed non-trivial problems I currently have with my PicoBlaze Simulator.

Language grade: JavaScript code style: prettier