Умножение путем суммирования степенных рядов с отрицательными членами
Как вычислить мультипликатор с плавающей запятой в Verilog? До сих пор я обычно использую shift << 1024, затем число с плавающей точкой становится целым числом. Затем я делаю некоторые операции, затем >> 1024, чтобы снова получить дробь.
Например, 0,3545 = 2 ^ -2 + 2 ^ -4 + ...
У меня есть вопрос о другом способе, как это. Я не знаю, откуда взялся минус (-):
0,46194 = 2 ^ -1 - 2 ^ -5 - 2 ^ -7 + 2 ^ -10.Я только что посмотрел на это у кого-то. но, как вы видите, это представляется так
0,46194 = 2 ^ -2 + 2 ^ -3 + 2 ^ -4 + 2 ^ -6 + 2 ^ -, 7 + 2 ^ -10 + ....Я не понимаю, как он узнает, что минус используется?
Как мы узнаем, когда минус нужен для этого? Кроме того, как я могу подать заявку на Verilog RTL?
ОБНОВЛЕНИЕ: я понимаю концепцию использования минуса в действии. Но есть ли другой способ уравнения или методологии, что можно сделать, чтобы уменьшить выражение, а умножить на степень 2?
ОБНОВЛЕНИЕ: как мы можем использовать этот метод в Verilog? например, я наклонился 0,46194 = 2 ^ -1 - 2 ^ -5 - 2 ^ -7 + 2 ^ -10. тогда этот код был написан как это в verilog. 0.011101101 = 'hED =' d237. Итак, вопрос в том, как мы можем применить его к заявке в Verilog?
ОБНОВЛЕНИЕ: сэр, пожалуйста, проверьте это? Есть небольшая разница в результате.
0,46194 = 0,011101101. Я просто попробовал вот так0,0111011010.100T10T01= 2 ^ -1 - 2 ^ -4 + 2 ^ -5 - 2 ^ -7 + 2 ^ -9. = 0,462890625Что-то другое. Что я не прав?