如何在系统Verilog中使用实数计算模运算?

时间:2018-07-22 23:07:22

标签: operators system-verilog modulo test-bench

例如:

real a = 10.2917541278;
real modout;
assign modout = (a % 3.142);

当前不支持此功能,我收到一条错误消息,说数字必须是整数。

我不希望这段代码被合成。这只是在测试台上。

1 个答案:

答案 0 :(得分:1)

实数数学中模数的概念有点奇怪,因为两个实数相除的结果应该是实数(忽略零)。但是,如果您希望在C / C ++中使用fmod之类的东西,则可以这样实现:

real x, d, r;
assign r = x - d * $floor(x / d); // Implements fmod(x, d) or "x % d" for real x, d