verilog code for berral shifter
verilog code for berral shifter BERRAL SHIFTER module bshift ( input [ 7 : 0 ] a , input [ 2 : 0 ] sh , input left , right , output reg [ 7 : 0 ] b) ; always @( a,sh ) begin if (left) begin case ( sh ) 3b000 : b = a ; 3b001 : b = a<< 1 ; 3b010 : b = a<< 2 ; 3b011 : b = a<< 3 ; 3b100 : b = a<< 4 ; 3b101 : b = a<< 5 ; 3b110 : b = a<< 6 ; 3b111 : b = a<< 7 ; endcase end if (right) begin case ( sh ) 3b000 : b = a ; 3b001 : b = a>> 1 ; 3b010 : b = a>> 2 ; 3b011 : b = a>> 3 ; 3b100 : b = a>> 4 ; 3b101 : b = a>> 5 ; 3b110 : b = a>> 6 ; 3b111 : b = a>> 7 ; endcase end end endmodule TESTBENCH module bshift_tb ; reg [ 7 : 0 ] a ; reg [ 2 : 0 ] sh , left , right ; wire [ 7 : 0 ] b ; bshift bs ( a , sh , left , right , b ) ; initial begin sh = 3b000 ; a = 8b11111111 ; left = 1b1 ; right = 1b0 ; $monitor($time , , "lef" , "ft = " , left , , "rig" , "ht = ...