So, I have a final project comming up and I was thinking about doing a raycaster type program on my FPGA. I was wondering if ya'll think I can get everything to fit, and get the timming tight enough? I feel like there should be a problem given that FPGAs are so much slower and ASICs, and the raycasters I program in C ran at only 60FPS. But honestly, I cannot find a problem. It seems like I could easily get the timming down. At 640x480 @ 20 FPS I would have 162ns to play with per pixel, that seems like a pretty good amount of time. Also, the program could be divided easily, I was thinking 4 pixel pielines working in parellel using the 10MB DRAM as the frame buffer. My sinusoidal lookup tables can also easily occupy the DRAM, or FLASH since they are constants. I'm not sure the DRAM bandwidth, but the sinusoids only load 3 per horizontal line (IE:trivial), and I only need about 100MB/s on the pixels(256 colors) (actually now that I think about it, textures would probably be difficult, so 256 colors is even pushign it, only really need 16 colors, so half that bandwidth although textures would be good if there is time). Keyboard and mouse handlers would also be programmed of course for simple movement logic. So, you could have a basic proof of concept raytracing program running for hardware and actually have a game that looks more like DOOM and the silly FROGGER and SPACE INVADERS type games everyone else will probably do.
EDIT: so I've been doing more work and it DEFFINITELY looks doable, but still I am a little skeptical, because the timming issues seems so easy to meet, but running a similar program on my 2GHz P4 back in the day only got the same framerate that I am expecting to get now running at 6MHz (and almost all of the calculations run on the 13kHz cycles since they are resued for every pixel). Just amazing how much better a specific purpose integrated circuit can be (Like a GPU) compared to a general purpose CPU.
EDIT: so I've been doing more work and it DEFFINITELY looks doable, but still I am a little skeptical, because the timming issues seems so easy to meet, but running a similar program on my 2GHz P4 back in the day only got the same framerate that I am expecting to get now running at 6MHz (and almost all of the calculations run on the 13kHz cycles since they are resued for every pixel). Just amazing how much better a specific purpose integrated circuit can be (Like a GPU) compared to a general purpose CPU.
