Начинаю потихоньку изучать ПЛИС и, конечно, возникает вопрос литературы. В данной ветке было упомянуто огромное количество различных книг и ссылок, за что всем огромное спасибо!!! Но, ксожалению, чем больше литературы, тем дольше ее придется изучать, а "творить" хочется начать поскорее
Поэтому для таких же страждущих привожу свои мнения о просмотренных книгах.
1) Выбрал пару книг из рекомендованных в данной ветке и мужественно их читал. Ими оказались книги Полякова (языки VHDL и Verilog 2003г) и Суворовой/Шейнина (Проектирование цифровых систем на VHDL, 2003г): не вштырили совершенно. Мое мнение - они не для новичка. Поляков хорош как справочник, Суворова тяжело написана, но самый главный минус ИМХО: они грузят читателя ПОЛНЫМ языком сразу. Читаешь, читаешь, а потом в середине книги оказывается, что все что тут было написано применимо только к моделированию и синтезировать это НИЗЯ!!! Покажите мне новичка, который сразу сядет моделировать что-то?! Да, тестбенчи это очень хорошо и правильно, но это далеко не низшая ступень эволюции плисовода! Ведь начинающему хочется светодиодиком поморгать на ножке, а какой пример ни возьми - не синтезируется... А дочитав до серидины понимаешь, что надо все прочитанное забыть, и на своих ошибках научиться пользоваться малым подмножеством конструкций языка, которые можно синтезировать.
Пытаясь это осознать, натыкался на кучу граблей, которые как раз в книгах и не описаны или упоминаются вскользь, например, управление сигналом по обоим фронтам клока, или последствия неполного оператора case... Книга ведь, в первую очередь, описывает ЯЗЫК, а язык такое вытворить позволяет.
Мой вывод: упомянутые книги описывают "иструмент", но дают очень мало информации о том, как этим "инструментом" правильно пользоваться. Типичные справочники.
2) Воспользовавшись рекомендацией, прочитал Уейкерли: проектирование цифровых устройств. На одном дыхании... Вот эта книга вправила мозги капитально. Многое понял из внутреннего мира ПЛИС. Рекомендую всем. Если кому нужно, есть русская в djvu - могу выложить куда-нть если понадобится. Пришло понимание о том, как устроена ПЛИС, чего она не может, и как следствие, к чему надо стремиться при разработке модулей.
Но для меня осталась незкрытая брешь в осознании проектирования: Я знаю (или думаю, что знаю
) как это должно выглядеть в RTL. Я знаю синтаксис языка VHDL. Но я не знаю, какие конструкции языка во что синтезируются, да и синтезируются ли вообще, что можно выносить в разные процессы, а что делать только в одном, когда можно делать асинхронное изменение сигналов, чтобы компилятор не ругался на "коллизии" и т.п. Конечно, можно взять кучу примеров и изучить что во что синтезировалось, но такой подход не нравится, т.к. хочется узнать не только то, как нужно делать, но и то почему нельзя (или иногда можно) делать по-другому.
Если кто знает, посоветуйте пожалуйста литературу, которая поможет мне заполнить брешь в понимании синтезируемости различных конструкций языка. Совсем не обязательно на русском и вовсе не обязательно по VHDL - мне главное идею понять, а не копировать примеры по-обезьяньи.