aluctrl.v
来自「基于4个mips核的noc设计」· Verilog 代码 · 共 78 行
V
78 行
module ALUCTRL(functionCode, ALUop, Shamt, ALUctrl); input [5:0] functionCode; wire [5:0] functionCode; input [4:0] ALUop; wire [4:0] ALUop; input [4:0] Shamt; wire [4:0] Shamt; output [5:0] ALUctrl; reg [5:0] ALUctrl; reg [4:0] aluop; reg [4:0] shamt; reg [5:0] aluCtrl; reg [5:0] functioncode; always @(functionCode or ALUop or Shamt) begin : aluctrl_thread aluop = ALUop; shamt = Shamt; case (aluop) //synopsys parallel_case 0: aluCtrl = 6'b000010; 1: aluCtrl = 6'b000110; 2: begin functioncode = functionCode; functioncode = functioncode[5:0]; case (functioncode) //synopsys parallel_case 0: case (shamt) //synopsys parallel_case 1: aluCtrl = 6'b001010; 2: aluCtrl = 6'b001011; 8: aluCtrl = 6'b001100; default : begin aluCtrl = 6'b000000; end endcase 2: case (shamt) //synopsys parallel_case 1: aluCtrl = 6'b001101; 2: aluCtrl = 6'b001110; 8: aluCtrl = 6'b001111; default : begin aluCtrl = 6'b000000; end endcase 3: case (shamt) //synopsys parallel_case 1: aluCtrl = 6'b010000; 2: aluCtrl = 6'b010001; 8: aluCtrl = 6'b010010; default : begin aluCtrl = 6'b000000; end endcase 32: aluCtrl = 6'b000010; 33: aluCtrl = 6'b000011; 35: aluCtrl = 6'b000110; 36: aluCtrl = 6'b000000; 37: aluCtrl = 6'b000001; 38: aluCtrl = 6'b000100; 42: aluCtrl = 6'b000111; 43: aluCtrl = 6'b001000; default : begin aluCtrl = 6'b000000; end endcase end 3: aluCtrl = 6'b000011; 4: aluCtrl = 6'b000000; 5: aluCtrl = 6'b000001; 6: aluCtrl = 6'b000100; 7: aluCtrl = 6'b000111; 8: aluCtrl = 6'b001000; 9: aluCtrl = 6'b001001; default : begin aluCtrl = 6'b000000; end endcase ALUctrl = aluCtrl; endendmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?