]> jspc29.x-matter.uni-frankfurt.de Git - trb5sc.git/blob
df7a705fd27805b8931e0bb2fef5b8d5be8c36d2
[trb5sc.git] /
1 //**************************************************************************\r
2 // *************************************************************************\r
3 // *                LATTICE SEMICONDUCTOR CONFIDENTIAL                     *\r
4 // *                         PROPRIETARY NOTE                              *\r
5 // *                                                                       *\r
6 // *  This software contains information confidential and proprietary      *\r
7 // *  to Lattice Semiconductor Corporation.  It shall not be reproduced    *\r
8 // *  in whole or in part, or transferred to other documents, or disclosed *\r
9 // *  to third parties, or used for any purpose other than that for which  *\r
10 // *  it was obtained, without the prior written consent of Lattice        *\r
11 // *  Semiconductor Corporation.  All rights reserved.                     *\r
12 // *                                                                       *\r
13 // *************************************************************************\r
14 //**************************************************************************\r
15 \r
16 module top_pcs_core_only (\r
17 \r
18         // Control Interface\r
19         rst_n,\r
20         signal_detect,\r
21         gbe_mode,\r
22         sgmii_mode,\r
23         force_isolate,\r
24         force_loopback,\r
25         force_unidir,\r
26         operational_rate,\r
27 \r
28         rx_compensation_err,\r
29         ctc_drop_flag,\r
30         ctc_add_flag,\r
31         an_link_ok,\r
32 \r
33         // G/MII Interface\r
34         tx_clk_125,\r
35         tx_clock_enable_source,\r
36         tx_clock_enable_sink,\r
37         tx_d,\r
38         tx_en,\r
39         tx_er,\r
40 \r
41         rx_clk_125,\r
42         rx_clock_enable_source,\r
43         rx_clock_enable_sink,\r
44         rx_d,\r
45         rx_dv,\r
46         rx_er,\r
47         col,\r
48         crs,\r
49 \r
50         // 8-bit Interface\r
51         tx_data,\r
52         tx_kcntl,\r
53         tx_disparity_cntl,\r
54         xmit_autoneg,\r
55 \r
56         serdes_recovered_clk,\r
57         rx_data,\r
58         rx_kcntl,\r
59         rx_disp_err ,\r
60         rx_cv_err ,\r
61 \r
62         // Managment Control Outputs\r
63         mr_an_complete,\r
64         mr_page_rx,\r
65         mr_lp_adv_ability,\r
66 \r
67         // Managment Control Inputs\r
68         mr_main_reset,\r
69         mr_an_enable,\r
70         mr_restart_an,\r
71         mr_adv_ability\r
72         );\r
73 \r
74 \r
75 \r
76 // Control Interface\r
77 input         rst_n ;\r
78 input         signal_detect ;\r
79 input         gbe_mode ;\r
80 input         sgmii_mode ;\r
81 input         force_isolate ;\r
82 input         force_loopback ;\r
83 input         force_unidir ;\r
84 input [1:0]   operational_rate ;\r
85 \r
86 output         rx_compensation_err ;\r
87 output         ctc_drop_flag ;\r
88 output         ctc_add_flag ;\r
89 output         an_link_ok ;\r
90 \r
91 // G/MII Interface\r
92 input         tx_clk_125 ;\r
93 output        tx_clock_enable_source ;\r
94 input         tx_clock_enable_sink ;\r
95 input [7:0]   tx_d ;\r
96 input         tx_en ;\r
97 input         tx_er ;\r
98 \r
99 input          rx_clk_125 ;\r
100 output         rx_clock_enable_source ;\r
101 input          rx_clock_enable_sink ;\r
102 output [7:0]   rx_d ;\r
103 output         rx_dv ;\r
104 output         rx_er ;\r
105 output         col ;\r
106 output         crs ;\r
107 \r
108 // 8-bit Interface\r
109 output [7:0]   tx_data ;\r
110 output         tx_kcntl;\r
111 output         tx_disparity_cntl;\r
112 output         xmit_autoneg;\r
113 \r
114 input         serdes_recovered_clk ;\r
115 input [7:0]   rx_data  ;\r
116 input         rx_kcntl;\r
117 input         rx_disp_err ; // Displarity error on "rx_data".\r
118 input         rx_cv_err ;   // Code error on "rx_data".\r
119 \r
120 // Managment Control Outputs\r
121 output          mr_an_complete;\r
122 output          mr_page_rx;\r
123 output [15:0]   mr_lp_adv_ability;\r
124 \r
125 // Managment Control Inputs\r
126 input           mr_main_reset;\r
127 input           mr_an_enable;\r
128 input           mr_restart_an;\r
129 input [15:0]    mr_adv_ability;\r
130 \r
131 \r
132 \r
133 // Instantiate Global Reset Controller\r
134 GSR GSR_INST    (.GSR(rst_n));\r
135 PUR PUR_INST    (.PUR(1'b1));\r
136         \r
137 \r
138 // SGMII PCS\r
139 sgmii_channel_smi_core sgmii_channel_smi_core (\r
140    // Clock and Reset\r
141    .rst_n                  ( rst_n ) ,\r
142    .signal_detect          ( signal_detect ) ,\r
143    .gbe_mode               ( gbe_mode ) ,\r
144    .sgmii_mode             ( sgmii_mode ) ,\r
145    .force_isolate          ( force_isolate ) ,\r
146    .force_loopback         ( force_loopback ) ,\r
147    .force_unidir           ( force_unidir ) ,\r
148    .operational_rate       ( operational_rate ) ,\r
149    .debug_link_timer_short ( 1'b0 ) ,\r
150 \r
151    .rx_compensation_err    ( rx_compensation_err ) ,\r
152    .ctc_drop_flag          ( ctc_drop_flag ) ,\r
153    .ctc_add_flag           ( ctc_add_flag ) ,\r
154    .an_link_ok             ( an_link_ok ) ,\r
155 \r
156    .tx_clk_125             ( tx_clk_125 ) ,\r
157    .tx_clock_enable_source ( tx_clock_enable_source ) ,\r
158    .tx_clock_enable_sink   ( tx_clock_enable_sink ) ,\r
159    .serdes_recovered_clk   ( serdes_recovered_clk ) ,\r
160    .rx_clk_125             ( rx_clk_125 ) ,\r
161    .rx_clock_enable_source ( rx_clock_enable_source ) ,\r
162    .rx_clock_enable_sink   ( rx_clock_enable_sink ) ,\r
163 \r
164    // GMII TX Inputs\r
165    .tx_d            ( tx_d) ,\r
166    .tx_en           ( tx_en) ,\r
167    .tx_er           ( tx_er) ,\r
168 \r
169    // GMII RX Outputs\r
170    // To GMII/MAC interface\r
171    .rx_d            ( rx_d ) ,\r
172    .rx_dv           ( rx_dv ) ,\r
173    .rx_er           ( rx_er ) ,\r
174    .col             ( col ) ,\r
175    .crs             ( crs ) ,\r
176                   \r
177    // 8BI TX Outputs\r
178    .tx_data           ( tx_data) ,\r
179    .tx_kcntl          ( tx_kcntl) ,\r
180    .tx_disparity_cntl ( tx_disparity_cntl) ,\r
181    .xmit_autoneg      ( xmit_autoneg) ,\r
182 \r
183    // 8BI RX Inputs\r
184    .rx_data         ( rx_data ) ,\r
185    .rx_kcntl        ( rx_kcntl ) ,\r
186    .rx_even         ( 1'b0 ) ,\r
187    .rx_disp_err     ( rx_disp_err ) ,\r
188    .rx_cv_err       ( rx_cv_err ) ,\r
189    .rx_err_decode_mode ( 1'b0 ) ,\r
190 \r
191    // Management Interface  I/O\r
192    .mr_adv_ability (mr_adv_ability),\r
193    .mr_an_enable (mr_an_enable), \r
194    .mr_main_reset (mr_main_reset),  \r
195    .mr_restart_an (mr_restart_an),   \r
196 \r
197    .mr_an_complete (mr_an_complete),   \r
198    .mr_lp_adv_ability (mr_lp_adv_ability), \r
199    .mr_page_rx (mr_page_rx)\r
200    );\r
201 \r
202 \r
203 endmodule\r