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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [ds_dma64/] [pcie_src/] [pcie_core64_m1/] [source_artix7/] [cl_a7pcie_x4_pcie_pipe_misc.vhd] - Blame information for rev 48

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 46 dsmv
-------------------------------------------------------------------------------
2
--
3
-- (c) Copyright 2010-2011 Xilinx, Inc. All rights reserved.
4
--
5
-- This file contains confidential and proprietary information
6
-- of Xilinx, Inc. and is protected under U.S. and
7
-- international copyright and other intellectual property
8
-- laws.
9
--
10
-- DISCLAIMER
11
-- This disclaimer is not a license and does not grant any
12
-- rights to the materials distributed herewith. Except as
13
-- otherwise provided in a valid license issued to you by
14
-- Xilinx, and to the maximum extent permitted by applicable
15
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
16
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
17
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
18
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
19
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
20
-- (2) Xilinx shall not be liable (whether in contract or tort,
21
-- including negligence, or under any other theory of
22
-- liability) for any loss or damage of any kind or nature
23
-- related to, arising under or in connection with these
24
-- materials, including for any direct, or any indirect,
25
-- special, incidental, or consequential loss or damage
26
-- (including loss of data, profits, goodwill, or any type of
27
-- loss or damage suffered as a result of any action brought
28
-- by a third party) even if such damage or loss was
29
-- reasonably foreseeable or Xilinx had been advised of the
30
-- possibility of the same.
31
--
32
-- CRITICAL APPLICATIONS
33
-- Xilinx products are not designed or intended to be fail-
34
-- safe, or for use in any application requiring fail-safe
35
-- performance, such as life-support or safety devices or
36
-- systems, Class III medical devices, nuclear facilities,
37
-- applications related to the deployment of airbags, or any
38
-- other applications that could lead to death, personal
39
-- injury, or severe property or environmental damage
40
-- (individually and collectively, "Critical
41
-- Applications"). Customer assumes the sole risk and
42
-- liability of any use of Xilinx products in Critical
43
-- Applications, subject only to applicable laws and
44
-- regulations governing limitations on product liability.
45
--
46
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
47
-- PART OF THIS FILE AT ALL TIMES.
48
--
49
-------------------------------------------------------------------------------
50
-- Project    : Series-7 Integrated Block for PCI Express
51
-- File       : cl_a7pcie_x4_pcie_pipe_misc.vhd
52 48 dsmv
-- Version    : 1.10
53 46 dsmv
-- Description: Misc PIPE module for 7-SeriesPCIe Block
54
--
55
--
56
--
57
----------------------------------------------------------------------------------
58
 
59
library ieee;
60
   use ieee.std_logic_1164.all;
61
 
62
entity cl_a7pcie_x4_pcie_pipe_misc is
63
  generic (
64
     PIPE_PIPELINE_STAGES                         : integer := 0  -- 0 - 0 stages, 1 - 1 stage, 2 - 2 stages
65
  );
66
  port (
67
    pipe_tx_rcvr_det_i                           : in std_logic;                        -- PIPE Tx Receiver Detect
68
    pipe_tx_reset_i                              : in std_logic;                        -- PIPE Tx Reset
69
    pipe_tx_rate_i                               : in std_logic;                        -- PIPE Tx Rate
70
    pipe_tx_deemph_i                             : in std_logic;                        -- PIPE Tx Deemphasis
71
    pipe_tx_margin_i                             : in std_logic_vector(2 downto 0);     -- PIPE Tx Margin
72
    pipe_tx_swing_i                              : in std_logic;                        -- PIPE Tx Swing
73
    pipe_tx_rcvr_det_o                           : out std_logic;                       -- Pipelined PIPE Tx Receiver Detect
74
    pipe_tx_reset_o                              : out std_logic;                       -- Pipelined PIPE Tx Reset
75
    pipe_tx_rate_o                               : out std_logic;                       -- Pipelined PIPE Tx Rate
76
    pipe_tx_deemph_o                             : out std_logic;                       -- Pipelined PIPE Tx Deemphasis
77
    pipe_tx_margin_o                             : out std_logic_vector(2 downto 0);    -- Pipelined PIPE Tx Margin
78
    pipe_tx_swing_o                              : out std_logic;                       -- Pipelined PIPE Tx Swing
79
    pipe_clk                                     : in std_logic;                        -- PIPE Clock
80
    rst_n                                        : in std_logic                         -- Reset
81
  );
82
end cl_a7pcie_x4_pcie_pipe_misc;
83
 
84
architecture rtl of cl_a7pcie_x4_pcie_pipe_misc is
85
 
86
  --******************************************************************//
87
  -- Reality check.                                                   //
88
  --******************************************************************//
89
 
90
  constant TCQ                                    : integer := 1;  -- clock to out delay model
91
 
92
  signal pipe_tx_rcvr_det_q                       : std_logic;
93
  signal pipe_tx_reset_q                          : std_logic;
94
  signal pipe_tx_rate_q                           : std_logic;
95
  signal pipe_tx_deemph_q                         : std_logic;
96
  signal pipe_tx_margin_q                         : std_logic_vector(2 downto 0);
97
  signal pipe_tx_swing_q                          : std_logic;
98
 
99
  signal pipe_tx_rcvr_det_qq                      : std_logic;
100
  signal pipe_tx_reset_qq                         : std_logic;
101
  signal pipe_tx_rate_qq                          : std_logic;
102
  signal pipe_tx_deemph_qq                        : std_logic;
103
  signal pipe_tx_margin_qq                        : std_logic_vector(2 downto 0);
104
  signal pipe_tx_swing_qq                         : std_logic;
105
 
106
begin
107
 
108
  pipe_stages_0 : if (PIPE_PIPELINE_STAGES = 0) generate
109
 
110
    pipe_tx_rcvr_det_o <= pipe_tx_rcvr_det_i;
111
    pipe_tx_reset_o <= pipe_tx_reset_i;
112
    pipe_tx_rate_o <= pipe_tx_rate_i;
113
    pipe_tx_deemph_o <= pipe_tx_deemph_i;
114
    pipe_tx_margin_o <= pipe_tx_margin_i;
115
    pipe_tx_swing_o <= pipe_tx_swing_i;
116
 
117
  end generate;                         -- pipe_stages_0
118
 
119
  pipe_stages_1 : if (PIPE_PIPELINE_STAGES = 1) generate
120
 
121
    process (pipe_clk)
122
    begin
123
      if (pipe_clk'event and pipe_clk = '1') then
124
 
125
        if (rst_n = '1') then
126
 
127
          pipe_tx_rcvr_det_q <= '0' after (TCQ)*1 ps;
128
          pipe_tx_reset_q <= '1' after (TCQ)*1 ps;
129
          pipe_tx_rate_q <= '0' after (TCQ)*1 ps;
130
          pipe_tx_deemph_q <= '1' after (TCQ)*1 ps;
131
          pipe_tx_margin_q <= "000" after (TCQ)*1 ps;
132
          pipe_tx_swing_q <= '0' after (TCQ)*1 ps;
133
 
134
        else
135
 
136
          pipe_tx_rcvr_det_q <= pipe_tx_rcvr_det_i after (TCQ)*1 ps;
137
          pipe_tx_reset_q <= pipe_tx_reset_i after (TCQ)*1 ps;
138
          pipe_tx_rate_q <= pipe_tx_rate_i after (TCQ)*1 ps;
139
          pipe_tx_deemph_q <= pipe_tx_deemph_i after (TCQ)*1 ps;
140
          pipe_tx_margin_q <= pipe_tx_margin_i after (TCQ)*1 ps;
141
          pipe_tx_swing_q <= pipe_tx_swing_i after (TCQ)*1 ps;
142
 
143
        end if;
144
      end if;
145
    end process;
146
 
147
    pipe_tx_rcvr_det_o <= pipe_tx_rcvr_det_q;
148
    pipe_tx_reset_o <= pipe_tx_reset_q;
149
    pipe_tx_rate_o <= pipe_tx_rate_q;
150
    pipe_tx_deemph_o <= pipe_tx_deemph_q;
151
    pipe_tx_margin_o <= pipe_tx_margin_q;
152
    pipe_tx_swing_o <= pipe_tx_swing_q;
153
 
154
  end generate;                        -- pipe_stages_1
155
 
156
  pipe_stages_2 : if (PIPE_PIPELINE_STAGES = 2) generate
157
 
158
    process (pipe_clk)
159
    begin
160
      if (pipe_clk'event and pipe_clk = '1') then
161
 
162
        if (rst_n = '1') then
163
 
164
          pipe_tx_rcvr_det_q <= '0' after (TCQ)*1 ps;
165
          pipe_tx_reset_q <= '1' after (TCQ)*1 ps;
166
          pipe_tx_rate_q <= '0' after (TCQ)*1 ps;
167
          pipe_tx_deemph_q <= '1' after (TCQ)*1 ps;
168
          pipe_tx_margin_q <= "000" after (TCQ)*1 ps;
169
          pipe_tx_swing_q <= '0' after (TCQ)*1 ps;
170
 
171
          pipe_tx_rcvr_det_qq <= '0' after (TCQ)*1 ps;
172
          pipe_tx_reset_qq <= '1' after (TCQ)*1 ps;
173
          pipe_tx_rate_qq <= '0' after (TCQ)*1 ps;
174
          pipe_tx_deemph_qq <= '1' after (TCQ)*1 ps;
175
          pipe_tx_margin_qq <= "000" after (TCQ)*1 ps;
176
          pipe_tx_swing_qq <= '0' after (TCQ)*1 ps;
177
        else
178
 
179
          pipe_tx_rcvr_det_q <= pipe_tx_rcvr_det_i after (TCQ)*1 ps;
180
          pipe_tx_reset_q <= pipe_tx_reset_i after (TCQ)*1 ps;
181
          pipe_tx_rate_q <= pipe_tx_rate_i after (TCQ)*1 ps;
182
          pipe_tx_deemph_q <= pipe_tx_deemph_i after (TCQ)*1 ps;
183
          pipe_tx_margin_q <= pipe_tx_margin_i after (TCQ)*1 ps;
184
          pipe_tx_swing_q <= pipe_tx_swing_i after (TCQ)*1 ps;
185
 
186
          pipe_tx_rcvr_det_qq <= pipe_tx_rcvr_det_q after (TCQ)*1 ps;
187
          pipe_tx_reset_qq <= pipe_tx_reset_q after (TCQ)*1 ps;
188
          pipe_tx_rate_qq <= pipe_tx_rate_q after (TCQ)*1 ps;
189
          pipe_tx_deemph_qq <= pipe_tx_deemph_q after (TCQ)*1 ps;
190
          pipe_tx_margin_qq <= pipe_tx_margin_q after (TCQ)*1 ps;
191
          pipe_tx_swing_qq <= pipe_tx_swing_q after (TCQ)*1 ps;
192
 
193
        end if;
194
      end if;
195
    end process;
196
 
197
    pipe_tx_rcvr_det_o <= pipe_tx_rcvr_det_qq;
198
    pipe_tx_reset_o <= pipe_tx_reset_qq;
199
    pipe_tx_rate_o <= pipe_tx_rate_qq;
200
    pipe_tx_deemph_o <= pipe_tx_deemph_qq;
201
    pipe_tx_margin_o <= pipe_tx_margin_qq;
202
    pipe_tx_swing_o <= pipe_tx_swing_qq;
203
 
204
  end generate;                        -- pipe_stages_2
205
 
206
end rtl;
207
 
208
 
209
 

powered by: WebSVN 2.1.0

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