Entity: Sgmii88E1111Mdio

Diagram

time TPD_G natural range 1 to natural'high DIV_G natural range 0 to 31 PHY_G sl clk sl rst sl mdi sl linkIrq sl initDone sl speed_is_10_100 sl speed_is_100 sl linkIsUp sl mdc sl mdo

Description


Company : SLAC National Accelerator Laboratory

Description: Controller for the Marvell 88E1111 PHY

This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to

the terms contained in the LICENSE.txt file.

Generics

Generic name Type Value Description
TPD_G time 1 ns
DIV_G natural range 1 to natural'high 1 half-period of MDC in clk cycles
PHY_G natural range 0 to 31 7

Ports

Port name Direction Type Description
clk in sl clock and reset
rst in sl
initDone out sl misc
speed_is_10_100 out sl
speed_is_100 out sl
linkIsUp out sl
mdc out sl MDIO interface
mdo out sl
mdi in sl
linkIrq in sl link status change interrupt

Signals

Name Type Description
r RegType
rin RegType
hdlrDone sl
args Slv16Array(0 to NUM_READ_ARGS_C - 1)

Constants

Name Type Value Description
P_INIT_C MdioProgramArray ( mdioWriteInst(PHY_G,
22,
X"0001",
false),
-- select page 1 mdioWriteInst(PHY_G,
0,
X"0140",
false),
-- disable ANEG on SMII side mdioWriteInst(PHY_G,
22,
X"0000",
false),
-- select page 0 mdioWriteInst(PHY_G,
4,
X"0140",
false),
-- advertise 10/100 FD only mdioWriteInst(PHY_G,
9,
X"0200",
false),
-- advertise 1000 FD only mdioWriteInst(PHY_G,
18,
X"0c00",
false),
-- enable link status and ANEG IRQ mdioWriteInst(PHY_G,
0,
X"1340",
true) -- restart copper ANEG )
REG19_IDX_C natural 0
REG17_IDX_C natural 1
P_HDLR_C MdioProgramArray ( REG19_IDX_C => mdioReadInst(PHY_G,
19,
false),
-- read/ack/clear interrupt REG17_IDX_C => mdioReadInst(PHY_G,
17,
true) -- read current speed and link status )
IRQ Handler sequence: 1) read back and clear interrupts (reading does clear them) 2) obtain current link status and speed
NUM_READ_ARGS_C natural mdioProgNumReadTransactions(P_HDLR_C)
REG_INIT_C RegType ( s10_100 => '0',
s100 => '0',
linkIsUp => '0' )

Types

Name Type Description
RegType

Processes

Instantiations