如何在Verilog中右移一点?

如何在Verilog中右移一点?,verilog,bit,bit-shift,Verilog,Bit,Bit Shift,我有如下代码: module scheduler(clk, rst, busy, s); input clk, rst; input [3:0] busy; output [3:0] s; reg [3:0] s; wire busyor; assign busyor = busy[0] | busy[1] | busy[2] | busy[3]; always @ (posedge clk or negedge rst) if (!rst) s <=

我有如下代码:

module scheduler(clk, rst, busy, s);

input clk, rst;
input [3:0] busy;

output [3:0] s;

reg [3:0] s;

wire busyor;
assign busyor = busy[0] | busy[1] | busy[2] | busy[3];

always  @ (posedge clk or negedge rst)
  if       (!rst)     s  <=  4'b1000;
  else if  (!busyor)  s  <=  s >>> 1;

endmodule
模块调度程序(时钟、rst、忙、s);
输入时钟,rst;
输入[3:0]忙;
输出[3:0]s;
reg[3:0]s;
电线母线;
分配busyor=busy[0]| busy[1]| busy[2]| busy[3];
始终@(posedge clk或negedge rst)

如果(!rst)s是,那么有一种方法可以实现这一点。例如:

s <= {s[0],s[3:1]}

s谢谢你的回答,它很有效。如果我需要将位从1移到3,该怎么办?@ett:
s