I must be misunderstanding how to use the cordic divider. I can find now way to finagle it to divide a 32-bit number into another 32-bit number in the manner needed for my solution.
In my use case, both dividend and divisor are left justified so that bit 31 of both is always set to 1. What differs between them is expressed in the remainder of the bits after bit 31, and also in the two exponent registers that hold the scaling factor for each.
Lets take a simple example without reference to scaling:
A = 0x80000000
B = 0x80000000
X = A/B
The result I need for my solution is:
What I get instead is:
The code for this is somewhat like:
I also tried QFRAC, with no luck.
My current bit-banging code works well but consumes a huge number of cycles. I will try to post that next, if I can figure out how to format it so it's not all squished up against the left column.
(Edited for corrections)