VGA Instruction Set

Using the RISC-V instruction set and OTTER architecture, I added my own instruction for changing the color of a specified pixel using VGA on the Basys3 FPGA board. This included creating a new state in the FSM, altering the existing decoder, and adding a new VGA memory decoder. Created test programs in assembly with and without the new instruction in order to visualize the difference in Vivado. With this new instruction there was a speed increase of 66% for drawing an individual pixel and 44% for the entire test program. The purpose of this was to understand computer architecture from the ground up, as how hardware actually works and interacts with software increases efficiency.