在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1610|回复: 8

[原创] 数据相等,但比较出错

[复制链接]
发表于 2022-6-1 10:10:36 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
有如下代码
real time1,time2;
#3.1ns
time1=$realtime;
#4.0ns
time2=realtime
if((time2-time1) != 4.0)
    $display(error)
结果一直是报错的,为啥呢
 楼主| 发表于 2022-6-1 10:15:55 来自手机 | 显示全部楼层
在log里面也打印了time2-time1的值,就是4.0呢
发表于 2022-6-1 10:16:29 | 显示全部楼层
打印一下time1和time2看看两个值是不是相差4ns呗
 楼主| 发表于 2022-6-1 10:24:28 来自手机 | 显示全部楼层


Ivy_Ly 发表于 2022-6-1 10:16
打印一下time1和time2看看两个值是不是相差4ns呗


也打印了,就是差4.0ns
发表于 2022-6-1 10:37:33 | 显示全部楼层
real_time的返回值是带小数的完整实数,这边写4.0可能还不够完整,根据你的 时间单位/时间精度(例如1ns/1ps) 中的时间精度(1ps),可以试试4.000
发表于 2022-6-1 12:16:16 | 显示全部楼层
浮点数不适合==
发表于 2022-6-2 00:36:36 | 显示全部楼层
神奇啊,试了下,只有第一次#3.1ns后面才会进去那条件,3.2~3.9ns都没事儿
加法和!=都支持real类型,是不是跟工具有关系,感觉得深入编译器,snapshot研究了
发表于 2022-6-2 09:59:09 来自手机 | 显示全部楼层
realtime本质上是浮点数,浮点数不是精确的数,有ε误差。
发表于 2022-6-2 20:55:33 | 显示全部楼层
浮点数咋能想等呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-14 22:30 , Processed in 0.029947 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表