if和case用法比较

      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速度慢,但是逻辑资源利用率高。

posted @ 2014-01-16 14:12  xuzhi_fpga  阅读(1165)  评论(0编辑  收藏  举报