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

Subversion Repositories pcie_sg_dma

[/] [pcie_sg_dma/] [branches/] [Virtex6/] [ML605_ISE13.3/] [ipcore_dir_ISE13.3/] [v6_pcie_v1_7_x1/] [source/] [pcie_pipe_misc_v6.vhd] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 barabba
-------------------------------------------------------------------------------
2
--
3
-- (c) Copyright 2009-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    : Virtex-6 Integrated Block for PCI Express
51
-- File       : pcie_pipe_misc_v6.vhd
52
-- Version    : 1.7
53
---- Description: Misc PIPE module for Virtex6 PCIe Block
54
----
55
----
56
----
57
----------------------------------------------------------------------------------
58
 
59
library ieee;
60
   use ieee.std_logic_1164.all;
61
 
62
entity pcie_pipe_misc_v6 is
63
   generic (
64
      PIPE_PIPELINE_STAGES                         : integer := 0                -- 0 - 0 stages, 1 - 1 stage, 2 - 2 stages
65
 
66
   );
67
   port (
68
      pipe_tx_rcvr_det_i                           : in std_logic;
69
      pipe_tx_reset_i                              : in std_logic;
70
      pipe_tx_rate_i                               : in std_logic;
71
      pipe_tx_deemph_i                             : in std_logic;
72
      pipe_tx_margin_i                             : in std_logic_vector(2 downto 0);
73
      pipe_tx_swing_i                              : in std_logic;
74
      pipe_tx_rcvr_det_o                           : out std_logic;
75
      pipe_tx_reset_o                              : out std_logic;
76
      pipe_tx_rate_o                               : out std_logic;
77
      pipe_tx_deemph_o                             : out std_logic;
78
      pipe_tx_margin_o                             : out std_logic_vector(2 downto 0);
79
      pipe_tx_swing_o                              : out std_logic;
80
      pipe_clk                                     : in std_logic;
81
      rst_n                                        : in std_logic
82
   );
83
end pcie_pipe_misc_v6;
84
 
85
architecture v6_pcie of pcie_pipe_misc_v6 is
86
 
87
   --******************************************************************//
88
   -- Reality check.                                                   //
89
   --******************************************************************//
90
 
91
   constant TCQ                                    : integer := 1;              -- clock to out delay model
92
 
93
   signal pipe_tx_rcvr_det_q                       : std_logic;
94
   signal pipe_tx_reset_q                          : std_logic;
95
   signal pipe_tx_rate_q                           : std_logic;
96
   signal pipe_tx_deemph_q                         : std_logic;
97
   signal pipe_tx_margin_q                         : std_logic_vector(2 downto 0);
98
   signal pipe_tx_swing_q                          : std_logic;
99
 
100
   signal pipe_tx_rcvr_det_qq                      : std_logic;
101
   signal pipe_tx_reset_qq                         : std_logic;
102
   signal pipe_tx_rate_qq                          : std_logic;
103
   signal pipe_tx_deemph_qq                        : std_logic;
104
   signal pipe_tx_margin_qq                        : std_logic_vector(2 downto 0);
105
   signal pipe_tx_swing_qq                         : std_logic;
106
begin
107
 
108
   v6pcie0 : 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;
118
   v6pcie1 : if (PIPE_PIPELINE_STAGES = 1) generate
119
 
120
      process (pipe_clk)
121
      begin
