Полная версия этой страницы:
Чем программировать Cyclone`ы
Kuzmi4
Nov 22 2007, 15:25
Здравствуйте.
Сам новичёк в ПЛИСАХ, однако прочитав литературу пришёл к выводу что программировать их не так уж и просто - меня интересует кто чем программирует циклоны, а именно - EP1C3 и выше(решил на циклонах остановится).
Так же хотелось узнать чем можно программировать 2-е циклоны. То есть хотелось бы поиметь на крайняк схемку программера чтоб он шил и 1-е и 2-е циклоны(если его цена будет заоблачная)..
Тут нарыл USBBYTEBLASTER-RCN - типа мега-программер.В biakom`е (что в киеве) пишут что когда начну работать с NIOS II мне нужно будет обнаруживать точки останова программы - так называемые Брэкпоинты. USBBYTEBLASTER-RCN это может, другие более дешевые вряд ли. И цена у него 400 уЁ.
Так вот - в связи с такой интересной ценой - интересует - на сколько "ВРЯД-ЛИ". И можно ли купить какой нибуд программер по дешевле - хочу купить - потому как собирать, а потом проводки дёргать чтоб программер ожил(очень много таких постов) неохота(если ценовой вариант не заставит).
Спасибо.
Что-то не понял. А стандартный Altera USB Blaster чем не устраивает?
rv3dll(lex)
Nov 23 2007, 06:48
обычным байт бластером мв - с помощью файла JIC
USB бластер кривая железка
в режиме отладки - когда постоянно включают выключают питание частенько виснет и долго инициаизируется
Во-первых, циклоны нужно "программировать" каждый раз после включения питания. В них нет энергонезависимой памяти.
Программировать можно чем угодно. Байтбластер и прочие бластеры - просто удобное средство для загрузки с компьютера. В реальном устройстве надо программировать чем-то еще.
Обычно используются 2 способа:
1. Загрузка из конфигурационного ПЗУ. Это EPCSxxx от Альтеры или же M25Pxxx от ST (полные аналоги!). Как прошить - зависит от разработчика. Это обычное SPI EEPROM.
2. Загрузка микроконтроллером. Если он есть в устройстве, то он может заодно загрузить Альтеру. Протокол загрузки документирован, всего 2 провода - данные и такт (passive serial) + пара управляющих сигналов. САПР может создать двоичный файл (*.rbf), который программа микроконтроллера должна отправить в альтеру.
moonrock
Nov 23 2007, 08:41
Добавлю что иногда дешевле применить контроллер с внешней EEPROM, чем ставить EPCSxx, но возни конечно больше при этом.
Kuzmi4
Nov 23 2007, 09:10
Оппа.
Вот тут то я и запутался - я конечно знал что FPGA от CPLD отличаются тем, что в CPLD прожигается ЕЕПРОМ и потом она каждый раз с него стартует.А для FPGA нужно наличие внешней памяти с которого она и подгруает что надо - типа конфигурируется. Однако на сколько я понял - если включу железку - запрограммлю бластырем - а потом выключу и опять включу - ничего не будет - мне нужно будет ставить или контроллер или память чтоб она с него загружала, так?
И есчё касательно ниоса - так всё таки на счёт этих загадочных брейкпоинтов - может обычный байтбластер с их делать и зачем они мне надо - может с добрых людей мне кто нибудь объяснить?
И касательно циклона - встречал тут на форуме довольно разнообразыне отзывы про бластыри - одни говорили что что бластыр MV работает а со 2-м бластірем - не получалось, другие наоборот. Может кто нибудь внести ясность?
rv3dll(lex)
Nov 23 2007, 09:36
Цитата(Kuzmi4 @ Nov 23 2007, 12:10)

