22 lines
465 B
Systemverilog
22 lines
465 B
Systemverilog
|
`include "cpu_pkg.svh"
|
||
|
|
||
|
import cpu_pkg::*;
|
||
|
|
||
|
module alu16 (
|
||
|
input logic [15:0] operand_in_i,
|
||
|
output logic [15:0] operand_out_o,
|
||
|
|
||
|
input logic increment_i,
|
||
|
input logic decrement_i
|
||
|
);
|
||
|
|
||
|
logic [15:0] op_inc;
|
||
|
logic [15:0] op_dec;
|
||
|
|
||
|
assign op_inc = (operand_in_i + 16'h01);
|
||
|
assign op_dec = (operand_in_i - 16'h01);
|
||
|
|
||
|
assign operand_out_o = ({16{increment_i}} & op_inc) |
|
||
|
({16{decrement_i}} & op_dec);
|
||
|
endmodule : alu16
|