Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan-3 Board
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
asya
Здравствуйте. Я совсем новичек в этом деле.
Хочу заниматься цифровым дизайном. По совету далеких знакомых купил плату у xilinx'а со спартаном третьим на борту. Заодно купил книжку по VHDL. Douglas Smith. И знакомый советовал, и сам видел хорошие отзывы. (но на местный фтп пока доступа нет - новичек ведь). Книжка еще не дошла, поэтому пока дизайню как умею - schematic.
Так вот собственно вопрос номер 1.
Иногда при прошивке мне пишет Programming Failed. При повторной прошивке иногда срабатывает - иногда нет. Я бы сказал, что вероятность удачной прошивки порядка 0.5. Что я не так делаю?
ЗЫЖ кабель - LPT Jtag. (на 6 контактов)
TriD
У меня такое тоже случается, правда, гораздо реже. Я прошиваю запуская iMPACT не из оболочки ISE, а самостоятельно, затем связываю обнаруженную плисину с файлом прошивки. В этом случае, сбои происходят не часто.
Vitёk
Попробуйте один раз запустить iMPACT и больше не закрывать его. У меня он при повторном запуске вообще отказывается находить USB-Multilinx, приходится выполнять целый ритуал по его отключению/подключению. Скоро синонимом слова "Xilinx" станет слово "глюк".
alexf
Да, там иногда глючит JTAG и по хардверным причинам. Я включил интерфейс через плату в разъеме, так вообще перестал грузиться пока буфер не вделал.
Так что если кабель самодельный, может и в этом дело.
bbg
Цитата(alexf @ Feb 16 2005, 14:15)
Так что если кабель самодельный, может и в этом дело.


Если кабель LPT, то рекомендую посмотреть диоды и заменить на
Шоттки, если еще не. Выбирайте низковольтные, 50V.

Глюки с загрузкой бывали, вылечились подбором питалова
напрочь. Вот уже 2 года (тьфу-тьфу). Правда плата была не с
Spartan-3, а самопальная.

Даа, два импакта в памяти - это не есть гуд. Категорически.
asya
Два импакта в памяти никогда не висит. Глючит и с первого запуска. Бывает правда, что закрываю старый и потом щапускаю новый. А кабель не самодельный. Все купленное.
asya
Цитата(Vitёk @ Feb 16 2005, 14:48)
Попробуйте один раз запустить iMPACT и больше не закрывать его. У меня он при повторном запуске вообще отказывается находить USB-Multilinx, приходится выполнять целый ритуал по его отключению/подключению. Скоро синонимом слова "Xilinx" станет слово "глюк".
*

Да. К сожалению глюков понаходил уже тоже немеряно... Например, в ISE если в schematic capture двигать какой-нить элемент и скроллом мышки проползти вниз - то ножки и иногда весь элемент, который тянули остаются отрисованы и в старом месте и в новом. smile.gif Вообще очень много глюков с отрисовкой...
Vitёk
Цитата
Вообще очень много глюков с отрисовкой...
Слова "с отрисовкой" здесь лишние. К сожалению... Более всего меня в ECS убило следующее: копирую кусок схемы, вставляю его рядом - а он ПЕРЕИМЕНОВЫВАЕТ все цепи - даёт им названия по умолчанию. А дальше - при попытке переименовать их обратно вручную - пишет что "Переименование невозможно, т.к. такая цепь уже существует"!!! Просто зди#ец какой-то...
Дам один совет. Свои проекты лучше оформлять не в схематике, а описывать их на каком-нибудь понравившемся HDL. Ибо у меня такая ситуация: старые проекты делались в Foundation в виде схем, а теперь, с переходом на ISE, работать с ними не представляется возможным. Пока (тьфу-тьфу-тьфу) надобности модернизоровать их нету, но если вдруг потребуется, придётся тяжко... smile3046.gif Вроде слышал, что ActiveHDL понимает старый формат, но сильно в этом сомневаюсь. Так что, изучайте Verilog или VHDL - и вперёд. smile.gif
bbg
Цитата(asya @ Feb 16 2005, 15:32)
Два импакта в памяти никогда не висит. Глючит и с первого запуска. Бывает правда, что закрываю старый и потом щапускаю новый. А кабель не самодельный. Все купленное.


Попробуйте зарядить IDCODE Looping секунд эдак на 10.
Хардвэрных глюков не наблюдается? Initialize Chain проводите?

Кстати, кабелек у меня тоже был купленным, а внутри - 1N4148..
asya
Цитата(bbg @ Feb 16 2005, 17:18)
Цитата(asya @ Feb 16 2005, 15:32)
Два импакта в памяти никогда не висит. Глючит и с первого запуска. Бывает правда, что закрываю старый и потом щапускаю новый. А кабель не самодельный. Все купленное.


Попробуйте зарядить IDCODE Looping секунд эдак на 10.
Хардвэрных глюков не наблюдается? Initialize Chain проводите?

Кстати, кабелек у меня тоже был купленным, а внутри - 1N4148..
*


Обидно, но ни первое, ни второе высказывание мне ни о чем не говорит. sad.gif Я ж говорил, что совсем новичек... Можно немного поподробнее?..
Хардварных глюков - черт его знаю. заметил еще, что иногда появляются какие-то непонятные мне функции... например диод который я ни к чему не присоединял - сам по себе горит во время работы моей прошивки. Initialize chain - не уверен. Я запускаю impact - делаю скан девайсов - выбираю прошивку для одного из двух (у меня fpga и prom) и жму program.
asya
Цитата(Vitёk @ Feb 16 2005, 17:05)
Цитата
Вообще очень много глюков с отрисовкой...
Слова "с отрисовкой" здесь лишние. К сожалению... Более всего меня в ECS убило следующее: копирую кусок схемы, вставляю его рядом - а он ПЕРЕИМЕНОВЫВАЕТ все цепи - даёт им названия по умолчанию. А дальше - при попытке переименовать их обратно вручную - пишет что "Переименование невозможно, т.к. такая цепь уже существует"!!! Просто зди#ец какой-то...
Дам один совет. Свои проекты лучше оформлять не в схематике, а описывать их на каком-нибудь понравившемся HDL. Ибо у меня такая ситуация: старые проекты делались в Foundation в виде схем, а теперь, с переходом на ISE, работать с ними не представляется возможным. Пока (тьфу-тьфу-тьфу) надобности модернизоровать их нету, но если вдруг потребуется, придётся тяжко... smile3046.gif Вроде слышал, что ActiveHDL понимает старый формат, но сильно в этом сомневаюсь. Так что, изучайте Verilog или VHDL - и вперёд. smile.gif
*


про копирование - я думал так и надо... Ведь логично, что не может быть две цепи с одинаковыми именами в разных местах в схеме... не знал, что это глюк.
а вот насчет hdl - вчера проверил заказ моей книжки - они ее еще долго собирались везти. отменил заказ, купил в другом месте... в течение двух недель должна быть. а пока что читаю мануал небольшой по vhdl. нашел в инете.
Vitёk
Цитата
про копирование - я думал так и надо...
Не, так не надо... Представьте: у Вас на шине висит некоее устройство, которое выбирается с помощью сигнала SC_21. И вот Вам потребовалось добавить ещё три таких устройства, и выбирать их сигналами CS_22, CS_58 и CS_111. Что обычно делается в таких случаях: выделяется этот девайс со всеми проводами, копируется три раза, и потом нужно только исправить CS_21 на соответствующие. Так было в Xilinx Foundation... При работе в этом ублюдочном ECS Вы сразу отгребаете кучу проблем: ну ка переименуйте пару десятков проводов, помня при этом, ЧТО ИХ ПЕРЕИМЕНОВАТЬ НЕЛЬЗЯ, ИБО ЦЕПИ С ТАКИМ ИМЕНЕМ УЖЕ СУЩЕСТВУЮТ!!!
А две цепи с одинаковыми именами вполне могут быть в схеме - это одна и та же цепь, только не нарисована длинная ломаная лини по диагонали через всю страницу. smile.gif
С другой стороны - осваивать ПЛИС, пользуясь при этом схемным редактором - это хорошая практика. Многие вещи, прозрачные при описании на HDL, здесь видны явно - это привязка цепей к пинам, буфера и т.п. Так что Вы на правильном пути. smile.gif
bbg
Цитата(asya @ Feb 17 2005, 00:48)
Обидно, но ни первое, ни второе высказывание мне ни о чем не говорит. sad.gif Я ж говорил, что совсем новичек... Можно немного поподробнее?..
Хардварных глюков - черт его знаю. заметил еще, что иногда появляются какие-то непонятные мне функции... например диод который я ни к чему не присоединял - сам по себе горит во время работы моей прошивки. Initialize chain - не уверен. Я запускаю impact - делаю скан девайсов - выбираю прошивку для одного из двух (у меня fpga и prom) и жму program.
*


