下文引自ee top 博主timme,权作备忘
仿真结果(验证结果)不一样。可能导致RTL仿真通过,而实际电路/后仿结果不通过。换句话说,带不定态插入/不定态终止的RTL代码不利于验证。
不定态终止范例:
- always@(*)
- if(A)
- Y = B;
- else
- Y = C;
复制代码
当A为不定态时击中else,Y为C。输入有不定态,输出无不定态,即不定态终止。
不定态插入范例:
- always@(*)
- case(A[1:0])
- 2'b00 : Y = B;
- 2'b01 : Y = C;
- 2'b10 : Y = D;
- default : Y = 'bx;
- endcase
复制代码
当A为2'b11时,Y为不定态。输入无不定态,输出有不定态,即不定态插入。
以上两种都不利于RTL验证。