@kenshirriff I implemented restoring/non-restoring dividers earlier this year for an HDL library.
They are both naive impls; the restoring divider is better on Just About Every metric. But the SRT algorithm is based on the non-restoring division by extending quotient digits from (-1, 1) to (-2, -1, 0, 1, 2), among other choices. So I keep the non-restoring divider around so I can use it as a base for whenever I implement SRT.
See here for derivations if interested: https://smolarith.readthedocs.io/en/latest/impl.html#division
@cr1901 @kenshirriff
I'd recommend getting the book "Digital Arithmetic" by Ercegovac et al. for a great chapter on high radix division/sqrt that goes through radix-2, radix-4 and radix-8 quotient digit selection table generation using P-D diagrams, fully worked with the quotient in both adder and carry-save form (slightly different tables).