首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在system verilog中求实数/短数的符号、尾数和指数

如何在system verilog中求实数/短数的符号、尾数和指数
EN

Stack Overflow用户
提问于 2019-07-10 05:33:32
回答 1查看 1.2K关注 0票数 1

我需要在系统verilog代码中建立浮点数学模型,这基本上需要我在系统verilog: real/shortreal中操作浮点数。我需要的能力来确定尾数,指数和符号的浮点数。

这个问题的c解决方案是将其类型转换为一个整型指针,然后使用移位运算符:How to get the sign, mantissa and exponent of a floating point number

如果系统verilog支持短实数上的部分/位选择运算符,则函数将如下所示:

代码语言:javascript
复制
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

输出应该是一个短值/实数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 14:52:12

由于这是调试浮点实现时的一个有用功能,因此SystemVerilog具有内置的转换函数(用于IEEE754):

代码语言:javascript
复制
shortreal  r;
bit        sign;
bit [7:0]  exp;
bit [22:0] mantissa;

r = $bitstoshortreal({sign, exp, mantissa}); // Convert from floating point parts to shortreal
{sign, exp, mantissa} = $shortrealtobits(r); // Convert from short real to floating point parts
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56960782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档