1) Выбираете дивайс, райтклик - в менюшке есть пункт - IDCODE Looping.
Всякий JTAGовский приблуд имеет 32-битовый ID, который с радостью
сообщит. Даже если не загружена прошивка .

В указанном пункте меню можно выбрать число таких попыток.
10000 будет в самый раз.

2) Диод горит. Такое бывает. У меня тоже горит, но диод сидит по соседству с ногой DONE. Чем дальше от активно задействованных при загрузке ног - тем
меньше ожидается горение диодов smile.gif Вообще, среди Ксилевских док, точнее,
TeXclusiv-ов, есть одна, где описывается поведение разных ног разных кристаллов при загрузке. На память не вспомню, вроде автором Peter Alfke.

3) Раз делаете скан дивайсов, значит, Initialize Chain тоже. Вообще, можно выбрать и принудительно райткликом.

4) Некоторые похожие глюки наблюдались, когда я пытался сваять (из вредности) асинхронный дивайс, активно работающий с JTAG, кстати.
Потом сделал все в синхроне и про глюки забыл.
asya
Цитата(bbg @ Feb 17 2005, 11:18)
1) Выбираете дивайс, райтклик - в менюшке есть пункт - IDCODE Looping.
Всякий JTAGовский приблуд имеет 32-битовый ID, который с радостью
сообщит. Даже если не загружена прошивка .

В указанном пункте меню можно выбрать число таких попыток.
10000 будет в самый раз.

стоит именно столько по дефолту...
Цитата(bbg @ Feb 17 2005, 11:18)
2) Диод горит. Такое бывает. У меня тоже горит, но диод сидит по соседству с ногой DONE. Чем дальше от активно задействованных при загрузке ног - тем
меньше ожидается горение диодов  smile.gif Вообще, среди Ксилевских док, точнее,
TeXclusiv-ов, есть одна, где описывается поведение разных ног разных кристаллов при загрузке. На память не вспомню, вроде автором Peter Alfke.

честно говоря мало понял. тока про то, что рядом с ногой done. я не знаю, закономерности не заметил, когда такие глюки выплывают, а когда нет... но факт, что при перепрошивке ничего не меняется...
Цитата(bbg @ Feb 17 2005, 11:18)
3) Раз делаете скан дивайсов, значит, Initialize Chain тоже. Вообще, можно выбрать и принудительно райткликом.

ID looping там есть... а вот про initialize chain ничего не нашел... sad.gif

В связи с этой фразой еще один у меня вопрос. Как вообще на этой плате частоту получать по нормальному? В смысле управляющую частоту. Я прочитал, что на пине Т9 подключен 50МГц генератор. С ним у меня все работает. Но зачем тогда я в project'е описываю в constraints частоту??? (напоминаю, что я новичек и вопрос, вероятно, может для вас звучать немного по-идиотски)

Хммм. Вообще-то вопрос про частоту я в отдельную мессагу вынес... И квотинг там свой был... Это админ какой-то поправил? Или глюк с форумом? И часто тут такое бывает?
Esquire
Я поправил wink.gif .

Если второй вопрос лежит вне поднятой темы bb-offtopic.gif , то лучше завести новую тему; иначе дописать его в предыдущее сообщение.

