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

Посоветуйте книги по "философии" VHDL

Друзья, возник следующий вопрос.

 

Я заканчиваю учебу по специальности "средства связи", начал работать в одном гос.НИИ с ПЛИС. Прочитал пару толстых книг по VHDL, прочитал англоязычную "VHDL как язык программирования", но по прежнему ощущаю себя как у тумане. Почему к примеру не синтезируются устройства, в которых происходит установка выходного сигнала как по переднему так и по заднему фронту? Или так, почему одни такие синтезируются, а другие нет? Как компилятор интерпретирует списки чувствительности, операции wait? Почему иногда при синтезе часть входных сигналов выключается вообще? Есть ли какое то пособие по VHDL не как по языку программирования, а как по среде разработки? С указанием, как надо и как не надо делать. Опыть писания на С++ есть, а вот в этой области только начинаю. А то на стадии симуляции все работает как надо, а в железке либо работает не так, либо не работает вовсе.

 

Хм, даже так вот вопрос поставлю. В смысле написания алгоритмов проблем нет, возникают проблемы на стадии синтезирования. ЧТо почитать? Большинство книг рассматривает как алгоритмическую сторону

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


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

Друзья, возник следующий вопрос.

садимся на AHDL на пару месяцев, после этого такие вопросы возникать не будут.

 

ЗЫ. Ну и библию почитать не помешает HDL Chip Design © Douglas Smith

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


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

Друзья, возник следующий вопрос.

 

Я заканчиваю учебу по специальности "средства связи", начал работать в одном гос.НИИ с ПЛИС. Прочитал пару толстых книг по VHDL, прочитал англоязычную "VHDL как язык программирования", но по прежнему ощущаю себя как у тумане.

 

Это потому, что VHDL совсем не язык программирования.

 

Почему к примеру не синтезируются устройства, в которых происходит установка выходного сигнала как по переднему так и по заднему фронту?

 

Дело в том, что синтез всегда происходит с учетом возможностей железа. В подавляющем большинстве ПЛИС нет триггеров, работающих и по фронту и по спаду - поэтому и не синтезируется.

 

Когда описываете что-то на VHDL (да и вообще на любых языках HDL) всегда нужно думать о реализуемости и синтезируемости вашего описания на той "железяке" под которую это все пишется. Языки HDL всегда имеют двойное назначение - описание поведения вообще, для моделирования и описание железа для синтеза. Соответственно, и конструкции языка делятся на те, что годятся и для моделирования и для синтеза и те, что годятся только для моделирования.

 

Как компилятор интерпретирует списки чувствительности, операции wait?

 

Понятие компилятор здесь не очень корректно. Есть средства моделирования, они по спискам чуствительности оптимизируют свою работу - если сигнал из списка чуствительности не менялся, то и нет необходимости пересчитывать тело процесса. Есть средства синтеза - им на список чуствительности наплевать. Есть, конечно, пара примеров применения wait в синтезе, но в принципе он не для синтеза.

 

Есть ли какое то пособие по VHDL не как по языку программирования, а как по среде разработки? С указанием, как надо и как не надо делать. Опыть писания на С++ есть, а вот в этой области только начинаю. А то на стадии симуляции все работает как надо, а в железке либо работает не так, либо не работает вовсе.

 

Поищите по форуму здесь много разных ссылок есть на "правилльную" литературу по VHDL, как языку описания аппаратуры, а не программирования.

 

P.S. VHDL, все же, не среда разработки.

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


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

Собственно, начинается всё с понимания цифровой схемотехники как таковой.

Это надо читать что-то натипа Угрюмова и прочие толмуды по цифровой схемотехнике.

Потом читается даташит на выбранную ПЛИС и осознаётся, что в ней есть, и что из этого можно выжать.

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

 

Дальше, наверное, действительно не помешает попрактиковаться на AHDL.

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


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

Всем спасибо за ответы

 

AHDL учить смысла нет, используем микросхемы от Actel. Для меня работа с ПЛИС как шаг, инструмент - вообще я бы хотел заниматься цифровой обработкой сигналов. Насколько необходимы мне понимание тонкостей цифровой схемотехники, если я точно знаю, что не хочу заниматься этим всю жизнь?

 

HDL chip design ищу ( ни у кого кстати под рукой ссылочки нет?), Угрюмова возьму в институтской библиотеке. Принял к сведению.

 

Еще такой вопрос - сейчас процесс писания выглядит так. Я описываю поведение блоков ( к примеру делитель клоков, собсно главный модуль обращающийся к памяти и формирующий биты, имитатор памяти, имитатор процессора читающего выходной байт), далее в блочном редакторе соединяю их, запускаю waveformer в Active HDL, задаю входные сигналы - смотрю выход. В чем удобство написания тестбенчей? Надо ли оно? Есть способы "умнее"?

 

По стилю пока вот это скачал

http://www.actel.com/documents/hdlcode_ug.pdf

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


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

AHDL учить смысла нет, используем микросхемы от Actel.

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

Для меня работа с ПЛИС как шаг, инструмент - вообще я бы хотел заниматься цифровой обработкой сигналов. Насколько необходимы мне понимание тонкостей цифровой схемотехники, если я точно знаю, что не хочу заниматься этим всю жизнь?

ИМХО куда вы из колеи денетесь, особенно в дсп обработке.

В чем удобство написания тестбенчей? Надо ли оно? Есть способы "умнее"?

пользуйтесь поиском, многократно обсуждалось.

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


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

...

 

