我想设计一个可变移位寄存器向右移位,如下所示:
module sr(N,int,out);
input [2:0] N;
input [7:0] in;
output [7:0] out;
assign out={N'b0,input[7,N]}
endmodule
Run Code Online (Sandbox Code Playgroud)
但是,不幸的是 verilog 不允许这种写法。N 应该是常数。关于如何从输入获得移位迭代的任何想法?
Verilog 有一个右移运算符,因此您可以简单地编写:
assign out = in >> N;
Run Code Online (Sandbox Code Playgroud)
额外的位自动用零填充。