Перейти к содержанию
    

Xilinx Chip_Scope

Я пробую получить ответ с PHY AR8035, а ловлю этот ответ на Xilinx ChipScope. Но ответ не доходит.

Возможно ли это из-за того, что эти данные не могут пройти через Output порт и чтобы они прошли нужно сделать In/Out порт?

Или это не имеет значения?

Отправляю подробную схему (для наглядности) реализации.

post-84716-1429628660_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно должны. Вы должны перевести выход вашего блока конфигурирования в третье состояние.

...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно должны. Вы должны перевести выход вашего блока конфигурирования в третье состояние.

...

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

Но появляются время от времени какие-то редкие единицы меандра. Откуда это не понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На ChipScope было вот так с выходом output:

Вверху MDC

Снизу MDIO (то, что я отправляю) 1 и z на чипскопе рисуется одним высоким уровнем.

post-84716-1429705626_thumb.png

 

Стоило мне просто переименовать output в inout как стал ловить следующее:

post-84716-1429706410_thumb.png

 

Откуда это? И то что отправляю пропало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продублирую и здесь

Добрый день.

Для сигнала 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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...