• 0
Sign in to follow this  
n_gorshenin

VGA signal generation

Question

Hello! My task is creation of real-time system which can draw simple graphics figure on monitor (VGA) when the system register input pulse. The main difficulty is to draw this image only once (for measuring man's reaction time: time between image drawing and the button pressing). I think it'll possible to use FPGA to register input pulse and to generate VGA signal with required parameters. But I don't undestand can the ONLY ONE image frame be drawn at input pulse interrupting or not? 
The main task is to minimize time delays and in this case I can't use the standart solutions. 
For example, using Raspberry Pi or a similar device is accompanied by the necessary of screen refreshing and image drawing binding. This adds a random time delay from 0ms (if the screen refresh time coincides with time of input external pulse which starts drawing figures) to 1/60Hz=16.7ms. 
I need your advices or suggestions. Thanks!

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

@n_gorshenin,

Sounds like a fun challenge!

I think you're going to have some problems, though, based upon your question.  So, let's take a step back for a moment and try to understand VGA.  A VGA signal updates a monitor 60x per second.  If you fail to provide steady HSync or VSync signals, many monitors will get confused and stop displaying.  Further, it takes at least one full frame before any image on the screen is fully there.  Hence, if you wish to draw a complex image, it will still take one frame interval before being drawn.

All of this is to say an offset of between zero and 1/(60Hz) is entirely reasonable.  You will find it difficult to do anything on a smaller interval--even from within an FPGA, since the FPGA would still need to wait for the top of the frame before it can start drawing from the top of the screen and down.

Have you considered trying to synchronize your input pulse with the VGA signal, so that the input pulse takes place at the top of a VGA screen?  Alternatively, you might create your external input pulse, hold it until the top of the screen starts to display, and then use the FPGA to output a new input pulse that now lines up with the display timing.

You might also wish to consider creating a solid color screen for the user to register with, and then have him look into the top left corner of the screen.  This might give you the opportunity to test the human against something less than a frame interval, especially if you lock your input pulse to the frame interval, but ... I can't speak for how well/poorly it might work.

Just some things to consider,

Dan

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this