Simulator for Analogue's CHIP32 VM on Analogue Pocket

Overview

Simulator for Analogue's CHIP32 VM

This is a simulator for Analogue's CHIP32 virtual 32-bit CPU used as a data preprocessor for openFPGA. It allows you to step through instructions, view processor and memory state, and constantly log data (as opposed to CHIP32 only letting you print when exiting).

Some of the more obscure APF opcodes are not currently implemented, but their implementation will come soon.

Main Screen

Usage

The TUI currently isn't as polished as I would like, and as such it doesn't display the valid commands. They are:

Input Action
r Run program to the end
s Step through this instruction to the next
m [address] Switch the display mode to/from memory. Arrow keys up/down will allow you to scroll memory when visible
q Quit the simulator

Example

Analogue provided an example CHIP32 project. To run this project in the simulator, look at the /example directory in this repo. The only content that was modified from the Analogue example was the data.json file:

  1. Add a filename to data slot 1 (we don't have a filepicker, so we need to give the sim the file to open)
  2. Update all of the filenames to have a full path (may be improved in the future)
  3. Run the project with:
cargo run -- --bin .\example\example_chip32.bin --data-json .\example\data.json --data-slot 1

This should allow you to simulate the entire program

Docs

The official Analogue CHIP32 docs can be found here. Unfortunately, the opcode page hasn't been published for some reason, but hopefully it will be soon.

You might also like...
Rubik's Cube simulator in Rust.
Rubik's Cube simulator in Rust.

cubedesu Rubik's Cube simulator written in Rust. Play it at https://stanleydesu.github.io/cubedesu/ ! Features Visual simulation of a 3x3 cube, allowi

A game of life🔬 simulator on an infinite♾️ plane
A game of life🔬 simulator on an infinite♾️ plane

game-of-life A game of life 🔬 simulator on an infinite ♾️ plane NOTE: This is a toy project! I did this just for fun, not as a packaged product. Abou

Texas hold'em poker odds simulator

odd ♠️ a rusty Texas Hold'em poker odds simulator Installation brew install rustup git clone [email protected]:ocisly/odd.git cd odd rustup -V cargo inst

Logimu: Circuit & logic gate simulator
Logimu: Circuit & logic gate simulator

Logimu: Circuit & logic gate simulator The main goal of Logimu is to simulate large circuits at a high speed. Features Live simulation Embed other cir

Render farm simulator & plotting for optimisation written in Rust.
Render farm simulator & plotting for optimisation written in Rust.

Farm Usage Simulator Given a few basic charasteristics of a render farm and render jobs this app runs a few randomized farm usage scenarios and plots

Damavand is a quantum circuit simulator. It can  run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Shared cockpit for Microsoft Flight Simulator.
Shared cockpit for Microsoft Flight Simulator.

This project is currently on hiatus until further notice. I'd love to continue improving this project to fulfill my vision of a no hassle, fully featu

A proof-of-concept for building Orbiter spaceflight simulator addons in Rust

Orbiter spacecraft addon development in Rust This project is a proof of concept for creating a spacecraft addon for the Orbiter spaceflight simulator

Damavand is a quantum circuit simulator. It can  run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a code that simulates quantum circuits. In order to learn more about damavand, refer to the documentation. Development status Core feature

A Multitask Parallel Concurrent Executor for ns-3 (network simulator)

A Multitask Parallel Concurrent Executor for ns-3 (network simulator)

Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita
Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita

Sandbox Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita. It's also a precursor for an ongoing game project. Sandb

Simulator for the pioneering TX-2 computer

TX-2 Simulator We are trying to create a simulator for Lincoln Lab's historic TX-2 computer. Notably, this is the computer on which Ivan Sutherland's

Simulator of viral infection spread and containment in cell monolayer.

Overview VIS-A-VIS is an agent-based simulator of viral infection spread and viral infection self-containment in a monolayer of cell. The simulation m

A simple tomasulo simulator written in Rust for the course Computer Architecture.
A simple tomasulo simulator written in Rust for the course Computer Architecture.

Tomasulo Simulator This is a Tomasulo simulator written in Rust for the course Computer Architecture. Two Demo programs are tested in the simulator, w

Embedded-hal simulator.

hal-sim - embedded-hal Simulator (WIP - UNFINISHED) This crate simulates a small portion of the embedded-hal traits. Namely: GPIO ADC Additionally, it

💰 Midas is a free and open source Moving Average Trading backtest simulator.
💰 Midas is a free and open source Moving Average Trading backtest simulator.

Midas is a free and open source Moving Average Trading backtest simulator Bilibili Video: https://www.bilibili.com/video/BV11o4y1B7fL ⚠️ Warning Inves

Ethereum transaction simulator leveraging Foundry's codebase
Ethereum transaction simulator leveraging Foundry's codebase

Enso Transaction 🧐 Simulator 🧐 A simple API which simulates a given transaction request. 📫 API 📫 POST /api/v1/simulate Simulates a single transact

A simulator for Street Fighter 6 battle data.

sf6_sim A simulator for Street Fighter 6 battle data. Very early in development. It can currently simulate boxes, cancel lists, and movement. Online v

Owner
Adam Gastineau
Adam Gastineau
A simulator for Street Fighter 6 battle data.

sf6_sim A simulator for Street Fighter 6 battle data. Very early in development. It can currently simulate boxes, cancel lists, and movement. Online v

null 4 Jun 18, 2023
A 2D Rust-Based Finite Element Simulator

Magnetite A 2D linear-elastic FEA program for isotropic materials, built in Rust. Overview Magnetite is a simple linear-elastic mechanical solver for

Kyle Tennison 3 Apr 9, 2024
Repo for apps for the Pocket RISC-V core for Analogue Pocket/OpenFPGA. Multiple branches.

This is a repo meant to host Rust programs for agg23's Pocket RISC-V platform. While Rust can be built out of the openfpga-litex repo directly, this r

null 3 Dec 12, 2023
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Send Youtube videos as audio podcasts to your personal Pocket Casts files section.

yttopocketcasts Send Youtube videos as audio podcasts to your personal Pocket Casts files section. Quick Start Prerequisites: Docker and Make must be

Anthony 3 Dec 18, 2022
Advanced Rust quantum computer simulator

quantum Advanced Rust quantum computer simulator. Motivation Quantum is a quantum computer simulator written with the following design goals in mind:

Ben Eills 215 Jan 1, 2023
Experimental Quantum Computer Simulator + Quantum Chess Implementation

Quantum Chess A somewhat hacky implementation of this paper (made in a week over a holiday). It's not heavily tested and probably has some bugs still

null 19 Jan 21, 2022
An n-tuple pendulum simulator in Rust + WebAssembly (and JavaScript)

An n-tuple pendulum simulator in Rust + WebAssembly (and JavaScript) Remaking this n-tuple pendulum simulator moving the math to Rust ?? and WebAssemb

Travis Taylor 27 Feb 19, 2022
Magical Automatic Deterministic Simulator for distributed systems in Rust.

MadSim Magical Automatic Deterministic Simulator for distributed systems. Deterministic simulation MadSim is a Rust async runtime similar to tokio, bu

MadSys Research Group 249 Dec 28, 2022
Build controllers for the Webots robot simulator in Rust

Webots controllers in Rust Status: experimental This is a reference project that shows how to build controllers for the Webots robot simulator using t

Adam Jensen 14 Oct 11, 2022