Утро доброе. Коллеги, с приемом вроде бы разобрался (пакеты принимаются без сбоев), теперь отлаживаю передачу. Проходит без сбоев порядка 20% ... 30% информации. По аналогии с приемом сделал констрейны на передающие пины.
Регистры поместил в IOB'ы: INST "U9/GM_TxD*" IOB = true ; INST "U9/GM_TxEn" IOB = true ;
и задал фронты на выходных пинах: Net "Phy_TxD<?>" SLEW = FAST; Net "Phy_TxEn" SLEW = FAST;
Ошибка заключается в "выпадении" некоторых битах, хотя на приемопередатчик байты данных и CRC идут правильно (ставил ФИФО - ловушку непосредственно на передаваемый пакет данных уже у самих выходных регистрах; обратным чтением прочитал - все отлично). Но на персоналку приходят пакеты с ошибками.
Тактирую передающую часть частотой, той же самой, которая через буфер ODDR2 подается на Marvell 88E1111. Может ее надо пропустить через DCM с определенным сдвигом (больно Marvell капризен по времени установки)?
|