将 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 位,这就是您想要的。