www.pudn.com > x86.rar > shift16Arith.v, change:2007-12-05,size:1308b


module shift16Arith(shiftOut, shiftIn, count); 
input [15:0] shiftIn; 
input [63:0] count; 
output [15:0] shiftOut; 
reg [15:0] shiftOut; 
 
 
always@(shiftIn or count) 
 begin 
  case(count) 
   5'd1: 
     shiftOut = {shiftIn[15], shiftIn[15:1]}; 
 
   5'd2: 
     shiftOut = {{2{shiftIn[15]}}, shiftIn[15:2]}; 
 
   5'd3: 
     shiftOut = {{3{shiftIn[15]}}, shiftIn[15:3]}; 
 
   5'd4: 
     shiftOut = {{4{shiftIn[15]}}, shiftIn[15:4]}; 
 
   5'd5: 
     shiftOut = {{5{shiftIn[15]}}, shiftIn[15:5]}; 
 
   5'd6: 
     shiftOut = {{6{shiftIn[15]}}, shiftIn[15:6]}; 
 
   5'd7: 
     shiftOut = {{7{shiftIn[15]}}, shiftIn[15:7]}; 
 
   5'd8: 
     shiftOut = {{8{shiftIn[15]}}, shiftIn[15:8]}; 
 
   5'd9: 
     shiftOut = {{9{shiftIn[15]}}, shiftIn[15:9]}; 
 
   5'd10: 
     shiftOut = {{10{shiftIn[15]}}, shiftIn[15:10]}; 
 
   5'd11: 
     shiftOut = {{11{shiftIn[15]}}, shiftIn[15:11]}; 
 
   5'd12: 
     shiftOut = {{12{shiftIn[15]}}, shiftIn[15:12]}; 
 
   5'd13: 
     shiftOut = {{13{shiftIn[15]}}, shiftIn[15:13]}; 
 
   5'd14: 
     shiftOut = {{14{shiftIn[15]}}, shiftIn[15:14]}; 
 
   5'd15: 
     shiftOut = {{15{shiftIn[15]}}, shiftIn[15:15]}; 
 
   5'd16: 
     shiftOut = {16{shiftIn[15]}}; 
 
   default: 
     begin 
       shiftOut = shiftIn; 
     end 
  endcase 
 
 end 
endmodule