OpenCores
URL https://opencores.org/ocsvn/1g_ethernet_dpi/1g_ethernet_dpi/trunk

Subversion Repositories 1g_ethernet_dpi

[/] [1g_ethernet_dpi/] [trunk/] [hw/] [src/] [rtl/] [tri_mode_emac/] [src/] [common/] [tri_mode_ethernet_mac_0_sync_block.v] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 kuzmi4
//------------------------------------------------------------------------------
2
// Title      : CDC Sync Block
3
// Project    : Tri-Mode Ethernet MAC
4
//------------------------------------------------------------------------------
5
// File       : tri_mode_ethernet_mac_0_sync_block.v
6
// Author     : Xilinx Inc.
7
//------------------------------------------------------------------------------
8
// Description: Used on signals crossing from one clock domain to another, this
9
//              is a multiple flip-flop pipeline, with all flops placed together
10
//              into the same slice.  Thus the routing delay between the two is
11
//              minimum to safe-guard against metastability issues.
12
// -----------------------------------------------------------------------------
13
// (c) Copyright 2001-2013 Xilinx, Inc. All rights reserved.
14
//
15
// This file contains confidential and proprietary information
16
// of Xilinx, Inc. and is protected under U.S. and
17
// international copyright and other intellectual property
18
// laws.
19
//
20
// DISCLAIMER
21
// This disclaimer is not a license and does not grant any
22
// rights to the materials distributed herewith. Except as
23
// otherwise provided in a valid license issued to you by
24
// Xilinx, and to the maximum extent permitted by applicable
25
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
26
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
27
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
28
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
29
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
30
// (2) Xilinx shall not be liable (whether in contract or tort,
31
// including negligence, or under any other theory of
32
// liability) for any loss or damage of any kind or nature
33
// related to, arising under or in connection with these
34
// materials, including for any direct, or any indirect,
35
// special, incidental, or consequential loss or damage
36
// (including loss of data, profits, goodwill, or any type of
37
// loss or damage suffered as a result of any action brought
38
// by a third party) even if such damage or loss was
39
// reasonably foreseeable or Xilinx had been advised of the
40
// possibility of the same.
41
//
42
// CRITICAL APPLICATIONS
43
// Xilinx products are not designed or intended to be fail-
44
// safe, or for use in any application requiring fail-safe
45
// performance, such as life-support or safety devices or
46
// systems, Class III medical devices, nuclear facilities,
47
// applications related to the deployment of airbags, or any
48
// other applications that could lead to death, personal
49
// injury, or severe property or environmental damage
50
// (individually and collectively, "Critical
51
// Applications"). Customer assumes the sole risk and
52
// liability of any use of Xilinx products in Critical
53
// Applications, subject only to applicable laws and
54
// regulations governing limitations on product liability.
55
//
56
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
57
// PART OF THIS FILE AT ALL TIMES. 
58
// -----------------------------------------------------------------------------
59
 
60
`timescale 1ps / 1ps
61
 
62
(* dont_touch = "yes" *)
63
module tri_mode_ethernet_mac_0_sync_block #(
64
  parameter INITIALISE = 1'b0,
65
  parameter DEPTH = 5
66
)
67
(
68
  input        clk,              // clock to be sync'ed to
69
  input        data_in,          // Data to be 'synced'
70
  output       data_out          // synced data
71
);
72
 
73
  // Internal Signals
74
  wire   data_sync0;
75
  wire   data_sync1;
76
  wire   data_sync2;
77
  wire   data_sync3;
78
  wire   data_sync4;
79
 
80
 
81
  (* ASYNC_REG = "TRUE", SHREG_EXTRACT = "NO" *)
82
  FDRE #(
83
    .INIT (INITIALISE[0])
84
  ) data_sync_reg0 (
85
    .C  (clk),
86
    .D  (data_in),
87
    .Q  (data_sync0),
88
        .CE (1'b1),
89
    .R  (1'b0)
90
  );
91
 
92
  (* ASYNC_REG = "TRUE", SHREG_EXTRACT = "NO" *)
93
  FDRE #(
94
   .INIT (INITIALISE[0])
95
  ) data_sync_reg1 (
96
  .C  (clk),
97
  .D  (data_sync0),
98
  .Q  (data_sync1),
99
  .CE (1'b1),
100
  .R  (1'b0)
101
  );
102
 
103
  (* ASYNC_REG = "TRUE", SHREG_EXTRACT = "NO" *)
104
  FDRE #(
105
   .INIT (INITIALISE[0])
106
  ) data_sync_reg2 (
107
  .C  (clk),
108
  .D  (data_sync1),
109
  .Q  (data_sync2),
110
  .CE (1'b1),
111
  .R  (1'b0)
112
  );
113
 
114
  (* ASYNC_REG = "TRUE", SHREG_EXTRACT = "NO" *)
115
  FDRE #(
116
   .INIT (INITIALISE[0])
117
  ) data_sync_reg3 (
118
  .C  (clk),
119
  .D  (data_sync2),
120
  .Q  (data_sync3),
121
  .CE (1'b1),
122
  .R  (1'b0)
123
  );
124
 
125
  (* ASYNC_REG = "TRUE", SHREG_EXTRACT = "NO" *)
126
  FDRE #(
127
   .INIT (INITIALISE[0])
128
  ) data_sync_reg4 (
129
  .C  (clk),
130
  .D  (data_sync3),
131
  .Q  (data_sync4),
132
  .CE (1'b1),
133
  .R  (1'b0)
134
  );
135
 
136
  assign data_out = data_sync4;
137
 
138
 
139
endmodule
140
 
141
 

powered by: WebSVN 2.1.0

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