⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alu.v

📁 用verilog编写的32位alu部件
💻 V
📖 第 1 页 / 共 2 页
字号:
mux2_1 amux29(level1[28],xin[28],xin[29],shift_num[0]);
mux2_1 amux30(level1[29],xin[29],xin[30],shift_num[0]);
mux2_1 amux31(level1[30],xin[30],xin[31],shift_num[0]);
mux2_1 amux32(level1[31],xin[31],yin[0],shift_num[0]);

mux2_1 bmuxcf(cf[1],cf[0],level1[1],shift_num[1]);
mux2_1 bmux1(level2[0],level1[0],level1[2],shift_num[1]);
mux2_1 bmux2(level2[1],level1[1],level1[3],shift_num[1]);
mux2_1 bmux3(level2[2],level1[2],level1[4],shift_num[1]);
mux2_1 bmux4(level2[3],level1[3],level1[5],shift_num[1]);
mux2_1 bmux5(level2[4],level1[4],level1[6],shift_num[1]);
mux2_1 bmux6(level2[5],level1[5],level1[7],shift_num[1]);
mux2_1 bmux7(level2[6],level1[6],level1[8],shift_num[1]);
mux2_1 bmux8(level2[7],level1[7],level1[9],shift_num[1]);
mux2_1 bmux9(level2[8],level1[8],level1[10],shift_num[1]);
mux2_1 bmux10(level2[9],level1[9],level1[11],shift_num[1]);
mux2_1 bmux11(level2[10],level1[10],level1[12],shift_num[1]);
mux2_1 bmux12(level2[11],level1[11],level1[13],shift_num[1]);
mux2_1 bmux13(level2[12],level1[12],level1[14],shift_num[1]);
mux2_1 bmux14(level2[13],level1[13],level1[15],shift_num[1]);
mux2_1 bmux15(level2[14],level1[14],level1[16],shift_num[1]);
mux2_1 bmux16(level2[15],level1[15],level1[17],shift_num[1]);
mux2_1 bmux17(level2[16],level1[16],level1[18],shift_num[1]);
mux2_1 bmux18(level2[17],level1[17],level1[19],shift_num[1]);
mux2_1 bmux19(level2[18],level1[18],level1[20],shift_num[1]);
mux2_1 bmux20(level2[19],level1[19],level1[21],shift_num[1]);
mux2_1 bmux21(level2[20],level1[20],level1[22],shift_num[1]);
mux2_1 bmux22(level2[21],level1[21],level1[23],shift_num[1]);
mux2_1 bmux23(level2[22],level1[22],level1[24],shift_num[1]);
mux2_1 bmux24(level2[23],level1[23],level1[25],shift_num[1]);
mux2_1 bmux25(level2[24],level1[24],level1[26],shift_num[1]);
mux2_1 bmux26(level2[25],level1[25],level1[27],shift_num[1]);
mux2_1 bmux27(level2[26],level1[26],level1[28],shift_num[1]);
mux2_1 bmux28(level2[27],level1[27],level1[29],shift_num[1]);
mux2_1 bmux29(level2[28],level1[28],level1[30],shift_num[1]);
mux2_1 bmux30(level2[29],level1[29],level1[31],shift_num[1]);
mux2_1 bmux31(level2[30],level1[30],yin[1],shift_num[1]);
mux2_1 bmux32(level2[31],level1[31],yin[2],shift_num[1]);

