Moving An FPGA Project From VGA To DVI-D

It’s fairly easy to create VGA with an FPGA using a simple R/2R DAC. As [Mike] points out, this requires a lot of IO pins, and many development boards only support 8 bit VGA. Analog VGA is being replaced with DVI-D and HDMI on many devices nowadays, so it would be nice to port projects from VGA to DVI-D.

To address this, he’s come up with a simple DVI-D implementation in VHDL. The result converts RGB and sync data for VGA into DIV-D. Since DVI-D and HDMI both use the same signals for video, this can be connected to either input on a monitor or TV.

This implementation is shown displaying a test pattern on the Pipistrello development board, which features a Spartan 6 LX45 FPGA, but the project was written to be portable to other vendor’s FPGAs. With the right connector and a fast enough clock speed, this project should help move a project from 8 bit VGA to glorious 32 bit color.

MSP430 Gaming Shield Based On The Gameduino

Get your 8-bit gaming fix with this gaming shield for the TI Launchpad. It’s called the Launchpad GamingPack and was developed as part of TI’s 2012 Intern Design Contest. The team had just six weeks to complete the project.

The video after the break starts off with some fast-motion PCB layout. It is followed by footage of the board being populated, then anchored with graphics testing and some game play demonstrations. It looks like a real blast! NES controller ports were included on the board, and the device puts out 400×300 VGA, as well as audio.

As with the Gameduino, the hard work is done by the FPGA at the center of this board. It handles all of the VGA timing work, using what looks like 3-bit color. It is also responsible for generating the audio and monitoring the inputs. Since the team was under a time crunch the shield also includes a 10-pin header on the underside which was added for easy connection with a logic analyzer.

Continue reading “MSP430 Gaming Shield Based On The Gameduino”

Developing A Better Way To Control 10,000 LEDs

The SoundPuddle project drives thousands of LEDs based on audio input. The team is working on a replacing the controller for this wire-filled setup with something more robust. They took the mess seen above to the Apogaea Festival and were plagued by loose wires and unreliable communications due to noise and interference. The aim of the new system is to reliably control up to 10,000 LEDs.

The red PCB seen at the center of the rats-nest is a Papilio FPGA board. They still want to use it to drive the installation, but a new hardware interface is necessary. The solution is to design what they call a megawing (wings are to Papilio as shields are to Arduino).  The LEDs will be in RGB strip form, so one of the requirements is to supply enough connectors to drive 16 channels of SPI devices. The wing will also include the 48V power source and connectors for the condenser microphone that serves as an input for the SoundPuddle. There are also two other options for audio input, one via a Bluetooth module (which can double as a control device) and the other via MIDI.

After the break you can see a lighting demo. Be ready with the volume controls as most of the sounds used in the test are quite annoying.

Continue reading “Developing A Better Way To Control 10,000 LEDs”

Editing Your FPGA Source

[Dave] noted that in a recent poll of FPGA developers, emacs was far and away the most popular VHDL and Verilog editor. There are a few reasons for this – namely, emacs comes with packages for editing your HDL of choice. For those of us not wanting to install (and learn) the emacs operating system, [Dave] got Notepad++ to work with these packages.

Notepad++ already has VHDL and Verilog highlighting along with other advanced text editor features, but [Dave] wanted templates, automated declarations and beautification. To do this, he used the FingerText to store code as snippets and call them up at the wave of a finger.

As [Dave] writes his code, the component declarations constantly need to be updated, and with the help of a Perl script [Dave] can update them with the click of a hotkey. Beautification is a harder nut to crack, as Notepad++ doesn’t even have a VHDL or Verilog beautifier plugin. This was accomplished by installing emacs and running the beautification process as a batch script. Nobody can have it all, but we’re thinking [Dave]’s method of getting away from emacs is pretty neat.

Driving A PSP Screen With An FPGA

Here’s [FlorianH’s] setup for driving a PlayStation Portable screen with an FPGA. He’s using the DE0-Nano board to do this, and the first order of business was to establish a way to connect the two. He did a great job of etching his own breakout board, which has some traces that are less than 10 mils thick. Soldering the connectors for the screen was a bit of a challenge, and he shared several pictures of the process for your enjoyment.

With everything hooked up he fired it up with just a couple of lines of code to draw a test pattern. From there it was on to building a more intensive driver. [FlorianH] mentioned to us that he’s just starting to learn about FPGAs after having worked extensively with 8-bit microcontrollers. He’s been documenting his work on his site, and finds himself frequently referencing his own material so remember how he did things. Our vicarious enjoyment is an unintended (but welcomed) consequence of that habit.

A Game Of Skill For The North Carolina Maker Faire

The North Carolina Maker Fare was last weekend, and over the course of the festivities  [Dave] was asked for the documentation for the arcade game he built. It’s a neat build, so we’re very glad he chose to share it with us.

Anyone who has been to an arcade in the last 15 years has seen the game [Dave] was inspired by. The object of the game is to hit a button when the sequentially illuminated lights are in a particular position. [Dave] built his own version out of 90 LEDs and a very tiny FPGA dev board.

The 90 LEDs are controlled by the FPGA using charlieplexing, and are illuminated in sequence when the game starts. A heavy-duty emergency switch button modified into a momentary push button takes a hit whenever the player thinks the LED will land in the ‘jackpot zone.’  If the player wins, a buzzer sounds and much excitement is had by all.

Seeing as how the arcade version of this game is a complete rip off and is impossible to win, we really like [Dave]’s version. You can check out his demo video after the break.

Continue reading “A Game Of Skill For The North Carolina Maker Faire”

MyHDL Python Programming Option For FPGA

MyHDL is a Python module that brings FPGA programming into the Python environment. [Christopher Felton] tipped us off about a simple tutorial he just finished that gives an overview of how the module is used.

You may remember hearing about PyCPU a couple days ago which can run very simple Python code on a FPGA. There was a healthy discussion in the comments section comparing PyCPU and MyHDL. Although they may seem similar at first, the two are quite different. PyCPU creates a processor on the FPGA chip which can execute a small range of Python code. MyHDL actually implements Hardware Description Language in the Python environment. Once you’re used HDL to model your hardware choices in a Python script, it is converted to VHDL then fed to the toolchain and pushed to the chip like normal.

This is not an absolute beginner’s experience. But if you’re well-versed in Python it makes the jump to HDL a lot easier because you’ll be working with syntax that is already familiar to you.