根据以下内容在systemVerilog中舍入实际类型的最佳方法是什么:
案例积极:
如果fraction >= 0.5
---> round返回"整数部分" + 1(例如4.5 ---> 5)
如果fraction < 0.5
---&gt; round返回&#34;整数部分&#34; (例如4.2 ---&gt; 4)
案例否定:
如果fraction >= 0.5
---&gt; round返回&#34;整数部分&#34; -1(例如-4.5 ---> -5)
如果fraction < 0.5
---&gt; round返回&#34;整数部分&#34; (例如-4.2 ---&gt; -4)
答案 0 :(得分:1)
IEEE Std 1800-2012 LRM。
中详细描述了舍入实数到整数IEEE Std 1800-2012§6.12.2转换
实数应通过将实数四舍五入到最接近的整数而不是截断它来转换为整数。当实数被分配给整数时,将发生隐式转换。如果实数的小数部分恰好为0.5,则应从零开始舍入。
IEEE Std 1800-2012§20.5转化功能
$rtoi
通过截断实数值将实数值转换为整数类型(例如,123.45变为123)。$rtoi
不同于将实数值转换为整数或其他整数类型,因为转换将执行舍入而不是截断。 直接为整数类型指定实数值也会舍入而不是截断。
根据LRM,int_val = 4.5
或int_val = int'(4.5)
都将变为5. int_val = -4.5
或int_val = int'(-4.5)
都将变为-5。
根据模拟器的不同,直接赋值和逐行转换可能会有不同的性能。我认为套管是完善的,因为对于任何人来说,检查代码和模拟器都更明确。加上铸造可以更好地控制钻头宽度。