设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 1075|回复: 0
收起左侧

Quartus Verilog HDL/FPGA 判断float(32位)/double(64位)IEEE754浮点小数是否运算正确

[复制链接]
发表于 2022-9-1 15:50:36 | 显示全部楼层 |阅读模式
main.png
  1. /*
  2. 判断IEEE754格式浮点小数数据、易语言的 是否运算正确()
  3. 数值正确返回1、运算错误、溢出、INF、NAN返回0
  4. */
  5. module IsCalcOK_float(
  6.         input [31:0] float,                //32位单精度小数输入 (例)小数:123.456 值:32'h42F6E979
  7.         output ok                                        //返回结果
  8. );
  9.         assign ok = !(&float[30:23]);                //指数位全1 不是INF就是NAN
  10. endmodule

  11. module IsCalcOK_double(
  12.         input [63:0] double,                //64位双精度小数输入 (例)小数:123.456 值:64'h405EDD2F1A9FBE77
  13.         output ok                                        //返回结果
  14. );
  15.         assign ok = !(&double[62:52]);        //指数位全1 不是INF就是NAN
  16. endmodule

  17. module main(
  18.         input clk,
  19.         output reg led
  20. );
  21. wire ok_float;
  22. wire ok_double;

  23. IsCalcOK_float u1(
  24.         .float(32'h42F6E979),                //123.456
  25.         .ok(ok_float)
  26. );

  27. IsCalcOK_double u2(
  28.         .double(64'h405EDD2F1A9FBE77),        //123.456
  29.         .ok(ok_double)
  30. );

  31. always @(posedge clk) begin
  32.         if(ok_float && ok_double) begin
  33.                 led <= 1'b0;
  34.         end else begin
  35.                 led <= 1'b1;
  36.         end
  37. end
  38. endmodule
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-25 19:04 , Processed in 0.809046 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表