| module trapAddr #( | |
| parameter A = 16 | |
| ) ( | |
| input [ 2:0] trapSel | |
| , input [A-1:0] pc | |
| , output reg [A-1:0] cpc | |
| ); | |
| always @* | |
| case(trapSel) | |
| 3'b000 : cpc = pc; | |
| 3'b001 : cpc = 16'h0400; | |
| 3'b010 : cpc = 16'h0800; | |
| 3'b011 : cpc = 16'h0c00; | |
| 3'b100 : cpc = 16'h0000; | |
| 3'b101 : cpc = 16'h0000; | |
| 3'b110 : cpc = 16'h0000; | |
| 3'b111 : cpc = pc + 2'd2; | |
| endcase | |
| endmodule |