我们可以通过查看数字lsb(最右边的位)和26或78到30和80来舍入数字23或74到20和70 ..我怀疑是否可以在verilog代码中使用...我想知道在转换成数字之后这个概念是可能的。
答案 0 :(得分:0)
通常,为了舍入基数n的整数,你加n / 2并除以n(丢弃余数),然后乘以n。所以你上面的例子:
(23+5)/10 * 10 = 20
(28+5)/10 * 10 = 30
使用二进制逻辑执行此操作有点贵,因为您需要进行除法和乘法运算。但是,如果您正在使用基数为2的数字,那么这些操作是免费的,因为它只是一点点转移。
对于二进制的示例,假设您要将61舍入为最接近的8的倍数,即64.在二进制中,61是6'b011101。将8/2(6'b000100)加到此处,得到6'b100001,即65.现在除以8并乘以8.因为这只是向右移3然后向左移3,我们可以简单地将3 lsbs获得6'b100000即64.
答案 1 :(得分:0)
如果您只想让任何寄存器的LSB为零,您可以随时执行此类操作
Panel