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

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [rtl/] [techmap/] [pll/] [SysPLL_tech.vhd] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 sergeykhbr
-----------------------------------------------------------------------------
2
--! @file
3
--! @copyright Copyright 2015 GNSS Sensor Ltd. All right reserved.
4
--! @author    Sergey Khabarov - sergeykhbr@gmail.com
5
--! @brief     Implementation of the SysPLL_tech entity
6
--! @details   This module file be included in all projects.
7
------------------------------------------------------------------------------
8
 
9
--! Standard library
10
library ieee;
11
use ieee.std_logic_1164.all;
12
 
13
--! "Virtual" components declarations library.
14
library techmap;
15
use techmap.gencomp.all;
16
 
17
--! @brief   SysPLL_tech entity declaration ("Virtual" PLL).
18
--! @details This module instantiates the certain PLL implementation
19
--!          depending generic technology argument.
20
entity SysPLL_tech is
21
  generic (
22
    tech    : integer range 0 to NTECH := 0 --! PLL implementation selector
23
  );
24
  port
25
  (
26
    --! Reset value. Active high.
27
    i_reset           : in     std_logic;
28
    --! Input clock from the external oscillator (default 200 MHz)
29
    i_clk_tcxo        : in     std_logic;
30
    --! System Bus clock 100MHz/40MHz (Virtex6/Spartan6)
31
    o_clk_bus         : out    std_logic;
32
    --! PLL locked status.
33
    o_locked          : out    std_logic
34
  );
35
end SysPLL_tech;
36
 
37
--! SysPLL_tech architecture declaration.
38
architecture rtl of SysPLL_tech is
39
  component SysPLL_inferred is
40
  port (
41
    CLK_IN      : in     std_logic;
42
    CLK_OUT1    : out    std_logic;
43
    RESET       : in     std_logic;
44
    LOCKED      : out    std_logic );
45
  end component;
46
 
47
  component SysPLL_v6 is
48
  port (
49
    CLK_IN      : in     std_logic;
50
    CLK_OUT1    : out    std_logic;
51
    RESET       : in std_logic;
52
    LOCKED      : out std_logic );
53
  end component;
54
 
55
  component SysPLL_k7 is
56
  port (
57
    CLK_IN      : in     std_logic;
58
    CLK_OUT1    : out    std_logic;
59
    RESET     : in     std_logic;
60
    LOCKED    : out    std_logic );
61
  end component;
62
 
63
  component SysPLL_micron180 is
64
  port (
65
    CLK_IN      : in     std_logic;
66
    CLK_OUT1    : out    std_logic;
67
    RESET       : in     std_logic;
68
    LOCKED      : out    std_logic );
69
  end component;
70
 
71
begin
72
 
73
   xv6 : if tech = virtex6 generate
74
     pll0 : SysPLL_v6 port map (i_clk_tcxo, o_clk_bus, i_reset, o_locked);
75
   end generate;
76
 
77
   xv7 : if tech = kintex7 generate
78
     pll0 : SysPLL_k7 port map (i_clk_tcxo, o_clk_bus, i_reset, o_locked);
79
   end generate;
80
 
81
   inf : if tech = inferred generate
82
     pll0 : SysPLL_inferred port map (i_clk_tcxo, o_clk_bus, i_reset, o_locked);
83
   end generate;
84
 
85
   m180 : if tech = micron180 generate
86
     pll0 : SysPLL_micron180 port map (i_clk_tcxo, o_clk_bus, i_reset, o_locked);
87
   end generate;
88
 
89
end;

powered by: WebSVN 2.1.0

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