unpriv-isa-asciidoc_20240411
21.“D” Extension,Version 2.2
21.2 NaN Boxing of Narrower Values
risc-v手册中规定了当架构支持多种浮点精度时,通过NaN-boxed来包装低位宽数据类型的数据,具体为:
- NaN Boxed是指用全位宽的NaN格式包装更窄位宽数据类型的数据。有效的NaN Boxed格式是除了n bit(n<FLEN)数据以外,高位为全1,也就是m位宽(n<m<FLEN)的数据作为-qNaN出现。
举个例子:
在RV64架构中,同时支持F、D扩展,单精度浮点数【32’h$(value)】的摆放方式应该是:
{{32{1'b1}},32'h$(value)}
- 检查input格式,如果格式满足正确的NaN-boxed格式,将input的n位有效数据作为输入值,否则将输入值视为n位canonical NaN。
手册规定标准的非数(canonical NaN)格式为:符号位为正,且尾数除MSB以外均为0。
single:0x7fc0_0000
double:0x7ff8_0000_0000_0000