Raven 11 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба Пока все приведенные примеры не имеют расхождений в поведении на симуляторе и в реальном мире (или, если угодно, при симуляции RTL-описания и post-synthesis netlist'а соответственно). И не совсем понятно, о чем толкует и чему удивляется, например, Golikov A. - в его постах наблюдается то же самое. О каком игнорировании списка чувствительности вы говорите? Если внимательно разобраться в функционале примеров, то и синтезатор, и симулятор пока демонстрируют согласие, оно полностью ожидаемо и ничего пока не игнорирует. Это и неудивительно,- примеры ведь пока далеко не уходят от guidelines по написанию синтезабельного кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба Чтобы понять о чем я толкую надо почитать внимательно и что-то повторить. самое простое это sample_and: process(d) begin a <= b & c; end process; посмотреть симуляцию, и посмотреть итоговую схему. Я даже дам вам подсказку, попробуем в симуляции менять b и c не трогая d и наблюдаем за а. Потому пытаемся по итоговой схеме прикинуть как будет вести себя железо, и совпадет ли оно с симуляцией... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 11 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба .. попробуем в симуляции менять b и c не трогая d и наблюдаем за а. Потому пытаемся по итоговой схеме прикинуть как будет вести себя железо, и совпадет ли оно с симуляцией... :) Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками): 1) Tool : Quartus / ISE-Vivado ? 2) d - это тактовый сигнал или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками): 1) Tool : Quartus / ISE-Vivado ? 2) d - это тактовый сигнал или нет? По моему, все известные науке синтезаторы для FPGA игнорируют списки чувствительности процесса. И не важно, тактовый сигнал или нет, это ж не Верилог. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба :) Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками): 1) Tool : Quartus / ISE-Vivado ? 2) d - это тактовый сигнал или нет? 1. Я проверял на ISE, интернет проверял и на Quartus, Vivado я практически уверен будет солидарна. 2. А это важно:)? Думаете у вас получится разный результат в зависимости от источника сигнала? По моему, все известные науке синтезаторы для FPGA игнорируют списки чувствительности процесса. И не важно, тактовый сигнал или нет, это ж не Верилог. Это и есть основной тезис последних страниц, правда его списывают на нашу молодость и пытаются оспорить опытом, к слову сказать неподтвержденным экспериментами, таким эмпирическим опытом :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gin 0 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба Читал, читал этот спор, но так и не понял, в чем собственно проблема. Для описания регистров в списке чувствительности использую только клок (ну и асинхронный сброс, если он есть); а для комбинационной логики пишу process(all), и вроде как расхождения модели и реального железа не наблюдаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба В споре поддерживаю Golikov A., Timmy, Flip-fl0p, не поддерживаю Raven, Мур . 2Мур , просто приведите пример, который нас разубедит (его конечно не будет). 2gin Не все тулзы поддерживают VHDL2008, но в целом нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба просто приведите пример, который нас разубедит (его конечно не будет). При дефиците времени провел эксперимент. Я разочарован VHDL. Действительно идет игнор всей этой концепции списка. Это рушит вариативность языка. Надо уходить в SV... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 12 апреля, 2017 Опубликовано 12 апреля, 2017 · Жалоба При дефиците времени провел эксперимент. Я разочарован VHDL. Действительно идет игнор всей этой концепции списка. Это рушит вариативность языка. Надо уходить в SV... Вынужден с Вами не согласиться. Основная причина создания VHDL - моделирование. С этой задачей он справлялся и справляется отлично. На данный момент список чувствительности - больше ограничение, чем необходимость. А что Вы имели ввиду под вариативностью языка ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 13 апреля, 2017 Опубликовано 13 апреля, 2017 · Жалоба Вынужден с Вами не согласиться. Основная причина создания VHDL - моделирование. С этой задачей он справлялся и справляется отлично. На данный момент список чувствительности - больше ограничение, чем необходимость. А что Вы имели ввиду под вариативностью языка ? Ну как же!.. Если бы работа со списками чувствительности была как изначально прописано, то какой бы богатый выбор был? Только представьте!.. Крылья просто обрезают. Будем считать это не синтезируемым подмножеством. Не обращайте внимание! Да? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 13 апреля, 2017 Опубликовано 13 апреля, 2017 · Жалоба Надо уходить в SV...Ну, в добрый путь. Когда надоест бесконечно бегинэндить, возвращайтесь обратно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 13 апреля, 2017 Опубликовано 13 апреля, 2017 (изменено) · Жалоба Ну как же!.. Если бы работа со списками чувствительности была как изначально прописано, то какой бы богатый выбор был? Только представьте!.. Крылья просто обрезают. Будем считать это не синтезируемым подмножеством. Не обращайте внимание! Да? Я начал изучение VHDL (примерно год назад), когда уже всем крылья обрезали :crying: , и не знаю как было прописано изначально. А если бы Вы ещё и пример привели, как список чувствительности расширял бы возможности языка, пусть даже и абстрактный пример,тогда было бы просто отлично ! Сейчас я Вас не совсем понял. Вернее я сейчас Вас совсем не понял :smile3046: . Изменено 13 апреля, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 13 апреля, 2017 Опубликовано 13 апреля, 2017 · Жалоба Да просто VHDL любит чтобы одно и тоже было написано несколько раз в нескольких местах. Все мощь синтезируемой части языка описывается внутри процесса, а список чувствительности лишь оптимизация для симулятора и читабельность, если хотите для человека. Ну а то что синтезируемое подмножество меньше симулируемого, ну так это просто жизнь... Не вижу кстати разницы между process() begin end process; и always @() begin end Хотя нет вижу, запись на 1 слово короче:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 13 апреля, 2017 Опубликовано 13 апреля, 2017 · Жалоба Я начал изучение VHDL (примерно год назад), когда уже всем крылья обрезали :crying: , и не знаю как было прописано изначально. А если бы Вы ещё и пример привели, как список чувствительности расширял бы возможности языка, пусть даже и абстрактный пример,тогда было бы просто отлично ! Сейчас я Вас не совсем понял. Вернее я сейчас Вас совсем не понял :smile3046: . Простой пример. Без списка не обойтись..... У хилых в базисе Спартана 6 в макроячейке заложен синхронный сброс. Заставить сбрасываться асинхронно можно затратив дополнительную логику. ...и наоборот. У Альтеры в базисе триггеры с асинхронным сбросом. И заставить его сбрасываться синхронно приводит к аналогичному результату(в смысле затратности). Казалось бы это должно быть видно на вьювере(это был смысл моего эксперимента). .... Обманывают нашего брата! У меня подозрения на сам вьювер. Упрощенно как-то!.. Дескать - не смотрите сюда. Судите только по поведению... Я неоднократно попадал в ситуацию, когда пропускал в списке сигнал и реально шла ахинея. пока явно не добавлял недостающий. Вот я и был уверен в строгости VHDL. Волюнтаризм.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 13 апреля, 2017 Опубликовано 13 апреля, 2017 · Жалоба ну позвольте, синхронность и асинхронность сброса записывается в процессе, и однозначно определяется описание не зависимо от списка чувствительности. синхронный сброс if(clk'event and clk = '1') then if(reset = '1') then ... асинхронный сброс if(reset = '1') then ... else if(clk'event and clk = '1') then тут все трактуется однозначно, читается даже правильнее чем в верилоге с фронтом на ресете, и потому особенно становиться непонятно зачем к этим конструкциям надо еще сверху разные списки чувствительности делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться