Jump to content

    

Какой язык учить?

Решил изучить работу с ПЛИС.

И встал трудный вопрос какой язык выбрать?

С одной стороны на OpenCores наибольшей популярностью пользуется Virlog HDL.

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

Да и с другой стороны нашел хороший учебник по VHDL. http://kanyevsky.kpi.ua/resourse/All/VHDL/VHDL_context.html

 

Собственно хочется услышать, кто что пользуется и какие преимущества?

Я так понимаю на VHDL результирующий проект можно сделать более оптимизированным чем на Virilog. А скорость разработки не сильно отличается.

Share this post


Link to post
Share on other sites

IMHO:

 

- Verilog проще, понятнее и без лишних заморочек типа жесткой типизации, которая, IMHO, электрическим проводам ни к чему.

 

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

 

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

 

Однако, если научитесь писать на VHDL, Verilog потом освоите в шесть секунд, так как на нем все значительно проще.

 

Ну а на оптимальность результата ни коим образом не влияет язык, на котором описано устройство, как и на реализацию идей, идеи можно описать примерно одинаково на любом языке, только на VHDL описание будет толще и весомее :) Скорость разработки быстрее на Verilog, тупо потому, что тыкать в кнопки меньше, зато VHDL, возможно, на самом начальном этапе, своей АДской типизацией может уберечь от каких-то детских ошибок (а может и не уберечь)

 

Вот если сравнивать языки программирования C и Pascal, то verilog = C, VHDL = Pascal (на самом деле даже хуже - ADA). Вот как-то образно так.

 

В общем, я за Verilog, SystemVerilog, VHDL же достаточно читать и понимать.

Share this post


Link to post
Share on other sites
Собственно хочется услышать, кто что пользуется и какие преимущества?

Как по мне в ВХДЛ многа букав, Верилог лаконичней и логичней (ИМХО) выглядит, + синтаксис является гибридом между Паскалем и Сишником, так что если известен один из них, изучение пойдёт легче.

Сам ВХДЛ-а не знаю, но говорят он более высокоуровневый и абстрагированный чем Верилог.

И да, на ВХДЛ литературы в разы больше, на него даже ГОСТ есть.

 

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

Идеи можно на любой язык положить, не в языке дело.

 

А вообще, знать надо оба. Но с какого начинать, надо всё таки решить.

Share this post


Link to post
Share on other sites

Начать надо с VHDL, он позволяет избежать многих затыков в дизайнах за счет хорошей структуры. Verilog вместе с большей свободой дает свободу воротить косяки пачками. Поэтому начните с VHDL, затем как натаскаетесь в Verilog всегда сможете перейти. Начнете с Verilog, потом на VHDL переучиться будет нереально, а в России половина работы на VHDL. И поскольку знать, как тут правильно написали, надо оба языка, начать лучше с VHDL.

Share this post


Link to post
Share on other sites

verilog собственно и не язык - пару наборов стандартных конструкций которые надо запомнить

мне он очень понятен - если запомнил конструкции - если конструкций не знаешь то полный бред получается

 

но в литературе пишут (чтобы не спорить по этому вопросу ссылаюсь на литературу ;-)) что на верилоге есть логические проблемы

а на vhdl этих проблем якобы нет - и типа считается что vhdl круче

 

а так вам самому решать - на цвет и вкус все фломастеры разные ;-)

 

+1 verilog ;-)

Share this post


Link to post
Share on other sites

Начинал с VHDL, его нам насильно преподавали и заставили купить авторскую книжецу. Читал какой-то умирающий гуру от фирмы создающей синтезатор. Успешно сделал несколько проектов.

 

Потом был перерыв, и мне знакомый сказал что верилог удобнее ему показался. Решил попробовать, сейчас пишу на Veriloge. Также есть успешные проекты.

 

На чем описывать поведение реально не важно, пока не встретил чего-то что не могу описать, также не встречал этого и на VHDL. По количеству текстf Verilog значительно меньше. VHDL старый язык, парсеры этого языка закладывались когда еще трудно было писать сложные программы, потому он сильно перенасышен текстом, который теперь из за обратной совместимости убрать нельзя. Чтобы блок добавить, его по несколько раз писать надо, да со всеми выходами (утрированно конечно, но факт), и типы данных все такие длинные, и куча спец символов чтобы равно от присвоить отличать.

 

Понимать надо оба языка, а писать рекомендую на Veriloge. Только не стоит его сравнивать с С, то что буквы те же, не значит что язык тот же. Вообще обращаясь к ПЛИСам надо сразу понимать, что образ мышления должен быть СОВЕРШЕННО другой нежели в линейных программах. Если это не понять, вы будете задавать смешные вопросы, а SM будет вас тролить, и угрожать паяльником и триггером!

Share this post


Link to post
Share on other sites

Нет, только ограбление SystemVerilog!

Share this post


Link to post
Share on other sites
Вообще обращаясь к ПЛИСам надо сразу понимать, что образ мышления должен быть СОВЕРШЕННО другой нежели в линейных программах.

и СОВЕРШЕННО другой нежеле в "электронике с проводами " :rolleyes:

Share this post


Link to post
Share on other sites
и СОВЕРШЕННО другой нежеле в "электронике с проводами " :rolleyes:

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

Share this post


Link to post
Share on other sites
Если это не понять, вы будете задавать смешные вопросы, а SM будет вас тролить, и угрожать паяльником и триггером!

Или только паяльником. :biggrin:

 

Share this post


Link to post
Share on other sites
ну вот не совершенно. Очень даже близкий. Почти каждой конструкции языка можно сопоставить какую-то микросхему из стандартной логики, делающую нечто похожее.

и сделать задержку в виде дополнительного элемента или сделать работу по обоим фронтам - так ведь удобнее и проще

Share this post


Link to post
Share on other sites
и сделать задержку в виде дополнительного элемента или сделать работу по обоим фронтам - так ведь удобнее и проще

 

а в чем проблема? Хоть на Verilog, хоть на VHDL подключайте элемент задержки или DDR-буфер. Проблема может быть, только если в выбранной FPGA нет нужного элемента.

Share this post


Link to post
Share on other sites
и сделать задержку в виде дополнительного элемента или сделать работу по обоим фронтам - так ведь удобнее и проще

 

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

 

Чтобы не уходить от темы предлагаю голосовать

ТС хотел мнение и цифры:

мое мнение

Verilog - 1 VHDL - 0

 

плюсуйте господа!

Share this post


Link to post
Share on other sites
вы путаете, это я выступаю за то чтобы программистам дали элементы работающие по обоим фронтам! SM же постоянно рушит мои мечты, и угрожает паяльником.

я не путаю - я ерничаю

 

 

а в чем проблема? Хоть на Verilog, хоть на VHDL подключайте элемент задержки или DDR-буфер. Проблема может быть, только если в выбранной FPGA нет нужного элемента.

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

а вы о чем?

 

Share this post


Link to post
Share on other sites
типовой пример - в рисовании схемы в плис - когда вставляют пару логических эелементов чтобы задержать сигнал

а вы о чем?

 

И я об этом, если это надо, то пожалуйста, без проблем. Еще и обконстрейнить на MIN_DELAY можно. Мне даже один раз применить это пришлось, когда прототип микрухи делался, и надо было получить короткий импульс на фронте для совместимости с кремниевым решением. Другое дело, что это нежелательная практика и плохая (кстати, и в схемах из логики и проводов тоже), но ничего категорически не запрещено, если знаешь, что делаешь.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this