mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			965 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			965 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
//-----------------------------------------------------
 | 
						|
// Design Name : lfsr
 | 
						|
// File Name   : lfsr.v
 | 
						|
// Function    : Linear feedback shift register
 | 
						|
// Coder       : Deepak Kumar Tala
 | 
						|
//-----------------------------------------------------
 | 
						|
module lfsr    (
 | 
						|
out             ,  // Output of the counter
 | 
						|
enable          ,  // Enable  for counter
 | 
						|
clk             ,  // clock input
 | 
						|
reset              // reset input
 | 
						|
);
 | 
						|
 | 
						|
//----------Output Ports--------------
 | 
						|
output [7:0] out;
 | 
						|
//------------Input Ports--------------
 | 
						|
input enable, clk, reset;
 | 
						|
//------------Internal Variables--------
 | 
						|
reg [7:0] out;
 | 
						|
wire        linear_feedback;
 | 
						|
 | 
						|
//-------------Code Starts Here-------
 | 
						|
assign linear_feedback = !(out[7] ^ out[3]);
 | 
						|
 | 
						|
always @(posedge clk)
 | 
						|
if (reset) begin // active high reset
 | 
						|
  out <= 8'b0 ;
 | 
						|
end else if (enable) begin
 | 
						|
  out <= {out[6],out[5],
 | 
						|
          out[4],out[3],
 | 
						|
          out[2],out[1],
 | 
						|
          out[0], linear_feedback};
 | 
						|
end 
 | 
						|
 | 
						|
endmodule // End Of Module counter
 |