| //----------------------------------------------------- | |
| // 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 |