我刚刚开始使用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
我只是想知道$签名是什么。我试过谷歌搜索它,但我得到了一堆关于签名数学的结果(不是关于这个功能)。我认为以$开头的函数仅用于测试平台代码。这个功能有什么作用?还有一个地方可以获得verilog函数列表吗?
答案 0 :(得分:3)
有许多Verilog系统功能可用于合成以及测试平台。大多数可合成函数执行某种算术或逻辑转换。 SystemVerilog已经使用强制转换或内置方法替换了大多数$函数。
在这个例子中,$ signed的使用对我没有意义,因为比较的结果总是1 - 但是无符号值,并且该结果将与另一个1位表达式一起使用。所以$ signed没有做任何事情。如果值需要扩展到更大的宽度,或者在关系操作中,则仅将值转换为signed是有意义的。
中找到功能列表