реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Список чувствительности для синтезатора и симулятора, В чем разница
D-Luxe
сообщение Mar 25 2011, 16:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Как анализирует синтезатор список чувствительности и как симулятор? В чем разница?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 25 2011, 17:10
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



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

Синтезатору список чувствительности нужен чтобы ругаться, для синтеза он не несет полезной информации.
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 29 2011, 10:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Shtirlits @ Mar 25 2011, 21:10) *
Синтезатору список чувствительности нужен чтобы ругаться, для синтеза он не несет полезной информации.
Распространенное заблуждение. rolleyes.gif В VHDL действительно полезной информации не несет, а вот в Verilog'е несет - для разных списков чувствительности могут быть синтезированы разные схемы

Go to the top of the page
 
+Quote Post
Мур
сообщение Mar 31 2011, 06:22
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(XVR @ Mar 29 2011, 13:37) *
rolleyes.gif В VHDL действительно полезной информации не несет, а вот в Verilog'е несет - для разных списков чувствительности могут быть синтезированы разные схемы


И в VHDL несёт! И очень серьёзно...
Мне вообще не нравится постановка вопроса. Список чувствительности- святая святых, даже основа в интерпретации поведения. Если на стадии симулятора забыть случайно вписать сигнал в этот список, то даже симулятор станет чудить.
Я лично не разделяю с точки зрения описания поведения этапы симуляции и синтеза.
Да, разные конструкции синтезируются по-разному, имея одинаковое поведение, но списка чувствительности это не касается. Это слишком глобальные вещи(тактирование, промежуточное запоминание).
Если я не прав, приведите пример неполезности информации в списке чувствительности.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 31 2011, 06:44
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Конечно, я же пишу на VHDL и по умолчанию имел в виду его.
Все используемые синтезаторы, в том числе quartus и xst ведут себя одинаково, как будто сначала делают схему, потом проверяют список чувствительности.
Это их дело.
Заполнять нужно все как положено.
Go to the top of the page
 
+Quote Post
Мур
сообщение Mar 31 2011, 07:12
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(D-Luxe @ Mar 25 2011, 19:46) *
Как анализирует синтезатор список чувствительности и как симулятор? В чем разница?

Синтезатор использует список чувствительности для определения тактирования и буферизации в будущей системе.

Реализация симулятора вынуждена отслеживать смену состояний всех сигналов из списка чувствительности для прогона дальнейшего поведения. В конце концов, он позволяет экономить машинный рессурс самого процесса симуляции. Лучше способа моделировать параллельные процессы пока не придумали.
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 31 2011, 07:45
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



В VHDL условия тактирования явно присутствуют в блоке process (обычно в виде if (clk'edge and clk=1) ). Поэтому синтезаторы обычно не смотрят на список чуствительности самого процесса.
В Verilog'е тело always не содержит явных условий для тактирования, поэтому синтезатор обязан извлекать эти данные из списка чуствительности (который кстати, при формальном подходе, не является списком чуствительности, а является оператором ожидания).
Go to the top of the page
 
+Quote Post
Alexium
сообщение Apr 3 2011, 17:01
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Цитата(XVR @ Mar 31 2011, 09:45) *
В VHDL условия тактирования явно присутствуют в блоке process (обычно в виде if (clk'edge and clk=1) ). Поэтому синтезаторы обычно не смотрят на список чуствительности самого процесса.
В Verilog'е тело always не содержит явных условий для тактирования, поэтому синтезатор обязан извлекать эти данные из списка чуствительности (который кстати, при формальном подходе, не является списком чуствительности, а является оператором ожидания).

Я пока читал тему, успел испугаться - неужели никто правильно не объяснит sm.gif

Сообщение отредактировал Alexium - Apr 3 2011, 17:03
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Apr 3 2011, 18:14
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Цитата(XVR @ Mar 31 2011, 11:45) *
который кстати, при формальном подходе, не является списком чуствительности, а является оператором ожидания.

Я бы только уточнил, что он является не оператором ожидания, а объявлением события.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Apr 3 2011, 20:00
Сообщение #10


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(XVR @ Mar 31 2011, 10:45) *
В VHDL условия тактирования явно присутствуют в блоке process (обычно в виде if (clk'edge and clk=1) ). Поэтому синтезаторы обычно не смотрят на список чуствительности самого процесса.


Прошу обратить внимание, что процессом может быть определена и комбинационная логика, без использования if ... then, но с использованием when.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 3 2011, 20:23
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Sergey'F @ Apr 3 2011, 22:14) *
Я бы только уточнил, что он является не оператором ожидания, а объявлением события.


Угу. И он не нужен, если в процессе написать оператор wait явно. А без них процесс в симуляторе просто зациклится.

Кстати, некоторые синтезаторы понимают процессы с несколькими явно написанными операторами wait в теле и без списка чувствительности процесса. Как вариант описания конечного автомата с неявным состоянием. Разумеется, чтобы такой процесс был синтезируем, все операторы wait должны быть для одного фронта одного клока.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 01:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016