основная ошибка оператора сдвига verilog - PullRequest
1 голос
/ 18 апреля 2011

Я пытаюсь скомпилировать свою программу, но получаю ошибки при использовании арифметического оператора сдвига вправо: ">>>". Вот код:

if (from_id_hmic[117:115]==3'b011)
begin
  reg_stat[rt[0]]>>>1'b1; 
end

Вот ошибка:

Error: E:/Modeltech_pe_edu_10.0/examples/hmic.v(86): near ">>>": syntax error, unexpected >>>

У меня есть еще много таких утверждений, но они все дают ту же ошибку. В чем моя ошибка? Спасибо.

1 Ответ

2 голосов
/ 18 апреля 2011

У вас есть неполное заявление Verilog.Вы должны сделать назначение.Недостаточно просто попытаться выполнить смену, так как a + 2; - неполное утверждение.Возможно, вы хотите что-то вроде этого:

result = reg_stat[rt[0]]>>>1'b1;

или, возможно:

reg_stat[rt[0]] >>>= 1'b1; 

>>>= - это «оператор назначения двоичного арифметического сдвига» (см. IEEE Std 1800-2009 «Операторыи типы данных ").

...