Ну раз никто ничего не написал, то попробую чуть поумничать, хотя по-моему буду освещать тривиальные понятия, которые Вам скорее всего знакомы. Так что не судите строго. Сам по себе MII и GMII для FPGA не представляет ничего сложного. Мы реализовали это для второго циклона. Работает без проблем. Главное в этом деле правильно развести плату и согласовать волновые сопротивления терминирующими резисторами и правиьным расчетом трасс. Тоже самое касается и высокочастотной части, которая находится в сторону "меди". Если согласующие резисторы находятся внутри корпуса микросхемы, то проблем скорее всего не возникнет. Теперь, что касается управления. В нашем девайсе используются линии MDIO и MDCLK, т.е. управление по последовательному порту, и мы это сделали на обычном микроконтроллере, который управляет всеми элементами нашего девайса. Там как раз все эти 16 разрядов данных и 8 адреса, как Вы и писали. Достаточно подробно это все описано в документах на DP83865 NSC, что есть в открытом доступе. Основная часть регистров - это первые 4, по-моему, они стандартизованы для всех Phy Ethertnet, но могу и ошибаться. По крайней мере 0-й точно АБСОЛЮТНО у всех одинаковый, а там как раз идут настройки скорости порта, разрешение Auto Negotiation и т.д. Т.е. самое главное Вы сможете почерпнуть оттуда. Другой вопрос, что реализовывать всю алгоритмику Вам придется в ПЛИСе, что как мне кажется, не удобно. Кроме того, наверняка Вам понадобятся и другие функции микросхемы, которые подключаются через специфические регистры. Сам по себе MAC уровень, т.е. формирование 802.3 пакетов мы не реализовывали, т.к. задачи не стояло, мы сделали прозрачную железку. Поэтому по конкретно этому вопросу помочь врядли смогу. Да, добавлю, что мы использовали Phy DP83865 и 88E1119 от Marvell. Marvell рулит, т.к. ваще безпроблемная микросхема и потребляет не много, т.е. греется не сильно, можно не ставить радиатор. Удачи в реализации!!!
Сообщение отредактировал PavelTs - Feb 2 2010, 11:41
|