mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +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
 |