Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Какую Плис Выбрать Для Реализации Конкретной Задачи
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
AntiDriver
Доброе время суток.
Необходима помощь с выбором программируемой логики. Ранее не имел с ней дело, в связи с чем затрудняюсь с выбором.

Возникла задача реализовать устройство - приёмопередатчик.
В итоге нужно получить следующее: две платы, на каждой по плисине.

На первую плату подаётся напряжение питания и желательно бы иметь интерфейс для обмена данными (USB, RS232 или подобные, для соединения с ПК, но это пока не принципиально).

На вторую внешнее питание не подаётся, там стоят конденсаторы, накапливающие энергию.

Соединены они с помощью высокочастотного трансформатора (требований к рабочей частоте пока нет, ориентировочно 100 кГц...1МГц).

Принцип работы заключается в том, что в определённый момент времени осуществляется подача энергии через трансформатор ("короткие" импульсы), накапливается энергия на конденсаторах, плис игнорирует эти импульсы. Потом начинается передача информации (несколько байт "длинными" импульсами) с плис на первой плате, которую плис на второй плате должна записать во внутреннюю память и в ответ на это выдать какую-то информацию (несколько байт) через трансформатор. Прикреплена иллюстрация, поясняющая работу.
В последствии плис планируется заменить заказной интегральной микросхемой после отладки алгоритмов.

В связи с чем требования к первой плис:
- энергопотребление не имеет большого значения
- возможность реализовать обмен данными с ПК
- частота тактирования может задаваться кварцем.

Требования ко второй плис:
- минимально возможное энергопотребление
- частота тактирования не должна задаваться кварцем, однако должна быть достаточно высокой, чтобы "успевать" принимать информацию и успевать не реагировать на "короткие" импульсы передачи энергии (кстати, какие есть соображения по этому поводу? RC цепочка не может давать достаточно высокие частоты, к примеру для pic16 RC цепь генерирует всего 4 МГц, что может в этом плане плис?).

На данный момент уже есть функционирующий передатчик на микроконтроллере pic16f84a (тактовая частота 10 МГц), передающий один байт на частоте 100 кГц и приёмник, пока ещё не совсем стабильно работающий на микроконтроллере pic18f14k22 (тактовая частота 64 МГц). Столь высокие частоты тактирования при относительно низкой скорости передачи обусловлены тем, что одна простая команда в микроконтроллере выполняется за 4 такта, ветвления 8, переходы и прерывания от 8 до 16. Это не совсем удобно поэтому и было решено реализовать всё на плис.


vzelenuk
Судя по тому, что у Вас нет высокоскоростной передачи или какой то серьезной обработки сигналов, Вам подошла бы любая CPLD с таймерами и счетчиками, но Вы хотите интерфейсы.
Значит либо Spartan6 от Xilinx либо Cyclone IV от Altera. В какой среде планируете работать.
SM
Посмотрите на iCE40 LP , с очень большой вероятностью это именно то, что нужно для задачи, особенно для "второй" ПЛИС, и, возможно, безальтернативное. Для первой же вообще особо не имеет значения, какое семейство. Хоть тоже iCE40, хоть MachXO2, хоть MAX-V, или LatticeXP2 (все имеют внутри и флеш, и генератор, который у латисов пошустрее и программируемый, у MAX фиксированно что-то типа 5 МГц (кажется), а у iCE40 их целых два, low speed (~10 кГц) и high speed (~12 MHz), первый может тактировать что-то медленное, а второй включаться когда это надо для быстрой работы)
AntiDriver
А может лучше какой-либо аналог iCE40 LP. У меня совершенно нет опыта с ПЛИС, не возникнут ли у меня трудности? Имею ввиду со средой программирования, литературой и поддержкой. Предпочтительнее было бы поработать с продукцией Xilinx
SM
Цитата(AntiDriver @ Feb 15 2014, 21:46) *
А может лучше какой-либо аналог iCE40 LP.

У этой серии нет (известных мне) аналогов. А, что касается софта, если Вы ни с чем до этого не работали, то совершенно все равно, с чего начинать, все они одной крови, плюс-минус нюансы. Если же работали, то тем более, смена среды пройдет легко. Поддержка у lattice, пожалуй, лучше всех других вместе взятых (скорее всего потому, что она не особо распиаренная, и у индусов из поддержки больше свободного времени).