И уж во всяком случае не стоит отправлять 3 сообщения подряд, среди которых есть флуд вроде "ответьте кто-нибудь" cranky.gif .
bbg
Цитата(asya @ Feb 19 2005, 01:55)
честно говоря мало понял. тока про то, что рядом с ногой done. я не знаю, закономерности не заметил, когда такие глюки выплывают, а когда нет... но факт, что при перепрошивке ничего не меняется...


Ну, иногда это зовется ground bounce, иногда еще как-нить, идея в
том, что I/O пины объединены в банки, и динамические процессы
на некоторых из них меняют потенциалы на соседних в банке. Также можно
говорить о "конденсаторной" связи. Собственно, эти процессы надо минимизировать, у меня та плата со светящимся диодом вообще была первым блином smile.gif, сейчас я более качественно развожу землю и ставлю больше кондюков разных.

Про перепрошивку и не меняется. Бывает и такое (а не должно), лечилось
(у меня) сбросом питания и переходом на рекомендуемые синхронно-дизайные решения smile.gif)

[quote=asya,Feb 19 2005, 01:55]
ID looping там есть... а вот про initialize chain ничего не нашел... sad.gif
[quote=asya,Feb 19 2005, 01:55]

А вы мышой в сторону от обозначенных дивайсов отъедте и райткликните..

А вообще, дерзайте. Я неделю с энтими процессами боролся когда-то.
И все победилось.
asya
Цитата
Собственно, эти процессы надо минимизировать, у меня та плата со светящимся диодом вообще была первым блином , сейчас я более качественно развожу землю и ставлю больше кондюков разных.

Т.е. если я правильно понял, то это все с паяльником делается? Но ведь у меня плата то произведена не мной... Это ж массовое производство. Неужели там такие проблемы могут быть?
Цитата
А вы мышой в сторону от обозначенных дивайсов отъедте и райткликните..

ага. сработало. ясно. спасибо. (initialize chain нашел)
Цитата
Бывает и такое (а не должно), лечилось
(у меня) сбросом питания и переходом на рекомендуемые синхронно-дизайные решения )

А это как? Я вообще не совсем понимаю, как тут можно асинхронное че-то сделать (собсна я и термин могу неправильно понимать), если все, что я нашел - это 50MHz oscillator на плате который подключается по пину T9. Если я чушь несу, пожалуйста, поправьте.
bbg
Цитата(asya @ Feb 23 2005, 06:03)
Т.е. если я правильно понял, то это все с паяльником делается? Но ведь у меня плата то произведена не мной... Это ж массовое производство. Неужели там такие проблемы могут быть?

Все ясно, про диод - это я похоже Вас запутываю, хоть и ненамеренно.
Только что внимательно просмотрел - "во время _работы_ моей прошивки".
А это не совсем то, что я имел в виду. У меня горел LED во время _загрузки_ прошивки,
а это совсем иное.. У вас, кстати, что за борда - это та, что за $99?
Тогда посмотрю схемку, вроде где-то была. Может, этот LED на ноге DONE
сидит? Тогда так и должно быть smile.gif)

Цитата(asya @ Feb 23 2005, 06:03)
Цитата
Бывает и такое (а не должно), лечилось
(у меня) сбросом питания и переходом на рекомендуемые синхронно-дизайные решения )

А это как? Я вообще не совсем понимаю, как тут можно асинхронное че-то сделать (собсна я и термин могу неправильно понимать), если все, что я нашел - это 50MHz oscillator на плате который подключается по пину T9. Если я чушь несу, пожалуйста, поправьте.


Ну, асинхронное что-то всегда можно сделать smile.gif
Подумал я вот и решил Вам некий алгоритм предложить, так сказать,
для начинающих. Сразу оговорюсь, что работаю с версией ISE4.2,
у Вас, полагаю, WebPack 6.1. Но не думаю, что есть принципиальная
разница по работе туулзов по генерации и загрузке прошивки.

Итак, имеем намерение сделать чего-то в среде и погрузить через
iMpact и TAP-порт (JTAG). Это, разумеется, не единственный способ
создать проект для FPGA и загрузить его в кристалл, но большинство
начинает именно так.

