Intel® FPGA University Program
University Program Material, Education Boards, and Laboratory Exercises
1174 Discussions

DE2 board VGA Dispaly

Altera_Forum
Honored Contributor II
6,280 Views

Hello All, 

 

I am trying to use the board's SRAM to store an image and dispaly it on the screen.  

I designed a project using QuartusII and was able to manage the 

VGA dispaly timing. I used a reference design from John Loomis Webpage. 

http://www.johnloomis.org/digitallab/vgalab/vgalab3/vgalab3.html which  

is very helpful and nice. However, I am having a problem in dowloading the 

raw image file to the SRAM. My question is:  

How can I get a typical 640 X 480 bitmap image to be stored in the SRAM?  

I tried to use Terasic ImgConv, but it doesn't work :(  

 

I appricate your help. 

 

Thanks
0 Kudos
42 Replies
Altera_Forum
Honored Contributor II
724 Views

Are you using Nios in this ref. design? If you are using it then you can download your raw data file of image (converted from BMP) to the on-board flash and then when NIOS program gets executed it copies your image from flash to sram! 

If you are not using Nios then it would be tough to load image directly. I think terasic provides software which can load image to SRAM using custom-JTAG interface.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

it's easy  

may be you didn't check the "file length"?
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hi monish 

You don't explain, if you want o show a RGB image in the VGA.... 

I tried the same as you, but I began showing a 320x240 8bit grayscale, with my own code in the FPGA. Also, I did a RS232 comunication to pass the data from my PC to the DE2 board, and a simple software in my PC to extract the bmp header from the file to send, and send all usefull bytes of the bmp file to DE2. It's quiet easy. (Avoiding the DE2 control panel use) 

 

Then I did the same, but in 320x240 pixeles in RGB, obviously I use the DE2 on board SRAM to store the image data in both cases, all was succesufully. And all this for like a "learn practique". 

 

To show a 640x480 pixeles in RGB mode on VGA, SRAM is out of space, so I decided to use SDRAM to store the data, I'm trying this now...but I still can't get manage the SDRAM data as fast as I need. 

If you want, or ask some about the FPGA code...I can post it (But I'm so begginer like you...so maybe my code is not very "academic")
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

cómo lo hiciste? 

puedes mandarme tu código para verlo? 

también necesito desplegar una imagen para hacer detección de bordes sobel. 

************ 

how did you do it? 

can you please send me your code to watch it? 

I need to display an image to do an edge sobel detection.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hi. 

Here´s some code to try the 320x240 image. 

Let me know if it was usefull.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Bad luck, my fpga (FLEX10k) does not support the atlpll megafunction. 

But thank you any way.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

You can replace the VGA_CTRL_CLK, and the Play_Clock, with two hardware clocks, then avoid the altpll.

0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Ups, I'm a beginner on FPGA programming, verilog, vhdl and all those languages. 

I really wouldn't know how to do that. 

 

Could you help me out? 

 

Thanx
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hi. 

Hardware clocks mean that you could have two oscillators with the same frequency as the PLL outs, connect it to some external pins of your demo board, and assign in the verilog code that pins as input for clocks. 

You only need at least a minimal knowledge for that. 

 

Like I´m a beginner too, will be not so difficult to understand my code. and where to modify it. 

 

PD: En Inglés es: "Oops" :) 

 

Suerte !!
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Ok, I'll try it. 

Sorry about the ups and the oops, i got my english and my spanish mixed up. 

Gracias!
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Im sorry, im a total beginner and using the DE2-70 board trying to simply get a camera input to the board where it processes RAW to RGB and output to a LCD screen. can you post a video on youtube on how to do what you are saying? that would clear things up so much and im sure other ppl would love it as well! thanks! :D

0 Kudos
Altera_Forum
Honored Contributor II
724 Views

I wasn't able to run it, as my VGA port would only ouput seven colours. 

And yeah, the video would be great!:D
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Oh sorry´. 

That code was made for DE2 board it has VGA DAC chip with 9 bits inputs for RGB each. 

What can I show in the video ?? I post the code :confused: 

 

Regards. 

Alberto.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

maybe just the procedure on how to compile it in quartus? also im sorry i dont speak spanish. i dont really understand the comments in your code :(

0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hi. 

 

Nothing special to compile it in Quartus, just Menu - Processing - Start Compilation. and no special preferences in Quartus selected, just by default values. 

Regarding the comments in Spanish, I will upload a translate table with the meaning of each comment...sorry, I forget about that comments. 

I've not too much time free now for realize a video, but I will, when I'll get some time free. 

 

Regards. 

Alberto.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

that would be great :). i was just wondering if you wrote the entire code yourself? or did you use the sopc builder or nios? or altera monitor program? thanks :)

0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hi. 

What are you talking about ayhoung ?? 

Did you download my code from the# 6 post of this thread ? 

I didn't use NIOS II for this, & Altera monitor program is usefull to check some NIOS II coding.... seems to be that you're misunderstanding what I did. 

Mi final target was to get 640 x 480 24 bit RGB picture on the VGA out, maybe I continue with this some day, if I'll have some free time.
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Hello everyone, 

 

Can anyone explain to me how to generate the R, G, B signals (used in DE2 board) from a gray image? 

 

let me explain. I have an array of pixels (representing a gray image) stored in the DE2 SRAM. How do I generate the 10-bit VGA_R,VGA_G, VGA_B needed from each pixel? How do I generate VGA_R, VGA_G, and VGA_B from a gray pixel that ranges from 0- 255? 

 

Please help
0 Kudos
Altera_Forum
Honored Contributor II
724 Views

Sorry Monish If I understood correct your question, you have a gray scale image in the SRAM. 

So, you couldn't generate a color image, but, you can get each pixel of the SRAM and then, assign VGA_R = image_pixel, assign VGA_G = image_pixel, assign VGA_B = image_pixel. 

You'll have only eight bits, but if first you shift the data two times left, you'll have a variable of 10 bits to assign to the VGA R,G,B wires. 

Your data will look like this: 10'b 1111111100 for a maximun pixel bright, so 256 differents levels, for this 10 bit D/A DE2 vga chip.
0 Kudos
Altera_Forum
Honored Contributor II
670 Views

I tried it and the image appeared dark (not bright). 

 

But please explain to me why shifting by 2?!!! 

Shifting by 2 is equivalent to multiplying by 4 which makes the range now from 0 --> 1023 (10 bits for VGA_R, VGA_G, VGA_B). Would the image still look the same after the shift? 

 

 

Many Thanks
0 Kudos
Reply