我正在做一个关于数字滤波器的项目。我需要知道如何将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位零连接并添加?
答案 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位,这是您想要的。