reg A, B, C, D, E, F, G, H;
always@(*)
if (A) H = F & G;
else if (B) H = F | G;
else if (C) H = F ^ G;
else H = D & E;
我必须用casex语句替换这些语句。有人可以帮我解决代码吗
我的代码是错的......
reg A, B, C, D, E, F, G, H;
always@(*)
begin
casex(A or B or C or D or E or F or G or H)
A: H= F & G;
B: H = F | G;
C: H = F ^ G;
default: H = D & E;
endcase
答案 0 :(得分:1)
行A or B or C
在语法上是错误的,逻辑意图也是错误的,所以它不起作用。因此,您需要使用以下内容:
reg A, B, C, D, E, F, G, H;
always@(*)
begin
casex(1'b1)
A: H= F & G;
B: H = F | G;
C: H = F ^ G;
default: H = D & E;
endcase
end
原始帖子中的代码代表多路复用器。上面显示了使用“case”语句表达它的标准方法。代码表示如果任何变量'A','B'或'C'变为'1',相应的语句将在模拟中执行。