OpenCores
URL https://opencores.org/ocsvn/manchesterwireless/manchesterwireless/trunk

Subversion Repositories manchesterwireless

[/] [manchesterwireless/] [trunk/] [waitForStart/] [waitForStart.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 kingmu
-----------------------------------------------------------------------------
2
--      Copyright (C) 2009 Sam Green
3
--
4
-- This code is free software; you can redistribute it and/or
5
-- modify it under the terms of the GNU Lesser General Public
6
-- License as published by the Free Software Foundation; either
7
-- version 2.1 of the License, or (at your option) any later version.
8
--
9
-- This code is distributed in the hope that it will be useful,
10
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
-- Lesser General Public License for more details.
13
--
14 3 kingmu
-- Waits for data_i to high for INTERVAL_QUADRUPLE FPGA clocks then
15
-- sends ready_o high
16 2 kingmu
--
17
-----------------------------------------------------------------------------
18
 
19
library ieee;
20
use ieee.std_logic_1164.all;
21
use ieee.numeric_std.all;
22
use work.globals.all;
23
 
24
entity waitForStart is
25
  port (
26
    data_i : in  std_logic;
27
    clk_i : in  std_logic;
28
    rst_i : in std_logic;
29
    ready_o : out  std_logic
30
  );
31 3 kingmu
end;
32 2 kingmu
 
33
architecture behavioral of waitForStart is
34
begin
35
  process (clk_i, rst_i)
36
    variable counter : integer;
37
    variable lock : std_logic;
38
  begin
39
    if (rst_i = '1') then
40
      ready_o <= '0';
41
      counter := 0;
42
      lock := '0';
43
    elsif rising_edge(clk_i) then
44
      if data_i = '1' then
45
        counter := counter + 1;
46
      else
47
        counter := 0;
48
      end if;
49
 
50
      if counter > INTERVAL_QUADRUPLE or lock = '1' then
51
        ready_o <= '1';
52
        lock := '1';
53
      else
54
        ready_o <= '0';
55
      end if;
56
    end if;
57
  end process;
58
 
59 3 kingmu
 end;
60 2 kingmu
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.