Miscellaneous Hardware Projects...
Here there are some of the general the projects I am working on.
Homebrew for the FPGAARCADE Replay Board:
Please check out my separate Replay board add-on page!
"FDIL V2", the second generation FPGA-DIL replacement board is here!
The modern FPGA boards (like the FDIL v1 board) use FPGAs without 5V tolerance on their pins. This brings some problems,
as level shifters (or series resistances in case of Spartan 3E) have to be used. This may require hardware
changes for certain situations, some electrical configurations may not be available at all.
I checked alternatives allowing direct use of FPGA configurations without restrictions. Afterwards, and after I had a chat with Mike from fpgaarcade.com (external link) the new FDIL v2 board was born! I am very grateful that he supported me on this project and shared efforts and costs with me to make this project happen.
The prototype is tested and works nicely ("first time right"), currently I am about to finalize the setup of the large 5xxx Namco custom ICs for this board (see right picture) and release some code for it as well.
For now I assembled the first batch of boards, as you can see on the left picture (just shot after the reflow process).
This board is the ultimate 5V capable FPGA board to replace custom and standard digital ICs in DIL packages up to 42 pins. You can now configure push-pull, floating, pull-up, pull-down or open-drain configurations directly on the FPGA (= UCF file), without the need for changing/soldering anything on the board itself.
The board also allows to route VDD/GND from the board pins directly to the FPGA regulators (generating 3.3/2.5 V). It also allows routing of global clocks to any pins (as default, pin 1 and 3 is used as GCLK). The boards are available with 15k, 30k, 50k and 100k gates Spartan II devices to cope with complexity versus cost and power consumption.
Here you can see what can be implemented with this board!
Curious? Here is the documentation of the board and some source examples!
|FDIL v2 (100k)|
If you are interested in such a board or have further questions, contact me (fill in the form there).
An very interesting project might be this one. I set it up to allow me detailed investigations on Arcade custom chips by stimulating (nearly) any pattern I like.
The concept uses a standard microcontroller with plenty I/Os connected to a 40pin header on one side, and a 3.3V/5V power supply concept and a USB interface on the other.
I am working on two software concepts on top of this platform. One is a general command set, allowing to stimulate the I/O in a flexible and generic way. This is the more versatile and simple to use solution which requires just a tool sending the commands to the logic tester (even Excel/VBA works). But this is also the slower setup.
The other is using a software framework, which will be compiled together with the testbench code and downloaded each time via a USB bootloader to the flash. This is a little bit more complicated (and requires some C programming environment installed) but allows timing accuracy in the microsecond range. I used it e.g. to stimulate the Namco 06xx custom chip nearly in realtime. The general pinout of the tester is shown below.
As you can see, there are also some of the peripherals available to stimulate UART, SPI or other protocols.
The general I/O voltage of 3.3V or 5V can be set up using a jumper. The USB serial connection is also available, it might come handy to extend the tester
capability by a second board. Even ISP programming can be done using this socket (in case the USB bootloader itself needs some update).
You can click on the images for a larger picture.
Finally I have added a screenshot of the board layout. I just want to give you an idea about using a Microcontroller like an ATmega128 as logic tester.
Feel free to adopt this idea to your needs - reduce or extend the I/O connector, use a larger or smaller micro or use even a different one, like a Pic or a 8051
As you can see, I used a through-hole device for the VDD switch, as I assume it could get damaged while experimenting. It somewhat limits the current to a few 100mA and acts (hopefully) like a "fuse" (should be destroyed before the USB port on the PC gets damaged in case of too high currents). Thus it can be easily exchanged...
I can provide you more information, but no complete code yet - just mention this project in the comment entry on the code request page.
I designed this board to test my custom-IC implementations in their original environment. This is the best way
to verify them. I am using a Spartan 3E FPGA, because these are still available in "standard" SMD packages and have
"fixed" bulk diodes on the p-channel of the output drivers. This allow to use series resistors on the I/O pins to achieve 5V
tolerant FPGA inputs, while maintaining some useful low level when driving the FPGA output to 0. I used 220 Ohms resistors
which are smaller than recommended by Xilinx, but it is ok when limiting the supply to 5V max. for the board (the
Xilinx document refers to 5.5V max. supply).
On the picture you can see the layout and a 3D model of the PCB (I am using Target 3001 as PCB layout tool).
You may check out the Namco 51xx implementation, which uses this setup.
The board allows to route VDD/GND from the board directly to the FPGA regulators (generating 3.3/2.5/1.8 V). I also checked the I/O to keep the GCLK pins to typical controller pinouts.
There are three general use-cases for this board:
a) in principle, it is possible to replace complex ASICs or controllers like shown below by the FPGA on the board (using a Xilinx xc3s100e-4/vq100 or even a 250e FPGA):
b) you may attach the original ASIC on top and use the FPGA (all pins input only) to have a complex, powerful analyzer platform available for the ASIC.
c) you may attach the original ASIC on top and use the same implementation in the FPGA to verify your own implementation (again, all pins input only) by an additionally build-in analyzer.
Below a picture of a variant with xc3s250e FPGA which can replace any 28...42pin IC (e.g. namco custom chips), and a pin-header on the top to attach directly a logic analyzer:
This board is obsolete now, see the FDIL v2 board above!