mux2_1 cmuxcf(cf[2],cf[1],level2[3],shift_num[2]);
mux2_1 cmux1(level3[0],level2[0],level2[4],shift_num[2]);
mux2_1 cmux2(level3[1],level2[1],level2[5],shift_num[2]);
mux2_1 cmux3(level3[2],level2[2],level2[6],shift_num[2]);
mux2_1 cmux4(level3[3],level2[3],level2[7],shift_num[2]);
mux2_1 cmux5(level3[4],level2[4],level2[8],shift_num[2]);
mux2_1 cmux6(level3[5],level2[5],level2[9],shift_num[2]);
mux2_1 cmux7(level3[6],level2[6],level2[10],shift_num[2]);
mux2_1 cmux8(level3[7],level2[7],level2[11],shift_num[2]);
mux2_1 cmux9(level3[8],level2[8],level2[12],shift_num[2]);
mux2_1 cmux10(level3[9],level2[9],level2[13],shift_num[2]);
mux2_1 cmux11(level3[10],level2[10],level2[14],shift_num[2]);
mux2_1 cmux12(level3[11],level2[11],level2[15],shift_num[2]);
mux2_1 cmux13(level3[12],level2[12],level2[16],shift_num[2]);
mux2_1 cmux14(level3[13],level2[13],level2[17],shift_num[2]);
mux2_1 cmux15(level3[14],level2[14],level2[18],shift_num[2]);
mux2_1 cmux16(level3[15],level2[15],level2[19],shift_num[2]);
mux2_1 cmux17(level3[16],level2[16],level2[20],shift_num[2]);
mux2_1 cmux18(level3[17],level2[17],level2[21],shift_num[2]);
mux2_1 cmux19(level3[18],level2[18],level2[22],shift_num[2]);
mux2_1 cmux20(level3[19],level2[19],level2[23],shift_num[2]);
mux2_1 cmux21(level3[20],level2[20],level2[24],shift_num[2]);
mux2_1 cmux22(level3[21],level2[21],level2[25],shift_num[2]);
mux2_1 cmux23(level3[22],level2[22],level2[26],shift_num[2]);
mux2_1 cmux24(level3[23],level2[23],level2[27],shift_num[2]);
mux2_1 cmux25(level3[24],level2[24],level2[28],shift_num[2]);
mux2_1 cmux26(level3[25],level2[25],level2[29],shift_num[2]);
mux2_1 cmux27(level3[26],level2[26],level2[30],shift_num[2]);
mux2_1 cmux28(level3[27],level2[27],level2[31],shift_num[2]);
mux2_1 cmux29(level3[28],level2[28],yin[3],shift_num[2]);
mux2_1 cmux30(level3[29],level2[29],yin[4],shift_num[2]);
mux2_1 cmux31(level3[30],level2[30],yin[5],shift_num[2]);
mux2_1 cmux32(level3[31],level2[31],yin[6],shift_num[2]);

mux2_1 dmuxcf(cf[3],cf[2],level3[7],shift_num[3]);
mux2_1 dmux1(level4[0],level3[0],level3[8],shift_num[3]);
mux2_1 dmux2(level4[1],level3[1],level3[9],shift_num[3]);
mux2_1 dmux3(level4[2],level3[2],level3[10],shift_num[3]);
mux2_1 dmux4(level4[3],level3[3],level3[11],shift_num[3]);
mux2_1 dmux5(level4[4],level3[4],level3[12],shift_num[3]);
mux2_1 dmux6(level4[5],level3[5],level3[13],shift_num[3]);
mux2_1 dmux7(level4[6],level3[6],level3[14],shift_num[3]);
mux2_1 dmux8(level4[7],level3[7],level3[15],shift_num[3]);
mux2_1 dmux9(level4[8],level3[8],level3[16],shift_num[3]);
mux2_1 dmux10(level4[9],level3[9],level3[17],shift_num[3]);
mux2_1 dmux11(level4[10],level3[10],level3[18],shift_num[3]);
mux2_1 dmux12(level4[11],level3[11],level3[19],shift_num[3]);
mux2_1 dmux13(level4[12],level3[12],level3[20],shift_num[3]);
mux2_1 dmux14(level4[13],level3[13],level3[21],shift_num[3]);
mux2_1 dmux15(level4[14],level3[14],level3[22],shift_num[3]);
mux2_1 dmux16(level4[15],level3[15],level3[23],shift_num[3]);
mux2_1 dmux17(level4[16],level3[16],level3[24],shift_num[3]);
mux2_1 dmux18(level4[17],level3[17],level3[25],shift_num[3]);
mux2_1 dmux19(level4[18],level3[18],level3[26],shift_num[3]);
mux2_1 dmux20(level4[19],level3[19],level3[27],shift_num[3]);
mux2_1 dmux21(level4[20],level3[20],level3[28],shift_num[3]);
mux2_1 dmux22(level4[21],level3[21],level3[29],shift_num[3]);
mux2_1 dmux23(level4[22],level3[22],level3[30],shift_num[3]);
mux2_1 dmux24(level4[23],level3[23],level3[31],shift_num[3]);
mux2_1 dmux25(level4[24],level3[24],yin[7],shift_num[3]);
mux2_1 dmux26(level4[25],level3[25],yin[8],shift_num[3]);
mux2_1 dmux27(level4[26],level3[26],yin[9],shift_num[3]);
mux2_1 dmux28(level4[27],level3[27],yin[10],shift_num[3]);
mux2_1 dmux29(level4[28],level3[28],yin[11],shift_num[3]);
mux2_1 dmux30(level4[29],level3[29],yin[12],shift_num[3]);
mux2_1 dmux31(level4[30],level3[30],yin[13],shift_num[3]);
mux2_1 dmux32(level4[31],level3[31],yin[14],shift_num[3]);

