如何在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