如何解决移位运算符语法错误?

问题描述 投票:1回答:1

我试图编译我的代码,但当我使用算术右移操作符时,我得到了错误。>>>. 下面是代码。

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 >>>

我错在哪里?

compiler-errors verilog system-verilog bit-shift
1个回答
2
投票

你有一个不完整的Verilog语句。你需要进行一个赋值。 仅仅试图执行一个移位是不够的,就像 a + 2; 是一个不完整的语句。 你可能想要这样的东西。

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

或者这样

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

>>>= 是一个 "二进制算术移位赋值运算符"(参考IEEE Std 1800-2009 "运算符和数据类型")。

© www.soinside.com 2019 - 2024. All rights reserved.