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