首页 > 编程知识 正文

latch是时序逻辑吗,latch工作原理

时间:2023-05-06 03:29:59 阅读:255159 作者:1103

在 Verilog 中用来暂时存放参与运算的数据和运算结果的变量。一个变量声明为寄存器时,它既可以被综合成触发器,也可能被综合成 Latch,甚至是 wire 型变量。但是大多数情况下我们希望它被综合成触发器,但是有时候由于代码书写问题,它会被综合成不期望的 Latch 结构。

Latch 的主要危害有:

1)输入状态可能多次变化,容易产生毛刺,增加了下一级电路的不确定性;2)在大部分 FPGA 的资源中,可能需要比触发器更多的资源去实现 Latch 结构;3)锁存器的出现使得静态时序分析变得更加复杂。

Latch 多用于门控时钟(clock gating)的控制,一般设计时,我们应当避免 Latch 的产生。

避免此类 latch 的方法主要有 2 种,一种是补全 if-else 结构,或者对信号赋初值。

为避免 latch 的产生,在组合逻辑中,需要注意以下几点:

1)if-else 或 case 语句,结构一定要完整2)不要将赋值信号放在赋值源头,或条件判断中3)敏感信号列表建议多用 always@(*)

latch的好处:
因为使用latch可以timing borrow,在高速电路设计中(timing会很紧),有时候就需要用latch。

参考:

https://www.runoob.com/w3cnote/verilog-latch.html

https://blog.csdn.net/weixin_30314813/article/details/94942012

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。