Home-made computer based on FPGA & ARM
Uploader Comments (MrLambdaUser)
All Comments (30)
-
ok so there's no documentation for the source...can i get a copy of your mentalware instead ?
-
What you've built is great! How big is the physical system? Also, what were the time and money costs?
-
Yes, it's a very good idea to separate it into parts like CPU --> [ Command decoder --> Drawing modules --> Video buffer --> VGA frame generator ]. Recently, I have been looking at the Video Buffer part, and the timing is very difficult. I don't know if I need to use SDRAM, or SRAM for the speed. Even with the double buffering, I still have to access the RAM very many times. For the RAM interface, do you make a 'memory controller' and have a FIFO there as well?
-
WoW Really impressiv and tricky, you are slowing down rendering instead of skipping frames for an constant game speed ;)
This is so awesome. I'm a college student and I wanted to start my own project over this break for building a very simple GPU in VHDL. I've looked online for material, but I still can't figure out how to start at all. I don't want a complex GPU to start with. Only something that can draw lines and pixels. Then I will expand to triangles and shading. Could you help set me in the right direction?
makorihi 2 months ago
@makorihi - Response part 1/3
Hello makorihi! Here's a possible solution : first, you need to do a VGA frame generator able to display a simple video buffer stored in RAM. So, you will be able to draw graphics (pixel by pixel) with a processor.
Then, for drawing accelerated pictures (without stretching and rotation), lines, rectangles, etc., working by layer is needed.
...
MrLambdaUser 2 months ago
@makorihi - Response part 2/3
A solution consists to make a mini-GPU that can draw these in a specific order into the VGA buffer (at this point, you need to modify the VGA frame generator for manage double-buffering). A typical structure for this GPU is a command interpreter (e.g: "draw pict. at pos X,Y") that sequence the drawning into the video buffer using dedicated blocks (line drawner, pict. drawner,...).
...
MrLambdaUser 2 months ago
@makorihi - Response part 3/3
Other interessant things : Using a FIFO for the GPU commands and 'pipeline' all drawing operations.
In summary : CPU --> [ Command decoder --> Drawing modules --> Video buffer --> VGA frame generator ]
...it's a good start and this can give very good results ;)
MrLambdaUser 2 months ago
hey MrLambda, et all, this is pretty awesome, especially learning. props for documenting so well, its just too bad some people cant appreciate. awesome job! do you have a site? code repo? etc?
brianfreardon 2 months ago
@brianfreardon
We have quickly implemented and programed this system. So, the VHDL/C++ sources are largely too less commented, and still less documented..... That's mainly why we haven't shared the project.
MrLambdaUser 2 months ago