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

Первоначальное состояние

Как лучше дизайн строить. Есть ситуации когда модуль нужно приводить в первоначальное состояние ( иногда счетчики, иногда модули ). Считается ли правильным решением пустить reset и управляющий сигнал через "или" и подать выходной сигнал на вход сброса модуля / счетчика/ ect.?


Или есть более красивые варианты?

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


Ссылка на сообщение
Поделиться на другие сайты
Немного не то. Я имею в виду следующее. Пример. Пусть схема уже работает. Через некоторое время по опр. условию мне надо привести счетчик в начальное состояние. Я могу сигнал это сделать двумя путями. Через сигнал ресет, общий ресет и ресет счетчика от управления через логику пропустить и подать на сброс счетчика. Могу добавить сигнал Load. И путем его использования приводить счетчик в исх. состояние. Тоже самое с крупными модулями ( к примеру приемник и т.п.).

Вопрос такой. Является ли корректно на вход ресета подавать сигал пропущенный через логику.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(go2winner @ Sep 13 2017, 14:01) <{POST_SNAPBACK}>
Немного не то. Я имею в виду следующее. Пример. Пусть схема уже работает. Через некоторое время по опр. условию мне надо привести счетчик в начальное состояние. Я могу сигнал это сделать двумя путями. Через сигнал ресет, общий ресет и ресет счетчика от управления через логику пропустить и подать на сброс счетчика. Могу добавить сигнал Load. И путем его использования приводить счетчик в исх. состояние. Тоже самое с крупными модулями ( к примеру приемник и т.п.).

Вопрос такой. Является ли корректно на вход ресета подавать сигал пропущенный через логику.

Если есть хост, то делаем так.
Есть часть проекта, работающая с хостом. В ней должно быть предусмотрено автоматическое поддержание работоспособности. Для "надежных систем" это может быть вотчдог.
А остальная часть проекта должна иметь возможность управляться от хоста. Это не обязательно "сброс", но некое определенное состояние. И их может быть несколько...

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(go2winner @ Sep 13 2017, 14:01) <{POST_SNAPBACK}>
Вопрос такой. Является ли корректно на вход ресета подавать сигал пропущенный через логику.

Глобальный ресет не надо объединять с какой-либо комбинационной логикой.
Но локальный ресет, естественно, будет формироваться из синхронной и комбинационной логики.

Код
always_ff @ (posedge clk) begin
   if(~rst_n) begin
      cnt <= '0;
   end else if (clr) begin
      cnt <= 'h0


Сигнал rst_n - глобальный ресет с выхода синхронного элемента.
Сигнал clr - локальный сброс, источником которого может быть и синхронная и комбинационная схема.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Mad_max @ Sep 13 2017, 14:37) <{POST_SNAPBACK}>
Глобальный ресет не надо объединять с какой-либо комбинационной логикой.
Но локальный ресет, естественно, будет формироваться из синхронной и комбинационной логики.

Код
always_ff @ (posedge clk) begin
   if(~rst_n) begin
      cnt <= '0;
   end else if (clr) begin
      cnt <= 'h0


Сигнал rst_n - глобальный ресет с выхода синхронного элемента.
Сигнал clr - локальный сброс, источником которого может быть и синхронная и комбинационная схема.

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация