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

 
 
> влияние приоритетов на синтез схемы
penauch
сообщение Nov 4 2009, 14:20
Сообщение #1


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

Группа: Участник
Сообщений: 78
Регистрация: 12-10-09
Пользователь №: 52 902



есть ли разница в следующих конструкциях:

Код
if rising_edge(we) then
  if a='0' then
...
  end if;
end if;


и

Код
if (rising_edge(we) and a='0') then
...
end if;


и

Код
if (a='0' and rising_edge(we)) then
...
end if;


и

Код
if a='0' then
if rising_edge(we) then
...
  end if;
end if;


а то все никак не делаю - результат тотже... smile3046.gif 1111493779.gif

Сообщение отредактировал penauch - Nov 4 2009, 14:20
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
alexadmin
сообщение Nov 4 2009, 16:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(penauch @ Nov 4 2009, 17:20) *
есть ли разница в следующих конструкциях:

а то все никак не делаю - результат тотже... smile3046.gif 1111493779.gif


А какую разницу вы хотите увидеть?
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 4 2009, 17:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(penauch @ Nov 4 2009, 17:20) *
а то все никак не делаю - результат тотже... smile3046.gif 1111493779.gif

А что Вы хотите от эквивалентных выражений? Разного результата их оптимизации по заданному критерию оптимальности? Это было бы по меньшей мере странно для таких простых случаев, и свидетельствовало бы о глючности или неудачной реализации синтезатора.
Go to the top of the page
 
+Quote Post
penauch
сообщение Nov 4 2009, 23:20
Сообщение #4


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

Группа: Участник
Сообщений: 78
Регистрация: 12-10-09
Пользователь №: 52 902



Цитата(SM @ Nov 4 2009, 20:18) *
А что Вы хотите от эквивалентных выражений? Разного результата их оптимизации по заданному критерию оптимальности? Это было бы по меньшей мере странно для таких простых случаев, и свидетельствовало бы о глючности или неудачной реализации синтезатора.


Штирлиц в соседней теме про асинхронный обмен что-то говорил о перестановки условий во внутрь условия с фронтом\спадом - что влияет на синтез.

а RTL-вьювер делает все случаи одинаково laughing.gif
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Nov 4 2009, 23:45
Сообщение #5


Знающий
****

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



Вероятнее всего я ошибался.
Сожалею, что смутил и довел до экспериментов.

Есть шаблоны синтезаторов, они описаны в документации.
Для уверенного получения регистра с разрешением тактирования, нужно следовать шаблонам.
Это не значит, что к такому же результату не приводят другие способы.
Привычный для меня шаблон для получения регистра с асинхронным сбросом и разрешением клока выглядит
как сначала проверка сброса, затем фронт клока и лишь потом разрешение тактирования.
Такой порядок позволяет пропустить часть веток и не получить асинхронные петли.
Код
process(async_reset, clock)
  begin
    if async_reset='1' then
      reg <= reg_constant;
    elsif rising_edge(clock) then
      if clock_enable='1' then
        reg <= some_expression;
      end if;
    end if;
  end process;


Вот тут будет разница, но это очевидно и записано не одно и тоже.
Код
if a='0' then
  if rising_edge(clock) then
    reg <= some_data;
  end if;
else
  reg <= some_noise; -- latch
end if;
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:46
Рейтинг@Mail.ru


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