Case语句时并发语句,需要采用并行逻辑来实现,不存在逻辑的优先级别。If……else语句时多级嵌套语句,通常采用逻辑的串联来实现,该结构具有优先级别问题。这两种结构分别如下图所示:
Always @ (a or b or c or d or s[1:0])
Begin
Case(s)
2’b00: out = a;
2’b01: out = b;
2’b10: out = c;
2’b11: out = d;
Default: out = a;
end
Always @ (a or b or c or d or s[1:0])
Begin
If(s==2’b00)
Out = a;
Else if(s==2’b01)
Out = b;
Else if(s=2’b10)
Out = c;
Else if(s==2’b11)
Out = d;
Else
Out = a;
End
尽管这两种结构可以完成同样的功能,但逻辑实现的结构和效果却不同。Case速度快,但器件的资源利用率却不高。If…..else速度慢,但是逻辑资源利用率高。