verilog中case语句的执行过程

case 的执行过程:

  1. 计算 case expression,只计算一次,然后按照代码顺序从上向下和 case item 逐个比较

  2. 比较过程中,如果有 default 分支,则暂时先忽略

  3. 如果有某个 item 和 expression 匹配,则执行此 item 下的语句

  4. 如果匹配失败,有 default 分支,则执行该 default 分支

  5. 如果匹配失败,没有 default 分支,则终止

这个按照顺序比较的过程就是可能导致 priority encoder 的原因

posted @ 2019-11-13 18:38  boboyou  阅读(4706)  评论(0编辑  收藏  举报