Оппа.
Вот тут то я и запутался - я конечно знал что FPGA от CPLD отличаются тем, что в CPLD прожигается ЕЕПРОМ и потом она каждый раз с него стартует.А для FPGA нужно наличие внешней памяти с которого она и подгруает что надо - типа конфигурируется. Однако на сколько я понял - если включу железку - запрограммлю бластырем - а потом выключу и опять включу - ничего не будет - мне нужно будет ставить или контроллер или память чтоб она с него загружала, так?
И есчё касательно ниоса - так всё таки на счёт этих загадочных брейкпоинтов - может обычный байтбластер с их делать и зачем они мне надо - может с добрых людей мне кто нибудь объяснить?
И касательно циклона - встречал тут на форуме довольно разнообразыне отзывы про бластыри - одни говорили что что бластыр MV работает а со 2-м бластірем - не получалось, другие наоборот. Может кто нибудь внести ясность?
что первый что второй бластор конфигурирует циклон через житаг и через жил файл используя сам циклон заливает его пзу
но не получилось залить пзу напямую вторым бластером
Цитата(Kuzmi4 @ Nov 22 2007, 18:25)

Здравствуйте.
Сам новичёк в ПЛИСАХ, однако прочитав литературу пришёл к выводу что программировать их не так уж и просто - меня интересует кто чем программирует циклоны, а именно - EP1C3 и выше(решил на циклонах остановится).
Так же хотелось узнать чем можно программировать 2-е циклоны. То есть хотелось бы поиметь на крайняк схемку программера чтоб он шил и 1-е и 2-е циклоны(если его цена будет заоблачная)..
Тут нарыл USBBYTEBLASTER-RCN - типа мега-программер.В biakom`е (что в киеве) пишут что когда начну работать с NIOS II мне нужно будет обнаруживать точки останова программы - так называемые Брэкпоинты. USBBYTEBLASTER-RCN это может, другие более дешевые вряд ли. И цена у него 400 уЁ.
Так вот - в связи с такой интересной ценой - интересует - на сколько "ВРЯД-ЛИ". И можно ли купить какой нибуд программер по дешевле - хочу купить - потому как собирать, а потом проводки дёргать чтоб программер ожил(очень много таких постов) неохота(если ценовой вариант не заставит).
Спасибо.
БайтбластерМВ сделаете сами. На все FPGA кристаллы для конфигурирования. И программирования CPLD и ПЗУ.
Что касается USB бластера. Что то цены заоблачны.
Поищите в отладочных средствах Terasic. Ему красная цена 60$
Kuzmi4
Nov 30 2007, 08:12
Здравствуйте всем.
Покопавшись нашёл такую схемку для заливки циклона. На сколько я понял слева флеша(М25Р40 вместо рекомендуемой альтерой - оказалось во много раз дешевле, а по лапам и ф-циональности - полный аналог). Далее в разъём вставляется коннектор с бластырь2 и прошивается - так? А потом по идее если выключить, а потом включить питание - циклон должен сам генерить клоки чтоб память ему данные навыдавала для того чтоб он сам сконфигурировался, так?
Есть есчё вопрос - тут много говорилось про возможность заливать плисы микроконтроллером - а где можно что-то почитать по этому вопросу? Или может кто нибудь рассщедрится и выделит что нибудь с закромов родины? Буду премного благодарен
rv3dll(lex)
Nov 30 2007, 08:35
Цитата(Kuzmi4 @ Nov 30 2007, 11:12)

Здравствуйте всем.
Покопавшись нашёл такую схемку для заливки циклона. На сколько я понял слева флеша(М25Р40 вместо рекомендуемой альтерой - оказалось во много раз дешевле, а по лапам и ф-циональности - полный аналог). Далее в разъём вставляется коннектор с бластырь2 и прошивается - так? А потом по идее если выключить, а потом включить питание - циклон должен сам генерить клоки чтоб память ему данные навыдавала для того чтоб он сам сконфигурировался, так?
Есть есчё вопрос - тут много говорилось про возможность заливать плисы микроконтроллером - а где можно что-то почитать по этому вопросу? Или может кто нибудь рассщедрится и выделит что нибудь с закромов родины? Буду премного благодарен

у меня так не пошло - и на сколько я понимаю в этом случае нет заливки по житагу
поэтому разъём тут не ставил а всё остальное так , только ещё житаговский разъём но нему и флешку лью
Kuzmi4
Nov 30 2007, 08:39
2 rv3dll(lex) - то есть вы хотите сказать, что вы сначала заливаете бластером(каким если не секрет - так понимаю МВ ?) по житагу флеш(М25З которую?) , а потом вставляете её в разъём включаете питание и плис начинает загрузку с флеши?
Цитата
2 rv3dll(lex) - то есть вы хотите сказать, что вы сначала заливаете бластером(каким если не секрет - так понимаю МВ ?) по житагу флеш(М25З которую?) , а потом вставляете её в разъём включаете питание и плис начинает загрузку с флеши?
Квартус умеет по jtag заливать во флэш.
Kuzmi4
Nov 30 2007, 09:07
2 vetal - а не могли бы вы для начинаюсчего немного описать - что это такое ?
Цитата
2 vetal - а не могли бы вы для начинаюсчего немного описать - что это такое ?
Это режим jtag jtag indirect configuration. При выборе данного метода программирования в квартусе он сначала загружает в плисину свою прошивку и потом через jtag передает ей ваши конфигурационные данные. Эти данные программируются во флэш, далее все работает в обычном режиме - ваша прошивка в конф. пзу.
Kuzmi4
Nov 30 2007, 09:35
2 vetal - то есть на сколько я вас понял - сначала прошивается плис, потом плисине передаются конф.данные(прошивка я так понял) которые она же и прошивает в стоящую рядом М25Р, а потом когда выключить и включить питание - плисна начнёт генерить клоки и конфигурится от М25Р- и для этого мне нужно подрубить житаг-разъём к плисине - вроде всё верно?
да. это все описано в мануалах и хелпах. для пользователя процедура совершенно прозрачна - все делает сам квартус.
Kuzmi4
Nov 30 2007, 10:12
Посмотрел по документам и пришёл к такому виду подключения коннекторов -
значит подключение житага к плис - как на рис.1 а с другой стороны к плис нужно подключить флеш- чтоб заливка перешивалась - она подключается с другой стороны(по рисунку всмысле) как на рис.2 (при чём MSEL0,1 должны стоять в позиции 1,0 соответственно чтобы схема была - JTAG-based) так?
Цитата
соответственно чтобы схема была - JTAG-based) так?
MSEL должны стоять для поддержки active serial. jtag доступен всегда!
Kuzmi4
Nov 30 2007, 13:34
2 vetal - то есть если я буду шить житагом - можно вообсче в воздухе оставить их ?
Так а мысли подключения всё таки правильные?
Цитата
2 vetal - то есть если я буду шить житагом - можно вообсче в воздухе оставить их ?
Не смешивайте jtag и загрузочное пзу.
По нижнему рисунку(2) у вас схема будет загружаться при подаче питания, а по верхнему - когда вы захотите запрограммировать загрузочное пзу или выполнить конфигурирование без перепрошивки пзу.
Kuzmi4
Nov 30 2007, 14:34
2 vetal - я и пытаюсь раобраться, чтоб потом бяки не наделать.
На сколько я понял - есть несколько способов заливки конфигурационного файла -
AS, РS и житаг - плюс по житагу можно есчё залить в пзу конфигурациооный файл( как описывалось выше - jtag indirect configuration ). Я так понял через житаг можно заливать всегда - а AS и РS моды - при выставленных определённым образом MSEL0,1. То есть меня интересует как подключить М25Р и житаг к плисине при желании запрограмить через jtag indirect configuration .
Из прочитанного мной и посоветованного вами - я пришёл к выводу что можно сделать например 2 путями
1) как на приложенном рисунке(AS)
2) используя jtag jtag indirect configuration
если со схемой подключения М25Р, коннектора и плисины для пункта 1 всё понятно, то со схемой для пункта 2 - не всё понятно: на сколько я понял - jtag indirect configuration - это когда сначала прошивается плис, потом плисине передаётся прошивка, которую она же и прошивает в стоящую рядом М25Р, а потом когда выключить и включить питание - плисна начнёт генерить клоки и конфигурится от М25Р. Для этого мне нужно иметь житаг и подключить к плисины есчё М25Р.
Я выше привёл рисунки - и я так понял они не совсем верны - можно тогда посмотреть на правильный вариант подключения для jtag indirect configuration ?
Цитата(Kuzmi4 @ Nov 30 2007, 17:34)

2 vetal - я и пытаюсь раобраться, чтоб потом бяки не наделать.
На сколько я понял - есть несколько способов заливки конфигурационного файла -
AS, РS и житаг - плюс по житагу можно есчё залить в пзу конфигурациооный файл( как описывалось выше - jtag indirect configuration ). Я так понял через житаг можно заливать всегда - а AS и РS моды - при выставленных определённым образом MSEL0,1. То есть меня интересует как подключить М25Р и житаг к плисине при желании запрограмить через jtag indirect configuration .
Из прочитанного мной и посоветованного вами - я пришёл к выводу что можно сделать например 2 путями
1) как на приложенном рисунке(AS)
2) используя jtag jtag indirect configuration
если со схемой подключения М25Р, коннектора и плисины для пункта 1 всё понятно, то со схемой для пункта 2 - не всё понятно: на сколько я понял - jtag indirect configuration - это когда сначала прошивается плис, потом плисине передаётся прошивка, которую она же и прошивает в стоящую рядом М25Р, а потом когда выключить и включить питание - плисна начнёт генерить клоки и конфигурится от М25Р. Для этого мне нужно иметь житаг и подключить к плисины есчё М25Р.
Я выше привёл рисунки - и я так понял они не совсем верны - можно тогда посмотреть на правильный вариант подключения для jtag indirect configuration ?
Верхние рисунки верны. И нижний тоже верен (для его использования обязательно нужен BB2 там есть примечание).
Нет смысла вешать разъем на загрузочные пины ПЗУ. Хотя бы для компактности разводки цепей загрузки. Скачайте конфигурационный handbook с сайта Альтеры, там все рассписано.
Реализуйте Режим AS для ПЗУ. Потом подключите цепи JTAG. Они должны наложиться без противоречий режиму AS. К JTAG разъем байтбластера МВ.
И скачайте документ an370.pdf Должно хватить.
Kuzmi4
Nov 30 2007, 15:37
2 sazh - спасибо.
Бум делать платку ....
Для Kuzmi4'a
Посмотрите прилагаемое
2 Adlex - спасибо, приблизительно так я себе и представлял.
Заказал чип(оказалось ниЗЗЗя так просто прийти и купить циклон с М45Р - надо ждать до среды..)
счас как раз делаю платку..
Сварганил тестовую схемку - ничего сложного - порты просто будут выводится на коннекторы - добавлю там пару лампочек - но это не есть самое главное.
В обсчем подключение памяти и житага - как в документе у Adlex`a. Вроде правильно на 1-й циклон перенёс?
Вопрос в том - А куда девать nCEO - ? Я так понял - просто сигнализатор окончания конфигурирования плиса - можно чтоб он в воздухе висел - или есть какие то правила?
И касательно ASDO и nCSO - они в описании ног циклона указываются как конфигурационные и И/О(ввов/вывод) пины - то есть после загрузки данных в плис они становятся ввод/вывод ?
Далее - такой вопрос по питанию - в прочитанной горе информации люди в основном советовали конечно покупать спец.мелкосхемы для запитки плисов - однако в связи с дороговизной(относительной) этих самых мелкосхем была так сказать собрана этакая гибридная схема - LM317+транзистор(поставлю не как по схеме, а BC817-40 - вроде помощней будет). Транзисторная схема бралась отсюдова -
http://electronix.ru/forum/index.php?act=A...post&id=254С клоками непонятка - есть какие то рекомендации там...
VREF[0..2]B[1..4] - то же как бы И/О(ввов/вывод) пины - аналогично с ASDO и nCSO..
Хотелось бы что бы узнать - правильно ли я сварганил схемку, может дополнения какие надо...
Спасибо.
Цитата(Kuzmi4 @ Dec 3 2007, 16:39)

