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

Любой ли синтаксически верный код VHDL будет корректно работать на реальной ПЛИС?

Пока все приведенные примеры не имеют расхождений в поведении на симуляторе и в реальном мире (или, если угодно, при симуляции RTL-описания и post-synthesis netlist'а соответственно).

 

И не совсем понятно, о чем толкует и чему удивляется, например, Golikov A. - в его постах наблюдается то же самое. О каком игнорировании списка чувствительности вы говорите? Если внимательно разобраться в функционале примеров, то и синтезатор, и симулятор пока демонстрируют согласие, оно полностью ожидаемо и ничего пока не игнорирует. Это и неудивительно,- примеры ведь пока далеко не уходят от guidelines по написанию синтезабельного кода.

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


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

Чтобы понять о чем я толкую надо почитать внимательно и что-то повторить.

 

самое простое это

sample_and: process(d)
begin
   a <= b & c;
end process;

 

посмотреть симуляцию, и посмотреть итоговую схему. Я даже дам вам подсказку, попробуем в симуляции менять b и c не трогая d и наблюдаем за а. Потому пытаемся по итоговой схеме прикинуть как будет вести себя железо, и совпадет ли оно с симуляцией...

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


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

.. попробуем в симуляции менять b и c не трогая d и наблюдаем за а. Потому пытаемся по итоговой схеме прикинуть как будет вести себя железо, и совпадет ли оно с симуляцией...

:)

Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками):

1) Tool : Quartus / ISE-Vivado ?

2) d - это тактовый сигнал или нет?

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


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

Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками):

1) Tool : Quartus / ISE-Vivado ?

2) d - это тактовый сигнал или нет?

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

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


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

:)

Перед началом забега конкретизируем (чтоб уж все ходы были записаны и зрители могли следить за руками):

1) Tool : Quartus / ISE-Vivado ?

2) d - это тактовый сигнал или нет?

 

1. Я проверял на ISE, интернет проверял и на Quartus, Vivado я практически уверен будет солидарна.

2. А это важно:)? Думаете у вас получится разный результат в зависимости от источника сигнала?

 

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

Это и есть основной тезис последних страниц, правда его списывают на нашу молодость и пытаются оспорить опытом, к слову сказать неподтвержденным экспериментами, таким эмпирическим опытом :)

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


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

Читал, читал этот спор, но так и не понял, в чем собственно проблема.

Для описания регистров в списке чувствительности использую только клок (ну и асинхронный сброс, если он есть); а для комбинационной логики пишу process(all), и вроде как расхождения модели и реального железа не наблюдаю

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


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

В споре поддерживаю Golikov A., Timmy, Flip-fl0p, не поддерживаю Raven, Мур .

 

2Мур ,

просто приведите пример, который нас разубедит (его конечно не будет).

 

2gin

Не все тулзы поддерживают VHDL2008, но в целом нормально.

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


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

просто приведите пример, который нас разубедит (его конечно не будет).

При дефиците времени провел эксперимент. Я разочарован VHDL. Действительно идет игнор всей этой концепции списка. Это рушит вариативность языка.

Надо уходить в SV...

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


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

При дефиците времени провел эксперимент. Я разочарован VHDL. Действительно идет игнор всей этой концепции списка. Это рушит вариативность языка.

Надо уходить в SV...

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

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


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

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

 

Ну как же!.. Если бы работа со списками чувствительности была как изначально прописано, то какой бы богатый выбор был? Только представьте!.. Крылья просто обрезают. Будем считать это не синтезируемым подмножеством. Не обращайте внимание! Да?

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


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

Надо уходить в SV...
Ну, в добрый путь. Когда надоест бесконечно бегинэндить, возвращайтесь обратно.

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


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

Ну как же!.. Если бы работа со списками чувствительности была как изначально прописано, то какой бы богатый выбор был? Только представьте!.. Крылья просто обрезают. Будем считать это не синтезируемым подмножеством. Не обращайте внимание! Да?

Я начал изучение VHDL (примерно год назад), когда уже всем крылья обрезали :crying: , и не знаю как было прописано изначально.

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

Изменено пользователем Flip-fl0p

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


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

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

 

Не вижу кстати разницы между

process() begin

end process;

и

always @() begin

end

Хотя нет вижу, запись на 1 слово короче:)

 

 

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


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

Я начал изучение VHDL (примерно год назад), когда уже всем крылья обрезали :crying: , и не знаю как было прописано изначально.

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

Простой пример. Без списка не обойтись..... У хилых в базисе Спартана 6 в макроячейке заложен синхронный сброс. Заставить сбрасываться асинхронно можно затратив дополнительную логику.

...и наоборот. У Альтеры в базисе триггеры с асинхронным сбросом. И заставить его сбрасываться синхронно приводит к аналогичному результату(в смысле затратности).

 

Казалось бы это должно быть видно на вьювере(это был смысл моего эксперимента). .... Обманывают нашего брата! У меня подозрения на сам вьювер. Упрощенно как-то!.. Дескать - не смотрите сюда. Судите только по поведению...

 

Я неоднократно попадал в ситуацию, когда пропускал в списке сигнал и реально шла ахинея. пока явно не добавлял недостающий. Вот я и был уверен в строгости VHDL. Волюнтаризм....

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


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

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

 

синхронный сброс

if(clk'event and clk = '1') then
if(reset = '1') then ...

 

асинхронный сброс

if(reset = '1') then ...
else if(clk'event and clk = '1') then

 

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

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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