aboutsummaryrefslogtreecommitdiff
path: root/rtl/src/alu_a_src_mux.v
blob: 702f92a6b4e346653e66ec20ca7cd7b260ffccc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// alu src_a mux:
// Selects source for alu input a.

module alu_a_src_mux (
  input      [31:0] src_pc, 
  input      [31:0] src_pc_buf,
  input      [31:0] src_rd1,
  input      [31:0] src_rd1_buf,

  input       [2:0] alu_a_src,

  output reg [31:0] alu_a
);

`include "include/consts.vh"

always @(*) begin
  case (alu_a_src)
    ALU_A_SRC_PC:      alu_a = src_pc;
    ALU_A_SRC_PC_BUF:  alu_a = src_pc_buf;
    ALU_A_SRC_RD1:     alu_a = src_rd1;
    ALU_A_SRC_RD1_BUF: alu_a = src_rd1_buf;
    ALU_A_SRC_0:       alu_a = 32'b0;
    default:           alu_a = 32'b0;
  endcase
end

endmodule