AMC13
Firmwares for the different applications of the AMC13 uTCA board made at Boston University
 All Classes Variables
clock_div.vhd
1 -- clock_div_v6
2 --
3 -- Dave Newbold, March 2013. Rewritten by Paschalis Vichoudis, June 2013
4 --
5 -- $Id$
6 
7 library ieee;
8 use ieee.std_logic_1164.all;
9 --use ieee.numeric_std.all;
10 use ieee.std_logic_unsigned.all;
11 
12 library unisim;
13 use unisim.VComponents.all;
14 
15 entity clock_div is
16  port(
17  clk: in std_logic;
18  d17: out std_logic;
19  d25: out std_logic;
20  d28: out std_logic
21  );
22 
23 end clock_div;
24 
25 architecture rtl of clock_div is
26 
27  signal rst_b: std_logic;
28 
29 begin
30 
31  reset_gen : component srl16
32  port map
33  (
34  a0 => '1' ,
35  a1 => '1' ,
36  a2 => '1' ,
37  a3 => '1' ,
38  clk => clk ,
39  d => '1' ,
40  q => rst_b
41  );
42 
43 
44  process(rst_b, clk)
45  variable cnt : std_logic_vector(27 downto 0);
46  begin
47  if rst_b = '0' then
48  cnt:=(others => '0');
49  elsif rising_edge(clk) then
50  d28 <= cnt(27);
51  d25 <= cnt(24);
52  d17 <= cnt(16);
53  cnt:=cnt+1;
54  end if;
55  end process;
56 
57 end rtl;