verilog 编5位lfsr线性反馈寄存器 5个D触发器和1个异或门组成的 用于 modelsim仿真用

谢谢 啊 急用 别的 位数的也行

第1个回答  2012-05-17
8位的:
`define UD #1

module LFSR
(
//Input ports.
SYSCLK,
RST_B,

//Output ports.
DO

);

//==========================================================================
//Input and output declaration
//==========================================================================

input SYSCLK;
input RST_B;

output [7:0] DO;

//==========================================================================
//Wire and reg declaration
//==========================================================================

wire SYSCLK;
wire RST_B;

reg [7:0] DO;

//==========================================================================
//Wire and reg in the module
//==========================================================================

parameter INIT = 8'b1001_0001;
parameter COFF = 8'b1111_0011;

wire [7:0] DO_N;

//==========================================================================
//Logic
//==========================================================================

//M4 count.
always @ (posedge SYSCLK or negedge RST_B)
begin
if(!RST_B)
DO <= `UD INIT;
else
DO <= `UD DO_N;
end

assign DO_N[0] = DO[7];
assign DO_N[1] = COFF[6] ? DO[1]^DO[7] : DO[0];
assign DO_N[2] = COFF[5] ? DO[2]^DO[7] : DO[1];
assign DO_N[3] = COFF[4] ? DO[3]^DO[7] : DO[2];
assign DO_N[4] = COFF[3] ? DO[4]^DO[7] : DO[3];
assign DO_N[5] = COFF[2] ? DO[5]^DO[7] : DO[4];
assign DO_N[6] = COFF[1] ? DO[6]^DO[7] : DO[5];
assign DO_N[7] = COFF[0] ? DO[7]^DO[7] : DO[6];

endmodule
相似回答