Я пытаюсь написать код для формата деления с плавающей запятой IEEE 754 с одинарной точностью в Verilog, а затем синтезировать, чтобы иметь возможность реализовать его на ZedBoard
Ниже приведена формула расчета для деления IEEE 754
X3= (X1/X2)
= ((-1)^S1 (M1 x 2E1)) / ((-1) S2 (M2 x 2E2))
= (-1)^S3 (M1/M2) 2 (E1-E2)
Вот как найти M1 / M2 вообще?
Есть ли алгоритм для вычисления M1 / M2 (в частности, для одинарной точности)?
Вещи, которые я знаю в настоящее время:
- знаковый бит может быть выполнен путем XORing знаковых битов делимого и делителя
- Показатели степени можно рассчитать, вычитая показатель делителя из делителя и затем добавляя смещение (127 в случае одинарной точности)
- Я знаю, что речь идет не об использовании какого-либо алгоритма деления, чтобы просто отправить M1 и M2 в качестве дивиденда и делителя (то есть, это не просто применение целочисленного деления к M1 и M2)
Вещи, которые я хотел знать:
- Алгоритм поиска M1 / M2
- Как реализовать в Verilog (чтобы его можно было синтезировать)?