Далее - такой вопрос по питанию - в прочитанной горе информации люди в основном советовали конечно покупать спец.мелкосхемы для запитки плисов - однако в связи с дороговизной(относительной) этих самых мелкосхем была так сказать собрана этакая гибридная схема - LM317+транзистор(поставлю не как по схеме, а BC817-40 - вроде помощней будет).
Че за сложности с пианием... есть вариант гораздо проще:
например SPX1117M3-3.3 и LT1963AEST-1.5 (есть еще куча подобных стабилизаторов)
sektoris
Dec 4 2007, 07:16
2 sektoris - за схемы - спасибо.
2 Mc_off - на счёт SPX1117M3-3.3 - за 2 наших гривенных - я с вами согласен. А вот LT1963AEST-1.5 - за 31 рупь - для меня это дорого - я лучше куплю транзистор(или как в схеме у sektoris`a - поставлю есчё один LM317 - который обойдётся мне в 90 копеек) - будет гораздо дешевле..
Всё таки наверно поставлю есчё один LM317...
Но всё же - на счёт моего поста 3.12.2007-15:39 - на счёт памяти и житага - спасибо sektoris`у, а вот касательно других вопросов может кто-то всё таки расскажет, хотя бы вкратце?
Закончил разглядывать
http://www.ldm-systems.ru/price_plis.htm -
хотелось бы спросить sektoris`а -
у вас по схеме ТCK прицеплен к питанию(3.3в) а в документах альтеры и в схемках что видел - его цепляют к земле - да и судя по схеме вообсче - вы просто подтянули к питанию все выводы житага - не могли бы вы объяснить такой ход ?
Далее - накопал такую информацию по VREF[0..2]B[1..4] - говорится , что если банк использует voltage-referenced I/O standard - тогда эти лапки юзаются как voltage-reference pins для банка. Если же voltage reference I/O standards не используются - тогда это вводы/выводы юзера. Однако, когда я в квартусе в пин-планнере назначаю лапки то в соответствуюсчей колонке я могу выбрать стандарт ( I/O standards ), однако я не могу понять что такое - voltage reference I/O standards не используются - что имели ввиду - ведь в I/O standards - нет пустого поля да и не должно его там быть..
на счёт клоков - я так понял это глобальные клоки которые заводятся в девайс - они там на тригеры потом идут что на входе и так далее - тут тучи прояснились. Далее будем эксперименторовать с макеткой...
Есть идея сотворить клоки на логике(генераторы - дорого покупать - ну очень много стоит) - хотелось бы узнакть как оно есть на самом деле - то есть есть ли сдесь какие нибудь подводные камни ?
На счёт ПЛЛ так же вопрос - перемежевывается с вопросом по клокам - можно ли например взятькакой нибуть там тактовый сигнал , запустить на вход ПЛЛ, далее умножить его там на сколько надо, а потом внутри кристалла использовать как свой тактовый сигнал - вроде я так подумал - возможно, однако хотелось бы узнать - нет ли и тут подводных камней?
Касательно ASDO и nCSO всё же есть не ясности - вроде бы когда идёт конфигурирование по житагу - это могут быть узеровские лапки,а вот на счёт моей догадки, что после загрузки данных в плис в AS моде(когда житага нету) они становятся ввод/вывод - как оно дело обстоит ?
Далее нашёл такие лапы - DEV_CLRn и DEV_OE - что первая , что вторая - Dual-purpose pin, однако первая обнуляет все регистры в девайсе когда на ней низкий уровень, вторая - делает так , чтобы все вводы/выводы были одновременно в 3-м состоянии, если на ней - низкий уровень. Хотелось бы узнать - как эти лапки могут быть переконфигурированы на одно или другое использование?
Спасибо.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.