Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //detector.v
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Company:
- // Engineer:
- //
- // Create Date: 10:53:09 05/13/2010
- // Design Name:
- // Module Name: detector
- // Project Name:
- // Target Devices:
- // Tool versions:
- // Description:
- //
- // Dependencies:
- //
- // Revision:
- // Revision 0.01 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module detector(
- input i_clk,
- input bnt_ena,
- input i_rst,
- input i_seq,
- output reg [7:0] leds
- );
- integer clk_divider;
- reg slow_clk;
- reg[2:0]estado;
- localparam integer
- est1=1,
- est2=2,
- est3=3,
- est4=4,
- est5=5,
- est6=6;
- always @ (posedge i_clk or posedge i_rst)
- begin
- if (i_rst)
- begin
- clk_divider<=0;
- slow_clk<=1'b0;
- end
- else if (bnt_ena)
- begin
- if (clk_divider == 9999999)
- begin
- slow_clk <= ~slow_clk;
- clk_divider<=0;
- end
- else
- clk_divider<=clk_divider+1;
- end
- end
- always @ (posedge slow_clk or posedge i_rst)
- begin
- if (i_rst)
- estado<=est1;
- else
- case (estado)
- est1:
- if (i_seq)
- estado<=est2;
- else
- estado<=est1;
- est2:
- if (~i_seq)
- estado<=est3;
- else
- estado<=est2;
- est3:
- if (~i_seq)
- estado<=est4;
- else
- estado<=est2;
- est4:
- if (i_seq)
- estado<=est5;
- else
- estado<=est1;
- est5:
- if (~i_seq)
- estado<=est6;
- else
- estado<=est2;
- est6:
- estado<=est6;
- endcase
- end
- always @ (estado)
- begin
- leds=8'b00000000;
- case (estado)
- est1: leds=8'b00000001;
- est2: leds=8'b00000010;
- est3: leds=8'b00000100;
- est4: leds=8'b00001000;
- est5: leds=8'b00010000;
- est6: leds=8'b11100000;
- endcase
- end
- endmodule
Add Comment
Please, Sign In to add comment