mirror of
https://github.com/aolofsson/oh.git
synced 2025-01-17 20:02:53 +08:00
32 lines
801 B
Verilog
32 lines
801 B
Verilog
module oh_shifter (/*AUTOARG*/
|
|
// Outputs
|
|
out, zero,
|
|
// Inputs
|
|
a, b
|
|
);
|
|
|
|
//###############################################################
|
|
//# Parameters
|
|
//###############################################################
|
|
parameter DW = 64;
|
|
parameter TYPE = "LSL"; //shift type
|
|
//LSL, LSR, or ASR
|
|
//###############################################################
|
|
//# Interface
|
|
//###############################################################
|
|
|
|
//inputs
|
|
input [DW-1:0] a; //first operand
|
|
input [DW-1:0] b; //shift amount
|
|
|
|
//outputs
|
|
output [DW-1:0] out;
|
|
output zero; //set if all output bits are zero
|
|
//TODO: catch shift out?
|
|
|
|
endmodule // oh_shifter
|
|
|
|
|
|
|
|
|