-
Notifications
You must be signed in to change notification settings - Fork 1
How To Use
This project can function as a composite video to VGA converter. Due to memory constraints on the FPGA only grayscale video is output even if the input video is in color. In the projects current form, it will place a gray square on the screen at an arbitrary location that can be changed by using the push buttons. Below are directions to hook up your input and output video cables and program the FPGA. Be sure to have the input video signal on before programing the FPGA, this helps the video ADC on the FPGA output the proper signals.
The input must be a composite video signal, thats the yellow coaxial cable found on older cameras, TVs and DVD players.
The DE2-115 FPGA has one composite video input. Plug in the yellow input cable into the FPGA. In my experience, programming the FPGA while the video input source was on worked best. Otherwise, the FPGA may not recognize the input source. This was an issue present in Altera's demo design too. I believe it relates to settings on the composite video ADC on the FPGA and not the verilog design itself.
The FPGA outputs a VGA signal at 640 x 480 pixels at 60Hz. After the composite input is connected, connect the FPGA to a VGA monitor. The VGA is more flexible than the composite input, the monitor does not need to be on when the FPGA is turned on or programmed.
Now that the video cables are connected the FPGA can be programed. Use Quartus ii to synthesize the design and upload the .sof file generated in the output_files/ directory with the program button in Quartus ii.
The second goal of the project was to be able to overlay an arbitrary shape on the screen because this will be useful in my senior design project. This project places a black square on the screen. Using KEY1 and KEY2 on the FPGA will increase and decrease the address if the square in the frame buffer. Because the input resolution is different than the frame buffer resolution the square does not appear to move by one pixel on the screen, instead it moves by one address in the frame buffer. The square also appears to move sporadically because the address is incremented once each clock cycle the key is pressed so it is difficult to move only a few addresses. The change in address was not limited or slowed because moving the box only a little bit was not the goal of this project.