Hardware Acceleration VGA graphics controller

Discussion in 'VHDL' started by KAY, Mar 5, 2013.

  1. KAY

    KAY Guest

    Hi,
    I am trying to implement a graphics controller that takes initial X,Y coordinates and final X,Y coordinates to first store the data in the SRAM frame buffer then display the simple lines to a monitor.

    I can get the CPU to write to all the memory locations one after another but I would like to increase the speed of the process by only taking the initial address of the X,Y coordinates and burst the rest of the data till the final pixel location.

    How would I be able to implement this?

    Thanks,
    Kei
     
    KAY, Mar 5, 2013
    #1
    1. Advertisements

  2. KAY

    1999outback Guest

    DMA, though I'm not sure what that has to do with VHDL.
     
    1999outback, Mar 5, 2013
    #2
    1. Advertisements

  3. KAY

    KAY Guest

    Hi,

    I was thinking about DMA, but I was trying to think of an easier solution, where the CPU doesn't actually get kicked off the buses but just polls the status of the operation until it finishes.

    Yea it would really help if someone could give me some hints on how I could implement this.

    Thanks ,
    Kei
     
    KAY, Mar 5, 2013
    #3
  4. KAY

    Robert Miles Guest

    I've read that some of the current Nvidia graphics boards are already capable of doing this. Nvidia doesn't seem likely to offer much information on how they implemented it, though.
     
    Robert Miles, Mar 6, 2013
    #4
  5. What's the definition of a "simple line"?
    What hardware are you working with? What processor? Do you have any
    other programmable hardware in the system? DMA might accelerate near
    horizontal lines. You could program a GPU to do this. Given this is a
    VHDL newsgroup, does this system have an FPGA?

    If so, the simple-to-understand way is to convert your x,y pair into an
    equation of the classic form y=mx+c and solve it for each x-coordinate.
    However, what is usuall done is to implement Bresenham's algorithm,
    which is a well-known algorithm for joining two points with a line.
    That can be done in VHDL relatively easily.

    Cheers,
    Martin
     
    Martin Thompson, Mar 6, 2013
    #5
  6. KAY

    KAY Guest

    Hi,

    The hardware that I'm using is a softcore 68k on a DE1 development board. I have a separate VGA controller to display the image on the screen.

    I was thinking that I would need to modify my current SRAM controller that would take the start and end X,Y coordinates and be able to fill all the data between by just stepping through consecutive address locations ?

    I really appreciate the replies,

    Kei
     
    KAY, Mar 6, 2013
    #6
  7. KAY

    maleklamari Guest

    Hi,
    By just feeding the init and the stop position to the controller in order to plot the line in-between, you are talking about interpolation, as i understand.
    One solution, i suggest you to go for MatLab MCode embedded in System generator.
    Hope this help.
     
    maleklamari, Mar 8, 2013
    #7
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.