|
shift移位子模块shift.v代码如下:
module shift (datain, dataout);
input [43:0] datain;
output [43:0] dataout;
wire [43:0] data;
assign data[19:0] = datain[19:0];
// pre_shift p0 (.d4in(datain[23:20]), .d4out(data[23:20]));
// pre_shift p1 (.d4in(datain[27:24]), .d4out(data[27:24]));
// pre_shift p2 (.d4in(datain[31:28]), .d4out(data[31:28]));
// pre_shift p3 (.d4in(datain[35:32]), .d4out(data[35:32]));
// pre_shift p4 (.d4in(datain[39:36]), .d4out(data[39:36]));
// pre_shift p5 (.d4in(datain[43:40]), .d4out(data[43:40]));
genvar i;
generate for (i=0; i<24; i=i+4)
begin : g4i
pre_shift p (.d4in(datain[23+i:20+i]), .d4out(data[23+i:20+i])); //对应第二步各小步下的a操作,此处为6个BCD位的大四加三操作。具体动作见preshift移位预操作子模块。
end
endgenerate
assign dataout = {data[42:0], 1'b0}; //对应第二步各小步下的b操作,此处为全序列的左移移位操作。
endmodule
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|