module DW_shifter_func (func_data_in, func_data_tc, func_sh,
func_sh_tc, func_sh_mode, data_out_func);
parameter func_data_width = 8;
parameter func_sh_width = 3;
// Passes the widths to the shifter function
parameter data_width = func_data_width;
parameter sh_width = func_sh_width;
// Please add search_path = search_path + {synopsys_root + "/dw/sim_ver"}
// to your .synopsys_dc.setup file (for synthesis) and add
// +incdir+$SYNOPSYS/dw/sim_ver+ to your verilog simulator command line
// (for simulation).
`include "DW_shifter_function.inc"
input [func_data_width-1:0] func_data_in;
input [func_sh_width-1:0] func_sh;
input func_data_tc, func_sh_tc, func_sh_mode;
output [func_data_width-1:0] data_out_func;
reg [func_data_width-1:0] data_out_func;
// infer DW_shifter
always @ (func_data_in or func_data_tc or func_sh
or func_sh_tc or func_sh_mode)
begin
casex({func_data_tc,func_sh_tc}) // synopsys full_case
2'b00: data_out_func = DWF_shifter_uns_uns(func_data_in,func_sh,func_sh_mode);
2'b10: data_out_func = DWF_shifter_tc_uns(func_data_in,func_sh,func_sh_mode);
2'b01: data_out_func = DWF_shifter_uns_tc(func_data_in,func_sh,func_sh_mode);
2'b11: data_out_func = DWF_shifter_tc_tc(func_data_in,func_sh,func_sh_mode);
endcase
end
endmodule