【问题标题】:how to out fixed point value in verilog?如何在verilog中输出定点值?
【发布时间】:2016-05-30 07:30:18
【问题描述】:

我正在尝试在 verilog 中输出定点值。 一般我用like这个方法(不知道叫什么) 例如,

output = 0.248*5
output = ((0.248 << 8) * 5 ) >> 8;

但在他的情况下,输出只有整数。

我想得到定点分数部分。

verilog中的定点值如何处理?

【问题讨论】:

  • 你能显示输出的定义吗,你是如何得到值的,显示?或传递给另一个模块。 Verilog 没有定点类型,因此您必须使用缩放整数。您还需要定义定点格式。
  • @Morgan 谢谢摩根。实际上,我有两种类型的输出,一种是显示,一种是传递给另一个模块。

标签: verilog fixed-point


【解决方案1】:

用8个小数位计算和显示:

integer out;

initial begin
  out = ((0.248 * 2**8) * 5 );
  $display("%f", $itor(out)*(2.0**-8.0));
end

【讨论】:

  • 能告诉我这个方法叫什么吗?
  • 亲爱的摩根,如果我必须处理浮点计算怎么办,棘手,我可以将浮点计算转换为定点吗?还是我应该换一种方式?
  • 对不起@nashile 不太明白你的问题。你必须定义你的变量,Verilog 只有实数(浮点数)和整数。定点值必须按您需要的小数位数按比例放大。要解释值,即 $display 的值,您会缩小,但该数字存储为整数。它只是缩放整数
  • 您需要在可综合代码中处理浮点数吗?浮点非常棘手。通常需要一个单独的核心来处理它。
  • 您需要在可综合代码中处理浮点数吗? --> 是的,摩根,浮点数很棘手?我想知道更多当我必须处理浮点时我应该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 2017-01-10
  • 1970-01-01
相关资源
最近更新 更多