第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