Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx Chip_Scope
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
NSergeevich
Я пробую получить ответ с PHY AR8035, а ловлю этот ответ на Xilinx ChipScope. Но ответ не доходит.
Возможно ли это из-за того, что эти данные не могут пройти через Output порт и чтобы они прошли нужно сделать In/Out порт?
Или это не имеет значения?
Отправляю подробную схему (для наглядности) реализации.
tvcam
Конечно должны. Вы должны перевести выход вашего блока конфигурирования в третье состояние.
...
inout wire E_MDIO,
output wire E_MDC,
...
wire PhyInpMDIO,PhyOutMDIO_Z, PhyOutMDIO, PhyOutClkMDC;
assign E_MDC = PhyOutClkMDC; // выход тактовой
assign E_MDIO = (PhyOutMDIO_Z ? PhyOutMDIO : 1'bZ ); // когда PhyOutMDIO_Z =0 выход встаёт в Z
assign PhyInpMDIO = E_MDIO; // из phi в cpu PhyOutMDIO_Z это сигнал перевода в Z
NSergeevich
Цитата(tvcam @ Apr 21 2015, 18:26) *
Конечно должны. Вы должны перевести выход вашего блока конфигурирования в третье состояние.
...
inout wire E_MDIO,
output wire E_MDC,
...
wire PhyInpMDIO,PhyOutMDIO_Z, PhyOutMDIO, PhyOutClkMDC;
assign E_MDC = PhyOutClkMDC; // выход тактовой
assign E_MDIO = (PhyOutMDIO_Z ? PhyOutMDIO : 1'bZ ); // когда PhyOutMDIO_Z =0 выход встаёт в Z
assign PhyInpMDIO = E_MDIO; // из phi в cpu PhyOutMDIO_Z это сигнал перевода в Z


Мой блок конфигурирования переходит в z состояние.
С него все идет на двунаправленный(in/out) PHY MDIO. Через output топ модуля. Его я сделал in/out тоже.
Когда phy должен отвечать (по той же линии так как он двунапр.) я этого не вижу на чипскопе.

И еще странно. Когда я сделал выход топ модуля in/out я на чип скопе перестал ловить также то что идет с блока конфигурирования mdio. Вот этот вот набор который посылаю 1...1(32 единицы pre)01(st)10(op)00100(phyadd)00010(regad)z
Но появляются время от времени какие-то редкие единицы меандра. Откуда это не понятно.
NSergeevich
На ChipScope было вот так с выходом output:
Вверху MDC
Снизу MDIO (то, что я отправляю) 1 и z на чипскопе рисуется одним высоким уровнем.
Нажмите для просмотра прикрепленного файла

Стоило мне просто переименовать output в inout как стал ловить следующее:
Нажмите для просмотра прикрепленного файла

Откуда это? И то что отправляю пропало.
Andrew Su
Продублирую и здесь
Добрый день.
Для сигнала MDIO надо использовать компонент
IOBUF_inst : IOBUF
generic map (
DRIVE => 12, -- максимальный ток выхода в мА
IOSTANDARD => "DEFAULT", -- надо заменить на нужный вам стандарт
SLEW => "SLOW" -- можно оставить или поменять на FAST
)
port map (
O => MDIO_O, -- Это сигнал, который вы принимаете от PHY
IO => MDIO, -- это ваш сигнал к PHY на пине FPGA
I => MDIO_I, -- Это сигнал, который вы отправляете на PHY
T => T -- 3-state enable input, high=input, low=output
);
У вас так? При этом чипскопом надо смотреть MDIO_O и MDIO_I.
В схеме есть PULLUP резистор на пине MDIO?
Можно в UCF файле в описании сигнала MDIO добавить атрибут PULLUP
Например такое описание
Net MDIO LOC = E9(нужный вам пин) | PULLUP;
NSergeevich
Все заработало! Phy начал отвечать! Всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.