des00 25 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба 17 minutes ago, RobFPGA said: Но возникает вопрос - если уж VHDL такой хороший и "пушистый" то почему V/SV так массово разошелся? Значит все-же чего-то в VHDL не хватало (а чего-то было уж чересчур ) думаю ответ в истоках) VHDL Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами(с) Википедия Verilog был создан Phil Moorby и Prabhu Goel зимой 1983—1984 годов в фирме Automated Integrated Design Systems (с 1985 года Gateway Design Automation) как язык моделирования аппаратуры(с) Википедия Ну а дальше закрутилось и понеслось, а с учетом того что RTL кодирование 15% работы...имеем то что имеем) ЗЫ. А будущее за HLS, рисованием в матлабе, си с кучей симвлов и питоном) вот их и надо изучать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба 19 minutes ago, RobFPGA said: Перспективнее все же учить оба языка. Поскольку mixed language встречается в FPGA разработке очень часто. Ну, с этим-то никто, надо полагать, не спорит. Я сам писал именно на VHDL, а на Верилоге только читал; мой постепенный переход на SV вызван как его определёнными преимуществами, так и ощущением, что VHDL умирает (как это произошло, например, с Паскалем -- который лично я, несмотря на бесконечные begin-end, предпочёл бы использовать вместо Си++, если б Паскаль нормально развивался и были бы нормальные инструменты, но увы и ах). 2 minutes ago, des00 said: ЗЫ. А будущее за HLS, рисованием в матлабе, си с кучей симвлов и питоном) вот их и надо изучать Ну, если число транзисторов, потребляемая энергия и скорость никак не волнуют -- то да :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба Just now, SII said: Ну, если число транзисторов, потребляемая энергия и скорость никак не волнуют -- то да :) Эта установка 5 ти годовой давности. Сейчас уже все не так. К сожалению. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 (изменено) · Жалоба 27 minutes ago, SII said: VHDL умирает (как это произошло, например, с Паскалем -- который лично я, несмотря на бесконечные begin-end, предпочёл бы использовать вместо Си++, если б Паскаль нормально развивался и были бы нормальные инструменты, но увы и ах). Проблема с vhdl не в языке, на данный момент в нем есть все, что и в sv. А вот с поддержкой в сапрах "бяда-бяда" Изменено 11 декабря, 2020 пользователем Strob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба 3 minutes ago, Strob said: Проблема с vhdl не в языке, на данный момент в нем есть все, что и в sv. А вот с поддержкой в сапрах "бяда-бяда" классы, констрейны и PSL интегрировали ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба 1 час назад, des00 сказал: классы Да сдались вам эти классы! Возможно, я чего-то не понимаю, я не программист ни разу, но, с точки зрения банальной эрудиции, чему нас учит ООП? Создаём простой объект, далее последовательно расширяем его функциональнось наследованием. Возьмём счётчик. Что мы делаем для железа? Мы изначально создаём самый сложный счётчик, и в зависимости от применения урезаем его возможности. Не нужна загрузка -- подаём на вход LOAD 0. Не нужно разрешение -- подаём на вход CЕ 1 и т. д. Синтезатор всё это дело оптимизирует. И зачем нам тут ООП? Как надо бы делать в парадигме ООП? Делаем самый простой счётчик, который умеет только +1. Наследуемся от него, чтобы создать более сложный: +1/-1. Наследуемся, чтобы можно было задавать шаг счёта. Наследуемся, чтобы добавить CE. Наследуемся, чтобы добавить загрузку. И т. д. Я пока не представляю себе, как описать такю иерархию и как синтезатор будет это переваривать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 (изменено) · Жалоба 1 hour ago, des00 said: классы, констрейны и PSL интегрировали ? Классы и констрейны(если не считать констрэйном конструкцию вида range a to b) вполне реализуются через package и protected type. Не один в один. Но функционал повторяем. PSL есть Изменено 11 декабря, 2020 пользователем Strob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба 1 hour ago, andrew_b said: Да сдались вам эти классы! ООП -- оно не для синтеза, а для тестирования. Если чисто для синтеза, то в VHDL есть всё (кроме, может быть, интерфейсов с модпортами -- и то не уверен; не задумывался, как это можно там реализовать, но в SV сделано приятно -- насколько вообще приятно можно сделать, опираясь на ужасающий синтаксис Верилога). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 (изменено) · Жалоба Just now, SII said: кроме, может быть, интерфейсов с модпортами -- и то не уверен; не задумывался, как это можно там реализовать Реализуются через record'ы. Есть нюансы. В vhdl 2019 даже более продвинуто(атрибут converse позволяет автоматически объявить порты инверсного направления, плюс появился прямой аналог modport - view), чем в SV, однако поддержку 2019-го ждать наверное еще долго. Изменено 11 декабря, 2020 пользователем Strob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 11 декабря, 2020 Опубликовано 11 декабря, 2020 · Жалоба Just now, Strob said: Реализуются через record'ы. Есть нюансы. В vhdl 2019 даже более продвинуто(плюс появился прямой аналог modport - view), чем в SV, однако поддержку 2019-го ждать наверное еще долго. Ну, что через записи -- да, самоочевидно, я так и использовал. Но это не очень удобно было как раз из-за отсутствия того, что стало модпортом в SV. А вот поддержки дождаться... Особенно прямо у производителей ПЛИСин. Во всяких-то Квестах с Пресижнами и Синплифаями, скорей всего, довольно быстро родят (года эдак через три-четыре). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 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 прочитаные от корки до корки. Изучая эти документы все становится на свои места про парадигмы заложенные в эти языки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viktuar 0 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 22 hours ago, des00 said: классы, констрейны и PSL интегрировали ? Вместо классов protected types. Громоздко, нет наследования. В общем, одна из немногих проблем VHDL. Констрейны, вроде, давным-давно есть (или вы о чем-то другом). PSL, начиня с в 2008, поддерживается практически полностью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 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 это и к вашей фразе тоже) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться