Jump to content

    
Sign in to follow this  
Pavia

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

Recommended Posts

Во тема до чего дошла... Началась со стандартного Verilog vs VHDL, закончилась откровенным пиаром какого-то телевизионного стандарта :) :)

Share this post


Link to post
Share on other sites
А первого мамонта убили каменным топором....

А при чем здесь мамонт? Мы что историю обсуждаем?

Извиняюсь за оффтоп:

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

...Никто не вернулся из охоты. Раздавили мамонты к чертям всех охотников.

Мораль: Не умеешь охотиться - раздавят тебя мамонты. А умеешь - вернешься с добычей. С любым топором.

Share this post


Link to post
Share on other sites
Это плюсы для программирования (на ADA), когда программа, если что, по assertion слетит, если ей такое данное скормят, что оно вызовет переполнение... А в синтезе то что толку от этого контроля, ну подам я на вход кривое данное, если ширина шины позволяет, и молча все равно получу на выходе кривое.
Естественно, контроль дипазона работает только на этапе поведенческой симуляции, где и позволяет иногда отловить тупые ошибки.

Share this post


Link to post
Share on other sites

Сам я знаю с 10 языков программирования.

Бесик, паскаль, дельфи, ассемблер x86, php, Си, MySql,Си++,C#, матлаб.

 

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

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

 

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

VHDL - простой язык его описание гораздо меньше чем у Verilog HDL. В 1.5-2 раза.

 

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

 

Но VHDL мне показался через чур абстрактным и далёким от аппаратуры. В Verilog с этим проще в нем как раз используются термины из аппаратного лексикона - провода, регистры, процессы, порты.

Более того как тут уже заметили в VHDL больше не синтезируемых конструкций.

 

Да и синтаксис не сильно располагает к краткости и лаконичности описания. Но на самом деле это больше зависит от таланта программиста. А как писать правильно есть куча советов и рекомендаций.

 

 

 

Share this post


Link to post
Share on other sites
А значит нужно будет учить оба языка.

Если не трудно, доложите через какое-то время, на чем остановили свой выбор. Впрочем, я ответ уже знаю. :08:

Share this post


Link to post
Share on other sites

Мне нравится верилог прежде всего за то, что там есть такие близкие к аппаратуре штуковины, как reg и wire.

wire - это, как я понял, комбинаторный близкий к аппаратуре провод или близкая к аппаратуре защелка. а reg - это тоже такое что-то близкое к аппаратуре, что может выполнять функции и близкого к аппаратуре провода, и близкой к аппаратуре защелки, но иногда и близкого к аппаратуре триггера в зависимости от того, где и насколько близко к аппаратуре он появляется. Мощнешая близкая к аппаратуре вещь!! Ведь транслятору не понятно из контекста, и нужно намекнуть, какую конструкцию инженер хочет реализовать. А дальше уж транслятор сам. Помолясь. Это говорит о великолепной продуманности языка и разнообразных возможностях для инженера и совместной слаженной работе с транслятором. Жалко, что разработчки стандарта не предусмотрели возможность триггера для wire.

 

Еще отличная вещь - невозможность использовать тип real в промежуточных вычислениях синтезируемых конструкций. Разработчику предлагается изучить другие хорошие языки программирования, чтобы генерировать на них параметры для своих блоков ЦОС. Разработчики стандарта (а это требование стандарта, насколько я помню) как бы ненавязчиво заставляют инженера расширять свою эрудицию, не стоять на месте. Знание 10 языков программирования в довесок к верилогу как раз самое то. Не пропадут. И всякие смешные ребята, делающие, например, трансляторы из питона в верилог тоже как бы при деле.

 

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

 

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

 

Ну и почти самое главное Verilog - это Cadence. А где Cadence, там обязательно все на своих местах, все правильно и почти никогда сильно не тошнит.

 

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

 

У верилога есть и другие неоспоримые преимущества:

1. Низкий порог вхождения. Для освоения базового уровня языка и изготовления учебной мигалки средствами верилога достаточно 1 вечера. Но и выше этого порога там почти ничего нет.

2. Как многие заметили: мало писать - пальцы не устают, и можно вечерами подрабатывать лабухом в кабаке.

Share this post


Link to post
Share on other sites

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

Другое дело, что во многих руководствах по VHDL синтезируемое и несинтезируемое свалено в кучу, и поначалу трудно во всём этом разобраться. Мне понравилась книга Уэйкерли "Проектирование цифровых устройств", там начинается именно с синтезируемого. Я по ней и начал работать.

Просто любопытно было, как решаете проблему 32 бит, а так арифметика в целых имеет свои плюсы, например, контроль диапазона значений.

Кстати, идея писать собственные функции в подобных случаях принадлежит не мне, а самому Уэйкерли.

Сам я знаю с 10 языков программирования.

Как он нас изящно умыл :)

Share this post


Link to post
Share on other sites
рекомендую, особенно для начинающих

 

Оцените сложность в создании тестбенча для оценки функционального покрытия проекта на VHDL и SV... И все станет ясно!

Share this post


Link to post
Share on other sites
Оцените сложность в создании тестбенча для оценки функционального покрытия проекта на VHDL и SV... И все станет ясно!

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

 

PS Я прекрасно знаю, что SV позволяет создавать тесты более качественее и с меньшими трудозатратами по сравнению VHDL и Verilog. Спорить в этом вопросе даже не собираюсь.

Но вопрос как часто нужны при разработке на ПЛИС тесты с 90% - 99% покрытием и автоматической проверкой работоспособности, например для проектов на стратикс4 практически максимальной логической емкости и занятыми ресурсами более 70% и как долго они будут моделироваться на рабочих ПК (не серверы)... Иногда проще тестировать "в железе". Конечно без SV не обойтись в разработке ИМС (моделирование насколько мне известно идет несколько часов). Чаще для проектов на ПЛИС тест пишется для проверки работоспособности - нет ли переполнения, правильность соединения блоков, далее тестирование в аппаратуре. Чтобы создать хороший тест с 90% - 99% покрытием и автоматической проверкой работоспособности, наверно нужно потратить время столько же как и на разработку "железа", если не больше. В некоторых компаниях это делают другие люди - пишут такого рода тесты и проводят тестирование... Опять это сугобо мое мнение и спорить я не буду...

Вы всегда пишите тесты с 90% - 99% покрытием и автоматической проверкой работоспособности?

Share this post


Link to post
Share on other sites
Но вопрос как часто нужны при разработке на ПЛИС тесты с 90% - 99% покрытием

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

 

Чтобы создать хороший тест с 90% - 99% покрытием и автоматической проверкой работоспособности, наверно нужно потратить время столько же как и на разработку "железа", если не больше.

Конечно!

Хорошо, если соблюдаются временнЫе соотношения: проектирование / кодирование / тестирование - 40% / 10% / 50% или даже 30% / 5% / 65% .

 

В некоторых компаниях это делают другие люди - пишут такого рода тесты и проводят тестирование...

Очень правильный подход.

 

Share this post


Link to post
Share on other sites
...Вы всегда пишите тесты с 90% - 99% покрытием и автоматической проверкой работоспособности?

 

Когда над одним проектом работает больше двух человек и несколько лет,- вопрос риторический....

Share this post


Link to post
Share on other sites
Сам я знаю с 10 языков программирования.

Бесик, паскаль, дельфи, ассемблер x86, php, Си, MySql,Си++,C#, матлаб.

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

 

P.S. а вообще ребята, надо английский учить

Edited by exiro

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this