As many edge generators for objects can be incorporated into the design. For now, only a circle and a cube have been implemented.5Although the edge generators aim to always generate a valid edge once per cycle, the pipeline can deal with pauses that are inherent to the algorithm and only save edges when the busy line for each corresponding generator is high.
The pipeline selects one generator - currently tied to the onboard switches on the DE2 - initializes the arguments to the generator, and raises the init line for that generator. The generator will raise its busy line when there is a few valid edge available through its output lines [(Ax, Ay, Az), (Bx, By, Bz)], and raise done when it is done. done is asserted for as long as init is high. Deasserting init and waiting one cycle will reset the module. As long as the generator is designed with this format and communication method, the generator will work with the driving circuitry in the objects pipeline.
For each edge that is generated and saved, edge_count is incremented.