|
|
  |
Проблема с проектом на Xilinx XC2S150, состояние выходов при инициализации |
|
|
|
Feb 4 2009, 13:49
|
Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192

|
Цитата(Pavel81 @ Feb 4 2009, 16:40)  ПЛИС и ПЗУ включены в jtag-цепочку. Если ПЛИС пустая, то при после программирования выходы остаются в "нуле". Если записываю свой проект, в котором CLKDLL, то после программирования вылезает "1", длиной около 100 мкс. Кто сталкивался с подобным? Как бороться? (Проект фактически ничего в себя не включает, только вывод GND с некоторых ножек и генератор меандра на vhdl). А ну-ка медленно и по порядку. 1. Что и с кем в цепочке? Сама ФПГА и ее конфигурационная флэшка? Это нормально, если не накосячить. 2. Схему сами рисовали или это КИТ? Плату сами делали\разводили или это КИТ? 3. Какие конкретно входы остаются в нуле? 4. А если проект без CLKDLL (они довольно капризны) ? 5. В симуляторе делали post P&R симуляцию? В Моделсиме? Знаете ли Вы, что образы для заливки флэшки и ФПГА сильно отличаются?
|
|
|
|
|
Feb 4 2009, 16:06
|

Участник

Группа: Участник
Сообщений: 34
Регистрация: 24-06-05
Из: МО, г. Подольск
Пользователь №: 6 286

|
1) Цепочка такая: внешний порт JTAG - ПЗУ - ПЛИС. Всё сделано по рекомендации Xilinx и определяется в Impact, проходит проверку и шьётся. 2. Схему рисовал сам, вот она (в состоянии, максимально минимизированном для возникновения бага):  Не в нуле остаются и не входы, а выход. Выходят из нуля на 94 мкс после программирования ПЛИС из ПЗУ, когда не должны этого делать просто по схеме, выход там MR_A1A2_ext. 4. Не вижу смысла, всегда применял CLKDLL и никогда меня не подводила. 5. Моделировать это не нужно. Но моделировал блок, который выдаёт меандр в 517 нс, так вот, он в моделях во всех нормальный, а на практике формируется, но только после той "гадкой" единицы в 94 мкс. отличия *.bit и *.mcs естественно мне известны. я шью только ПЗУ, потом сбрасываю схему, перед анализом.
Сообщение отредактировал Pavel81 - Feb 4 2009, 16:17
|
|
|
|
|
Feb 5 2009, 09:17
|
Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192

|
Цитата(Pavel81 @ Feb 4 2009, 20:06)  1) Цепочка такая: внешний порт JTAG - ПЗУ - ПЛИС. Всё сделано по рекомендации Xilinx и определяется в Impact, проходит проверку и шьётся. Хорошо.
2. Схему рисовал сам, вот она (в состоянии, максимально минимизированном для возникновения бага): Я не внутренней схеме, а о внешней - электрической принципиальной. Вдруг Вы какой нужный вывод не туда завели.
Не в нуле остаются и не входы, а выход. Выходят из нуля на 94 мкс после программирования ПЛИС из ПЗУ, когда не должны этого делать просто по схеме, выход там MR_A1A2_ext. Они Вам ничего не должны. Нулем "по схеме" они обязаны стать только после конфигурации.
4. Не вижу смысла, всегда применял CLKDLL и никогда меня не подводила. Не будьте так категоричны. Уберите CLKDLL , и посмотрите.
5. Моделировать это не нужно. Но моделировал блок, который выдаёт меандр в 517 нс, так вот, он в моделях во всех нормальный, а на практике формируется, но только после той "гадкой" единицы в 94 мкс. Может, Вы забыли использовать по назначению сигнал LOCK от CLKDLL?
отличия *.bit и *.mcs естественно мне известны. я шью только ПЗУ, потом сбрасываю схему, перед анализом. Это уже хорошо. Тогда попробуйте зашить битстрим в ФПГА напрямую. Вдруг Вы какую-то опцию неправильно установили при генерации .mcs Посмотрите двухлучевым осциллографом временнОе соотношение сигнала от ФПГА "загрузка закончена" (идет на загрузочную флэшку) и вашего земляного вывода. Во время конфигурации поведение вывода определено в даташите. Обязано упасть в лог. 0 только ПОСЛЕ окончания загрузки прошивки. Вообще странно. То есть если не используете CLKDLL, то все нормально? Вот возможно момент, когда CLKDLL Вас подвела...
|
|
|
|
|
Feb 5 2009, 13:03
|

Участник

Группа: Участник
Сообщений: 34
Регистрация: 24-06-05
Из: МО, г. Подольск
Пользователь №: 6 286

|
В прикреплённом файле схема включения микросхем в цепочку JTAG.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 5 2009, 13:17
|
Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192

|
Да неважно, как они у Вас включены в цепочку, раз грузится и работает. Вы должны понимать, что "There are no way to control I/O until the end of the configuration process, unfortunately. You can use DONE signal to control external devices at startup. " Вот объяснение и возможное решение для Spartan 3. Возможно, подойдет и Вам. If pin HSWAP_EN is low, all the I/O pins will have pull-up resistors (a few kilo-ohms) during configuration. If pin HSWAP_EN is high, all the I/O pins will float (high-impedance) during configuration. You could tie HSWAP_EN high to float the I/O pins during configuration, and then install your own weak pull-down resistors to hold the I/O pins low during configuration. Вот у человека та же проблема: http://www.edaboard.com/ftopic263021.htmlПохоже, что ни JTAG, ни CLKDLL тут ни при чем. Настораживает Ваша фраза "всегда пользуюсь CLKDLL". То есть не новичок в ФПГА. Тогда почему Вы никогда не сталкивались с произвольным поведением пинов во время конфигурации? Любой, кто использует ПЛИС, первым делом наступает именно на эти грабли.
|
|
|
|
|
Feb 5 2009, 15:10
|
Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192

|
Цитата(Pavel81 @ Feb 5 2009, 19:02)  Помогло подтягивание зла резистором 4.7 кОм к земле. Теперь мой импульс запуска именно такой, какой надо, оконечник запускается. Ещё раз спасибо за решение моей проблемы, Kompot! Ээээ... Всегда пожалуйста. Только согласитесь, проблемы-то по большому счету и не было Удачи!
|
|
|
|
|
Feb 5 2009, 18:02
|

Участник

Группа: Участник
Сообщений: 34
Регистрация: 24-06-05
Из: МО, г. Подольск
Пользователь №: 6 286

|
Цитата(Kompot @ Feb 5 2009, 18:10)  Только согласитесь, проблемы-то по большому счету и не было  Проблема была. Просто раньше состояние выводов до конфигурации было мне не критично и я просто не обращал на это внимание. А тут меня натолкнули на этот пиндосский форум, где я вно описывают решение проблемы.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|