Actualmente no tengo permiso para escribir mis preguntas como un comentario ... así que lo escribiré como una respuesta y trataré de desarrollar una solución.
- ¿Ha comprobado si la PHY está recibiendo su reloj de TX?
- ¿Ha conectado ChipScope a las chancletas de E / S, incl. bits válidos y error? De lo contrario, ¿debe capturar todos los datos salientes a PHY?
- ¿Está su PC con WireShark directamente conectada al FPGA o hay un interruptor, un enrutador, ... en el medio?
Cómo capturar paquetes Ethernet de bajo nivel con ChipScope
Su diseño de ejemplo se generó con un módulo de interfaz GMII llamado gmii_if.vhd (o gmii_if.v si está usando Verilog). Conecte un ancho de 20 bits y, digamos, 4096 muestras de ChipScope ILA de profundidad a las siguientes señales:
- TXD_FROM_MAC
- TX_EN_FROM_MAC
- TX_ER_FROM_MAC
- RXD_TO_MAC
- RX_DV_TO_MAC
- RX_ER_TO_MAC
Agregue TX_EN_FROM_MAC y RX_DV_TO_MAC a un puerto de activación (tipo de activación: básico con bordes). Capture todos los datos con el reloj Ethernet de 125 MHz adecuado. Ahora sintetice su diseño y conecte el analizador ChipScope al FPGA. Configure un disparador en la señal RX_DV_TO_MAC con la condición de flanco ascendente ('R'). Arme el gatillo y envíe algunos datos de prueba al tablero. Si su PHY está funcionando correctamente, debería ver el marco de Ethernet en RXD_TO_MAC. Ahora puede rehacer este procedimiento con una condición de activación en TX_EN_FROM_MAC.
Si no entran datos, supongo que no manejó el cable de reinicio de PHY correctamente - > es de baja actividad. Por favor, compruebe esto, también.