Merge remote-tracking branch 'origin/master' into xc7mux
[yosys.git] / tests / asicworld / code_hdl_models_lfsr.v
1 //-----------------------------------------------------
2 // Design Name : lfsr
3 // File Name : lfsr.v
4 // Function : Linear feedback shift register
5 // Coder : Deepak Kumar Tala
6 //-----------------------------------------------------
7 module lfsr (
8 out , // Output of the counter
9 enable , // Enable for counter
10 clk , // clock input
11 reset // reset input
12 );
13
14 //----------Output Ports--------------
15 output [7:0] out;
16 //------------Input Ports--------------
17 input enable, clk, reset;
18 //------------Internal Variables--------
19 reg [7:0] out;
20 wire linear_feedback;
21
22 //-------------Code Starts Here-------
23 assign linear_feedback = !(out[7] ^ out[3]);
24
25 always @(posedge clk)
26 if (reset) begin // active high reset
27 out <= 8'b0 ;
28 end else if (enable) begin
29 out <= {out[6],out[5],
30 out[4],out[3],
31 out[2],out[1],
32 out[0], linear_feedback};
33 end
34
35 endmodule // End Of Module counter