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

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [sim/] [BFMs/] [SGMII_altera/] [triple_speed_ethernet-library/] [altera_tse_mac_pcs.v] - Blame information for rev 9

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

Line No. Rev Author Line
1 9 jefflieu
// -------------------------------------------------------------------------
2
// -------------------------------------------------------------------------
3
//
4
// Revision Control Information
5
//
6
// $RCSfile: altera_tse_mac_pcs.v,v $
7
// $Source: /ipbu/cvs/sio/projects/TriSpeedEthernet/src/RTL/Top_level_modules/altera_tse_mac_pcs.v,v $
8
//
9
// $Revision: #1 $
10
// $Date: 2011/11/10 $
11
// Check in by : $Author: max $
12
// Author      : Arul Paniandi
13
//
14
// Project     : Triple Speed Ethernet
15
//
16
// Description : 
17
//
18
// Top level module for Triple Speed Ethernet MAC + PCS
19
 
20
// 
21
// ALTERA Confidential and Proprietary
22
// Copyright 2006 (c) Altera Corporation
23
// All rights reserved
24
//
25
// -------------------------------------------------------------------------
26
// -------------------------------------------------------------------------
27
 
28
(*altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION OFF" } *)
29
module altera_tse_mac_pcs /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=\"R102,R105,D102,D101,D103\"" */(
30
 
31
    clk,                       // Avalon slave - clock
32
    read,                      // Avalon slave - read
33
    write,                     // Avalon slave - write
34
    address,                   // Avalon slave - address
35
    writedata,                 // Avalon slave - writedata
36
    readdata,                  // Avalon slave - readdata
37
    waitrequest,               // Avalon slave - waitrequest
38
    reset,                     // Avalon slave - reset
39
    reset_rx_clk,
40
    reset_tx_clk,
41
    reset_ff_rx_clk,
42
    reset_ff_tx_clk,
43
    ff_rx_clk,                 // AtlanticII source - clk  
44
    ff_rx_data,                // AtlanticII source - data 
45
    ff_rx_mod,                 // Will not exists in SoPC Model as the 8-bit version is used
46
    ff_rx_sop,                 // AtlanticII source - startofpacket
47
    ff_rx_eop,                 // AtlanticII source - endofpacket
48
    rx_err,                    // AtlanticII source - error 
49
    rx_err_stat,               // AtlanticII source - component_specific_signal(eop)
50
    rx_frm_type,               // AtlanticII source - component_specific_signal(data)
51
    ff_rx_rdy,                 // AtlanticII source - ready
52
    ff_rx_dval,                // AtlanticII source - valid
53
    ff_rx_dsav,                // Will not exists in SoPC Model (leave unconnected)
54
    ff_tx_clk,                 // AtlanticII sink - clk
55
    ff_tx_data,                // AtlanticII sink - data
56
    ff_tx_mod,                 // Will not exists in SoPC Model as the 8-bit version is used
57
    ff_tx_sop,                 // AtlanticII sink - startofpacket
58
    ff_tx_eop,                 // AtlanticII sink - endofpacket
59
    ff_tx_err,                 // AtlanticII sink - error
60
    ff_tx_wren,                // AtlanticII sink - valid
61
    ff_tx_crc_fwd,             // AtlanticII sink - component_specific_signal(eop)
62
    ff_tx_rdy,                 // AtlanticII sink - ready
63
    ff_tx_septy,               // Will not exists in SoPC Model (leave unconnected)
64
    tx_ff_uflow,               // Will not exists in SoPC Model (leave unconnected)
65
    ff_rx_a_full,
66
    ff_rx_a_empty,
67
    ff_tx_a_full,
68
    ff_tx_a_empty,
69
    xoff_gen,
70
    xon_gen,
71
    magic_sleep_n,
72
    magic_wakeup,
73
    mdc,
74
    mdio_in,
75
    mdio_out,
76
    mdio_oen,
77
    tbi_rx_clk,
78
    tbi_tx_clk,
79
    tbi_rx_d,
80
    tbi_tx_d,
81
    sd_loopback,
82
    powerdown,
83
    led_col,
84
    led_an,
85
    led_char_err,
86
    led_disp_err,
87
    led_crs,
88
    led_link
89
);
90
 
91
parameter ENABLE_ENA            = 8;            //  Enable n-Bit Local Interface
92
parameter ENABLE_GMII_LOOPBACK  = 1;            //  GMII_LOOPBACK_ENA : Enable GMII Loopback Logic 
93
parameter ENABLE_HD_LOGIC       = 1;            //  HD_LOGIC_ENA : Enable Half Duplex Logic
94
parameter USE_SYNC_RESET        = 1;            //  Use Synchronized Reset Inputs
95
parameter ENABLE_SUP_ADDR       = 1;            //  SUP_ADDR_ENA : Enable Supplemental Addresses
96
parameter ENA_HASH              = 1;            //  ENA_HASH Enable Hash Table 
97
parameter STAT_CNT_ENA          = 1;            //  STAT_CNT_ENA Enable Statistic Counters
98
parameter ENABLE_EXTENDED_STAT_REG = 0;         //  Enable a few extended statistic registers
99
parameter EG_FIFO               = 256 ;         //  Egress FIFO Depth
100
parameter EG_ADDR               = 8 ;           //  Egress FIFO Depth
101
parameter ING_FIFO              = 256 ;         //  Ingress FIFO Depth
102
parameter ING_ADDR              = 8 ;           //  Egress FIFO Depth
103
parameter RESET_LEVEL           = 1'b 1 ;       //  Reset Active Level
104
parameter MDIO_CLK_DIV          = 40 ;          //  Host Clock Division - MDC Generation
105
parameter CORE_VERSION          = 16'h3;        //  ALTERA Core Version
106
parameter CUST_VERSION          = 1 ;           //  Customer Core Version
107
parameter REDUCED_INTERFACE_ENA = 0;            //  Enable the RGMII / MII Interface
108
parameter ENABLE_MDIO           = 1;            //  Enable the MDIO Interface
109
parameter ENABLE_MAGIC_DETECT   = 1;            //  Enable magic packet detection
110
parameter ENABLE_MIN_FIFO       = 1;            //  Enable minimun FIFO (Reduced functionality)
111
parameter ENABLE_MACLITE        = 0;            //  Enable MAC LITE operation
112
parameter MACLITE_GIGE          = 0;            //  Enable/Disable Gigabit MAC operation for MAC LITE.
113
parameter CRC32DWIDTH           = 4'b 1000;     //  input data width (informal, not for change)
114
parameter CRC32GENDELAY         = 3'b 110;      //  when the data from the generator is valid
115
parameter CRC32CHECK16BIT       = 1'b 0;        //  1 compare two times 16 bit of the CRC (adds one pipeline step) 
116
parameter CRC32S1L2_EXTERN      = 1'b0;         //  false: merge enable
117
parameter ENABLE_SHIFT16        = 0;            //  Enable byte stuffing at packet header
118
parameter RAM_TYPE              = "AUTO";       //  Specify the RAM type 
119
parameter INSERT_TA             = 0;            //  Option to insert timing adapter for SOPC systems
120
parameter PHY_IDENTIFIER        = 32'h 00000000;
121
parameter DEV_VERSION           = 16'h 0001 ;   //  Customer Phy's Core Version
122
parameter ENABLE_SGMII          = 1;            //  Enable SGMII logic for synthesis
123
parameter ENABLE_MAC_FLOW_CTRL  = 1'b1;         //  Option to enable flow control 
124
parameter ENABLE_MAC_TXADDR_SET = 1'b1;         //  Option to enable MAC address insertion onto 'to-be-transmitted' Ethernet frames on MAC TX data path
125
parameter ENABLE_MAC_RX_VLAN    = 1'b1;         //  Option to enable VLAN tagged Ethernet frames on MAC RX data path
126
parameter ENABLE_MAC_TX_VLAN    = 1'b1;         //  Option to enable VLAN tagged Ethernet frames on MAC TX data path
127
parameter SYNCHRONIZER_DEPTH    = 3;            //  Number of synchronizer
128
 
129
input   clk;                    //  25MHz Host Interface Clock
130
input   read;                   //  Register Read Strobe
131
input   write;                  //  Register Write Strobe
132
input   [7:0] address;          //  Register Address
133
input   [31:0] writedata;       //  Write Data for Host Bus
134
output  [31:0] readdata;        //  Read Data to Host Bus
135
output  waitrequest;            //  Interface Busy
136
input   reset;                  //  Asynchronous Reset
137
input   reset_rx_clk;           //  Asynchronous Reset - rx_clk Domain
138
input   reset_tx_clk;           //  Asynchronous Reset - tx_clk Domain
139
input   reset_ff_rx_clk;        //  Asynchronous Reset - ff_rx_clk Domain
140
input   reset_ff_tx_clk;        //  Asynchronous Reset - ff_tx_clk Domain
141
input   ff_rx_clk;              //  Transmit Local Clock
142
output  [ENABLE_ENA-1:0] ff_rx_data;      //  Data Out
143
output  [1:0] ff_rx_mod;        //  Data Modulo
144
output  ff_rx_sop;              //  Start of Packet
145
output  ff_rx_eop;              //  End of Packet
146
output  [5:0] rx_err;           //  Errored Packet Indication
147
output  [17:0] rx_err_stat;     //  Packet Length and Status Word
148
output  [3:0] rx_frm_type;      //  Unicast Frame Indication    
149
input   ff_rx_rdy;              //  PHY Application Ready
150
output  ff_rx_dval;             //  Data Valid Strobe
151
output  ff_rx_dsav;             //  Data Available
152
input   ff_tx_clk;              //  Transmit Local Clock    
153
input   [ENABLE_ENA-1:0] ff_tx_data;      //  Data Out
154
input   [1:0] ff_tx_mod;        //  Data Modulo
155
input   ff_tx_sop;              //  Start of Packet
156
input   ff_tx_eop;              //  End of Packet
157
input   ff_tx_err;              //  Errored Packet
158
input   ff_tx_wren;             //  Write Enable
159
input   ff_tx_crc_fwd;          //  Forward Current Frame with CRC from Application
160
output  ff_tx_rdy;              //  FIFO Ready
161
output  ff_tx_septy;            //  FIFO has space for at least one section
162
output  tx_ff_uflow;            //  TX FIFO underflow occured (Synchronous with tx_clk) 
163
output  ff_rx_a_full;           //  Receive FIFO Almost Full
164
output  ff_rx_a_empty;          //  Receive FIFO Almost Empty
165
output  ff_tx_a_full;           //  Transmit FIFO Almost Full
166
output  ff_tx_a_empty;          //  Transmit FIFO Almost Empty
167
input   xoff_gen;               //  Xoff Pause frame generate 
168
input   xon_gen;                //  Xon Pause frame generate 
169
input   magic_sleep_n;          //  Enable Sleep Mode
170
output  magic_wakeup;           //  Wake Up Request
171
output  mdc;                    //  2.5MHz Inteface
172
input   mdio_in;                //  MDIO Input
173
output  mdio_out;               //  MDIO Output
174
output  mdio_oen;               //  MDIO Output Enable
175
 
176
input   tbi_rx_clk;             //  125MHz Recoved Clock
177
input   tbi_tx_clk;             //  125MHz Transmit Clock
178
input   [9:0] tbi_rx_d;         //  Non Aligned 10-Bit Characters
179
output  [9:0] tbi_tx_d;         //  Transmit TBI Interface
180
output  sd_loopback;            //  SERDES Loopback Enable
181
output  powerdown;              //  Powerdown Enable
182
output  led_crs;                //  Carrier Sense
183
output  led_link;               //  Valid Link 
184
output  led_col;                //  Collision Indication
185
output  led_an;                 //  Auto-Negotiation Status
186
output  led_char_err;           //  Character Error
187
output  led_disp_err;           //  Disparity Error
188
 
189
 
190
wire    [31:0] reg_data_out;
191
wire    reg_busy;
192
wire    [ENABLE_ENA-1:0] ff_rx_data;
193
wire    [1:0] ff_rx_mod;
194
wire    ff_rx_sop;
195
wire    ff_rx_eop;
196
wire    ff_rx_dval;
197
wire    ff_rx_dsav;
198
wire    ff_tx_rdy;
199
wire    ff_tx_septy;
200
wire    tx_ff_uflow;
201
wire    magic_wakeup;
202
wire    ff_rx_a_full;
203
wire    ff_rx_a_empty;
204
wire    ff_tx_a_full;
205
wire    ff_tx_a_empty;
206
wire    mdc;
207
wire    mdio_out;
208
wire    mdio_oen;
209
 
210
wire    [9:0] tbi_tx_d;
211
wire    sd_loopback;
212
wire    powerdown;
213
wire    led_crs;
214
wire    led_link;
215
wire    led_col;
216
wire    led_an;
217
wire    led_char_err;
218
wire    led_disp_err;
219
 
220
wire    rx_clk;
221
wire    tx_clk;
222
wire    rx_clkena;
223
wire    tx_clkena;
224
wire    [7:0] gm_rx_d;          //  GMII Receive Data
225
wire    gm_rx_dv;               //  GMII Receive Frame Enable  
226
wire    gm_rx_err;              //  GMII Receive Frame Error  
227
wire    [7:0] gm_tx_d;          //  GMII Transmit Data
228
wire    gm_tx_en;               //  GMII Transmit Frame Enable  
229
wire    gm_tx_err;              //  GMII Transmit Frame Error
230
wire    [3:0] m_rx_d;           //  MII Receive Data
231
wire    m_rx_dv;                //  MII Receive Frame Enable  
232
wire    m_rx_err;               //  MII Receive Drame Error      
233
wire    [3:0] m_tx_d;           //  MII Transmit Data
234
wire    m_tx_en;                //  MII Transmit Frame Enable  
235
wire    m_tx_err;               //  MII Transmit Frame Error
236
wire    m_rx_crs;               //  Carrier Sense
237
wire    m_rx_col;               //  Collition
238
wire    set_1000;               //  Gigabit Mode Enable
239
wire    set_10;                 //  10Mbps Mode Enable
240
 
241
wire    pcs_en;
242
wire    [31:0]readdata_mac;
243
wire    waitrequest_mac;
244
wire    [31:0]readdata_pcs;
245
wire    waitrequest_pcs;
246
wire    write_pcs;
247
wire    read_pcs;
248
wire    write_mac;
249
wire    read_mac;
250
 
251
wire    [5:0] rx_err;
252
wire    [17:0] rx_err_stat;
253
wire    [3:0] rx_frm_type;
254
 
255
//  Reset Lines
256
//  -----------
257
 
258
wire    reset_rx_clk_int;                       //  Asynchronous Reset - rx_clk Domain
259
wire    reset_tx_clk_int;                       //  Asynchronous Reset - tx_clk Domain
260
wire    reset_ff_rx_clk_int;                    //  Asynchronous Reset - ff_rx_clk Domain
261
wire    reset_ff_tx_clk_int;                    //  Asynchronous Reset - ff_tx_clk Domain
262
wire    reset_reg_clk_int;                      //  Asynchronous Reset - reg_clk Domain
263
 
264
 
265
 
266
// This is done because the PCS address space is from 0x80 to 0x9F
267
// ---------------------------------------------------------------
268
assign pcs_en = address[7] & !address[6] & !address[5];
269
assign write_pcs = pcs_en? write : 1'b0;
270
assign read_pcs = pcs_en? read : 1'b0;
271
assign write_mac = pcs_en? 1'b0 : write;
272
assign read_mac  = pcs_en? 1'b0 : read;
273
assign readdata = pcs_en? readdata_pcs : readdata_mac;
274
assign waitrequest = pcs_en? waitrequest_pcs : waitrequest_mac;
275
 
276
assign readdata_pcs[31:16] = {16{1'b0}};
277
 
278
 
279
 
280
// Programmable Reset Options
281
// --------------------------
282
 
283
generate if (USE_SYNC_RESET == 1)
284
    begin
285
        altera_tse_reset_synchronizer reset_sync_0 (
286
        .clk(rx_clk),
287
        .reset_in(reset),
288
        .reset_out(reset_rx_clk_int)
289
        );
290
 
291
        altera_tse_reset_synchronizer reset_sync_1 (
292
        .clk(tx_clk),
293
        .reset_in(reset),
294
        .reset_out(reset_tx_clk_int)
295
        );
296
 
297
        altera_tse_reset_synchronizer reset_sync_2 (
298
        .clk(ff_rx_clk),
299
        .reset_in(reset),
300
        .reset_out(reset_ff_rx_clk_int)
301
        );
302
 
303
        altera_tse_reset_synchronizer reset_sync_3 (
304
        .clk(ff_tx_clk),
305
        .reset_in(reset),
306
        .reset_out(reset_ff_tx_clk_int)
307
        );
308
 
309
        altera_tse_reset_synchronizer reset_sync_4 (
310
        .clk(clk),
311
        .reset_in(reset),
312
        .reset_out(reset_reg_clk_int)
313
        );
314
    end
315
else
316
    begin
317
    assign reset_rx_clk_int    = RESET_LEVEL == 1'b 1 ? reset : !reset ;
318
        assign reset_tx_clk_int    = RESET_LEVEL == 1'b 1 ? reset : !reset ;
319
        assign reset_ff_rx_clk_int = RESET_LEVEL == 1'b 1 ? reset : !reset ;
320
        assign reset_ff_tx_clk_int = RESET_LEVEL == 1'b 1 ? reset : !reset ;
321
        assign reset_reg_clk_int   = RESET_LEVEL == 1'b 1 ? reset : !reset ;
322
    end
323
endgenerate
324
 
325
// --------------------------
326
 
327
 
328
    altera_tse_top_gen_host    top_gen_host_inst(
329
        .reset_ff_rx_clk(reset_ff_rx_clk_int),
330
        .reset_ff_tx_clk(reset_ff_tx_clk_int),
331
        .reset_reg_clk(reset_reg_clk_int),
332
        .reset_rx_clk(reset_rx_clk_int),
333
        .reset_tx_clk(reset_tx_clk_int),
334
        .rx_clk(rx_clk),
335
        .tx_clk(tx_clk),
336
                .rx_clkena(rx_clkena),
337
                .tx_clkena(tx_clkena),
338
        .gm_rx_dv(gm_rx_dv),
339
        .gm_rx_d(gm_rx_d),
340
        .gm_rx_err(gm_rx_err),
341
        .m_rx_en(m_rx_dv),
342
        .m_rx_d(m_rx_d),
343
        .m_rx_err(m_rx_err),
344
        .m_rx_col(m_rx_col),
345
        .m_rx_crs(m_rx_crs),
346
        .set_1000(set_1000),
347
        .set_10(set_10),
348
        .ff_rx_clk(ff_rx_clk),
349
        .ff_rx_rdy(ff_rx_rdy),
350
        .ff_tx_clk(ff_tx_clk),
351
        .ff_tx_wren(ff_tx_wren),
352
        .ff_tx_data(ff_tx_data),
353
        .ff_tx_mod(ff_tx_mod),
354
        .ff_tx_sop(ff_tx_sop),
355
        .ff_tx_eop(ff_tx_eop),
356
        .ff_tx_err(ff_tx_err),
357
        .ff_tx_crc_fwd(ff_tx_crc_fwd),
358
        .reg_clk(clk),
359
        .reg_addr(address),
360
        .reg_data_in(writedata),
361
        .reg_rd(read_mac),
362
        .reg_wr(write_mac),
363
        .mdio_in(mdio_in),
364
        .gm_tx_en(gm_tx_en),
365
        .gm_tx_d(gm_tx_d),
366
        .gm_tx_err(gm_tx_err),
367
        .m_tx_en(m_tx_en),
368
        .m_tx_d(m_tx_d),
369
        .m_tx_err(m_tx_err),
370
        .eth_mode(),
371
        .ena_10(),
372
        .ff_rx_dval(ff_rx_dval),
373
        .ff_rx_data(ff_rx_data),
374
        .ff_rx_mod(ff_rx_mod),
375
        .ff_rx_sop(ff_rx_sop),
376
        .ff_rx_eop(ff_rx_eop),
377
        .ff_rx_dsav(ff_rx_dsav),
378
        .rx_err(rx_err),
379
        .rx_err_stat(rx_err_stat),
380
        .rx_frm_type(rx_frm_type),
381
        .ff_tx_rdy(ff_tx_rdy),
382
        .ff_tx_septy(ff_tx_septy),
383
        .tx_ff_uflow(tx_ff_uflow),
384
        .rx_a_full(ff_rx_a_full),
385
        .rx_a_empty(ff_rx_a_empty),
386
        .tx_a_full(ff_tx_a_full),
387
        .tx_a_empty(ff_tx_a_empty),
388
        .xoff_gen(xoff_gen),
389
        .xon_gen(xon_gen),
390
        .reg_data_out(readdata_mac),
391
        .reg_busy(waitrequest_mac),
392
        .reg_sleepN(magic_sleep_n),
393
        .reg_wakeup(magic_wakeup),
394
        .mdc(mdc),
395
        .mdio_out(mdio_out),
396
        .mdio_oen(mdio_oen));
397
 
398
    defparam
399
        top_gen_host_inst.EG_FIFO = EG_FIFO,
400
        top_gen_host_inst.ENABLE_SUP_ADDR = ENABLE_SUP_ADDR,
401
        top_gen_host_inst.CORE_VERSION = CORE_VERSION,
402
        top_gen_host_inst.CRC32GENDELAY = CRC32GENDELAY,
403
        top_gen_host_inst.MDIO_CLK_DIV = MDIO_CLK_DIV,
404
        top_gen_host_inst.EG_ADDR = EG_ADDR,
405
        top_gen_host_inst.ENA_HASH = ENA_HASH,
406
        top_gen_host_inst.STAT_CNT_ENA = STAT_CNT_ENA,
407
                top_gen_host_inst.ENABLE_EXTENDED_STAT_REG = ENABLE_EXTENDED_STAT_REG,
408
        top_gen_host_inst.ING_FIFO = ING_FIFO,
409
        top_gen_host_inst.ENABLE_ENA = ENABLE_ENA,
410
        top_gen_host_inst.ENABLE_HD_LOGIC = ENABLE_HD_LOGIC,
411
        top_gen_host_inst.REDUCED_INTERFACE_ENA = REDUCED_INTERFACE_ENA,
412
        top_gen_host_inst.ENABLE_MDIO = ENABLE_MDIO,
413
        top_gen_host_inst.ENABLE_MAGIC_DETECT = ENABLE_MAGIC_DETECT,
414
        top_gen_host_inst.ENABLE_MIN_FIFO = ENABLE_MIN_FIFO,
415
        top_gen_host_inst.ENABLE_PADDING = !ENABLE_MACLITE,
416
        top_gen_host_inst.ENABLE_LGTH_CHECK = !ENABLE_MACLITE,
417
        top_gen_host_inst.GBIT_ONLY = !ENABLE_MACLITE | MACLITE_GIGE,
418
        top_gen_host_inst.MBIT_ONLY = !ENABLE_MACLITE | !MACLITE_GIGE,
419
        top_gen_host_inst.REDUCED_CONTROL = ENABLE_MACLITE,
420
        top_gen_host_inst.CRC32S1L2_EXTERN = CRC32S1L2_EXTERN,
421
        top_gen_host_inst.ENABLE_GMII_LOOPBACK = ENABLE_GMII_LOOPBACK,
422
        top_gen_host_inst.ING_ADDR = ING_ADDR,
423
        top_gen_host_inst.CRC32DWIDTH = CRC32DWIDTH,
424
        top_gen_host_inst.CUST_VERSION = CUST_VERSION,
425
        top_gen_host_inst.CRC32CHECK16BIT = CRC32CHECK16BIT,
426
        top_gen_host_inst.ENABLE_SHIFT16 = ENABLE_SHIFT16,
427
        top_gen_host_inst.INSERT_TA = INSERT_TA,
428
        top_gen_host_inst.RAM_TYPE = RAM_TYPE,
429
        top_gen_host_inst.ENABLE_MAC_FLOW_CTRL  = ENABLE_MAC_FLOW_CTRL,
430
        top_gen_host_inst.ENABLE_MAC_TXADDR_SET = ENABLE_MAC_TXADDR_SET,
431
        top_gen_host_inst.ENABLE_MAC_RX_VLAN    = ENABLE_MAC_RX_VLAN,
432
                top_gen_host_inst.SYNCHRONIZER_DEPTH = SYNCHRONIZER_DEPTH,
433
        top_gen_host_inst.ENABLE_MAC_TX_VLAN    = ENABLE_MAC_TX_VLAN;
434
 
435
 
436
 
437
    altera_tse_top_1000_base_x    top_1000_base_x_inst(
438
        .reset_rx_clk(reset_rx_clk_int),
439
        .reset_tx_clk(reset_tx_clk_int),
440
        .reset_reg_clk(reset_reg_clk_int),
441
        .rx_clk(rx_clk),
442
        .tx_clk(tx_clk),
443
                .rx_clkena(rx_clkena),
444
                .tx_clkena(tx_clkena),
445
                .ref_clk(1'b0),
446
        .gmii_rx_dv(gm_rx_dv),
447
        .gmii_rx_d(gm_rx_d),
448
        .gmii_rx_err(gm_rx_err),
449
        .gmii_tx_en(gm_tx_en),
450
        .gmii_tx_d(gm_tx_d),
451
        .gmii_tx_err(gm_tx_err),
452
        .mii_rx_dv(m_rx_dv),
453
        .mii_rx_d(m_rx_d),
454
        .mii_rx_err(m_rx_err),
455
        .mii_tx_en(m_tx_en),
456
        .mii_tx_d(m_tx_d),
457
        .mii_tx_err(m_tx_err),
458
        .mii_col(m_rx_col),
459
        .mii_crs(m_rx_crs),
460
        .tbi_rx_clk(tbi_rx_clk),
461
        .tbi_tx_clk(tbi_tx_clk),
462
        .tbi_rx_d(tbi_rx_d),
463
        .tbi_tx_d(tbi_tx_d),
464
        .sd_loopback(sd_loopback),
465
        .reg_clk(clk),
466
        .reg_rd(read_pcs),
467
        .reg_wr(write_pcs),
468
        .reg_addr(address[4:0]),
469
        .reg_data_in(writedata[15:0]),
470
        .reg_data_out(readdata_pcs[15:0]),
471
        .reg_busy(waitrequest_pcs),
472
        .powerdown(powerdown),
473
        .set_10(set_10),
474
        .set_100(),
475
        .set_1000(set_1000),
476
        .hd_ena(),
477
        .led_col(led_col),
478
        .led_an(led_an),
479
        .led_char_err(led_char_err),
480
        .led_disp_err(led_disp_err),
481
        .led_crs(led_crs),
482
        .led_link(led_link));
483
 
484
    defparam
485
        top_1000_base_x_inst.PHY_IDENTIFIER = PHY_IDENTIFIER,
486
        top_1000_base_x_inst.DEV_VERSION = DEV_VERSION,
487
        top_1000_base_x_inst.ENABLE_SGMII = ENABLE_SGMII;
488
 
489
 
490
 
491
endmodule

powered by: WebSVN 2.1.0

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