Аппаратное обеспечение для "A div B" с фиксированной точкой A и B
Мне нужен способ вычислить, сколько раз число с фиксированной точкой B содержится в числе с фиксированной точкой A. Что-то вроде целочисленного деления, но для нецелых операндов. Мне нужно спроектировать аппаратный блок для этой операции. Мое первое предположение - использовать деление как сдвиг, вычитание и остановку, когда я достигну дробной части, но, возможно, вы знаете лучшие способы ее найти
1 ответ
Если я вас правильно понимаю, вы хотите целую часть дробного деления, т.е.
C = floor(A / B)
Теперь дробное деление ничем не отличается от целочисленного деления, кроме корректировки десятичной точки, если вы представляете A = a * 2^-n
а также B = b * 2^-m
ты получаешь
C = floor(A / B) = floor((a / b) * 2^(-n-m))
Таким образом, вы можете использовать алгоритм деления для целых чисел (который по существу сдвиг и вычитание) без изменений и игнорировать (округлить вниз) наименее значимый n+m
биты или, что более эффективно, просто прекратите итерацию, как только вы достигнете десятичной точки.