Oct 04

First Commercial Success

After ordering the wrong buffer chip for my Logic Cube I started poking around and managed to get a commercial rom to run.  It seems my issues are a result of timing problems with my new memory mapping module.  The attempt shown below locked up at the title screen but I have since managed to start the demo video that follows.  Unfortunately since I haven’t implemented sprites its less of a video and more of a static background.  Assuming the chip that came in today is the correct version I hope to be running on 32 channels and make more progress this weekend.


Sep 29

Back To Work

It’s been a little while since I’ve posted any progress on any of my projects.  I’ve been recently employed as a full time design engineer and have finally transitioned back into a schedule that allows me to work on some of my own interests again.  I’ve started up working on my NES emulator and had my first success loading a cartridge from an SD Card.  I’m stuck again as the emulator locks up when after it’s partially rendered the screen. Debugging has gotten more difficult as time goes on as it now takes 15-20 minutes to compile the design and only having 16 channels on my logic analyzer means recompiling more frequently to figure out what’s gone wrong.  I have parts on order to perform an upgrade to 32 channels but until then I expect progress will be a bit slow.  I’m hoping to have the parts installed and be able to read the entire address and data buses along with any status bits I need by the end of the week.


Jul 19

NES FPGA: Some Tricks Required

I’ve run into a bit of a road block with my NES Emulation.  I’ve been trying to keep as much of the project as possible in standard VHDL without relying on pre-built libraries or modules.  In order to make testing, as well as end-result use, easier I’d like to be able to load files off of an SD Card using the FAT file system.  Unfortunately attempting to do this in VHDL seems far from straightforward and is certainly more involved than I’m looking to get for this project.  As such I’ve resorted to a wishbone based TSK3000 processor module and some C code to perform FAT related functions, parsing of the INES header, and all cartridge I/O functions.


At this point I’ve been moderately successful with this implementation.  Mounting the FAT file system works.  I can read the available files and load the desired file.  I can even get the nestest rom to run after loading it from the SD Card.  There is a catch though,  and it is pretty big.  In order for the loaded file to run I have to slow the NES’s clock down about 50x.  It’s not going to be possible to get  any meaningful gain out of the processor and I don’t want to rearrange the entire project to make use of the shared memory bus.  I’ve used up both SDRAM Chips (one for the CPU and one for the PPU) so I’m going to have to do some consolidation.


There is more than enough memory available in a single SDRAM chip for the entire project.  The problem is that I need to be able to access each memory location simultaneously (CPU RAM, PPU RAM, Cartridge) and the chips are single port.  I intend on solving this with another VHDL module.  Using the 50MHz clock should allow me to fake a triple port or more memory chip by sequentially reading out the requested memory addresses and latching them to independent outputs.

Jul 05

Arduino Garage Door Opener – Prototype

I’m done with school now, degree and all, and still have a couple of weeks before I’m officially on the job.  In the meantime I’ve been fooling around with some home automation hardware, specifically the veralite from micasaverde.  While I haven’t spent too much time with the veralite yet my first impression is that it is still a little undercooked.  Developer documentation is rough to non-existant, serial support is sketchy, and the Android app seems hit or miss.  That said, I do like the box and there seems to be a ton of progress being made on the backend.  In an effort to learn the Lua language used for plugin development, and to keep myself busy, I’ve taken on another hardware and software project. Pictured below is the first prototype of this project.



Read the rest of this entry »

May 10

NES FPGA: First Run

I’ve managed to get the nestest rom to run on my emulator.  I’m still nowhere near complete but this is a good first step.  Video is working, at least without sprites.  Control input works, although there’s a bug floating around in there somewhere   I’m currently working on getting the APU ( Audio Processing Unit) up and running.  Below is a video of my emulator passing all standard opcode tests.



Older posts «