Full & Parallel Case
1 case
1 | case/x/z (expression) // synopsys full_case, parallel_case |
- case header
- casez
- 将
z?视作不关心 - Guideline:谨慎使用
- Coding Style:用
?而非z匹配
- 将
- casex
- 将
z?x视作不关心 - Guideline:不要使用
- 将
- casez
- case expression
- 可以是常量,或求值为常量的表达式
- case item
- 可以是表达式
- 具有隐含的 break
2 Full Case
“full”指
case expression中所有可能的二进制 pattern 都能与item/default匹配。synopsys case report
完整
不完整
用户指定了
full_case
对于 HDL 的“full”
case expression中所有可能的二进制(01)、非二进制(zx)和混合 pattern 都能与item/default匹配。
对于综合的“full”
case expression中所有可能的二进制 pattern 都能与item/default匹配。
仿真时
sel == 2'b11则y = 1'bx,而综合将sel == 2'b11情况视作不关心,从而导致不匹配。可将该情况的输出y赋值为常数或与其他item相同。