Jump to content

    

Recommended Posts

17 minutes ago, RobFPGA said:

Но возникает вопрос - если уж VHDL такой хороший и "пушистый" то почему V/SV так  массово  разошелся?  Значит все-же  чего-то в VHDL не хватало  (а чего-то было уж чересчур :cray: )

думаю ответ в истоках)

VHDL Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами(с) Википедия

Verilog был создан Phil Moorby и Prabhu Goel зимой 1983—1984 годов в фирме Automated Integrated Design Systems (с 1985 года Gateway Design Automation) как язык моделирования аппаратуры(с) Википедия

Ну а дальше закрутилось и понеслось, а с учетом того что RTL кодирование 15% работы...имеем то что имеем)

ЗЫ. А будущее за HLS, рисованием в матлабе, си с кучей симвлов и питоном) вот их и надо изучать

 

Share this post


Link to post
Share on other sites
19 minutes ago, RobFPGA said:

Перспективнее все же  учить  оба языка.  Поскольку mixed language встречается  в FPGA  разработке очень часто.  

Ну, с этим-то никто, надо полагать, не спорит. Я сам писал именно на VHDL, а на Верилоге только читал; мой постепенный переход на SV вызван как его определёнными преимуществами, так и ощущением, что VHDL умирает (как это произошло, например, с Паскалем -- который лично я, несмотря на бесконечные begin-end, предпочёл бы использовать вместо Си++, если б Паскаль нормально развивался и были бы нормальные инструменты, но увы и ах).

2 minutes ago, des00 said:

ЗЫ. А будущее за HLS, рисованием в матлабе, си с кучей симвлов и питоном) вот их и надо изучать

Ну, если число транзисторов, потребляемая энергия и скорость никак не волнуют -- то да :)

Share this post


Link to post
Share on other sites
Just now, SII said:

Ну, если число транзисторов, потребляемая энергия и скорость никак не волнуют -- то да :)

Эта установка 5 ти годовой давности. Сейчас уже все не так. К сожалению.

Share this post


Link to post
Share on other sites
27 minutes ago, SII said:

VHDL умирает (как это произошло, например, с Паскалем -- который лично я, несмотря на бесконечные begin-end, предпочёл бы использовать вместо Си++, если б Паскаль нормально развивался и были бы нормальные инструменты, но увы и ах).

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

Edited by Strob

Share this post


Link to post
Share on other sites
3 minutes ago, Strob said:

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

классы, констрейны и PSL интегрировали ?

Share this post


Link to post
Share on other sites
1 час назад, des00 сказал:

классы

Да сдались вам эти классы! Возможно, я чего-то не понимаю, я не программист ни разу, но, с точки зрения банальной эрудиции, чему нас учит ООП? Создаём простой объект, далее последовательно расширяем его функциональнось наследованием.

 

Возьмём счётчик. Что мы делаем для железа? Мы изначально создаём самый сложный счётчик, и в зависимости от применения урезаем его возможности. Не нужна загрузка -- подаём на вход LOAD 0. Не нужно разрешение -- подаём на вход CЕ 1 и т. д. Синтезатор всё это дело оптимизирует. И зачем нам тут ООП?

 

Как надо бы делать в парадигме ООП? Делаем самый простой счётчик, который умеет только +1. Наследуемся от него, чтобы создать более сложный: +1/-1. Наследуемся, чтобы можно было задавать шаг счёта. Наследуемся, чтобы добавить CE. Наследуемся, чтобы добавить загрузку. И т. д. Я пока не представляю себе, как описать такю иерархию и как синтезатор будет это переваривать.

 

Share this post


Link to post
Share on other sites
1 hour ago, des00 said:

классы, констрейны и PSL интегрировали ?

Классы и констрейны(если не считать констрэйном конструкцию вида range a to b) вполне реализуются через package и protected type. Не один в один. Но функционал повторяем.

PSL есть

Edited by Strob

Share this post


Link to post
Share on other sites
1 hour ago, andrew_b said:

Да сдались вам эти классы!

ООП -- оно не для синтеза, а для тестирования. Если чисто для синтеза, то в VHDL есть всё (кроме, может быть, интерфейсов с модпортами -- и то не уверен; не задумывался, как это можно там реализовать, но в SV сделано приятно -- насколько вообще приятно можно сделать, опираясь на ужасающий синтаксис Верилога).

Share this post


Link to post
Share on other sites
Just now, SII said:

кроме, может быть, интерфейсов с модпортами -- и то не уверен; не задумывался, как это можно там реализовать

Реализуются через record'ы. Есть нюансы.

В vhdl 2019 даже более продвинуто(атрибут converse позволяет автоматически объявить порты инверсного направления, плюс появился прямой аналог modport - view), чем в SV, однако поддержку 2019-го ждать наверное еще долго.

Edited by Strob

Share this post


Link to post
Share on other sites
Just now, Strob said:

Реализуются через record'ы. Есть нюансы.

В vhdl 2019 даже более продвинуто(плюс появился прямой аналог modport - view), чем в SV, однако поддержку 2019-го ждать наверное еще долго.

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

Share this post


Link to post
Share on other sites
15 hours ago, andrew_b said:

Да сдались вам эти классы!

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

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

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

Quote

Бесит бесконечно бегинедить. Всякие endmodule, endfuncion, endcase есть, а endif почему-то нет. И почему-то просто end было недостаточно, а обязательно надо endmodule и endcase.

 

15 hours ago, Strob said:

Классы и констрейны(если не считать констрэйном конструкцию вида range a to b) вполне реализуются через package и protected type. Не один в один. Но функционал повторяем.

PSL есть

