Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Насколько сложно это - освоить FPGA?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Oleg
Сколько это приблизительно может занять по времени освоение FPGA для опытного в других областях разработчика (микроконтроллеры, C++) но не знакомого с HDL языками, для разработки достаточно сложного устройства (прогнозирую в районе 1000-2000 LE's на Altera Cyclone)?

Расскажите о вашем личном опыте!
papasha
Я считаю, что через полгода начнешь понимать что к чему.
ASN
При наличии всего необходимого софта, русскоязычных учебников, англоязычных спецификаций и какой-либо платы развития, специалисту-цифровику, опытному в прикладной области - не более 3 месяцев. Реально, наблюдал освоение FPGA за 1 месяц с нуля.
В принципе, если есть опыт работы с цифровыми схемами - абсолютно ничего сложного. Крайте желательно знание какого-либо языка (Pascal или C), станет проще использовать конструкции. Следует сразу же относиться к используемому HDL именно как языку, а не средству кодирования схем. Речь идет о том, чтобы использовать все стили описания, все библиотеки, всю мощь языка. Не следует пренебрегать изучением несинтезируемого подмножества, можно значительно сократить время на верификацию (все таки HDL - это первоначально языки верификации). Могу посоветовать попастись на сайтах с free корками. Использовать их, конечно, надо осторожно, но первое впечатление о путях решения многих проблем можно получить. Мне очень помог сайт ESA с проектом Leon.
Все вышесказанное - это личное мнение.
Edashkin
Проектирование FPGA на базе готовых макроэлементов - та же самая схемотехника, что и на россыпи. Осваивать придется только интерфейс МАХ плюс - примерно неделю. Описание же схем на HDL - своя религия, мало зависящая от языка, азы её, может быть, и можно за месяц постичь, но полностью полностью перестроить мозги получается не сразу. Зато здорово снимает ограничители с сознания.
Oleg
Спасибо!

Вы меня обнадежили, я рассчитывал как минимум на год!
Nixon
Учить нужно на живом примере (по себе знаю). И чтоб сроки сдачи проекта горели smile.gif Тогда и за меньший срок управишся.
gab
Цитата(Nixon @ Jul 18 2004, 07:45 PM)
Учить нужно на живом примере (по себе знаю). И чтоб сроки сдачи проекта горели smile.gif Тогда и за меньший срок управишся.

Полностью подтверждаю smile.gif
Сам Verilog освоил примерно за месяц.
Yra
Для освоения FPGA помимо всего прочего советую поэкспериментировать с созданием маленьких схем (4-5 триггеров) и посмотреть как они ложатся на кристалл в FPGA-editor
dachny
Если человек в вузе не прогуливал лекции по ЦОС, тригерам, и цифровым автоматам на 155й серии то месяц
Mad Makc
...а если человек 3-4 года програмировал,потом за месяц выучил Verilog,то 2-3 года.
З.ы.Извините,если что.Просто наболело...
dachny
Человек чтобы ЭФФЕКТИВНО использовать ПЛИС должен иметь фундаментальные знания по цифровой схемотехинике и ЦОС

А язык вообще дело десятое

Тут ктото заметил что писание на языке то де особая карма не то что схемный ввод тут образ мысли другой типа нужен

Так вот в нормальных ВУЗах нормальные преподы давали тот самый
образ мысли еще во времена 155ЛА3 и 155ТМ2 и действительно освоевшие ето дело инженер еще в те времена мыслил как Тут говорят "языком" а на самом деле делал поведенческое описание схемы а потом в ручную "компилировал " в росыпь элементов

А дельфисты от схемотехники были всегда у них принцип выковорять какой нибудь елемент из справочника, библиотеки LPMмов или еще откуда нибудь и приспособить куданибудь дабы в ТЗ влезть
Shtirlits
Если попадется глючный софт и сырая FPGA, то можно долго осваивать.

Мой опыт довольно печальный:
железо Atmel FPSLIC, софт leonardo spectrum, synplify pro, atmel system designer, modelsim, atmel IDS.
2 недели установка софта - не живет под русским windows;
2 недели на понимание что это вообще такое;
полтора месяца до схемы, которая работает в большой микросхеме и почти помещается в нужную микросхему;
неделя на запихивание в нужную микросхему, помещается, но не работает;
месяц на поиск ошибки - проблема в atmel IDS;
месяц на переход на другой корпус и разводку - проблема в atmel IDS;
месяц на выяснение причин повышенного энергопотребления и повторную разводку - недокументированное поведение микросхемы и еще один глюк в atmel IDS;
Глюки, с которыми пришлось бороться приводили к функциональным нарушениям схемы, ловились только осциллографом, так как во всех симуляциях их не видно.

To ASN:
Рассматривать HDL как только язык не очень хорошо. Ведь иногда и C++ следует рассматривать лишь как средство описания кода.
Я имею в виду, что знать во что странслируется та или иная конструкция в имеющемся железе (процессоре или fpga), крайне важно, иначе может получиться неожиданно много или медленно.
Mad Makc
>Человек чтобы ЭФФЕКТИВНО использовать ПЛИС должен иметь >фундаментальные знания по цифровой схемотехинике и ЦОС
to dachny : мой решпект! cheers.gif
ASN
Shtirlits
Уважаемый, а где я говорил, что знание конкрентного семейства необязательно?
Где-то читал шутку, что старый программист на Коболе пишет на С++, как Коболе. Это я к тому, что знать (и, главное, правильно применять!) надо всё (в том числе и знать как работает кремниевый компилятор). Вот недавно прочитал Соловьёва - не пожалел.
dachny
Ну это (и не только) должен знать любой уважающей себя инженер!
Раньше я тоже рисовал и диаграммы Вейча и считал задержки, но тут надо довериться компилятору. А верить не себе - это уже религия wink.gif.
Shtirlits
to ASN: я с вами поспорю, но только чуть-чуть, поскольку точки зрения почти совпадают, на мой взгляд. Предлагаю считать HDL исключительно средством кодирования схем, так как цель - схема. Ну, а использовать это средство лучше на всю катушку.
Если вопрос "нужно ли понимать, во что это все странслируется" не стоит, то использование языка - это способ экономить время на разработку, на переход на другое железо.
hlebn
Цель не схема а работающее устройство
Но а если ближе к теме то надо иметь хотяб общие сведения о структуре самих плис чтоб сделать выбор под схему и понимать что это за зверь
Для начала ведь можно вводить и схемы хоть в ORCAD, а освоение языков на потом. Сразу из схемотехника писатель поведенческого описания схемы вряд ли получиться все таки разные подходы. Это уже когда будет понимание что без этого нельзя.
Потом сам язык(и). Хоть Верилог и С братья близнецы но пока дойдешь что цепи типа wire он добавляет сам и опечатка в название любой цепи может привести к не предсказуемому результату может пройти и не один месяц(в С даст ошибку и здесь подвохов не ждешь)
особености софта и микрух если нужна полная отдача
Ну и симуляция (софт, язык) не все же осцилографом проверишь
koziy_mf
Не в тему - но все таки - микросхема К155ЛА3 - ЛЕГЕНДАРНАЯ. На ней делалось (а многие и продолжают) все от кукушки до бегущей строки (правда - с регистрами *), включая недокументированные возможности работы на повышенных частотах.
Спасибо Союзу за девайс, который до сих пор живет!
berberber
Цитата(Oleg @ Jul 17 2004, 17:46)
Сколько это приблизительно может занять по времени освоение FPGA для опытного в других областях разработчика (микроконтроллеры, C++) но не знакомого с HDL языками, для разработки достаточно сложного устройства (прогнозирую в районе 1000-2000 LE's на Altera Cyclone)?

Расскажите о вашем личном опыте!
*


Самый простой путь взять MAX+ и освоить схемный ввод с моделированием, на все это достаточно и недели. Вообще говоря можно всю жизнь рисовать схемы в графике не зная HDL, плисы от этого работать хуже не будут.
Volkov
ПЛИСы то работать хуже точно не будут. Но разработчик, рисуя проект, будет работать хуже, при проектировании крупных проектов.
Знать языки проектирования нужно. И не один.
Во первых, из за того, что языковое описание более читабельно. По своему опыту знаю, что через пол года разобраться в сложном схемном проекте, даже в своем, сложно.
Во вторых, языковое описание позволяет абстрагироваться от схемотехники, сконцентрироваться на алгоритме работы устройства, что очень важно.
Графическое описание основывается в основном на неформализованном, а империческом синтезе.
Сам начинал в MAX Pluse со схемного ввода. За пол года освоился. Даже устройство разработал.
DSIoffe
Цитата
А дельфисты от схемотехники

По стилю сразу видно человека от C smile.gif
(Не в обиду языку будь сказано)
Не надо бы трогать Delphi вот таким образом, а?
Alhen
Можно я вставлю свои пять копеек? Для меня проще было писать на языке AHDL нежели разбираться с графическим вводом.
Когда понадобилось написать несложный проект для программируемой логики, я ориентировался на такого редкого зверя как WinCupl фирмы Atmel. Данную фирму, судя по сообщениям не очень то жалуют на данном форуме в области FPGA и CPLD, хотя с моей точки зрения не совсем заслуженно. Их кристаллы раза в три дешевле по сравнению с Altera. Со слов самой Atmel фиттер может разместить такие проекты которые не по зубам Altera.
Однако при всем этом счастье условно бесплатная WinCupl отказалась компилировать более менее сложный проект. То есть, компиляция проходила, но jed файл не генерился. Техническая поддержка отморозилась чем, то в роде "такого быть не может" и " рады, что воспользовались нашим продуктом".
Решение - строчно нужно было переходить с WinCupl на MAX II.
Перебил без проблем конфигурацию на AHDL, на все про все, начиная с WinCUPL ушел месяц. Большая часть времени ушла на отвыкание мыслить ЛАтретьими.
Никогда не пользовался графическим вводом, хотя на данный момент времени считаю, что AHDL не отличается сильно от графического ввода, а от конструкций VHDL становится страшно, хотя и не смертельно.
Но самое главное иметь под рукой какой-нибудь рабочий KIT, и проверенный ByteBlaster. Неделю упертой работы и ты приобщился к великому движению reconfiguration systems. Извините за пафос.
dachny
Про дельфистов

Я же не сказал "паскалисты"

Главная фича дельфи(отличиеб преймущество для некоторых проектов если хотите перед VC ) это возможность програмирования методом бросания компонентов на форму не забивая себе голову про что происходит внутри приложения.

это не хорошо и не плохо ЭТО ТАК ЕСТЬ
Artyom
На мой взгляд освоить за 3 месяца реально..... Но вспомните поговорку "Гладко было на бумаге, да забыли про овраги". Всегда присутствуют подводные камни а вот их за 3 месяца ну никак не выучить :-(.
Gorby
По моему опыту, "въехать" в FPGA с нуля можно за два-три месяца. Но необходимы некоторые условия. 1 - принципиальное понимание цифровых логических схем. То есть вы должны знать что такое триггер, логический элемент и их основные разновидности. 2 - Несложный стартер-кит со всем необходимым для работы софтом. Причем это обязательное условие, иначе застрянете в конфигурации и прочих мелких но ОЧЕНЬ важных подробностях надолго. Причем софт желателен такой, на котором кто-то уже поработал.
Настоятельно рекомендую Спартан и ISE6.2 (or WEBPack) by Xilinx.

Лично мне не повезло - начинал работу с ФПГА на чипах ФПСЛИК от Атмел. Сам чип - ничего, но софт - ужасно крив и глюкав до безобразия. При этом я "имел понятие" в проектировании CPLD от XILINX - только схемный ввод, разумеется.

Сразу забудьте о схематическом вводе. Только VHDL. Звучит зловеще. На самом деле мне с самого начала попался Актив-ХДЛ (чего и вам желаю!). И я получил ЗАМЕЧАТЕЛЬНУЮ возможность строить верхний уровень проекта СХЕМОТЕХНИЧЕСКИ, получая результат в VHDL. Простенькие модульки (типа счетчик, триггер и тд) я делал в виде отдельных файлов на VHDL (благо Актив ХДЛ имеет встроенный генератор типовых элементов) , а соединял их проводами на верхнем уровне (как по мне, самая муторная в VHDL вещь) в виде схемы. Красота! Конечно, со временем научился делать процессы ("элементы") "как положено" - в теле большого файла. Понравилась сила и мощь VHDL, но верхний уровень по-прежнему делаю в схематике - так нагляднее.

В одном письме и не расскажешь всего... Очень важной частью проектирования ФПГА является моделирование устройства. Попробовав всякого, пришел к такой форме моделирования: простое устройство\единичный модуль моделирую в Актив ХДЛ - проверяя таким образом отсутствие логических ошибок. Когда заработало как ожидалось, следует имлементирование проекта в кристалл и моделирование post-layout версии в Modelsim. Это конечно дело вкуса и личных предпочтений, чем моделировать. НО! Моделсим входит в состав софта от Ксилинкс. Он уже содержит все нужные библиотеки. Он АВТОМАТИЧЕСКИ запускается из среды проектирования Ксилинкса. Это огромное преимущество для начинающего. Моделсим - еще тот предмет для изучения. Попозже, когда ваши действия станут более осмысленными smile.gif вы сами сможете подобрать под себя среду и стратегию моделирования .

Ээх, гулять так гулять!
Рекомендую особо обратить внимание на такую вещь как цифровые автоматы. Их еще называют FSM. Замечательное средство, если требуется организовать какую-либо последовательностную процедуру в вашем кристалле. Сам вижу, что определение корявое, но знающий поймет, а незнающему - достаточно прозрачный намек, где искать информацию. Актив ХДЛ позволяет работать с машинами состояний ОЧЕНЬ ЛЕГКО. В визуальной форме. И потом генерит исходник на VHDL. Это было откровением, когда я впервые это увидел. Главное, не плодить много состояний, сверхсложных условий и немерянно разрядных переменных, которые инкрементируются и проверяются (ха-ха) в одном и том же состоянии. Сейчас-то я способен написать стейт-машину на чистом VHDL. А тогда Актив ХДЛ меня сильно выручал.
Gorby
Ну и напоследок, несколько штрихов по проектированию цифровых устройст на ФПГА. Меня отягощал более чем 15-летний опыт работы с логическими микросхемами. Поэтому ничего зазорного в том, чтобы подсоединить КЛОК следующей микросхемы к выходу предыдущей , я не усматривал - классический асинхронный счетчик. Или разрешение\запрещение работы счетчика путем сложения по "И" его клока и разрешающего сигнала. И так далее. Перлов таких было много и пречислять их можно долго. Теперь самому смешно. А тогда... В общем, САМАЯ ГЛАВНАЯ РЕКОМЕНДАЦИЯ звучит весьма буднично: весь дизайн должен быть СИНХРОННЫМ. Это правило на данном этапе (начального изучения) не обсуждается , а просто выполняется. Что это значит на практике? Очень просто. У всего дизайна есть ОДИН (и только один) вход для тактовой частоты. ВСЕ (!!!) триггеры вашего дизайна должны переключаться по положительному перепаду тактового импулься. Поверьте на слово, это сэкономит вам много времени и нервов. Потом вы с улыбкой будете смотреть на эти рекомендации. Если вам понадобится запретить\разрешить работу счетчика, сделайте это путем подачи на его вход разрешения соотв. сигнала. Источником этого сигнала ДОЛЖЕН быть триггер, тактируемый тем же клоком что и весь дизайн. (Как помните, он у нас ОДИН). Или выход логической схемы, входами которой являются сигналы с триггеров, тактируемых..... и так далее в доме, который построил Джек.
Особое внимание уделяйте ВХОДНЫМ сигналам. Они АСИНХРОННЫ. Поэтому обязательно пропускайте их через триггеры, тактируемые клоком.
Зачем это все? Помимо всего прочего, такой подход позволит вам задать ограничения программе-разводчику чипа в виде всего одного параметра - желаемой тактовой частоты. Это самый простой и быстрый путь построения работающего изделия.

Несколько сумбурно и поверхностно, но я бы целовал руки тому человеку, кто бы рассказал мне половину того, что я рассказал вам. В свое время.
Опыт, он таки действительно "сын ошибок трудных"... smile.gif
Удачи в освоении ФПГА!
vovic
Цитата
Всегда присутствуют подводные камни а вот их за 3 месяца ну никак не выучить :-(.

Подводные камни - это на всю жизнь, поэтому не стоит их бояться - все равно столкнетесь smile.gif

Цитата
САМАЯ ГЛАВНАЯ РЕКОМЕНДАЦИЯ звучит весьма буднично: весь дизайн должен быть СИНХРОННЫМ.

Э-эх, вашими бы устами мед пить, а у нас какой-то м#$%к придумал тактовую частоту отключать в моменты, когда девайс вроде бы не должен работать, а девайсу иногда в это время подпихивают параметры для работы sad.gif . Потому приходиться изгаляться с асинхронной частью - Quartus плачется, ругается но мы упорно заставляем его жрать этот кактус smile.gif .
asya
Цитата(Gorby @ Mar 6 2005, 19:15)
Ну и напоследок, несколько штрихов по проектированию цифровых устройст на ФПГА. Меня отягощал более чем 15-летний опыт работы с логическими микросхемами. Поэтому ничего зазорного в том, чтобы подсоединить КЛОК следующей микросхемы к выходу предыдущей , я не усматривал - классический асинхронный счетчик. Или разрешение\запрещение работы счетчика путем сложения по "И" его клока и разрешающего сигнала. И так далее. Перлов таких было много и пречислять их можно долго. Теперь самому смешно. А тогда...  В общем, САМАЯ ГЛАВНАЯ РЕКОМЕНДАЦИЯ звучит весьма буднично: весь дизайн должен быть СИНХРОННЫМ. Это правило на данном этапе (начального изучения) не обсуждается , а просто выполняется. Что это значит на практике? Очень просто. У всего дизайна есть ОДИН (и только один) вход для тактовой частоты. ВСЕ (!!!) триггеры вашего дизайна должны переключаться по положительному перепаду тактового импулься. Поверьте на слово, это сэкономит вам много времени и нервов. Потом вы с улыбкой будете смотреть на эти рекомендации. Если вам понадобится запретить\разрешить работу счетчика, сделайте это путем подачи на его вход разрешения соотв. сигнала. Источником этого сигнала ДОЛЖЕН быть триггер, тактируемый тем же клоком что и весь дизайн. (Как помните, он у нас ОДИН). Или выход логической схемы, входами которой являются сигналы с триггеров, тактируемых..... и так далее в доме, который построил Джек.
Особое внимание уделяйте ВХОДНЫМ сигналам. Они АСИНХРОННЫ. Поэтому обязательно пропускайте их через триггеры, тактируемые клоком.
Зачем это все? Помимо всего прочего, такой подход позволит вам задать ограничения программе-разводчику чипа в виде всего одного параметра - желаемой тактовой частоты. Это самый простой и быстрый путь построения работающего изделия. 
*

Мда. почитал я это... Не совсем понял.
Я тут свой один дизайн маленький выложил. http://www.yakovenko.net/asyaled.zip
Не будете ли вы так добры глянуть и пояснить, если возможно? проект этот написан под ISE для spartan 3 starter kit'а. Весь в схематике. (vhdl только начал читать и на момент рисования проекта еще не начинал читать)
зараннее спасибо большое.
Gorby
Цитата(asya @ Mar 9 2005, 05:21)
Цитата(Gorby @ Mar 6 2005, 19:15)
Ну и напоследок, несколько штрихов по проектированию цифровых устройст на ФПГА. Меня отягощал более чем 15-
*

Мда. почитал я это... Не совсем понял.
Я тут свой один дизайн маленький выложил. http://www.yakovenko.net/asyaled.zip
Не будете ли вы так добры глянуть и пояснить, если возможно? проект этот написан под ISE для spartan 3 starter kit'а. Весь в схематике. (vhdl только начал читать и на момент рисования проекта еще не начинал читать)
зараннее спасибо большое.
*



Заповеди, их выполнять надо, а не понимать. Понимание позже придет.
Ваш проект посмотрю в свободное время. Но на какой результат вы рассчитываете? Никто за вас вашу работу делать не будет.

Посмотрел. За пару дней постараюсь сделать на VHDL - в качестве примера.
ТОлько расскажите общую идею устройства. Своими словами.
CeDeX
2 asya

Насчет "заповеди" о синхронной схеме:
Еще в институте нам всем рассказывали про гонки в цифровых автоматах.
Гонки приводят в возникновению пичков (glitches) на выходах логических элементов (за счет разной скорости нарастания фронтов сигналов и т.п). К слову на С1-55 эти пички Вы будете ловить до пенсии и не поймаете, а на работе схемы они будут отражаться совершенно чудесным образом с непредсказуемыми симптомами.
Синхронные схемы такие приколы полностью устраняют.

ЗЫ: мне сначала было жалко тратить триггеры на "осинхронизацию", но потом я понял, что без них только глюки.
Gorby
FOR ASYA

Здесь ваш проект на VHDL.
Второй счетчик теперь тактируется тоже общим клоком. А вот считать ему разрешается только по сигналу от предыдущего - divider, пропущенного через триггер. Как вы понимаете, эта часть схемы может быть реализована по-разному. Разрядность я уменьшил, чтобы на симуляции хоть что-то было видно. У меня ISE63 SP3 - у вас может и не открыться.

Для упрощения работы все исходные ВХД файлы скопированы в один - main.vhd и он является единственным входным файлом для ISE.
Gorby
Цитата(CeDeX @ Mar 9 2005, 15:34)
2 asya

Насчет "заповеди" о синхронной схеме:
Еще в институте нам всем рассказывали про гонки в цифровых автоматах.
Гонки приводят в возникновению пичков (glitches) на выходах логических элементов  (за счет разной скорости нарастания фронтов сигналов и т.п). К слову на С1-55 эти пички Вы будете ловить до пенсии и не поймаете, а на работе схемы они будут отражаться совершенно чудесным образом с непредсказуемыми симптомами.
Синхронные схемы такие приколы полностью устраняют.

ЗЫ: мне сначала было жалко тратить триггеры на "осинхронизацию", но потом я понял, что без них только глюки.
*


Другими словами, в синхронном дизайне вы гарантируете, что все переходные процессы на логике (а может быть N ступеней логики), закончатся ДО прихода следующего тактового фронта.

А "пички" не так ловятся. Берется славная микросхема 555TM2 , включается делителем на 2, а на тактовый вход подаете сигнал, на котором не видно глитчей. А пресловутым осциллографом становитесь на выход триггера. И уж теперь по смене сигнала видим момент глитча.
asya
Цитата(Gorby @ Mar 9 2005, 13:10)
Заповеди, их выполнять надо, а не понимать. Понимание позже придет.
Ваш проект посмотрю в свободное время. Но на какой результат вы рассчитываете? Никто за вас вашу работу делать не будет.

Посмотрел. За пару дней постараюсь сделать на VHDL - в качестве примера.
ТОлько расскажите общую идею устройства. Своими словами.
*

Своими словами. На плате со спартаном есть 4-х символьный семисегментный индикатор. Вот на этом индикаторе пишу слово ASYA.
По поводу синхроннсти потихоньку начинаю понимать. (прочитал другой пост про гонки). Спасибо большое за внимание и ответы и тем более за переработку моего проекта. (еще не смотрел, но скачал и скоро гляну).
asya
Цитата(Gorby @ Mar 9 2005, 16:48)
FOR ASYA

Здесь ваш проект на VHDL.
Второй счетчик теперь тактируется тоже общим клоком. А вот считать ему разрешается только по сигналу от предыдущего - divider, пропущенного через триггер. Как вы понимаете, эта часть схемы может быть реализована по-разному. Разрядность я уменьшил, чтобы на симуляции хоть что-то было видно. У меня ISE63 SP3 - у вас может и не открыться.

Для упрощения работы все исходные ВХД файлы скопированы в один - main.vhd и он является единственным входным файлом для ISE.
*

smile.gif большое спасибо. проверил. работает. смотрел внутренние файлы. понимаю с большим трудом. но ничего. я еще книжку читаю. буду стараться понять, что там происходит. еще раз спасибо большое.
jack_avenger
Цитата(Shtirlits @ Oct 28 2004, 17:07)
месяц на выяснение причин повышенного энергопотребления и повторную разводку - недокументированное поведение микросхемы и еще один глюк в atmel IDS;
*

А что за проблемы были с энергопотреблением и как лечить?
aem
Схемотехнику-цифровику за три месяца можно освоить FPGA, чистому программисту - очень сомнительно.
xhdl
Полностью согласен с Gorby, имел место убедиться на собственном опыте. Пришлось осваивать Verilog за пару недель по необходимости, было это в году этак 2000, ибо до этого 'баловался' с CPLD на ABEL (был такой язык). Потом когда пришло время перевести большой дизайн, состоящий из нескольких CPLD в одну FPGA, оказалось что софт не знает что такое ABEL. Пробовал использовать конвертор ABEL -> Verilog, но результат оставлял желать лучшего. Хорошо помогли знакомые из Actel (UK) и презентовали книгу, которую по сей день считаю одной из лучших по понятности - называется HDL Chip Design, by Douglas J. Smith, ISBN 0-9651934-3-8.
Есть также книга, наиболеее бесполезная IMHO, написанная одним из создателей Verilog - не помню сейчас как называется, но автор явно думал что читатель с детсва пишет на Verilog и посему как пример использует описание 8080 просессора (или что-то подобное).
Сам никогда не занимался компиляцией со схем, но делал наоборот - писал маленькие куски на Verilog и смотрел что получалось на схеме.
Интересное наблюдение - 'крутым программистам' на C++ etc. язык дается особенно тяжело, до тех пор, пока они не научатся мыслить 'паралельно' и представлять код как схему, а не как программу smile.gif
Хотя первый и большой дизайн на Verilog оказался рабочим, смотреть на него сейчас смешно, а вот когда наступит прозрение, то можно будет использовать и multiple clocks и всякие асинхронные штучки. А пока слушайте что говорит Gorby, он абсолютно прав.
Evgeny_CD
Цитата(xhdl @ Aug 17 2005, 09:29)
Есть также книга, наиболеее бесполезная IMHO, написанная одним из создателей Verilog - не помню сейчас как называется, но автор явно думал что читатель с детсва пишет на Verilog и посему как пример использует описание 8080 просессора (или что-то подобное).

bb-offtopic.gif конечно, но это скорее правило, чем исключение. "Создатель" какой-либо сущности крайне редко бывает доходчивым учителем. Он мыслит слишком "ортогонально" по отношению к остальным. Ибо если бы он так не мыслил, то и сущность не создал бы.
moonrock
У меня был первый опыт с EPM3128+AVR+SRAM, нужно было в телевизионную картинку с камеры, текст и графику врезать. Вначале поговорил со знающим человеком, который вкратце посвятил меня в плисоводство. Недели за две стал понимать что к чему, разобрался с AHDL и схемным редактором. Через три месяца девайс практически был отлажен и исправно рисовал божью коровку из авр-студии на экране телевизора.
Мое мнение таково - если вы раньше делали что-то на цифровой рассыпухе, то разберетесь очень быстро, но VHDL будет сложнее осилить, так как язык довольно абстрактный.

ЗЫ. Книга Стешенко об Альтере - гадость, уж лучше бы автор просто перевел хелп и документы с сайта. Явно не для начинающих, а для профи книга уже не актуальна.
Gorby
Скажу и я пару слов. Имея за плечами большой опыт работы с цифровой и аналоговой рассыпухой, начав еще с Радио 86, без проблем освоился с CPLD от Ксилинкса в схемном вводе. Устройства были несложные, поэтому и проблем не возникало. Но вот жизнь заставила, и очередной проект надо было делать на FPGA. К худу или к добру, это оказался ФПСЛИК от Атмел. Не самый лучший чип для старта, но так уж сложилось. К моему ужасу, там не было схемного ввода, а только какое-то страшилище по имени VHDL! Не зная концепций языка, имея только хелпы, поначалу было очень трудно.
Так бы это и продолжалось, если бы не попался мне под руку Active HDL. Я увидел, что ВОЗМОЖНО что-то сделать на этом треклятом ВХДЛ! будете смеяться, в моем первом устройстве я рисовал в схематике декодер на логических элементах. А Актив его потом в ВХДЛ компилировал. Но начало было положено. Я понял главное: в ВХДЛ все состоит из компонентов и эти компоненты можно между собой соединять. До процессов мне тогда было еще далеко. Потом очередное озарение: в Активе есть визард, который по шаблону может генерировать практически любые нужные компоненты. Я стал использовать довольно сложные элементы (счетчики, дешифраторы и тд) на ВХДЛ, еще не понимая их устройства, но внимательно поглядывая на их исходный код. Постепенно и сам научился. Позже пришло и понимание. Очень тяжелым оказалось осмысление концепции синхронного дизайна. Прежний опыт тут очень помешал. Идея глобального клока поначалу казалась и вовсе абсурдной... Очень не хватало компетентного старшего коллеги. До всего самому трудно доходить. Книги? Читал, конечно. Но заметил уже давно: чтобы что-то понять в книге по новой для тебя области, нужно УЖЕ иметь какой-то минимум знаний. Но знаний концептуальных. Вот их-то в книгах, как правило, и нет.
Например, один мой коллега, толковый цифроаналоговый схемотехник старой закалки, решился освоить 51-й процессор (дело было лет 7 назад). Так вот, поверите вы или нет, я провел с ним только ДВА вечера , объясняя концепции программного автомата. Через два дня он уже сам мигал светодиодом и осваивал Ассемблер.
Так что правильно тут кто-то говорил: изучайте тот язык, на котором работает ближайший от вас гуру. Это сэкономит вам очень много времени и сил.
tegumay
НУ тут по разному зависит от человека.. на Verilog ушла недела а на VHDL месяц...
На понимание стр-ры ПЛИС одна ночь, а на освоение глюков и багов год и далее везде
Морфей
На мой взгляд чтобы начать работать - то есть строить составные блоки на HDL нужно месяц. Но чтобы выйти на реальный режим работы, когда думаешь на языке как сделать проект для своей задачи - к шестому месяцу. Нужно время чтобы знания отложились.
D-Luxe
Цитата(ASN @ Jul 17 2004, 21:58) *
Следует сразу же относиться к используемому HDL именно как языку, а не средству кодирования схем.

Не понимаю, что вы имели ввиду.

Язык то язык, но когда описываешь устройство, используя синтезируемое подмножество, в голове держишь схему.
XVR
Цитата(D-Luxe @ Jun 10 2011, 03:07) *
Не понимаю, что вы имели ввиду.
Возможно то, что за 6 лет ТС наверное уже разобрался со своим вопросом? 1111493779.gif
D-Luxe
Цитата(XVR @ Jun 10 2011, 10:23) *
Возможно то, что за 6 лет ТС наверное уже разобрался со своим вопросом? 1111493779.gif

И? biggrin.gif

Я обращаюсь к ASN с конкретным вопросом, какая разница сколько лет теме.
Alexium
Цитата(aem @ Aug 16 2005, 19:11) *
Схемотехнику-цифровику за три месяца можно освоить FPGA, чистому программисту - очень сомнительно.

Ой не знаю, как по мне - наоборотsm.gif Я как раз уже был программистом, когда начал изучать область FPGA, и это вполне логично, потому что HDL хоть и не являются языками программирования, но имеют с ними много общего.
Не сочтите некропостингом sm.gif
AlphaMil
Аналогично, изучал и применял языки описания аппаратуры уже имея огромный опыт программирования на разных языках. Не могу сказать, что опыт мешал. Главное начать думать регистрами... Простые проеты реализуются довольно легко, а вот большой проект правильно уложить в кристалл, спланировать клоки и т. д. довольно сложно.
dxp
Цитата(AlphaMil @ Jun 11 2011, 21:45) *
Аналогично, изучал и применял языки описания аппаратуры уже имея огромный опыт программирования на разных языках. Не могу сказать, что опыт мешал. Главное начать думать регистрами...
Скорее не регистрами, а параллельными структурами (т.к. HDL - это параллельный ЯП) и сигналами (объектами) синхронизации между ними.

Цитата(AlphaMil @ Jun 11 2011, 21:45) *
Простые проеты реализуются довольно легко, а вот большой проект правильно уложить в кристалл, спланировать клоки и т. д. довольно сложно.

Зависит от. В общем и целом всё это разбивается на отдельные части (домены), которые сами по себе вполне обычны. Нужно только грамотно организовывать взаимосвязь между ними. Всё сказанное, конечно, в контексте данной темы, т.е. о FPGA. С ASIC история несколько другая - там присутствуют этапы характерные именно для схемотехники (моделирование схемы на низком уровне, топология (разводка) и т.д. и т.п.).
AlphaMil
Цитата(dxp @ Jun 14 2011, 11:04) *
Скорее не регистрами, а параллельными структурами (т.к. HDL - это параллельный ЯП) и сигналами (объектами) синхронизации между ними.

Полностью согласен, я это и имел в виду...

Цитата(dxp @ Jun 14 2011, 11:04) *
Зависит от. В общем и целом всё это разбивается на отдельные части (домены), которые сами по себе вполне обычны. Нужно только грамотно организовывать взаимосвязь между ними. Всё сказанное, конечно, в контексте данной темы, т.е. о FPGA. С ASIC история несколько другая - там присутствуют этапы характерные именно для схемотехники (моделирование схемы на низком уровне, топология (разводка) и т.д. и т.п.).

Отдельные части просты, как Вы правильно заметили, сложно организовать обмен, и соответственно стактировать их...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.