Left/right rotator

Build a 100-bit left/right rotator, with synchronous load and left/right enable. A rotator shifts-in the shifted-out bit from the other end of the register, unlike a shifter that discards the shifted-out bit and shifts in a zero. If enabled, a rotator rotates the bits around and does not modify/discard them.

题目网站

 1 module top_module(
 2     input clk,
 3     input load,
 4     input [1:0] ena,
 5     input [99:0] data,
 6     output reg [99:0] q); 
 7 always @(posedge clk) begin
 8         if(load) begin
 9             q <= data;
10         end
11         else begin
12             case (ena)
13                 2'b01:q <= {q[0],q[99:1]};
14                 2'b10:q <= {q[98:0],q[99]};
15                 default:q <= q;
16             endcase
17         end
18     end
19 
20 endmodule
posted @ 2024-04-11 15:12  江左子固  阅读(10)  评论(0编辑  收藏  举报