将n位添加到另一个数字的前n位

时间:2015-03-29 14:45:21

标签: bit-manipulation verilog addition

我正在做一个关于数字滤波器的项目。我需要知道如何将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位数与另外4位零连接并添加?

1 个答案:

答案 0 :(得分:1)

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