|
|
  |
Проблемы с MDIO. Не отвечает host controller 10Gemac on Virtex5 |
|
|
|
Sep 1 2010, 15:15
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
Нужно запустить шину MDIO для настройки PHY. Для этого использую IP-core Ten Gigabit Ethernet MAC v10.1. Создал FSM (код прилагается). После записи в host controller данных, при чтении из того же регистра - получили нулевое значение (записывали не ноль). Последовательность установки сигналов выполнена согласно ДШ ug148 на IP-core. Помогите разобраться, в чём проблема.
|
|
|
|
|
Sep 1 2010, 17:32
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
Смотря что Вас интересует. По результатам операций должен запуститься MDIO controller. Все управляющие последовательности выдаются правильно, но на MDC выходе вместо частоты - ноль, а MDIO в z состоянии.
|
|
|
|
|
Sep 1 2010, 19:08
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
Спасибо. Но те сигналы которые сформированы , вполне соответствуют моему представлению о "нужных" сигналах для данного ядра. Отличается лишь поведение ядра (отсутствие частоты на выходе MDC контроллера MDIO)  Диаграмму сигналов привожу. Диаграмму привел для переделанного кода, который записывает данные в регистр с адресом 0х340, а затем считывает из этого регистра. Правда записанных данных я не увидел. Новый код выкладываю.
Сообщение отредактировал mamrchelli - Sep 1 2010, 19:08
Эскизы прикрепленных изображений
Прикрепленные файлы
hc_fsm.v ( 2.26 килобайт )
Кол-во скачиваний: 50
|
|
|
|
|
Sep 1 2010, 19:50
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
сингнал start изначально находится в единице (инициализируется значением) :
initial begin state = IDLE; start = 1'b1; // <------ ...... end
по входу в состоянии IDLE первый раз, в данном коде, просто осуществляется переход в следующее состояние WR_CFG_MGMT, по второму фронту в состоянии WR_CFG_MGMT устанавливаются нужные сигналы, по третьему фронту в состоянии WR_CFG_MGMT снимаются управляющие сигналы, переход в состояние RD_CFG_MGMT, по четвёртому , в состоянии RD_CFG_MGMT выставляются управляющие сигналы на чтение из регистра по пятому в состоянии RD_CFG_MGMT снимаются управляющие сигналы, переход в состояние TRY_DATA, по шестому - host контроллер должен был выставить данные на host_rd_data , установка wr_en для уарта, переход в состояние IDLE по седьмому - в другой ветке IDLE снимаем сигнал wr_en уарта, а также все остальные сигналы.
Заранее согласен, что можно было добавить больше состояний. Тем не менее переходы выполняются корректно, и к самой машине состояний вроде как претензий, кроме наглядности кода, нет.
|
|
|
|
|
Sep 1 2010, 20:02
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(mamrchelli @ Sep 2 2010, 06:20)  сингнал start изначально находится в единице (инициализируется значением) :
initial begin state = IDLE; start = 1'b1; // <------ ...... end
по входу в состоянии IDLE первый раз, в данном коде, просто осуществляется переход в следующее состояние WR_CFG_MGMT, по второму фронту в состоянии WR_CFG_MGMT устанавливаются нужные сигналы, по третьему фронту в состоянии WR_CFG_MGMT снимаются управляющие сигналы, переход в состояние RD_CFG_MGMT, по четвёртому , в состоянии RD_CFG_MGMT выставляются управляющие сигналы на чтение из регистра по пятому в состоянии RD_CFG_MGMT снимаются управляющие сигналы, переход в состояние TRY_DATA, по шестому - host контроллер должен был выставить данные на host_rd_data , установка wr_en для уарта, переход в состояние IDLE по седьмому - в другой ветке IDLE снимаем сигнал wr_en уарта, а также все остальные сигналы.
Заранее согласен, что можно было добавить больше состояний. Тем не менее переходы выполняются корректно, и к самой машине состояний вроде как претензий, кроме наглядности кода, нет. это я понял.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
|
Sep 2 2010, 05:42
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(mamrchelli @ Sep 1 2010, 19:15)  Нужно запустить шину MDIO для настройки PHY. Для этого использую IP-core Ten Gigabit Ethernet MAC v10.1. Создал FSM (код прилагается). После записи в host controller данных, при чтении из того же регистра - получили нулевое значение (записывали не ноль). Последовательность установки сигналов выполнена согласно ДШ ug148 на IP-core. Помогите разобраться, в чём проблема. Я когда то очень давно этим занимался, но только для 10/100. И делал все как то гораздо проще... У меня на сайте есть статья, наверное от 2002 года. Там описание моего проекта. И в том числе, контроллера MDIO... Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 2 2010, 12:27
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
Цитата(iosifk @ Sep 2 2010, 08:42)  Я когда то очень давно этим занимался, но только для 10/100. И делал все как то гораздо проще... У меня на сайте есть статья, наверное от 2002 года. Там описание моего проекта. И в том числе, контроллера MDIO... Удачи! Возможно "проще" объясняется тем, что для 10/100/1000 использовался MDIO интерфейс, согласно IEEE 802.3 clause 22. Тогда как для 10G оборудования уже применяется MDIO интерфейс согласно IEEE 802.3 clause 45. Но дело даже не в MDIO. Не отвечает, как выяснилось на данный момент host controller 10-Gigabit Ethernet MAC IP core. Нужен этот контроллер для того, что бы как раз включить MDIO. Знает ли кто, возможно есть некие особенности при работе с host controller ЕМАС' ов Xilinx? Так как судя по документации на ядро всё должно работать "с полуоборота". p.s «если монету подбросить,то она упадет и точно встанет на ребро, если, конечно, не зависнет в воздухе» - понравилось
|
|
|
|
|
Sep 3 2010, 13:42
|
Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270

|
Всё, проблема с host controller решена. Нашли в в стартовом проекте к ядру файлик тест бенча. Посмотрели на форму сигналов необходимую для работы host controller - сигналы "слегка"  отличались от тех, что были в официальной документации. Сделали формирование сигналов как в тест - бенче - заработало. Всем спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|