FPGA NES: VGA (Part 3)

A video engineer, or really anybody who cares, would tell you that I’ve created a pretty inaccurate representation of the SMPTE color bar test pattern. As I’m not actually trying to calibrate any monitors I don’t fall into this category. I’ve modeled my test screen off of the Wikipedia description of SMPTE color bars. This project only generates a color simulation, ignoring the I and Q vectors, pluge pulse, and other underlying embedded signals. I’m satisfied with the results of this project and consider the original goal to be accomplished. Modifications to the code will most likely be required when it is integrated into the final NES project, but that is much farther down the road. The updated color generator code as well as a download link to the entire project are provided below.

Continue reading “FPGA NES: VGA (Part 3)”

FPGA NES: VGA (Part 2)

Previously a basic VGA controller was designed that had the capability to display a solid color across an entire computer monitor. This post builds on that design in an attempt to verify that the controller is able to correctly display more advanced patterns. In this example the code for the clock sub-circuit remained unchanged. However the color generator code was hacked up to create a moving 100 pixel horizontal and vertical bar. Color selection still works as before with the upper two bits now being used to enable or disable either bar. The animation of the bars works fairly well, however both bars are expected to be a solid color which is not the case as shown in the image below.

 

Update:

I’ve found the bug.  It turns out I was not shutting off pixel color when the active pixel left the boundaries of the screen.  The code has been modified with the changes from line 73-77. I believe the problem is related to the monitor expecting an absence of data during H-Blank.  It looks as though the monitor may be setting the black level by averaging the voltages measured during H-Blank.  A fade to black would occur with a persistent input signal if this were the case.  This also explains why the vertical bar is unaffected.

Continue reading “FPGA NES: VGA (Part 2)”

FPGA NES: VGA (Part 1)

Any good video game requires one very fundamental feature: video. The nanoboard includes a VGA port and seeing as I don’t know anything about the VGA protocol it seems like the perfect place to start.  The nanoboard also has a built in touch-screen, however I feel like that would be easier to implement and will be covered in a later post.  My goal for this section is to display the “SMPTE color bars” on a standard computer monitor.

Continue reading “FPGA NES: VGA (Part 1)”