Re:The DooM-chip: no CPU, no opcodes, no instruction counter
by floppy123 on Sunday May 10, 2020 @12:35PM
(#23133925)
Question is: How far will you go, fully playable level?
Re:The DooM-chip: no CPU, no opcodes, no instruction counter
by sylefeb on Monday May 11, 2020 @02:48PM
(#23145554)
Unsure, I definitely would like to have fully working environments that can be explored interactively (with proper BSP collisions, doors/lifts, blinking lights etc). Everything is stored in BRAM, unsure the sprites would fit (maybe a few, or at lower res, but I did not look into that yet). When this gets released I hope this will also be reused/expanded.
My initial objective was more about creating some non-trivial hardware using the language I am working on, as well as learning how to implement and optimize algorithms in the context of FPGA. Due to my background in graphics / game programming, revisiting the Doom renderer was a perfect test case! Now that I have this first prototype I want to optimize and fine tune it some more, before adding too many features -- especially as this is meant to serve as a tutorial/example for the language.
I agree the state index can be seen as an instruction counter, albeit into very specialized instructions: there are no two same instructions in a given module, each is uniquely implementing a precise subpart of the algorithm. Also the states decide the flow and select the next state, there is no list of instructions you could program or re-arrange. So I wanted to capture this idea that the algorithm is completely embedded into the circuit itself, which is not capable of doing anything else.
There is definitely a very interesting trade-off between a general instruction set and an extremely specialized state machine like here - combining both seems promising?