mux2_1 emuxcf(c32,cf[2],level4[15],shift_num[4]);
mux2_1 emux1(level5[0],level4[0],level4[16],shift_num[4]);
mux2_1 emux2(level5[1],level4[1],level4[17],shift_num[4]);
mux2_1 emux3(level5[2],level4[2],level4[18],shift_num[4]);
mux2_1 emux4(level5[3],level4[3],level4[19],shift_num[4]);
mux2_1 emux5(level5[4],level4[4],level4[20],shift_num[4]);
mux2_1 emux6(level5[5],level4[5],level4[21],shift_num[4]);
mux2_1 emux7(level5[6],level4[6],level4[22],shift_num[4]);
mux2_1 emux8(level5[7],level4[7],level4[23],shift_num[4]);
mux2_1 emux9(level5[8],level4[8],level4[24],shift_num[4]);
mux2_1 emux10(level5[9],level4[9],level4[25],shift_num[4]);
mux2_1 emux11(level5[10],level4[10],level4[26],shift_num[4]);
mux2_1 emux12(level5[11],level4[11],level4[27],shift_num[4]);
mux2_1 emux13(level5[12],level4[12],level4[28],shift_num[4]);
mux2_1 emux14(level5[13],level4[13],level4[29],shift_num[4]);
mux2_1 emux15(level5[14],level4[14],level4[30],shift_num[4]);
mux2_1 emux16(level5[15],level4[15],level4[31],shift_num[4]);
mux2_1 emux17(level5[16],level4[16],yin[15],shift_num[4]);
mux2_1 emux18(level5[17],level4[17],yin[16],shift_num[4]);
mux2_1 emux19(level5[18],level4[18],yin[17],shift_num[4]);
mux2_1 emux20(level5[19],level4[19],yin[18],shift_num[4]);
mux2_1 emux21(level5[20],level4[20],yin[19],shift_num[4]);
mux2_1 emux22(level5[21],level4[21],yin[20],shift_num[4]);
mux2_1 emux23(level5[22],level4[22],yin[21],shift_num[4]);
mux2_1 emux24(level5[23],level4[23],yin[22],shift_num[4]);
mux2_1 emux25(level5[24],level4[24],yin[23],shift_num[4]);
mux2_1 emux26(level5[25],level4[25],yin[24],shift_num[4]);
mux2_1 emux27(level5[26],level4[26],yin[25],shift_num[4]);
mux2_1 emux28(level5[27],level4[27],yin[26],shift_num[4]);
mux2_1 emux29(level5[28],level4[28],yin[27],shift_num[4]);
mux2_1 emux30(level5[29],level4[29],yin[28],shift_num[4]);
mux2_1 emux31(level5[30],level4[30],yin[29],shift_num[4]);
mux2_1 emux32(level5[31],level4[31],yin[30],shift_num[4]);
always@(level5 or functional)
begin
   if(functional==2'b00)
      out={level5[0],level5[1],level5[2],level5[3],level5[4],level5[5],level5[6],level5[7],level5[8],level5[9],level5[10],level5[11],level5[12],level5[13],level5[14],level5[15],level5[16],level5[17],level5[18],level5[19],level5[20],level5[21],level5[22],level5[23],level5[24],level5[25],level5[26],level5[27],level5[28],level5[29],level5[30],level5[31]};
   else out=level5;
end
endmodule

module mux2_1(out,a,b,sel);
output  out;
input a,b;
input  sel;
assign out=sel? b:a;
endmodule

module mux4_1_1bit(out,in0,in1,in2,in3,sel);
output out;
input in0,in1,in2,in3;
input [1:0] sel;
reg  out; 
always @(in0 or in1 or in2 or in3 or sel)
begin case(sel)
         2'b00:out=in0;
         2'b01:out=in1;
         2'b10:out=in2;
         default:out=in3;
endcase
end
endmodule

module mux4_1_32bit(out,in0,in1,in2,in3,sel);
output [31:0] out;
input [31:0] in0,in1,in2,in3;
input [1:0] sel;
reg [31:0] out; 
always @(in0 or in1 or in2 or in3 or sel)
begin case(sel)
         2'b00:out=in0;
         2'b01:out=in1;
         2'b10:out=in2;
         default:out=in3;
endcase
end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -