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

VGA with NIOS II

Altera_Forum
Honored Contributor II
1,696 Views

Hi.. I'm wondering whether we could write any c programming language in order to create the VGA display in the NIOS II? I'm kind of confuse since PS/2 have the header file but the VGA Controller don't have.  

 

Do we just need to write each pixel to the pixel buffer and it will display by itself or must we write more than that? 

 

Sorry if I'm asking such a simple question. Wondering about it for quite some time.
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
368 Views

I've manage to write a pixel by a pixel but it looks like can't be displayed all (200x200) pixels at once. Is it the timing problem between the nios II and the pixel buffer or because of the for loop? I'm stuck at this point for quite some times already. I tried to used external sram and insert it. but it still show the same problem.  

 

So, I wondering what's the actual problem. Hope someone have some solution for this.
0 Kudos
Altera_Forum
Honored Contributor II
368 Views

Nios II can write to a frame buffer but it will not be able to keep up with the pixel speed to the screen. Typically you implement multiple frame buffers so that one can continuously be displayed while the CPU is populating the next frame. 

 

Normally you use a DMA or a video controller that has an integrated DMA (master) that can fetch the pixels from the frame buffer. So you would have Nios II tell the DMA/controller where the frame buffer lives in memory and let it fetch the completed frame. If there isn't another frame ready by the time the DMA/controller is done then you just tell it to display the same frame again. I'm not familiar with the IP you are using but maybe you can re-use this design I made for the NEEK LCD output using the mSGDMA IP I designed a while back: http://www.alterawiki.com/wiki/modular_sgdma_video_frame_buffer  

 

You'll need a different controller than I'm using since mine is meant for a 800x480 screen, but all you need is something that can accept a stream of data.
0 Kudos
Altera_Forum
Honored Contributor II
368 Views

oh, ok. Thanks a lot for sharing your experience and knowledge. I'll try it and see.. Thansk alot.. ;)

0 Kudos
Reply