OpenCores
no use no use 1/1 no use no use
Implementing Ethernet PHY in Verilog
by Unknown on Jan 19, 2007
Not available!
On 1/19/07, edb6628 at hotmail.com edb6628 at hotmail.com> wrote:

Hello,
I have inherited a design with two MACS connected to back to back.
One MAC interface is MII and the other is RMII. Both devices are
configured as MACs. Although, this violates the MII specification, it
is working, but I don't want to continue to press my luck.



This one has me scratching my head. How do you connect an MII MAC to an
RMII MAC? MII has 4 SDR data pins per direction, while RMII has 2 DDR pins
per direction.

I am looking for either Verilog code or ideas on the best way to
implement Ethernet PHY functionality between these two devices.
Depends on how concerned you are about speed, and how you're going to glue them together. Creating a digital PHY for 10Mbit rates is do-able. I haven't looked into how MLT is implemented for 100Mbit PHYs but believe it to be considerably more difficult. If you're just trying to get the devices to talk to each other in a timing-safe manner, I would just use a small FPGA to capture and re-time each side. - Guy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.opencores.org/forums.cgi/cores/attachments/20070120/76fcc899/attachment.htm
Implementing Ethernet PHY in Verilog
by Unknown on Jan 19, 2007
Not available!
On Fri, 19 Jan 2007 13:10:08 -0800 "Guy Hutchison" ghutchis at gmail.com> wrote:
This one has me scratching my head. How do you connect an MII MAC to an
RMII MAC? MII has 4 SDR data pins per direction, while RMII has 2 DDR pins
per direction.


Xilinx has an appnote on how to convert GMII to RGMII. Basically you
just need a layer of external DDR registers with some simple logic. So,
I guess when the OP said the parts are connected back-to-back he omitted
this little detail. Personally I think adding a PHY layer in this
application would be a HUGE overkill.



/Mikhail


Implementing Ethernet PHY in Verilog
by Unknown on Jan 19, 2007
Not available!
On 1/19/07, Mikhail Matusov misoma at rogers.com> wrote:
On Fri, 19 Jan 2007 13:10:08 -0800 "Guy Hutchison" ghutchis at gmail.com> wrote:
> This one has me scratching my head. How do you connect an MII MAC to an
> RMII MAC? MII has 4 SDR data pins per direction, while RMII has 2 DDR

pins
> per direction.
>


Xilinx has an appnote on how to convert GMII to RGMII. Basically you
just need a layer of external DDR registers with some simple logic.
Yes, but GMII -> RGMII conversion is much simpler, since both use source-synchronous clocking. Converting MII and RMII is more difficult since RMII has source-sync clocking and MII is system-side clocked in both directions. Some sort of async FIFO would be needed to do it correctly. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.opencores.org/forums.cgi/cores/attachments/20070120/0ca4a7ed/attachment.htm
Implementing Ethernet PHY in Verilog
by Unknown on Jan 20, 2007
Not available!
Hello,
I have inherited a design with two MACS connected to back to back.
One MAC interface is MII and the other is RMII. Both devices are
configured as MACs. Although, this violates the MII specification, it
is working, but I don't want to continue to press my luck.

I certainly can see an issue where the two MACs are MII compliant and
since the RX hold time of 10ns can not be guaranteed when TX is 0-25ns
from the rising edge of clock. This is the case with the network
processor on board:

NP RX setup=5.5ns hold=0ns

BME TX delay=0-25ns – no issue since NP hold =0

NP TX delay=17ns hold=2ns

BME RX setup=10ns hold=10ns – 8ns timing margin violation on hold time.

For MII compliant phys the RX sigs change on the falling-edge of the
clock so a violation is always avoided.

I am looking for either Verilog code or ideas on the best way to
implement Ethernet PHY functionality between these two devices.

Thank you
EB

Implementing Ethernet PHY in Verilog
by Unknown on Jan 20, 2007
Not available!
True, my apologies. It is currently configured as MII to MII. Newer revisions of the BME revealed that the interface on the BME has changed from MII to RMII. Implementing a 100Mb PHY is not a trivial task, this is why I was asking. I have seen an article at Comms Design: http://www.commsdesign.com/showArticle.jhtml;jsessionid=FAG3F3AMSLDPQQSNDLQCKHSCJUNN2JVN?articleID=192200605 as a place to start but again it is MII to MII. Thanks ----- Original Message ----- From: Guy Hutchisonghutchis at g...> To: Date: Fri Jan 19 22:10:08 CET 2007 Subject: [oc] Implementing Ethernet PHY in Verilog
On 1/19/07, attachment.htm




Implementing Ethernet PHY in Verilog
by Unknown on Jan 20, 2007
Not available!
----- Original Message ----- From: Mikhail Matusovmisoma at r...> To: Date: Fri Jan 19 22:24:43 CET 2007 Subject: [oc] Implementing Ethernet PHY in Verilog
On Fri, 19 Jan 2007 13:10:08 -0800 "Guy Hutchison" wrote:
> This one has me scratching my head. How do you connect an MII

MAC to an
> RMII MAC? MII has 4 SDR data pins per direction, while RMII

has 2 DDR pins
> per direction.
>

Xilinx has an appnote on how to convert GMII to RGMII. Basically
you
just need a layer of external DDR registers with some simple logic.
So,
I guess when the OP said the parts are connected back-to-back he
omitted
this little detail. Personally I think adding a PHY layer in this
application would be a HUGE overkill.
/Mikhail

True, my apologies. It is currently configured as MII to MII. Newer revisions of the BME revealed that the interface on the BME has changed from MII to RMII. Implementing a 100Mb PHY is not a trivial task, this is why I was asking. I have seen an article at Comms Design: http://www.commsdesign.com/showArticle.jhtml;jsessionid=FAG3F3AMSLDPQQSNDLQCKHSCJUNN2JVN?articleID=192200605 as a place to start but again it is MII to MII. -E
no use no use 1/1 no use no use
© copyright 1999-2026 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.