122
         if (pipe_clk'event and pipe_clk = '1') then
123
 
124
            if (rst_n = '1') then
125
 
126
               pipe_tx_rcvr_det_q <= '0' after (TCQ)*1 ps;
127
               pipe_tx_reset_q <= '1' after (TCQ)*1 ps;
128
               pipe_tx_rate_q <= '0' after (TCQ)*1 ps;
129
               pipe_tx_deemph_q <= '1' after (TCQ)*1 ps;
130
               pipe_tx_margin_q <= "000" after (TCQ)*1 ps;
131
               pipe_tx_swing_q <= '0' after (TCQ)*1 ps;
132
            else
133
 
134
               pipe_tx_rcvr_det_q <= pipe_tx_rcvr_det_i after (TCQ)*1 ps;
135
               pipe_tx_reset_q <= pipe_tx_reset_i after (TCQ)*1 ps;
136
               pipe_tx_rate_q <= pipe_tx_rate_i after (TCQ)*1 ps;
137
               pipe_tx_deemph_q <= pipe_tx_deemph_i after (TCQ)*1 ps;
138
               pipe_tx_margin_q <= pipe_tx_margin_i after (TCQ)*1 ps;
139
               pipe_tx_swing_q <= pipe_tx_swing_i after (TCQ)*1 ps;
140
            end if;
141
         end if;
142
      end process;
143
 
144
      pipe_tx_rcvr_det_o <= pipe_tx_rcvr_det_q;
145
      pipe_tx_reset_o <= pipe_tx_reset_q;
146
      pipe_tx_rate_o <= pipe_tx_rate_q;
147
      pipe_tx_deemph_o <= pipe_tx_deemph_q;
148
      pipe_tx_margin_o <= pipe_tx_margin_q;
149
      pipe_tx_swing_o <= pipe_tx_swing_q;
150
 
151
   end generate;
152
   v6pcie2 : if (PIPE_PIPELINE_STAGES = 2) generate
153
 
154
      process (pipe_clk)
155
      begin
156
         if (pipe_clk'event and pipe_clk = '1') then
157
 
158
            if (rst_n = '1') then
159
 
160
               pipe_tx_rcvr_det_q <= '0' after (TCQ)*1 ps;
161
               pipe_tx_reset_q <= '1' after (TCQ)*1 ps;
162
               pipe_tx_rate_q <= '0' after (TCQ)*1 ps;
163
               pipe_tx_deemph_q <= '1' after (TCQ)*1 ps;
164
               pipe_tx_margin_q <= "000" after (TCQ)*1 ps;
165
               pipe_tx_swing_q <= '0' after (TCQ)*1 ps;
166
 
167
               pipe_tx_rcvr_det_qq <= '0' after (TCQ)*1 ps;
168
               pipe_tx_reset_qq <= '1' after (TCQ)*1 ps;
169
               pipe_tx_rate_qq <= '0' after (TCQ)*1 ps;
170
               pipe_tx_deemph_qq <= '1' after (TCQ)*1 ps;
171
               pipe_tx_margin_qq <= "000" after (TCQ)*1 ps;
172
               pipe_tx_swing_qq <= '0' after (TCQ)*1 ps;
173
            else
174
 
175
               pipe_tx_rcvr_det_q <= pipe_tx_rcvr_det_i after (TCQ)*1 ps;
176
               pipe_tx_reset_q <= pipe_tx_reset_i after (TCQ)*1 ps;
177
               pipe_tx_rate_q <= pipe_tx_rate_i after (TCQ)*1 ps;
178
               pipe_tx_deemph_q <= pipe_tx_deemph_i after (TCQ)*1 ps;
179
               pipe_tx_margin_q <= pipe_tx_margin_i after (TCQ)*1 ps;
180
               pipe_tx_swing_q <= pipe_tx_swing_i after (TCQ)*1 ps;
181
 
182
               pipe_tx_rcvr_det_qq <= pipe_tx_rcvr_det_q after (TCQ)*1 ps;
183
               pipe_tx_reset_qq <= pipe_tx_reset_q after (TCQ)*1 ps;
184
               pipe_tx_rate_qq <= pipe_tx_rate_q after (TCQ)*1 ps;
185
               pipe_tx_deemph_qq <= pipe_tx_deemph_q after (TCQ)*1 ps;
186
               pipe_tx_margin_qq <= pipe_tx_margin_q after (TCQ)*1 ps;
187
               pipe_tx_swing_qq <= pipe_tx_swing_q after (TCQ)*1 ps;
188
            end if;
189
         end if;
190
      end process;
191
 
192
 
193
      pipe_tx_rcvr_det_o <= pipe_tx_rcvr_det_qq;
194
      pipe_tx_reset_o <= pipe_tx_reset_qq;
195
      pipe_tx_rate_o <= pipe_tx_rate_qq;
196
      pipe_tx_deemph_o <= pipe_tx_deemph_qq;
197
      pipe_tx_margin_o <= pipe_tx_margin_qq;
198
      pipe_tx_swing_o <= pipe_tx_swing_qq;
199
 
200
   end generate;
201
 
202
end v6_pcie;
203
 
204
 

powered by: WebSVN 2.1.0

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