"wallge" <
[email protected]> writes:
> I would like to superimpose some text into a video stream coming from a
> camera into my fpga.
> Lets say I would like to print the values of several registers to the
> screen as simple ascii text. This text would be superimposed over the
> incoming video stream. Does anyone know if there exists a core, or some
> free vhdl floating around somewhere to do this kind of thing?
> I have seen some cores that do VGA timing generation, then insert pixel
> values values from a look up table (but these dont do text from what I
> can tell, and must be controlled by a microprocessor).
>
What format is your incoming video in?
Assuming it's got something like an LVALID and FVALID (and DVALID if
the clk is not the same as the pixel clock), I would use a BRAM as a
character frame buffer, decode the registers and stick the cahracters
into that. Then another BRAM can have an array of bits indexed by
character (make them 8x8 for ease :-) that can be used by a process
which keeps track of the location of the pixel and which of the
character locations you are in.
You could have a small state machine run at the end of each frame to
update the character frame buffer with the values you want for next
time around during the vblank. Or double buffer.
Or do you really want to have something which looks like
ENTITY reg_to_screen
(
clk
reset
registervalue (31 downto 0)
xloc, yloc
vsync, hsync
video_out);
which you can then instantiate a number of times and then combine the
video_out signals together? If so, you'll end up duplicating the
character->pixels map unnecesarily.
There's some thoughts for you :-)
Cheers,
Martin
--
[email protected]
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html