Work Starts on USB MegaDrive DevKit v2 (UMDKv2)

Posted in Electronics on July 11th, 2010 by Chris – Be the first to comment

It has been a long time since I put any thought into version 2 of my USB MegaDrive DevKit. I'm currently putting together a prototype based on a Digilent Nexys2 FPGA board. So far I have managed to:

  • Power the Nexys2 from the MegaDrive's 5V supply.
  • Buffer the MegaDrive's 7.6MHz clock using this board.
  • Verify that the MegaDrive's clock is actually running at the expected rate (0x73F9XX ~ 7.6004MHz).
  • Use one of the Digital Clock Managers on the FPGA to multiply the 7.6MHz clock by 14 to give 106.4MHz.
  • Use this 106.4MHz to clock a memory controller state machine, running the on-board CellularRAM at half that frequency.
  • Fix up the host interface reference design to eliminate the need to force FSM encoding.
  • Benchmark block writes using the Adept tool over USB to the CellularRAM at 3.94Mbyte/s.
  • Use a transistor switch to give the FPGA control of the MegaDrive's RESET line.

This 0x73F9 is the top 16 bits of a 24-bit counter giving MegaDrive clocks per second: 0x73F9XX ~ 7.6004MHz

Still to do on this prototype:

  • Build a MegaDrive cartridge PCB with an FX2-100S-1.27SV(71) edge connector for interfacing with the Nexys2.
  • Implement the 68000 bus reads and writes in the VHDL.
  • Build the SD-card interface PCB and write the VHDL for a DMA controller clocking the SD card in SPI mode at ~25MHz.
  • Optimise the memory controller to use burst writes of data from the host - this should increase throughput to ~5Mbyte/s.

If you want to look at the VHDL for the host interface and the memory controller, you can download it under a GPLv3 licence from here.

Leave a comment

You can use TWiki syntax in your comment