|
发表于 2004-5-3 23:40:36
|
显示全部楼层
怎样在一个时钟周期完成移位功能
抱歉,只会用Verilog,以循环左移为例:
case(N) //N必须小于32
0: q[31:0] <= d[31:0];
1: q[31:0] <= {d[30:0], d[31]};
2: q[31:0] <= {d[29:0], d[31:30]};
3: q[31:0] <= {d[28:0], d[31:29]};
……
31: q[31:0] <= {d[0], d[31:1]};
endcase
如果是非循环的左移,更简单:
q<= d << N;
都是可综合的,没有问题。
|
|