Для меня работа с ПЛИС как шаг, инструмент - вообще я бы хотел заниматься цифровой обработкой сигналов. Насколько необходимы мне понимание тонкостей цифровой схемотехники, если я точно знаю, что не хочу заниматься этим всю жизнь?

 

 

...

 

Что-то я не осознал это предложение...

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


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

Для меня работа с ПЛИС как шаг, инструмент - вообще я бы хотел заниматься цифровой обработкой сигналов. Насколько необходимы мне понимание тонкостей цифровой схемотехники, если я точно знаю, что не хочу заниматься этим всю жизнь?

 

Если Вы занимаетесь ПЛИСами, то Вы уже занимаетесь цифровой схемотехникой. Просто через компилятор некоторые аспекты этой самой схемотехники от Вас будут скрыты. Но сама по себе она никуда от Вас не денется, и если Вы не будете представлять себе особенностей ее функционирования, то рано или поздно (в принципе, уже сейчас, судя по вопросам) работать не будет, и Вы не будете знать, почему.

 

Более того, в ходе дальнейшего освоения ПЛИС придется столкнуться с некоторыми аспектами аналоговой схемотехники.

 

AHDL - это просто язык, написание на котором в явном виде требует некоторого понимания структуры ПЛИС.

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

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

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


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

HDL chip design ищу ( ни у кого кстати под рукой ссылочки нет?)

 

HDL Chip Design © Douglas Smith

Изменено пользователем Русланчик

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


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

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

а почему AHDL, а не PALASM, например? ну или древнегреческий

 

ИМХО куда вы из колеи денетесь, особенно в дсп обработке.

 

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

по-моему мнению, знание как решать конкретную задачу (если гос-контора и ПЛИС - предположим ГЛОНАСС :) ) ценится гораздо выше, чем владение инструментом Квартусом, VHDL, Verilog. Причем не только в гос, но и во вполне частных и/или буржуйских конторах

 

понятно, что HDL-гуру по "значимости" рвет начинающего ДСП-шника как тузик газету, но DSP-гуру (если не просто к.т.н., а реально что-то делать умеет) гораздо более ценен для всяческих контор, имхо

 

то есть может автору имеет смысл специализироваться в "системном" направлении, а не в "частном" HDL дизайне

и знания схемотехники можно иметь весьма абстракные - на уровне design style рекомендаций - так можно писать, а так нельзя...

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


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

а почему AHDL, а не PALASM, например? ну или древнегреческий

он мне нравиться

 

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

да кто же спорит то, но автор полез в VHDL и спросил про него. Какой вопрос, такой ответ. Не хочет языки пусть осваивает симулинк + HDS, но автор про это ничего не спрашивал.

 

по-моему мнению, знание как решать конкретную задачу (если гос-контора и ПЛИС - предположим ГЛОНАСС :) ) ценится гораздо выше, чем владение инструментом Квартусом, VHDL, Verilog. Причем не только в гос, но и во вполне частных и/или буржуйских конторах

Тут тоже спорить смысла не вижу, развиваться нужно и в этом направлении, но цифровая схемотехника она эмбеддерский ум в порядок приводит, хуже точно не будет %)

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


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

я не ради "вброса" написал,

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

 

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

 

для ознакомления с предметом рекомендую ASIC the book

http://www10.edacafe.com/book/ASIC/ASICs.php

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


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

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

Ну дык голова на плечах у них есть есть, да и логика здравого смысла не куда не делась. Чтобы писать нормальный RTL достаточно поковыряться в Technology mapper + Chip Editor + даташит на целевую плис и сделать соответствующие выводы %).

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


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

Всем спасибо за здравые мысли, советы и ссылки.

Поясню свою корявую фразу "Хочу ПЛИС, но не хочу схемотехнику".

 

Автор к слову больше не работает в НИИ КП с ситемой ГЛОНАСС. Автор работал там прошлым летом. Там ему дали в качестве первого задания написать программу выполняющую тест на целочисленность. Берется несколько приемников, измеряется точно расстояние между ними, выбираются несколько спутников, считается разница набега фаз, некоторые преобразования, в итоге получается целочисленный коэффициент, который сохраняет свое значение в течении большого промежутка времени. Я решал эту задачу с помощью С++. Собственный класс, функции, переменные, вывод данных - все это было для меня просто инструментом с помощью чего я реализовывал то, что было записано моим руководителем словами и формулами. Изучение С++ как такового не было самоцелью, это просто мой инструмент как будущего радиоинженера.

Сейчас примерно с такой же мотивацией я изучаю VHDL. Я не хочу становиться специалистом именно в этой области, я хочу ее освоить как инструмент для решения задач. Так же, как 40 лет назад осваивали паяльник. Вот пожалуй как то так. Так же, как потом хочу попробовать себя в системном проектировании, так же как в прошлом году осваивал программы для расчета СВЧ и антенн. Просто инструменты.

 

Сейчас буду переписывать свой проект в соответствии с тем, что прочитал за последние дни.

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

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


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

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

Размер процесса - дело вкуса.

Процесс - это такой небольшой последовательный программный модуль.

Лучше, если процесс описывает некоторую законченную сущность - что называется, entity,

некий кластер функциональности.

Тогда такие процессы можно проще держать в голове и обращаться с ними.

Так же как в Си рекомендуют описывать модуль порядка 30 строками -

так же солько же сторок (или чуть меньше) имеет оптимальный по объему процесс.

Меньше объем - больше процессов, за которыми надо следить, как за параллельными сущностями,

больше объем - процесс не вмещается в страницу (в экран) - и надо водить пальцем по его сигналам.

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


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

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

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

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

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

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

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

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

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

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