3641 |
kaklik |
1 |
-- file: selectio_iserdes_8bit_ddr_diffin.vhd |
|
|
2 |
-- (c) Copyright 2009 - 2011 Xilinx, Inc. All rights reserved. |
|
|
3 |
-- |
|
|
4 |
-- This file contains confidential and proprietary information |
|
|
5 |
-- of Xilinx, Inc. and is protected under U.S. and |
|
|
6 |
-- international copyright and other intellectual property |
|
|
7 |
-- laws. |
|
|
8 |
-- |
|
|
9 |
-- DISCLAIMER |
|
|
10 |
-- This disclaimer is not a license and does not grant any |
|
|
11 |
-- rights to the materials distributed herewith. Except as |
|
|
12 |
-- otherwise provided in a valid license issued to you by |
|
|
13 |
-- Xilinx, and to the maximum extent permitted by applicable |
|
|
14 |
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND |
|
|
15 |
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES |
|
|
16 |
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING |
|
|
17 |
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- |
|
|
18 |
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and |
|
|
19 |
-- (2) Xilinx shall not be liable (whether in contract or tort, |
|
|
20 |
-- including negligence, or under any other theory of |
|
|
21 |
-- liability) for any loss or damage of any kind or nature |
|
|
22 |
-- related to, arising under or in connection with these |
|
|
23 |
-- materials, including for any direct, or any indirect, |
|
|
24 |
-- special, incidental, or consequential loss or damage |
|
|
25 |
-- (including loss of data, profits, goodwill, or any type of |
|
|
26 |
-- loss or damage suffered as a result of any action brought |
|
|
27 |
-- by a third party) even if such damage or loss was |
|
|
28 |
-- reasonably foreseeable or Xilinx had been advised of the |
|
|
29 |
-- possibility of the same. |
|
|
30 |
-- |
|
|
31 |
-- CRITICAL APPLICATIONS |
|
|
32 |
-- Xilinx products are not designed or intended to be fail- |
|
|
33 |
-- safe, or for use in any application requiring fail-safe |
|
|
34 |
-- performance, such as life-support or safety devices or |
|
|
35 |
-- systems, Class III medical devices, nuclear facilities, |
|
|
36 |
-- applications related to the deployment of airbags, or any |
|
|
37 |
-- other applications that could lead to death, personal |
|
|
38 |
-- injury, or severe property or environmental damage |
|
|
39 |
-- (individually and collectively, "Critical |
|
|
40 |
-- Applications"). Customer assumes the sole risk and |
|
|
41 |
-- liability of any use of Xilinx products in Critical |
|
|
42 |
-- Applications, subject only to applicable laws and |
|
|
43 |
-- regulations governing limitations on product liability. |
|
|
44 |
-- |
|
|
45 |
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS |
|
|
46 |
-- PART OF THIS FILE AT ALL TIMES. |
|
|
47 |
------------------------------------------------------------------------------ |
|
|
48 |
-- User entered comments |
|
|
49 |
------------------------------------------------------------------------------ |
|
|
50 |
-- None |
|
|
51 |
------------------------------------------------------------------------------ |
|
|
52 |
-- |
|
|
53 |
-- EDIT: Only the clock generator buffers here |
|
|
54 |
|
|
|
55 |
|
|
|
56 |
library ieee; |
|
|
57 |
use ieee.std_logic_1164.all; |
|
|
58 |
use ieee.std_logic_unsigned.all; |
|
|
59 |
use ieee.std_logic_arith.all; |
|
|
60 |
use ieee.std_logic_misc.all; |
|
|
61 |
use ieee.numeric_std.all; |
|
|
62 |
|
|
|
63 |
library unisim; |
|
|
64 |
use unisim.vcomponents.all; |
|
|
65 |
|
|
|
66 |
entity iserdes_clock_generator is |
|
|
67 |
port |
|
|
68 |
( |
|
|
69 |
-- Clock and reset signals |
|
|
70 |
CLK_IN_P : in std_logic; -- Differential fast clock from IOB |
|
|
71 |
CLK_IN_N : in std_logic; |
|
|
72 |
CLK_OUT : out std_logic; -- Fast clock output (synchronous to data) |
|
|
73 |
CLK_DIV_OUT : out std_logic; -- Slow clock output |
|
|
74 |
|
|
|
75 |
CLK_RESET : in std_logic); -- Reset signal for Clock circuit |
|
|
76 |
|
|
|
77 |
end iserdes_clock_generator; |
|
|
78 |
|
|
|
79 |
architecture sychro1 of iserdes_clock_generator is |
|
|
80 |
|
|
|
81 |
signal clk_in_int : std_logic; |
|
|
82 |
|
|
|
83 |
begin |
|
|
84 |
|
|
|
85 |
-- Create the clock logic |
|
|
86 |
ibufds_clk_inst : IBUFGDS |
|
|
87 |
generic map ( |
|
|
88 |
DIFF_TERM => TRUE, |
|
|
89 |
IOSTANDARD => "LVDS_25" ) |
|
|
90 |
port map ( |
|
|
91 |
I => CLK_IN_P, |
|
|
92 |
IB => CLK_IN_N, |
|
|
93 |
O => clk_in_int); |
|
|
94 |
|
|
|
95 |
-- High Speed BUFIO clock buffer |
|
|
96 |
bufio_inst : BUFIO |
|
|
97 |
port map ( |
|
|
98 |
O => CLK_OUT, |
|
|
99 |
I => clk_in_int); |
|
|
100 |
|
|
|
101 |
-- BUFR generates the slow clock |
|
|
102 |
clkout_buf_inst : BUFR |
|
|
103 |
generic map ( |
|
|
104 |
SIM_DEVICE => "VIRTEX6", |
|
|
105 |
BUFR_DIVIDE => "4") |
|
|
106 |
port map ( |
|
|
107 |
O => CLK_DIV_OUT, |
|
|
108 |
CE => '1', |
|
|
109 |
CLR => CLK_RESET, |
|
|
110 |
I => clk_in_int ); |
|
|
111 |
|
|
|
112 |
end sychro1; |
|
|
113 |
|
|
|
114 |
|
|
|
115 |
|