推荐答案
测试一下
题目
哪些情况下不会产生latch电路?
A.使用if选择语句的组合逻辑没有e1se部分表达;
B.使用case选择语句的组合逻辑没有else表达
C.时序逻辑中if选择语句,没有else部分表达。
D.组合逻辑中条件不全的case语句没有default赋值;
参考答案与知识点
参考答案
正确答案:C。
解析:latch(锁存器)通常在组合逻辑中因条件不完整而产生。组合逻辑中,if语句没有else分支或case语句缺少default分支时,综合工具会推断出锁存器来保持未覆盖条件下的上一状态。选项A(组合逻辑if无else)和选项B(组合逻辑case无default)均会导致latch。选项D(组合逻辑条件不全的case无default)同样会产生latch。而时序逻辑(如always块中posedge clk)中,if语句没有else分支时,由于寄存器本身具有存储功能,综合工具会生成带使能端的触发器,或通过反馈实现数据保持,不会产生latch。因此,只有选项C描述的“时序逻辑中if选择语句没有else部分”不会产生latch电路。
涉及知识点
- latch产生条件:组合逻辑条件不完整
- if语句缺少else引发latch
- case语句缺少default引发latch
- 时序逻辑中条件不完整不会产生latch
- 组合逻辑与时序逻辑区别