无优先级的多路选择器(复用器)
通常使用case语句实现,所有分支处于同一优先级(并行),综合之后会得到一个多路选择器。
有优先级的多路选择器(复用器)
通常使用if-else语句或者条件赋值语句(?:)实现,分支之间具有优先级(串行),可以得到类似级联的结构,由if语句综合之后采用的元器件多于case语句运用的元器件。而且if语句由于是串行级联的结构,所造成的延时往往比case语句大,所以对于多路选择器而言,一般选择case语句会比if语句时序更好一些。
其他注意的事情
1、优先级编码器一般只在信号到达有先后的时候才使用。注意:如果要设计优先级编码器,那么使用casez,不使用casex。
2、case语句易于产生锁存器,对于结果可能产生严重错误,使用时注意消除锁存器。
https://www.dianyuan.com/article/43867.html
部分来自于《Verilog编程艺术——魏家明著 》