0) Делаем что-то в среде. По-видимому, Вы все рисуете в Schematics
Editor. Тоже делал так первые две недели, больше никогда так не
делаю, о прелестях и непрелестях SCH и HDL уже много чего было
сказано, в том числе и на этом форуме, так что...

1) Производите .BIT - файл для JTAG-загрузки (галочка на соотв.
клоке). Обратите внимание на имя файла! Очень легко, когда в
проекте будет несколько файлов-сорцов, залезть на левой панели не
туда и сгенерить битфайл для подмножества задуманного проекта, да
еще и с лево расставленными туулзой ногами.(Кстати, проверьте
содержимое .UCF-файла, назначение ног и все такое!)

2) Запускаете импакт из среды. Если звезды удачные, импакт находит
кабель и рисует блекло JTAG-цепочку. Если в ней незнакомые дивайсы,
или проблемы с железом - появляются разные интересные сообщения.
Их надо побороть. Это отдельная песня.

3) Делаете Initialize Chain. Появляется цепочка устройств,
запрашиваются разные там файлы конфигурации для устройств по
порядку. Тут можно сделать отмену.

4) Выбираете нужный дивайс. Делаете IDCODE Looping. Делаете райтклик,
выбираете _нужный_ битфайл. Программируете. Надеюсь, все ОК, и даже
работает. Если нет, два варианта:
- мягкий, возвращаемся к пункту 3
- жесткий, вырубаем питание платы, ждем 5сек, врубаем и возвращаемся
к пункту 3

5) Если появилось намерение экспериментировать дальше, то _прибейте_
импакт и возвращайтесь в пункт 0.

Пояснение. Эта, гм, @#$%& программа, по крайней мере, в версии 4,
любит "кешировать" ваш загрузочный поток. В детали не вникал, просто
прибейте импакт, создайте новый битфайл и запустите импакт.

Как вариант, Вам это уже советовали, запустите импакт отдельно от
среды и выбирайте битфайлы явно.

Еще как вариант, не используйте импакт smile.gif У меня свой загрузчик,
например.
Gorby
По поводу загрузки прошивки через раз.
Иногда помогает подобрать пулл-ап на клок JTAG. Причем поведение очень необычно - например 15 ком работает на УРА, а 5 ком - ни в какую. То есть пределы от 1 ком до 56 ком надо попробовать.
asya
Цитата(Gorby @ Mar 8 2005, 12:57)
По поводу загрузки прошивки через раз.
Иногда помогает подобрать пулл-ап на клок JTAG. Причем поведение очень необычно - например 15 ком работает на УРА, а 5 ком - ни в какую. То есть пределы от 1 ком до 56 ком надо попробовать.
*

Т.е. если я правильно понял, то вы предлагаете поставить в готовую плату "подтягивающие" резисторы? Просто мне кажется немного странным, что надо такое делать в плате ,которая печатается довольно большим тиражом...
А если и ставить, то к какому напряжению надо подводить второй вывод резистора?
Wilde
Ничего не делать, это нормальная ситуация.
Андрей Харитонов
у меня когда-то тоже глючило программирование. Я программировал микросхемы 9500 5V-серии. Так все очень просто оказалось - напряжение в устройстве было 5.1 вольта. Когда сделал 5.0 все стало нормально и ошибок вообще больше никогда не было.
anatol1983
Цитата(asya @ Feb 16 2005, 05:00)
Здравствуйте. Я совсем новичек в этом деле.
Хочу заниматься цифровым дизайном. По совету далеких знакомых купил плату у xilinx'а со спартаном третьим на борту. Заодно купил книжку по VHDL. Douglas Smith. И знакомый советовал, и сам видел хорошие отзывы. (но на местный фтп пока доступа нет - новичек ведь). Книжка еще не дошла, поэтому пока дизайню как умею - schematic.
Так вот собственно вопрос номер 1.
Иногда при прошивке мне пишет Programming Failed. При повторной прошивке иногда срабатывает - иногда нет.  Я бы сказал, что вероятность удачной прошивки порядка 0.5. Что я не так делаю?
ЗЫЖ кабель - LPT Jtag. (на 6 контактов)
*


