Доброго времени суток, уважаемые форумчане.
В процессе разработки модуля для приема данных от PHY RTL8211 столкнулся со странным поведением компилятора\работой схема. В силу того что разработкой для ПЛИС занимаюсь всего пару недель, самостоятельно разобраться не получается
Файл eth_rtl8211/eth_rtl8211_rx.v
В блоке arp_header конструкции case регистру присваивается значение r_l3_arp_req <= 1'b1;
Далее, на следующем такте в блоке finish этому же регистру должно присваивается 0: r_l3_arp_req <= 1'b0; (см скрин1)
При сборке в таком виде проект умещается в 883 ячейки и работает в целом не корректно.
Если r_l3_arp_req <= 1'b0; вынести за конструкцию case (см скрин2) все работает корректно, проект занимает 1003 ячейки.
Такое ощущение что в первом случае часть логики просто не синтезируется. Ни как не могу понять в чем дело...
Файлы проекта приложил.
eth_rx_tx.rar