看图写关系
module top_module (
input [2:0] SW, // R
input [1:0] KEY, // L and clk
output [2:0] LEDR); // Q
always @(posedge KEY[0])
begin
if(KEY[1])
begin
LEDR[0] <= SW[0];
LEDR[1] <= SW[1];
LEDR[2] <= SW[2];
end
else
begin
LEDR[0] <= LEDR[2];
LEDR[1] <= LEDR[0];
LEDR[2] <= LEDR[2]^LEDR[1];
end
end
endmodule
//也可以构建一个子模块来描述DFF
module top_module(
input clk,
input reset, // Active-high synchronous reset to 32'h1
output [31:0] q
);
reg [6:0] i ;
always @(posedge clk)
begin
if(reset) q<=1;
else
begin
for(i=0;i<=31;i++)
begin
if(i==31) q[31]<=q[0]^0;
else if(i==21) q[21]<=q[22]^q[0];
else if(i==1) q[1]<=q[2]^q[0];
else if(i==0) q[0]<=q[1]^q[0];
else q[i]<=q[i+1];
end
end
end
endmodule
线性反馈移位寄存器(linear feedback shift register, LFSR)是指,给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。