【发布时间】:2013-11-22 01:35:57
【问题描述】:
我为基本的浮点加法器编写了一个verilog 代码。该算法包括一个 63 位比较器来获取结果的符号。
if (a[62:0]>b[62:0])
sign_result = a[63];
else
sign_result = b[63];
有没有办法减少比较器的大小或任何其他方法仍然得到符号结果?
【问题讨论】:
标签: verilog
我为基本的浮点加法器编写了一个verilog 代码。该算法包括一个 63 位比较器来获取结果的符号。
if (a[62:0]>b[62:0])
sign_result = a[63];
else
sign_result = b[63];
有没有办法减少比较器的大小或任何其他方法仍然得到符号结果?
【问题讨论】:
标签: verilog
您的比较器本质上是在复制您的加法操作,必须根据您的描述对其进行签名。你的数字是什么格式的?他们大概已经签名了,那么为什么你的加法器不只是给出正确的正或负结果呢?为什么需要比较器?
【讨论】:
只有当你的代码做的比你真正需要的多时,你才能优化你得到的逻辑。然后诀窍是说服编译器了解您不需要的位,以便对其进行优化。
除了比较a 和b 之外,您能否将answer 与0 进行比较(相当于只看符号位)?
【讨论】: