Inspiration
I like graphics programming and computer architecture, so I decided to build out a computer architecture that did graphical things.
What it does
You program in MIPS assembly, assemble it, and have it run on an fpga with a framebuffer that is memory mapped allowing you to write certain pixels in the program and display a picture.
How we built it
I used vhdl to design the architecture and the vga controller, tested it on modelsim whenever i ran into bugs, and used quartus to assign pins and flash it onto my fpga.
Challenges I ran into
The VGA timing was difficult, the image shifted to the left for a reason I wasn't able to find out. The program counter also only incremented one byte per cycle when it needed to increment 4 bytes, causing weird, unexplainable behavior until i looked at the instruction signal in modelsim.
Accomplishments that I'm proud of
I'm proud of getting VGA working, displaying an image, and having an image be generated by a program running on an architecture I implemented.
What I learned
I learned how to do VGA timing, make a framebuffer, I improved my understanding of memory mapped IO, and improved my understanding of MIPS. I also learned how to program in MIPS assembly better and learned more debugging methods.
What's next for mipmip
I plan to make the mips implementation cover more of the ISA, add pipelining, improve the framebuffer, and fix the VGA timing issue.
Built With
- git
- mars
- modelsim
- quartus
- vhdl
Log in or sign up for Devpost to join the conversation.