1 //**************************************************************************
\r
2 // *************************************************************************
\r
3 // * LATTICE SEMICONDUCTOR CONFIDENTIAL *
\r
4 // * PROPRIETARY NOTE *
\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
13 // *************************************************************************
\r
14 //**************************************************************************
\r
16 module top_pcs_core_only (
\r
18 // Control Interface
\r
28 rx_compensation_err,
\r
35 tx_clock_enable_source,
\r
36 tx_clock_enable_sink,
\r
42 rx_clock_enable_source,
\r
43 rx_clock_enable_sink,
\r
56 serdes_recovered_clk,
\r
62 // Managment Control Outputs
\r
67 // Managment Control Inputs
\r
76 // Control Interface
\r
78 input signal_detect ;
\r
81 input force_isolate ;
\r
82 input force_loopback ;
\r
83 input force_unidir ;
\r
84 input [1:0] operational_rate ;
\r
86 output rx_compensation_err ;
\r
87 output ctc_drop_flag ;
\r
88 output ctc_add_flag ;
\r
93 output tx_clock_enable_source ;
\r
94 input tx_clock_enable_sink ;
\r
100 output rx_clock_enable_source ;
\r
101 input rx_clock_enable_sink ;
\r
102 output [7:0] rx_d ;
\r
109 output [7:0] tx_data ;
\r
111 output tx_disparity_cntl;
\r
112 output xmit_autoneg;
\r
114 input serdes_recovered_clk ;
\r
115 input [7:0] rx_data ;
\r
117 input rx_disp_err ; // Displarity error on "rx_data".
\r
118 input rx_cv_err ; // Code error on "rx_data".
\r
120 // Managment Control Outputs
\r
121 output mr_an_complete;
\r
123 output [15:0] mr_lp_adv_ability;
\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
133 // Instantiate Global Reset Controller
\r
134 GSR GSR_INST (.GSR(rst_n));
\r
135 PUR PUR_INST (.PUR(1'b1));
\r
139 sgmii_channel_smi_core sgmii_channel_smi_core (
\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
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
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
170 // To GMII/MAC interface
\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
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
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
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