【发布时间】:2015-12-16 15:52:41
【问题描述】:
我刚刚开始使用verilog。我正在查看某人编写的浮动乘法的一些示例代码,我遇到了这个......
if ($signed(b_e == -1023) && (b_m == 0)) begin
z[63] <= 1;
z[62:52] <= 2047;
z[51] <= 1;
z[50:0] <= 0;
state <= put_z;
end
我只是想知道 $signed 是什么。我试着用谷歌搜索它,但我得到了一堆关于签名数学的结果(不是关于这个函数)。我认为以 $ 开头的函数仅适用于测试台代码。这个函数有什么作用?还有一个地方可以让我获得verilog函数的列表吗?
【问题讨论】:
-
参考 SV LRM 1800-2012:“... $signed 和 $unsigned 系统函数可用于转换表达式的符号性。”。所以,如果我们有
logic signed [7:0] myreg;和myreg=$signed(4'b1100),那么MSB被认为是有符号位和myreg=-4。 -
在您的情况下,检查条件是否
b_e等于...10000000001返回的结果是 0 或 1。使用$signed会产生什么差异仍然是个谜... -
我只是感到困惑,因为我认为美元符号函数仅用于模拟。
-
综合工具解析和忽略系统函数,因此甚至可以包含在可综合模型中。
-
嗯,但我想知道在那里添加签名有什么意义。
标签: verilog