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

Subversion Repositories System09

[/] [System09/] [trunk/] [rtl/] [System09_Trenz_TE0141/] [clock_synthesis_50.vhd] - Blame information for rev 105

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 105 davidgb
--
2
-- Clock synthesis
3
--
4
-- This module generates the 50 Mhz System Clock
5
-- from the Trenz 30MHz clock using a DCM.  
6
-- The outputs are fed into BUFGs.
7
--
8
library ieee;
9
use ieee.std_logic_1164.ALL;
10
use ieee.numeric_std.ALL;
11
-- synopsys translate_off
12
library UNISIM;
13
use UNISIM.Vcomponents.ALL;
14
-- synopsys translate_on
15
 
16
entity clock_synthesis is
17
  port ( clk_30mhz   : in  std_logic;
18
         sys_clk_out : out std_logic;
19
         locked      : out std_logic);
20
end clock_synthesis;
21
 
22
architecture BEHAVIORAL of clock_synthesis is
23
 
24
  signal clk_30mhz_ibufg : std_logic;
25
 
26
  signal sys_clkfb_in    : std_logic;
27
  signal sys_clkfb_out   : std_logic;
28
  signal sys_clk_in      : std_logic;
29
 
30
  signal gnd1            : std_logic;
31
 
32
  component BUFG
33
    port ( I : in    std_logic;
34
           O : out   std_logic);
35
  end component;
36
 
37
  component IBUFG
38
    port ( I : in    std_logic;
39
           O : out   std_logic);
40
  end component;
41
 
42
  -- Period Jitter with noise (unit interval) for block DCM_INST = 0.04 UI
43
  -- Period Jitter with noise (Peak-to-Peak) for block DCM_INST = 0.86 ns
44
  component DCM
45
    generic( CLK_FEEDBACK          : string     :=  "1X";
46
             CLKDV_DIVIDE          : real       :=  2.000000;
47
             CLKFX_DIVIDE          : integer    :=  1;
48
             CLKFX_MULTIPLY        : integer    :=  4;
49
             CLKIN_DIVIDE_BY_2     : boolean    :=  FALSE;
50
             CLKIN_PERIOD          : real       :=  10.000000;
51
             CLKOUT_PHASE_SHIFT    : string     :=  "NONE";
52
             DESKEW_ADJUST         : string     :=  "SYSTEM_SYNCHRONOUS";
53
             DFS_FREQUENCY_MODE    : string     :=  "LOW";
54
             DLL_FREQUENCY_MODE    : string     :=  "LOW";
55
             DUTY_CYCLE_CORRECTION : boolean    :=  TRUE;
56
             FACTORY_JF            : bit_vector :=  x"C080";
57
             PHASE_SHIFT           : integer    :=  0;
58
             STARTUP_WAIT          : boolean    :=  TRUE;
59
             DSS_MODE              : string     :=  "NONE");
60
    port ( CLKIN    : in    std_logic;
61
           CLKFB    : in    std_logic;
62
           RST      : in    std_logic;
63
           PSEN     : in    std_logic;
64
           PSINCDEC : in    std_logic;
65
           PSCLK    : in    std_logic;
66
           DSSEN    : in    std_logic;
67
           CLK0     : out   std_logic;
68
           CLK90    : out   std_logic;
69
           CLK180   : out   std_logic;
70
           CLK270   : out   std_logic;
71
           CLKDV    : out   std_logic;
72
           CLK2X    : out   std_logic;
73
           CLK2X180 : out   std_logic;
74
           CLKFX    : out   std_logic;
75
           CLKFX180 : out   std_logic;
76
           STATUS   : out   std_logic_vector (7 downto 0);
77
           LOCKED   : out   std_logic;
78
           PSDONE   : out   std_logic);
79
  end component;
80
 
81
begin
82
 
83
  GND1 <= '0';
84
 
85
  sys_clkin_ibufg_inst : ibufg
86
    port map (i => clk_30mhz,
87
              o => clk_30mhz_ibufg);
88
 
89
  sys_clk_bufg_inst : bufg
90
    port map (i => sys_clk_in,
91
              o => sys_clk_out);
92
 
93
 
94
  sys_fb_bufg_inst : bufg
95
    port map (i => sys_clkfb_in,
96
              o => sys_clkfb_out);
97
 
98
  sys_clk_dcm : dcm
99
    generic map( clk_feedback          =>  "1X",
100
                 clkfx_divide          =>  6,
101
                 clkfx_multiply        =>  10,
102
                 clkin_divide_by_2     =>  FALSE,
103
                 clkin_period          =>  33.333300,
104
                 clkout_phase_shift    =>  "NONE",
105
                 deskew_adjust         =>  "SYSTEM_SYNCHRONOUS",
106
                 dfs_frequency_mode    =>  "LOW",
107
                 dll_frequency_mode    =>  "LOW",
108
                 duty_cycle_correction =>  TRUE,
109
                 factory_jf            =>  x"C080",
110
                 phase_shift           =>  0,
111
                 startup_wait          =>  FALSE)
112
 
113
    port map (clkfb    => sys_clkfb_out,
114
              clkin    => clk_30mhz_ibufg,
115
              dssen    => gnd1,
116
              psclk    => gnd1,
117
              psen     => gnd1,
118
              psincdec => gnd1,
119
              rst      => gnd1,
120
              clkdv    => open,
121
              clkfx    => sys_clk_in,
122
              clkfx180 => open,
123
              clk2x    => open,
124
              clk2x180 => open,
125
              clk0     => sys_clkfb_in,
126
              clk90    => open,
127
              clk180   => open,
128
              clk270   => open,
129
              locked   => locked,
130
              psdone   => open,
131
              status   => open);
132
 
133
end;

powered by: WebSVN 2.1.0

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