the line drawer I built has a lot of interesting features and tricks I used to get the speed to 2 ticks per pixel:
the line drawer is 5 bit, so it has a 32x32 screen
the line drawer can draw lines at any angles
the time it takes for the line drawer to start drawing the first pixels is about 6 seconds
the build has 2 cores which are running at 4 ticks each and both have their own incrementors and decrementors that interact with a screen. Components like the screen, incrementors and adders have all been customized to work at high speeds.
the algorithm I am using is Bresenham's, which I adjusted to work with two cores. what the algorithm does is start drawing the pixels from both ends of the line, doing this comes with some symmetry problems, so I adjust the second core by adding 1 to it's initial value.
I got each core to be 4 ticks by using two 3 tick CCAs and having them compute "Ans + (2dy - 2dx)" and "Ans + 2dy" at the same time and decide which is correct at the output. credit to the idea goes to "DemRedstoneOp", but I build all of the Redstone myself.
the incrementor/ decrementors have also been heavily modified, because I needed one that would work on a 4 tick clock and the common designs all use torches.
the line drawer has inputs for two points, which will be the two end points of the line.
there is a button to start drawing the line.
there is a button for stopping the line from drawing (this will also happen when the line is done drawing).
there is a button for clearing the screen.
Comments
Temporary Denied
There currently is an issue when you accidentally spam the start button.
It loops forever then (internally).
One can still fix the state by starting the machine again. But this should not be the case for a Senior build.
There also should be an indicator if it is running or not.
Else good build - for as much as I can tell.
I am not sure about the Senior requirements yet, have to ask other staffs.