Перейти к содержанию
    

Насколько сложно это - освоить FPGA?

2 asya

 

Насчет "заповеди" о синхронной схеме:

Еще в институте нам всем рассказывали про гонки в цифровых автоматах.

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

Синхронные схемы такие приколы полностью устраняют.

 

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

 

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

 

А "пички" не так ловятся. Берется славная микросхема 555TM2 , включается делителем на 2, а на тактовый вход подаете сигнал, на котором не видно глитчей. А пресловутым осциллографом становитесь на выход триггера. И уж теперь по смене сигнала видим момент глитча.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заповеди, их выполнять надо, а не понимать. Понимание позже придет.

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

 

Посмотрел. За пару дней постараюсь сделать на VHDL - в качестве примера.

ТОлько расскажите общую идею устройства. Своими словами.

Своими словами. На плате со спартаном есть 4-х символьный семисегментный индикатор. Вот на этом индикаторе пишу слово ASYA.

По поводу синхроннсти потихоньку начинаю понимать. (прочитал другой пост про гонки). Спасибо большое за внимание и ответы и тем более за переработку моего проекта. (еще не смотрел, но скачал и скоро гляну).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FOR ASYA

 

Здесь ваш проект на VHDL.

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

месяц на выяснение причин повышенного энергопотребления и повторную разводку - недокументированное поведение микросхемы и еще один глюк в atmel IDS;

А что за проблемы были с энергопотреблением и как лечить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схемотехнику-цифровику за три месяца можно освоить FPGA, чистому программисту - очень сомнительно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью согласен с 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. язык дается особенно тяжело, до тех пор, пока они не научатся мыслить 'паралельно' и представлять код как схему, а не как программу :)

Хотя первый и большой дизайн на Verilog оказался рабочим, смотреть на него сейчас смешно, а вот когда наступит прозрение, то можно будет использовать и multiple clocks и всякие асинхронные штучки. А пока слушайте что говорит Gorby, он абсолютно прав.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть также книга, наиболеее бесполезная IMHO, написанная одним из создателей Verilog - не помню сейчас как называется, но автор явно думал что читатель с детсва пишет на Verilog и посему как пример использует описание 8080 просессора (или что-то подобное).

:bb-offtopic: конечно, но это скорее правило, чем исключение. "Создатель" какой-либо сущности крайне редко бывает доходчивым учителем. Он мыслит слишком "ортогонально" по отношению к остальным. Ибо если бы он так не мыслил, то и сущность не создал бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня был первый опыт с EPM3128+AVR+SRAM, нужно было в телевизионную картинку с камеры, текст и графику врезать. Вначале поговорил со знающим человеком, который вкратце посвятил меня в плисоводство. Недели за две стал понимать что к чему, разобрался с AHDL и схемным редактором. Через три месяца девайс практически был отлажен и исправно рисовал божью коровку из авр-студии на экране телевизора.

Мое мнение таково - если вы раньше делали что-то на цифровой рассыпухе, то разберетесь очень быстро, но VHDL будет сложнее осилить, так как язык довольно абстрактный.

 

ЗЫ. Книга Стешенко об Альтере - гадость, уж лучше бы автор просто перевел хелп и документы с сайта. Явно не для начинающих, а для профи книга уже не актуальна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажу и я пару слов. Имея за плечами большой опыт работы с цифровой и аналоговой рассыпухой, начав еще с Радио 86, без проблем освоился с CPLD от Ксилинкса в схемном вводе. Устройства были несложные, поэтому и проблем не возникало. Но вот жизнь заставила, и очередной проект надо было делать на FPGA. К худу или к добру, это оказался ФПСЛИК от Атмел. Не самый лучший чип для старта, но так уж сложилось. К моему ужасу, там не было схемного ввода, а только какое-то страшилище по имени VHDL! Не зная концепций языка, имея только хелпы, поначалу было очень трудно.

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

Например, один мой коллега, толковый цифроаналоговый схемотехник старой закалки, решился освоить 51-й процессор (дело было лет 7 назад). Так вот, поверите вы или нет, я провел с ним только ДВА вечера , объясняя концепции программного автомата. Через два дня он уже сам мигал светодиодом и осваивал Ассемблер.

Так что правильно тут кто-то говорил: изучайте тот язык, на котором работает ближайший от вас гуру. Это сэкономит вам очень много времени и сил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

НУ тут по разному зависит от человека.. на Verilog ушла недела а на VHDL месяц...

На понимание стр-ры ПЛИС одна ночь, а на освоение глюков и багов год и далее везде

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд чтобы начать работать - то есть строить составные блоки на HDL нужно месяц. Но чтобы выйти на реальный режим работы, когда думаешь на языке как сделать проект для своей задачи - к шестому месяцу. Нужно время чтобы знания отложились.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Следует сразу же относиться к используемому HDL именно как языку, а не средству кодирования схем.

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

 

Язык то язык, но когда описываешь устройство, используя синтезируемое подмножество, в голове держишь схему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понимаю, что вы имели ввиду.
Возможно то, что за 6 лет ТС наверное уже разобрался со своим вопросом? :1111493779:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно то, что за 6 лет ТС наверное уже разобрался со своим вопросом? :1111493779:

И? :biggrin:

 

Я обращаюсь к ASN с конкретным вопросом, какая разница сколько лет теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схемотехнику-цифровику за три месяца можно освоить FPGA, чистому программисту - очень сомнительно.

Ой не знаю, как по мне - наоборот:) Я как раз уже был программистом, когда начал изучать область FPGA, и это вполне логично, потому что HDL хоть и не являются языками программирования, но имеют с ними много общего.

Не сочтите некропостингом :)

Изменено пользователем Alexium

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...