А не подскажите где такую плату можно купить и сколько это будет стоить?
aal
Порядк 130 долларов. Покупаем через скантиру.
3.14
Кстати, наверное у них скоро новая плата появится - Spartan3E-500, точные отличия в периферии не помню но там точно есть SDRAM и PHY для Ethernet.
Стоит у Xilinx 130$ (та что сейчас у Inlinegroup продается за 130, у Xilinx ~90$).
asya
Цитата(anatol1983 @ Apr 30 2005, 03:29)
А не подскажите где такую плату можно купить и сколько это будет стоить?
*

www.xilinx.com
я там и покупал.
anatol1983
Я надеюсь за такие деньги они диск с ISE прилагают?
asya
Цитата(anatol1983 @ May 1 2005, 04:14)
Я надеюсь за такие деньги они диск с ISE прилагают?
*

за 90, xilinx - да. а заодно и ModelSim XE. ( в смысле в пакет за 90 баксов входят: плата, блок питания, шнурик для заливки, ISE, Modelsim, Sinplify and Sinplify Pro, небольшие мануалы (один 60, другой 200 страниц) + мне позже пришло рекламная брошюра MicroBlaze'а еще с какими-то дисками).
asya
Цитата(3.14 @ Apr 30 2005, 11:04)
Кстати, наверное у них скоро новая плата появится - Spartan3E-500, точные отличия в периферии не помню но там точно есть SDRAM и PHY для Ethernet.
Стоит у Xilinx 130$ (та что сейчас у Inlinegroup продается за 130, у Xilinx ~90$).
*

А SDRAM и у меня есть... 2 мегабита.
radist
Опять вопрос ламера. Купил я тут три дня назад Spartan3 starter kit в инлайн груп. Так вот, вопрос опять про прошивку через Jtag. Никак не удаётся заставить эту заразу работать, второй вечер вожусь. Смысл проблемы: подключаю parallel 3 кабель в LPT, подключаю его на плату, пытаюсь сделать initialize chain, ан нет, Импакт говорит что аппаратная ошибка. Вот такая:

"
...
PROGRESS_START - Starting Operation.
Identifying chain contents ....done.
ERROR:iMPACT:585 - A problem may exist in the hardware configuration.
Check that the cable, scan chain, and power connections are intact,
that the specified scan chain configuration matches the actual hardware, and
that the power supply is adequate and delivering the correct voltage.
Validating chain...
Boundary-scan chain validated successfully.
...
"

Так вот, мне ни разу не удалось проделать initialize chain, однако кабель Импакт видит. Вопрос : что не так, может я джамперы какие на плате не так поставил, хотя пробовал все доступные моему разуму конфигурации, может ещё что. Немножечко удивляет, что в стартовом комплекте, который по идее должен позволить быстро начать разработку, возникаю такие вот чудеса. Или это мои кривые руки?
Сразу оговорюсь, и плата и кабель стандартные, из того самого набора и в плис я новичёк .
3.14
JTAG цепь в стартере джамперами не меняется, меняется только способ загрузки FPGA. Попробуйте покрутить настройки LPT, если не поможет, тогда наверное Вам "жареный" стартер достался sad.gif.
radist
$@#@$%#$ $%^#$%@#$ !!!! Короче рассказываю. После проверки настроек LPT (я их и правда полгода назад переставлял), решил проверить этот &*$%^#$%^ кабель. Раскрутил тот разъём, что в компьютер идет, посмотрел и сверил с усер гадом, что с китом был. В гаде есть схема, где написано, что "p9, p11, p12 are shorted at PC end of cable". В моём случае было shorted p8,p11,p12. АГА, думаю. Перепаял как в гаде сказано. Не тут то было, кабель вообще перестал находиться. Перепаял обратно. Подумал немного, и разрезал термоусадку, которая саму схемку закрывала. И вот там обнаружилось, что синий проводок, идущий на 3 ногу порта LPT попросту отвалился. Припаял его, и всё чудесным образом заработало. Скока счастья было! Но нет худа без добра:
1. Много нового узнал, читая различные книжки, даташиты и форум
2. Заодно починил будильник-приёмник smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.