将 n 位添加到另一个数字的前 n 位
Adding n bits to the first n bits of another number
我正在做一个关于数字滤波器的项目。我需要知道如何将 4 位二进制数添加到 8 位数字的最高 4 位。例如:
0 1 0 0 0 0 0 0 //x
+ 1 0 1 0 //y
= 1 1 1 0 0 0 0 0 //z
我可以使用类似这样的代码添加吗?
z=[7:4]x + y
还是我必须将 4 位数字与另外四个零连接起来并添加?
假设y
是4位数,x
是8位数:
如果你这样做
assign z = x[7:4] + y
那么你正在做一个 4 位加法,z
的最高有效部分用 0 填充。
如果你这样做
assign z = y[7:4] + x
您将从合成器收到一条错误消息,因为 y
的下标错误。
照此操作:
assign z = {y,4'b0} + x
它与 x
执行 8 位加法,y
的值向左移动 4 位,这就是您想要的。
我正在做一个关于数字滤波器的项目。我需要知道如何将 4 位二进制数添加到 8 位数字的最高 4 位。例如:
0 1 0 0 0 0 0 0 //x
+ 1 0 1 0 //y
= 1 1 1 0 0 0 0 0 //z
我可以使用类似这样的代码添加吗?
z=[7:4]x + y
还是我必须将 4 位数字与另外四个零连接起来并添加?
假设y
是4位数,x
是8位数:
如果你这样做
assign z = x[7:4] + y
那么你正在做一个 4 位加法,z
的最高有效部分用 0 填充。
如果你这样做
assign z = y[7:4] + x
您将从合成器收到一条错误消息,因为 y
的下标错误。
照此操作:
assign z = {y,4'b0} + x
它与 x
执行 8 位加法,y
的值向左移动 4 位,这就是您想要的。