реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблемы с MDIO. Не отвечает host controller 10Gemac on Virtex5
mamrchelli
сообщение Sep 1 2010, 15:15
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270



Нужно запустить шину MDIO для настройки PHY. Для этого использую IP-core Ten Gigabit Ethernet MAC v10.1. Создал FSM (код прилагается).
После записи в host controller данных, при чтении из того же регистра - получили нулевое значение (записывали не ноль).
Последовательность установки сигналов выполнена согласно ДШ ug148 на IP-core. Помогите разобраться, в чём проблема.
Прикрепленные файлы
Прикрепленный файл  mdio_read_fsm.v ( 2.6 килобайт ) Кол-во скачиваний: 67
 
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Sep 1 2010, 16:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Что видно в симуляторе?
Go to the top of the page
 
+Quote Post
mamrchelli
сообщение Sep 1 2010, 17:32
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270



Смотря что Вас интересует. По результатам операций должен запуститься MDIO controller. Все управляющие последовательности выдаются правильно, но на MDC выходе вместо частоты - ноль, а MDIO в z состоянии.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Sep 1 2010, 17:43
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Я не могу разобраться в вашем автомате, и верилог плохо знаю и, честно говоря, подозреваю, что написать можно понятнее.
Посоветовать могу написать кристально ясный несинтезируемый модуль, который бы шаг за шагом сгенерировал бы нужные сигналы для ядра.
Если с ним ядро будет вести себя как нужно, то этот модуль можно использовать в качестве reference-model для отладки синтезируемого автомата.
Go to the top of the page
 
+Quote Post
mamrchelli
сообщение Sep 1 2010, 19:08
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270



Спасибо. Но те сигналы которые сформированы , вполне соответствуют моему представлению о "нужных" сигналах для данного ядра. Отличается лишь поведение ядра (отсутствие частоты на выходе MDC контроллера MDIO) smile.gif
Диаграмму сигналов привожу.

Диаграмму привел для переделанного кода, который записывает данные в регистр с адресом 0х340, а затем считывает из этого регистра.
Правда записанных данных я не увидел.

Новый код выкладываю.

Сообщение отредактировал mamrchelli - Sep 1 2010, 19:08
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  hc_fsm.v ( 2.26 килобайт ) Кол-во скачиваний: 50
 
Go to the top of the page
 
+Quote Post
wolfman
сообщение Sep 1 2010, 19:24
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Я не очень разбираюсь в верилоге, но как у вас формируется сингнал start?
Если я правильно понимаю, то у вас start всегда 0 и вы всегда находитесь в состоянии IDLE.

Ага, в новом коде start меняет значение по reset-у, а на диаграмме у вас reset "0", и опять же вы сидите в состоянии IDLE, ожидая start, который никогда не придет.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
mamrchelli
сообщение Sep 1 2010, 19:50
Сообщение #7





Группа: Новичок
Сообщений: 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 уарта, а также все остальные сигналы.

Заранее согласен, что можно было добавить больше состояний. Тем не менее переходы выполняются корректно, и к самой машине состояний вроде как претензий, кроме наглядности кода, нет.

Go to the top of the page
 
+Quote Post
wolfman
сообщение Sep 1 2010, 20:02
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 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 уарта, а также все остальные сигналы.

Заранее согласен, что можно было добавить больше состояний. Тем не менее переходы выполняются корректно, и к самой машине состояний вроде как претензий, кроме наглядности кода, нет.


это я понял.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 2 2010, 05:42
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 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
Go to the top of the page
 
+Quote Post
mamrchelli
сообщение Sep 2 2010, 12:27
Сообщение #10





Группа: Новичок
Сообщений: 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 «если монету подбросить,то она упадет и точно встанет на ребро, если, конечно, не зависнет в воздухе» - понравилось smile.gif
Go to the top of the page
 
+Quote Post
mamrchelli
сообщение Sep 3 2010, 13:42
Сообщение #11





Группа: Новичок
Сообщений: 7
Регистрация: 3-02-10
Из: Днепропетровск
Пользователь №: 55 270



Всё, проблема с host controller решена. Нашли в в стартовом проекте к ядру файлик тест бенча. Посмотрели на форму сигналов необходимую для работы host controller - сигналы "слегка" smile.gif отличались от тех, что были в официальной документации. Сделали формирование сигналов как в тест - бенче - заработало.
Всем спасибо.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Sep 3 2010, 16:48
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Не могли бы вы по горячим следам написать, какие именно сигналы отличаются?
На тот случай, если эту ветку будут искать ваши последователи уткнувшиеся в эту же проблему.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016