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

Метастабильность, кто-нибудь на FPGA сталкивался?

Инстанциированы 4-ре модуля, из каждого торчит выход на свой led. Одновременно может быть активным только один модуль и, соответственно, может гореть только один led, другое исключено - но. Загораются все 4, причем как-то плавно, "аналогово". Один так и остается гореть "вполнакала".

Это оно? Где-то сбивается и разваливаются все 4 модуля?

При активации вручную (скриптом OpenOcd) все работает правильно, загорается только один led.

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


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

Метастабильность или нет думаю сложно сказать, проще посмотреть слаки после разводки. Но "горение" не во всю мощность говорит о том что, скорее всего, модуляция присутствует на светодиоде иначе говоря частота сигнала больше, чем глаз обрабатывает. Посмотрите Осциллографом. А так перепроверяете бизнес логику, все ли регистры сброшены, как сбрасывается логика. 

Изменено пользователем RuSTA

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


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

Метастабильность обычно проявляется там, где происходит пересечение нескольких клоковых доменов.

А из описания как-то вообще ничего не понятно - какие-то модули, что-то выводят на диоды, гореть не должны, но горят.

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


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

2 hours ago, Arlleex said:

Метастабильность обычно проявляется там, где происходит пересечение нескольких клоковых доменов.

А из описания как-то вообще ничего не понятно - какие-то модули, что-то выводят на диоды, гореть не должны, но горят.

Пересечение там есть, модули - bscane2, клок от JTAG. Из каждого bscane2 выходит сигнал SEL, который активен только, когда в xilenx tap IR записана одна из инструкций USER1/2/3/4, соответствующих этому модулю(указывается при инстанциации). Я их 4 поставил, что-бы убедиться, что OpenOCD использует USER4. Должен был загореться один нужный led. Один, IR-то один.
Когда пишу из OpenOCD командой irscan  в IR USER1/2/3/4 команду, все работает ожидаемо - загорается нужный светодиод, когда запускаю OpenOCD c "...riscv use_bscan_tunnel..." начинаются чудеса, OpenOCD создает таргет, начинает его экзаменовать - загораются все 4 лэда. Закрываю OpenOCD - продолжают гореть.

Цель - подключиться к своему RISCV  TAP через digelent Xilenx-са. Не получается, отсюда все эти изыскания.... В теории не сложно, вроде. Ставится BSCANE2, через некий (есть в интернете) jtagtunnel модуль выводится шина jtag нативная и заводится в свой TAP. jtagtunnel реализует протокол, поддерживаемый OpenOCD(тот самый bscan_tunnel) и дело в шляпе. Но не выходит каменный цветок...

Как могут быть активны SEL сразу у всех 4х bscane2 с разными USERx - уму нерастяжимо...  Не, на метастабильность тоже не похоже, но что это, блин?

И когда горят все диоды, можно вручную прописать USERx - загорится один правильный лэд, прошивка, вроде, не бьется

57 minutes ago, Alex77 said:

а led  как в реалиях подключены к плисе ?

Я не знаю - это-же development board....

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


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

4 hours ago, Sadko said:

Как могут быть активны SEL сразу у всех 4х bscane2 с разными USERx - уму нерастяжимо...  Не, на метастабильность тоже не похоже, но что это, блин?

логическая ошибка, отладчик в руки и вперед. 

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


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

Quote

Я не знаю - это-же development board....

А схему глянуть? Или development board настолько секретное, что схемы в принципе невозможно достать?

Возможна ситуация, когда светодиоды подключены через транзисторы. И при переводе выходов в Z состояние могут самопроизвольно открываться.  Была у меня одна дурацкая плата, где полевики управления светодиодами сидели затворами практически на выводах ПЛИС. И  при старте неинициализированные выводы  выставлялись в Z. И полевики начинали самопроизвольно открываться. Экономия на резисторах подтяжки блин ...

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


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

42 minutes ago, DanilinS said:

где полевики управления светодиодами сидели затворами практически на выводах ПЛИС. 

Именно такая ситуация. Спасибо, хоть что-то проясняется...

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


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

1 hour ago, DanilinS said:

Экономия на резисторах подтяжки блин ...

Ножки можно подтянуть в phisical.xdc строчкой set_property PULLDOWN true [get_ports led[0]]

В evaluation board led-ы подключены так -

led.jpg

Изменено пользователем Sadko

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


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

Вообще висящие в воздухе затворы - это зло. В подобной схеме лучше притянуть затвор к земле с помощью резистора большого сопротивления. Внешнего резистора. 

У меня на development board через такой транзистор висела пищалка с встроенным генератором. Если не инициализировать эти не нужные в проекте ноги - будет светомузыка и истошным писком. 

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


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

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

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

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

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

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

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

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

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

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