Эмм, это как вы предлагаете заменить классы всем вот этим? Вот не приходит мне в голову концепция ООП и обьектов моделирования на всем вот этом. Под констрейнами понималась возможность constraint based random verification и интегрированные возможности functional coverage, а про PSL я же уточнил "интегрировали ?". Он там на уровне комментариев, как и было когда он появился и вставлять такие комментарии можно было в любой код. Но вы же понимаете разницу между языком описания в комментариях и во встроенном в код?

 

ЗЫ. Во избежание обвинений что не умею что-то готовить, до сих пор могу читать и писать код на AHDL, VHDL, V, SV, на книжных полках лежат написанные конспекты по стандартам VHDL93,V95, V01, SV2005 прочитаные от корки до корки. Изучая эти документы все становится на свои места про парадигмы заложенные в эти языки.

Share this post


Link to post
Share on other sites
22 hours ago, des00 said:

классы, констрейны и PSL интегрировали ?

Вместо классов protected types. Громоздко, нет наследования. В общем, одна из немногих проблем VHDL.

Констрейны, вроде, давным-давно есть (или вы о чем-то другом).

PSL, начиня с в 2008, поддерживается практически полностью.

Share this post


Link to post
Share on other sites
5 hours ago, des00 said:

Эмм, это как вы предлагаете заменить классы всем вот этим? Вот не приходит мне в голову концепция ООП и обьектов моделирования на всем вот этом. Под констрейнами понималась возможность constraint based random verification и интегрированные возможности functional coverage, а про PSL я же уточнил "интегрировали ?". Он там на уровне комментариев, как и было когда он появился и вставлять такие комментарии можно было в любой код. Но вы же понимаете разницу между языком описания в комментариях и во встроенном в код?

 

ЗЫ. Во избежание обвинений что не умею что-то готовить, до сих пор могу читать и писать код на AHDL, VHDL, V, SV, на книжных полках лежат написанные конспекты по стандартам VHDL93,V95, V01, SV2005 прочитаные от корки до корки. Изучая эти документы все становится на свои места про парадигмы заложенные в эти языки.

И в мыслях не было кого-то в чем то обвинять.

Как раз protected types и были введены для того, чтобы максимально приблизиться к классам по функционалу. При очень большом желании найти строгие совпадения/несовпадения можно очень быстро улететь в бессмысленный холивар. Т.к. и в V/SV отсутствует ряд возможностей VHDL.

Сonstraint based random verification и functional coverage присутствуют в виде библиотек.

PSL именно "интегрировали" в VHDL 2008.

Share this post


Link to post
Share on other sites
1 hour ago, Strob said:

Как раз protected types и были введены для того, чтобы максимально приблизиться к классам по функционалу. При очень большом желании найти строгие совпадения/несовпадения можно очень быстро улететь в бессмысленный холивар. Т.к. и в V/SV отсутствует ряд возможностей VHDL.

Тогда что вы подразумеваете под функционалом класса? Набор полей и функций? обьекты классов в SV это самостоятельные элементы иерархии, в них можно запустить процессы, породить програмные треды, на этом полностью основанны идеологии верификации OVM/UVM. Т.е. класс в SV намного более широкая сущность чем тип данных с наследованием.

Quote

Сonstraint based random verification и functional coverage присутствуют в виде библиотек.

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

Quote

PSL именно "интегрировали" в VHDL 2008.

http://vhdl.bas-net.by/archives/767 PSL написан в секции комментриев языка. Каким образом он поддерживается комплиятором, если он закомментарен?

@Viktuar это и к вашей фразе тоже)

Share this post


Link to post
Share on other sites
1 hour ago, des00 said:

http://vhdl.bas-net.by/archives/767 PSL написан в секции комментриев языка. Каким образом он поддерживается комплиятором, если он закомментарен?

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

Quote

IEEE Std 1076-2008 

Finally, this revision incorporates the IEEE Property Specification Language (PSL) as part of VHDL.

пункт 1.3.5 стандарта раскрывает смысл этой цитаты из вступления.

Вот пример настоящего VHDL 2008.

library ieee; context ieee.ieee_std_context;
entity slave is
port ( clk, reset :  in std_ulogic;
       req : in std_ulogic;
       ack : out std_ulogic;
       ... );
end entity slave;
architecture pipelined of slave is
  signal req_cnt, ack_cnt : unsigned(3 downto 0);
  default clock is rising_edge(clk);
  property all_requests_acked is
    forall C in {0 to 15}:
      always {req and req_cnt = C} |=>
             {[*0 to 99]; ack and ack_cnt = C};
begin
  req_ack_counter : process (clk) is
  begin
    if rising_edge(clk) then
      if reset = '1' then
        req_cnt <= "0000"; ack_cnt <= "0000";
      else
        if req = '1' then req_cnt <= req_cnt + 1; end if;
        if ack = '1' then ack_cnt <= ack_cnt + 1; end if;
      end if;
    end if;
  end process req_ack_counter;
  ...
  assert all_requests_acked;
end architecture pipelined;

 

1 hour ago, des00 said:

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

Догонять - как будто это плохо. Насчет костылей, вопрос крайне сложный. В VHDL по сути все представлено в виде библиотек. Это его путь. =) Консервативные языки vs. Быстроразвивающиеся языки - это еще более древний, лютый и бессмысленный спор.

 

2 hours ago, des00 said:

на этом полностью основанны идеологии верификации OVM/UVM

И для этого есть библиотека )) UVVM.

 

Как бы там ни было, спорить бессмысленно, SV лучше поддержан в части верификации, чем VHDL, и это существенно более важная особенность, нежели выяснение чего там нет или есть в языке. VHDL 2019 вообще почти все нововведения сконцентрировал вокруг верификации. А толку то, если его поддержку мы может и увидим году в 2040.

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.