Мне нужно смоделировать математику с плавающей точкой в системном коде verilog, который в основном требует от меня манипулирования плавающими числами в системном verilog: реальный / короткий.Мне нужна способность определять мантиссу, экспоненту и знак числа с плавающей запятой.
Решение этой проблемы c состоит в том, чтобы ввести его в указатель типа int и затем использовать операторы сдвига: Как получить знак, мантиссу и показатель степени числа с плавающей запятой
Если система verilog поддерживает операторы выбора части / бита для короткого действительного числа, функция должна выглядеть следующим образом:
function automatic shortreal conv2shortreal (bit sign, bit[7:0] exp, bit[22:0] mantissa);
conv2shortreal[31] = sign;
conv2shortreal[30:23] = exp;
conv2shortreal[22:0] = mantissa;
endfunction
выходные данные должны быть короткими / действительными