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

 
 
> влияние приоритетов на синтез схемы
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
Ответов
Shtirlits
сообщение Nov 4 2009, 23:45
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 9th August 2025 - 01:47
Рейтинг@Mail.ru


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