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

тема для Aprox и любителей AHDL

2 Aprox

Не хочу подливать масла в огонь, но еще со времен "луддитов" (так, кажется?) люди цеплялись за старое и отвергали новое. Вы попробуйте SV, и уверяю Вас, Вам понравится. Примерно так же обстоит вопрос перехода с ассемблера на C для микроконтроллеров. Не всегда же нам нужно предельное быстродействие (кстати, с помощью тех же самых примитивов и мегафункций мы можем сделать в SV всё, что могли сделать в AHDL). А удобство работы - очевидно. Еще никто не соскочил назад на AHDL после SystemVerilog. Также, как никто не возьмется писать на ассемблере то, что умеет написать на C. Мой Вам совет - попробуйте SV!

Спасибо за доброжелательный совет, будет время- обязательно попробую свои силы в SV. Тем более, что все к тому идет историческим путем, а никак не потому, что AHDL чем-то хуже SV. Или менее высокого уровня, что к вопросу о некорректной аналогии в сравнении ASM <-> C.

 

Победа си-образных языков (типа Verilog) над строго структурированными языками высокого уровня (AHDL) вызвана совсем другими факторами. А именно- будущих программистов учат в школе языку С. И только. Между тем, схемотехники-электронщики начинают создавать софт под свои изделия со строго структурированных языков типа PL потому, что это самый прямой и короткий путь описания аппаратуры. Так было с первыми микропроцессорами от Intel, ими был создан язык PLM80. Но ломанулись-то в эту нишу потребители со знанием С! И пришлось Intel со скрипом переходить на синтаксис С, а потом и вовсе забросили тему микропроцессоров. Точно такая же история происходит и с Altera. Начинали с PL-образного AHDL, а пришлось под давлением нахлынувшего си-образованного потребителя переходить на нечто си-образное. Но самое смешное, что самое ценное в языке С было кастрировано по причине их нереализуемости в железе, каковым является разводка FPGA. Остался только слегка узнаваемый синтаксис. Таким образом, причина в рыночных отношениях, а не в научно-технических.

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


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

2 Aprox

Давайте вернемся к этому разговору, например, осенью.

Надеюсь, к этому времени, у Вас будет иное мнение о SystemVerilog.

Я, к примеру, писал на AHDL, и не страдал, нравилось.

Но в SystemVerilog я почти влюблен! :)

Чего желаю и всем остальным.

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


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

Тема выделена в отдельную ветку отсюда . Напомню суть вопроса: уважаемый Aprox необоснованно утверждает что AHDL заткнет за пояс VHDL/V/SV вместе взятые. Для рассмотрения сего вопроса поступило предложение сравнить модули, с одинаковой функциональностью написанные на разных языках. Критерии сравнения :

читаемость/краткость/параметризуемость/результат синтеза

 

Ну, поскольку страсти почти улеглись, то я предлагаю это дело напечатать.

Если кто помнит, то я делал в КиТ материал в рубрике "Клуб Экспертов".

Так вот, обращаюсь в первую очередь к "забойщикам" данной темы - des00 и Aprox. Вы готовы представить свое мнение открыто на страницах журнала? С этими примерами кода и с комментариями? Ну и так же все "подельщики", если кто хочет открыто высказаться, то все пойдет в "дело". В качестве "понятого", можно будет привлечь Стюарта Литтла. Я думаю, что он тоже в таком деле будет заинтересован.

Итак, кто хочет быть в деле, пишите мне на [email protected]

Если "забойщики" откажутся, то конечно будет грустно. Ну а я сообщу всем, как идут дела...

Жду...

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


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

Так вот, обращаюсь в первую очередь к "забойщикам" данной темы - des00 и Aprox. Вы готовы представить свое мнение открыто на страницах журнала? Жду...

 

Если мнение Aproxa Вас заинтересовало, наверно Ваш журнал пора уже закрывать.

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


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

Вы готовы представить свое мнение открыто на страницах журнала?

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

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


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

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

ОК!

Давайте через месяц продолжим...

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


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

Так вот, обращаюсь в первую очередь к "забойщикам" данной темы - des00 и Aprox. Вы готовы представить свое мнение открыто на страницах журнала?
С моей стороны результатом всей дисскуссии стало очень простое и короткое мнение схемотехника/практика - работайте на том языке, какой освоили и привыкли. Все остальное - от лукавого. Как видите, мое мнение не подходит для научно-технического журнала. Обратитесь лучше к des00 за теоретическими изысканиями.

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


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

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

Почему я этим занимаюсь?

Давайте посчитаем. Что касается Дениса, то я ему эти цифры уже приводил. Все цифры привожу довольно условные...

Итак: В ветке конференции участвовало не более 150 чел. Прочло - не более 3000 чел.

А журнал это сразу 6000 экземпляров. Да еще потом архив статей на сайте журнала. И сюда же добавляются те, у кого не "положено" иметь интернет на работе... Так вот именно поэтому я и предлагаю эту дискуссию напечатать.

И неправда, что Ваше мнение не подходит для журнала. Позвольте мне, как члену редколлегии, это знать лучше!!! Я неоднократно писал, что к цели быстрее других приводит та дорога, по которой легче идти. Если Ваш опыт показывает, что Вам так работать легче, значит для Вас этот путь правильный. Что касается "теоретических изысканий", то здесь совершенно другой путь. И возможно у des00 совершенно другие задачи. И там он вынужден идти другим путем. И если есть желание, то свою точку зрения всегда можно высказать.

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

А уж инженеры, читающие журнал, сами решат, что им выбрать и как работать...

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

Удачи!

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


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

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

 

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

Так как задача в итоге была реализована только со стороны V/SV. 

 

А вообще мысль неплохая - появился бы человек, который, все-таки, реализует сабж на AHDL и вперед!  :)  

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


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

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

Так как задача в итоге была реализована только со стороны V/SV. 

На опенкорах также реализована задача кодера, но реализована на VHDL. В чистом виде дает производительность 250MHz. А будучи обернута в тест на AHDL и поигравшись с настройками Quartus имеем 229.6 MHz. Этих значений des00 так и не смог преодолеть в своих изысканиях.
А вообще мысль неплохая - появился бы человек, который, все-таки, реализует сабж на AHDL и вперед!  :)
Нет, мысль чисто досужая и абстрактная. Ведь сравнивать надо не просто на одинаковых задачах, а на полном равенстве алгоритмов решения задачи, полном равенстве структуры данных и выражений и полном равенстве настроек синтезатора. Также надо договориться об одинаковом инструменте оценки производительности. Видите, сколько всего надо выравнять. Это нереально. А главное- в результате непременно выясним, что результаты компиляции с разных языков получаются одинаковыми. Hу, и к чему тогда была вся затея? Зачем бодались?

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


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

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

В том то и дело, что в результате получится абсолютно идентичная схема, без вариации, и Ваши начальные утверждения, что AHDL специально заточен под Altera и с помощью специализированного языка можно получить "лучшую" схему (по быстродействию например) ошибочны. При этом язык по возможностям уж точно уступает, например verilog (да и честно говоря по внешнему виду).

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


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

На опенкорах также реализована задача кодера, но реализована на VHDL. В чистом виде дает производительность 250MHz. А будучи обернута в тест на AHDL и поигравшись с настройками Quartus имеем 229.6 MHz. Этих значений des00 так и не смог преодолеть в своих изысканиях.

Ну и где здесь реализация на AHDL?.

 

 

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

Договориться использовать одинаковые настройки - не проблема вообще.

Инструмент оценки - TQ + отчет синтезатора по ресурсам.

 

Есть 2 варианта:

1) Реализовывать один алгоритм на разных языках.

2) Свобода в выборе алгоритма для решения одной задачи, пусть даже на одном языке (я эту идея раньше уже предлагал - мне она ближе и интересней).

 

 

 

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

В первом варианте будет так, если синтезаторы написано одинаково хорошо (или плохо).

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

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


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

В том то и дело, что в результате получится абсолютно идентичная схема, без вариации, и Ваши начальные утверждения, что AHDL специально заточен под Altera и с помощью специализированного языка можно получить "лучшую" схему (по быстродействию например) ошибочны.

Я говорил не так. Я говорил, что при использовании AHDL в синтез автоматически, прозрачно от пользователя, включаются мегафункции, специально заточенные Altera под каждый конкретный кристалл. И поэтому получается самая эффективная разводка. Раньше в MAX-II даже опция такая была в настройках- использовать ли мегафункции при синтезе с AHDL. В Quartus уже автоматом. Про Verilog не знаю- автоматом ли он включает альтеровские мегафункции или нет. Дошли сообщения, что не автоматом, а надо специально декларировать и примитивы и мегафункции. Это уже требует приличного схемотехнического опыта и поэтому чревато осложнениями для свежих людей.

При этом язык по возможностям уж точно уступает, например verilog (да и честно говоря по внешнему виду).
Оставим в покое вкусовщину. Приведите хоть одну "возможность" Verilog, которую я не смогу найти в AHDL.

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


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

Оставим в покое вкусовщину. Приведите хоть одну "возможность" Verilog, которую я не смогу найти в AHDL.

 

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

2. Мне требуется создать канал шума, да или тупо фильтр цифровой сделать. Я из матлаба сгенерю в автомате (при этом проверить работоспособность даже необходимости нет), немного подправив. Вы естественно можете готовую корку взять, ну или алгоритм и при этом САМИ будете проверять его работоспособность. САПР типа матлаб не поддерживает AHDL.

3. Да банальное моделирование и проверку работоспособности Вы как делаете, глазами, тесты как пишите? Кстати, modelsim поддерживает AHDL?

4. Ваш код только для конкретной плисины и конкретной фирмы, что если придется переделывать проект под новую (старые например с производства сняли), под верилог только строчку поменять в sdf файле, если это квартус.

5. Серьезные коммерческие проекты делают несколько человек, а то и десяток. При этом можно свободно совмещать языки Verilog и VHDL (и схематик при желании), да и проще совместным моделированием заниматься. Любителей ahdl Вы с трудом найдете в таких количествах в одном месте. Можно естественно нетлисты соединять, но вот только это ОЧЕНЬ проблематично...

 

Я говорил, что при использовании AHDL в синтез автоматически, прозрачно от пользователя, включаются мегафункции, специально заточенные Altera под каждый конкретный кристалл. И поэтому получается самая эффективная разводка.

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

Другое дело, если есть заточенная мегафункция под 4 входа, а я пытаюсь на верилог туда запихнуть 5 и поэтому квартус берет нечто другое, то в этом случае, извините, не язык плохой или хуже, а это я ДУРАК и не знаю структуру конктретной плисины.

ЗЫ Я боюсь, что те проги на verilog или vhdl, которые Вы видели и с которыми сравнивали были заточены под универсальность для разных платформ или плисин. Хотя может просто на опенкорах специально иногда выкладывают битые, чтоб за деньги брали рабочие. Тут все уже зависит от квалификации разработчика этих описаний.

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

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


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

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

2. Мне требуется создать канал шума, да или тупо фильтр цифровой сделать. Я из матлаба сгенерю в автомате (при этом проверить работоспособность даже необходимости нет), немного подправив. Вы естественно можете готовую корку взять, ну или алгоритм и при этом САМИ будете проверять его работоспособность. САПР типа матлаб не поддерживает AHDL.

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

3. Да банальное моделирование и проверку работоспособности Вы как делаете, глазами, тесты как пишите? Кстати, modelsim поддерживает AHDL?

Нет не поддерживает. И слава богу! Потому, что написание модели на порядок сложнее и чревато дополнительными ошибками, нежели обычный прогон на железе в реальных условиях. С симуляторами уже закончили играться в сфере микроконтроллеров. На очереди FPGA.

4. Ваш код только для конкретной плисины и конкретной фирмы, что если придется переделывать проект под новую (старые например с производства сняли), под верилог только строчку поменять в sdf файле, если это квартус.

Если придерживаться одного вендора, например Альтера, то смена "плисины" тоже сводится к изменению всего одной строчки в разделе Settings... Остальное сделает Quartus автоматом.

5. Серьезные коммерческие проекты делают несколько человек, а то и десяток. При этом можно свободно совмещать языки Verilog и VHDL (и схематик при желании), да и проще совместным моделированием заниматься. Любителей ahdl Вы с трудом найдете в таких количествах в одном месте. Можно естественно нетлисты соединять, но вот только это ОЧЕНЬ проблематично...

Не понимаю, в чем проблема. Quartus генерит include заголовки с интерфейсами к модулям, написанным на любом языке на выбор. Все влегкую совмещается в какой угодно комбинации. Например, в этом треде я представил тест-обертку на AHDL для модуля, написанного на VHDL. При этом, совершенно не понимая, что там написано на этом самом VHDL. Разве это не доказательство, что нет никаких преград для совместной работы в разноязычном коллективе? Главное, четко договориться об интерфейсах.

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

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

Другое дело, если есть заточенная мегафункция под 4 входа, а я пытаюсь на верилог туда запихнуть 5 и поэтому квартус берет нечто другое, то в этом случае, извините, не язык плохой или хуже, а это я ДУРАК и не знаю структуру конктретной плисины.
Hе совсем так. В мегафункцию заложен механизм применения дополнительных, чисто альтеровских ухищрений, позволяющих не потерять в скорострельности, когда не влезает число входов в одну LUT логического элемента. Здесь и carry-chain, и soft-expander. В мегафункциях эти особенности архитектуры учитываются. А в вашем исходнике из-под матлаб/симулинк? Сомневаюсь я...

ЗЫ Я боюсь, что те проги на verilog или vhdl, которые Вы видели и с которыми сравнивали были заточены под универсальность для разных платформ или плисин. Хотя может просто на опенкорах специально иногда выкладывают битые, чтоб за деньги брали рабочие. Тут все уже зависит от квалификации разработчика этих описаний.

Да, конечно, коры писались из расчета на всеохватывающую универсальность. Вот, она-то все и губит! И вообще, у меня такое впечатление, что я веду диспут с людьми другой профессии. Hе разработчиками конкретной аппаратуры, а скорей с программистами универсального IP. Естественно, что общего языка найти становиться невозможным.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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