Сделайте модуль Verilog чувствительным к выключению выключателя - PullRequest
0 голосов
/ 16 апреля 2011

Это сделает модуль Verilog чувствительным к часам и включенному переключателю сброса:

always @(posedge clk, posedge rst)

Как бы это изменить, чтобы быть чувствительным к выключению выключателя?

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

Если вы хотите, чтобы ваш блок был чувствителен к отключению переключателя, вам понадобится знак перед именем входа переключателя, например, "switch_line":

always @(posedge clock, posedge reset, negedge swtich_line)

Если вы просто хотите сделать триггер, проверьте состояние переключателя на каждом положительном фронте тактового цикла,

always @(posedge clock, posedge reset)
  if (!switch_line)
     // ...
  else 
     // ...

Вы пытаетесь смоделировать триггер, защелку или, возможно, какой-то новый тип оборудования? Обычно только триггеры и защелки заинтересованы в тактовом сигнале. Триггер с асинхронным сбросом моделируется как

 always @(posedge clock, posedge reset)

Для синхронного сброса сбросьте сигнал сброса из списка чувствительности.

В соответствии с комментариями пользователя, другой вариант - просто подключить сигнал go для сигнала сброса. Когда вы подключаете этот модуль, вы можете делать следующее:

mymodule UUT(
  .clock(clock),
  .reset(~go),
  //...
);

Если вы откажетесь от перехода, вы получите то же самое, что и при сбросе, только инвертированное (например, сигнал, идущий от 1 до 0).

0 голосов
/ 05 мая 2011

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

Как минимум, сэмплируйте входные данные с помощью регистра, а затем попросите контрольный FSM взглянуть на этот регистр и, когда ожидаемое изменение обнаружится, перейти в соответствующее состояние.,Это означает, что дизайну потребуется 1-2 цикла, чтобы «отреагировать» на изменение кнопки.Но, опять же, если тактовая частота не очень низкая, период будет достаточно коротким, чтобы ни один человек не заметил задержку в несколько циклов.

Если вы подключите сигнал к сбросу, вы (1) потеряете всю информацию о состоянии.нажатием кнопки (плохо) и внезапно появляются два сигнала сброса.Такая конструкция может сработать, но это плохая методология проектирования и сделает ваш дизайн чувствительным к шуму и т. Д.

...