И не надо иметь каких либо предпочтений/предрассудков, связанных с фирмами-производителями при выборе комплектации. Это вредно. Есть параметры и цена, и ничего более нет. Честно говоря, я не вижу вариантов для второй ПЛИС, кроме iCE, с учетом такого питания.
AntiDriver
Про Xilinx просто много слышал и даже в институте когда-то программировали их, но не могу это назвать практикой, так как это было что-то вроде где-то достать программу у тех кто на год старше, попытаться залить и чудом защитить.
А по поводу этой ПЛИС, документацию ещё не читал, с английским не очень, много времени на изучение уйдёт. В двух словах, какое программное обеспечение подойдёт? (есть ли под linux?) Каким лучше пользоваться? И какую литературу имеет смысл почитать? Что касаемо самой микросхемы, то какие у неё источники тактового сигнала? Хотелось бы обойтись, как уже писал, без кварцевого резонатора для снижения стоимости, хотя это не столь критично, так как потом всё равно всё будет переносится на интегральную микросхему, но заказчикам то нужно что-то показать))
SM
Софт - icecube2, под линукс есть, скачивается с сайта производителя - http://www.latticesemi.com/Products/Design...S/iCEcube2.aspx .
Литературу - общую, по выбранному языку описания аппаратуры, который хотите применить. Ну и даташит и т.п. по конкретной микросхеме, чтобы понять ее структуру.
Источники тактового сигнала - LPSG и HSSG - прочитать в документации на серию, они называются "on-chip strobe generators", они именно on-chip, то есть не требуют ничего внешнего.
наиболее полная информация, разумеется, в хэндбуке - http://www.latticesemi.com/~/media/Documen...ilyHandbook.pdf
vzelenuk
Среда программирования скачивается с сайта xilinx.com, называется ISE или новая версия Vivado. Бесплатная версия поддерживает Spartan6, Вам должно хватить ее возможностей.
Запускать лучше с кварцевым генератором, именно генератором, а не кристаллом кварца, перейти на RC цепочку всегда успеете, там могут быть нюансы.
Для работы нужна либо отладочная плата, либо отдельный эмулятор, цена вопроса 500$. Все есть под Linux.
SM
Цитата(vzelenuk @ Feb 15 2014, 23:07) *
Spartan6, Вам должно хватить ее возможностей.

Я очень сильно сомневаюсь, что "вторая плис" может быть вообще реализована на каком либо xilinx или altera. Очень специфическое питание. Я и за iCE40 не уверен на 100%, но, если можно, то на ней.
AntiDriver
Предполагается чередовать информацию и энергию (энергия - байт информации - энергия - байт информации), к тому же сама информация будет подпитывать конденсатор, пусть и не так сильно.
Что касается iCE40 - ознакомлюсь. А что можно сказать по поводу CoolRunner-II CPLDs?
Цитата
Utilize far less power with an all-digital core and FZP process technology
Ultra low power of 28.8 µW
16 µA typical standby current

vzelenuk
А что Вы хотите услышать? CPLD микросхемы простой логики, то есть просто набор триггеров с элементами И-ИЛИ-НЕ. Количество максимум 256 таких яеек. Микросхема простая, надежная и дубовая. Работать с ней одно удовольствие. Среда программирвоания та же ISE. Да, еще бонус, так как микросхема простая, можно позволить себе ваять дизайн в "схематике". То есть рисуете схему, как на бумаге и получаете ее в железе. И все работает. Ну и довольно быстрая. Лень лезть в даташит, но на 100MHz она работает нормально.
AntiDriver
Спасибо всем за ответы
sazh
Цитата(AntiDriver @ Feb 15 2014, 18:20) *
Соединены они с помощью высокочастотного трансформатора (требований к рабочей частоте пока нет, ориентировочно 100 кГц...1МГц).

Принцип работы заключается в том, что в определённый момент времени осуществляется подача энергии через трансформатор ("короткие" импульсы), накапливается энергия на конденсаторах, плис игнорирует эти импульсы. Потом начинается передача информации (несколько байт "длинными" импульсами) с плис на первой плате, которую плис на второй плате должна записать во внутреннюю память и в ответ на это выдать какую-то информацию (несколько байт) через трансформатор. Прикреплена иллюстрация, поясняющая работу.
В последствии плис планируется заменить заказной интегральной микросхемой после отладки алгоритмов.
Требования ко второй плис:
- минимально возможное энергопотребление
- частота тактирования не должна задаваться кварцем, однако должна быть достаточно высокой, чтобы "успевать" принимать информацию и успевать не реагировать на "короткие" импульсы передачи энергии (кстати, какие есть соображения по этому поводу? RC цепочка не может давать достаточно высокие частоты, к примеру для pic16 RC цепь генерирует всего 4 МГц, что может в этом плане плис?).

передающий один байт на частоте 100 кГц и приёмник, пока ещё не совсем стабильно работающий на микроконтроллере pic18f14k22
Это не совсем удобно поэтому и было решено реализовать всё на плис.


А на базе какого стандарта Вы сделали свою реализацию.
На вскидку здесь сборная солянка из MIL-STD-1553 specifications и ARINC-429 bus
Из диаграммы не понятно, как устройство игнорирует чего то в линии, как приемник определит начало кадра.
На трансформаторную линию работает только Манчестер.
Например пауза, потом непрерывно льется Манчестер на 1 МГц, устройство "оживает", передатчик знает примерно когда,
встраивает в этот поток синхроимпульс (начало кадра (искаженный мачестер)) и непрерывно без всякого разделения на байты гонит весь поток
данных в том же формате Манчестера. По окончании посылки гонит Манчестер на время записи информации в энергонезависимую память и принятия
ответного слова и снова тишина.
Это задача как раз для микроконтроллера.
Где взять у CPLD энерго независимую память
SM
Цитата(AntiDriver @ Feb 16 2014, 01:53) *
А что можно сказать по поводу CoolRunner-II CPLDs?

В кулранерах генератора ни одного нету, и объем там максимум 512 триггеров, когда у iCE - минимум 384. И цена - для сравнение iCE40 на 384 регистра стоит $1.65 за 1 в digikey, а кулранер на 256 - $12.35 (в 8 раз почти дороже ни за что), дальше - корпус - у кулранера на 256 будет минимум 100 пин 14х14 мм (не БГА), у iCE40 - VQFN32 5х5 мм. Ну и у iCE40 есть PLL (мало ли, что), а у CPLD ее нет. В общем, разница налицо.
AntiDriver
Видимо действительно имеет смысл остановиться на iCE40.
Корпуса типа WLCSP и ucBGA мне явно не подходят (не будет предприятие заказывать многослойные печатные платы), так что придётся выбрать из: LP384 и LP1K (HX Series так понимаю не подойдут по энергопотреблению). Наверное имеет смысл остановиться на LP1K, пусть лучше ячеек будет побольше на запас, а то мало ли. И есть к ним что-то типа IP-ядра как на xilinx, скажем, для того чтобы можно было установить связь с компьютером по какому-либо интерфейсу?

Цитата
А на базе какого стандарта Вы сделали свою реализацию

Стандарта как такового нет. Может быть меня дезинформировали, однако сообщили что в России вообще нет реализаций таких устройств (ну может за исключением частных разработок), а вот в Германии появились и тоже себе такую же игрушку хочется.
Что касается MIL-STD-1553 specifications и ARINC-429 bus, посмотрю, думаю что-то интересное там найду.
Почему я решил отказаться от микроконтроллера уже пояснил - нужна большая тактовая частота и в последствии разрабатывать интегральную микросхему, а микроконтроллер сможет дать лишь очень приблизительные данные того что может получится. И впринципе на это уже реализовано на микроконтроллере, осталось только отладить немного и подкорректировать форму передаваемой информации (отношение длительности информационных "скачков" к периоду информации, то есть время между передачей каждого бита).
SM
А какие интерфейсы рассматриваются?
AntiDriver
Интерфейсы мне нужны будут пока что только для отладки, желательно бы что попроще. Думаю RS232 задействовать, передать по нему байт на передатчик, он в свою очередь на приёмник и допустим высветил его на 8 светодиодах. Чтобы прогнать все комбинации
SM
А зачем для RS232 какие-то IP-ядра? Это просто регистр сдвига, счетчик и пара триггеров, описывается за час-два... Вам же не надо полнофункциональный аналог 16С550...

Кстати (точнее, некстати), похоже что генераторы LPSG и HFSG есть только в iCE40LM, а генератор, который в iCE40LP (OSC), недоступен.
AntiDriver
Насчёт RS232 думаю на верилоге его уже сотню раз описали, если что возьму готовую чужую программу. По поводу источника тактового сигнала - ничего страшного, пусть кварц будет, ну а может и LC генератор извращусь сделаю)))
Вот только никак не могу там на сайте найти datasheet на LP1K. Что-то слишком много pdf и они то слишком маленькие, то на 200 страниц.
Нужно описание за что какая нога отвечает и как каждую из них можно использовать, каким образом осуществляется программирование (нужны ли программаторы или каким-то иным способом это делается) ну и принципиальные схемы включения. Чем мне нравится документация microchip - там эта информация для конкретного микроконтроллера лежит в явном виде, а тут что-то не соображу
SM
это там "handbook" называется, кликаете закладку Documentation, а потом в столбце слева "Hand Book" и там на 17 мбайт PDFина, в которой полное описание кишков. А в разделе с даташитом - там файлы с пинаутами в формате ексель.

Еще скачайте документацию на кит http://www.latticesemi.com/en/Products/Dev...luationKit.aspx , там есть схема. Может есть смысл кит и взять для экспериментов, $39 в digikey.


Программировать их можно через кабель HW-USBN-2A, по крайней мере Diamond Prorgammer дает там выбрать iCE40. Только имейте в виду, что NVCM там однократная, зашил, и все, так что для отладки надо использовать или внешнюю SPI флеш, или грузить кабелем в ОЗУ.
AntiDriver
Да уж, что-то слишком много всего нужно. Так понимаю для всего этого мне необходимы две микросхемы iCE40LP1K, две внешних spi flash памяти, кабель HW-USBN-2A, а Diamond Prorgammer - это только программное обеспечение
SM
насчет внешних SPI Flash не уверен, в принципе, можно наверное обойтись при отладке загрузкой прямо в CRAM FPGA. А когда все заработало, шить однократную NVCM. Тут сами думайте. Хотя предусмотреть ее можно, а использовать или нет, второй вопрос.

Diamond Programmer - да, это софт. Там же в его хелпе нарисовано какие пины кабеля куда цеплять.

upd:
А вот шить ее через FT2232H, как можно шить их CPLD/FPGA, прошиваемые через JTAG, iCE40 по ходу нельзя... Жаль, то есть халявного кабеля не выйдет (на ките там стоит AVR на прошивание)
AntiDriver
Хорошо. Спасибо огромное за пояснения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.